基于WSL2来运行NVIDIA CUDA

测试了一下在Win10上基于WSL2来运行Tensorflow。以下是安装步骤:

1. 安装Win10的开发版(预览体验版)

NVIDIA要求Win10的版本号是高于20145。我安装了win10专业版之后,在更新里面的预览体验计划没看到有任何显示,只能在Windows网站上手动下载预览版ISO文件,下载之后安装,我选择的是最新的20231版本

2. 安装NVIDIA驱动

下载NVIDIA的支持WSL的驱动,在https://developer.nvidia.com/cuda/wsl这个网页中下载,并安装

3. 安装WSL2

这里有两种方式,既可以先装WSL1,然后升级到WSL2,也可以直接安装WSL2。我这里是新系统,选择直接安装。

开启WSL支持功能,在Powershell中运行dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart, 启用虚拟机平台功能,运行dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart, 下载最新的WSL2内核更新包 https://wslstorestorage.blob.core.windows.net/wslblob/wsl_update_x64.msi, 安装完成后,运行wsl --set-default-version 2,设置WSL为版本2.

之后就可以在Windows Store里面安装Linux了,我选择的是Ubuntu 18

4. 安装CUDA

设置CUDA Repo,并安装CUDA-toolkit

$ apt-key adv --fetch-keys http://developer.download.nvidia.com/compute/cuda/repos/ubuntu1804/x86_64/7fa2af80.pub

$ sh -c 'echo "deb http://developer.download.nvidia.com/compute/cuda/repos/ubuntu1804/x86_64 /" > /etc/apt/sources.list.d/cuda.list'

$ apt-get update

$ apt-get install -y cuda-toolkit-11-0

5. 安装设置Docker

安装Docker-CE

curl https://get.docker.com | sh

安装NVIDIA Container Toolkit

$ distribution=$(. /etc/os-release;echo $ID$VERSION_ID)

$ curl -s -L https://nvidia.github.io/nvidia-docker/gpgkey | sudo apt-key add -

$ curl -s -L https://nvidia.github.io/nvidia-docker/$distribution/nvidia-docker.list | sudo tee /etc/apt/sources.list.d/nvidia-docker.list

$ curl -s -L https://nvidia.github.io/libnvidia-container/experimental/$distribution/libnvidia-container-experimental.list | sudo tee /etc/apt/sources.list.d/libnvidia-container-experimental.list

如果以上的第2步显示No valid open pgp key,那么表示网络无法访问nvidia.github.io,需要手动添加这个网址的IP,例如编辑/etc/hosts,添加以下的IP映射

185.199.108.153 nvidia.github.io
185.199.109.153 nvidia.github.io
185.199.110.153 nvidia.github.io
185.199.111.153 nvidia.github.io

然后安装Nvidia container

$ sudo apt-get update

$ sudo apt-get install -y nvidia-docker2

开启一个新的WSL窗口,开启Dockers服务

$ sudo service docker stop

$ sudo service docker start

6. 运行CUDA Container

如果以上步骤都执行完毕,我们就可以运行一个样例Container来测试一下了

$ docker run --gpus all nvcr.io/nvidia/k8s/cuda-sample:nbody nbody -gpu -benchmark    

运行后应该能识别出你的显卡,例如我的运行结果如下

> 1 Devices used for simulation
MapSMtoCores for SM 7.5 is undefined.  Default to use 64 Cores/SM
GPU Device 0: "GeForce RTX 2080 Ti" with compute capability 7.5

> Compute 7.5 CUDA device: [GeForce RTX 2080 Ti]

这样我们就可以在WSL2下面来跑Tensorflow等深度学习框架了。

猜你喜欢

转载自blog.csdn.net/gzroy/article/details/111190131