大概弄了有一天多,终于在现在的电脑上使用WSL2安装了CUDA,结果如下
![v2-c2cb2d14351941597c83657bfdcface4_b.jpg](http://img-03.proxy.5ce.com/view/image?&type=2&guid=e79a181f-ae2e-eb11-8da9-e4434bdf6706&url=https://pic1.zhimg.com/v2-c2cb2d14351941597c83657bfdcface4_b.jpg)
主要参考了以下两个链接,下面记录一下我的执行过程和遇到的问题。
https://ubuntu.com/blog/getting-started-with-cuda-on-ubuntu-on-wsl-2ubuntu.com Announcing CUDA on Windows Subsystem for Linux 2 | NVIDIA Developer Blogdeveloper.nvidia.com![v2-dbb0cb20ca17c9711876cc5e6835358d_180x120.jpg](http://img-03.proxy.5ce.com/view/image?&type=2&guid=e79a181f-ae2e-eb11-8da9-e4434bdf6706&url=https://pic2.zhimg.com/v2-dbb0cb20ca17c9711876cc5e6835358d_180x120.jpg)
- 安装windows预览版。
![v2-9c656430b4eb8940738c0718edc2a766_b.jpg](http://img-03.proxy.5ce.com/view/image?&type=2&guid=e79a181f-ae2e-eb11-8da9-e4434bdf6706&url=https://pic3.zhimg.com/v2-9c656430b4eb8940738c0718edc2a766_b.jpg)
需要切换到Dev Channel,也就是之前的Fast Ring。
2. 更新windows
要求windows版本为 Build 20145或更高。因为WSL2的kernel版本的要求是4.19.121或更高,需要更新windows版本,我的版本为:Build 20152.
这里有一个注意的地方就是更新windows的时候需要在高级选项中打开如下图选项,这样才能保住wsl2的kernel会更新。因为需要下载Windows Subsystem for Linux Update - 4.19.121
![v2-20dfaffada2a6f6ede7babbc85a83dfc_b.jpg](http://img-01.proxy.5ce.com/view/image?&type=2&guid=e79a181f-ae2e-eb11-8da9-e4434bdf6706&url=https://pic1.zhimg.com/v2-20dfaffada2a6f6ede7babbc85a83dfc_b.jpg)
3. 安装WSL2、Ubuntu、Nvidia Drivers和Docker
安装WSL2可以参考微软的官方文档如下
Install Windows Subsystem for Linux (WSL) on Windows 10docs.microsoft.com![v2-fa769ba2fd25c9bdd269a736e0942218_ipico.jpg](http://img-01.proxy.5ce.com/view/image?&type=2&guid=e79a181f-ae2e-eb11-8da9-e4434bdf6706&url=https://pic1.zhimg.com/v2-fa769ba2fd25c9bdd269a736e0942218_ipico.jpg)
需要确保运行的WSL 2 Linux kernel是正确的,保证kernel版本为4.19.121或者更高,方法需要安装步骤1,2执行。
![v2-38e06a04b9ef4ae92a525b7752d62887_b.png](http://img-01.proxy.5ce.com/view/image?&type=2&guid=e79a181f-ae2e-eb11-8da9-e4434bdf6706&url=https://pic4.zhimg.com/v2-38e06a04b9ef4ae92a525b7752d62887_b.png)
安装Nvidia Drivers,这个需要在Nvidia的官网上下载
CUDA on WSLdeveloper.nvidia.com安装docker及nvidia-dockers 2,这个需要通过命令行安装,我开始使用了Docker Desktop发现有问题,如果使用了Docker Desktop,需要卸载。
curl https://get.docker.com | sh
Open the WSL container and start the Docker daemon there. You should see the dockerd service output.
这是再打开WSL,启动一个Docker daemon,就可以看到dockerd serverce output了
sudo dockerd
测试cuda-sample
在另外一个WSL中,下载N-body simulation container。
docker run --gpus all nvcr.io/nvidia/k8s/cuda-sample:nbody nbody -gpu -benchmark
就可以看到运行结果了,就是最开始的那张图。
这一步可能会遇到问题:
docker: Error response from daemon: cgroups: cannot find cgroup mount destination: unknown.
ERRO[0920] error waiting for container: context canceled
解决方法如下:
执行下面的命令就可以了。
sudo mkdir /sys/fs/cgroup/systemd
sudo mount -t cgroup -o none,name=systemd cgroup /sys/fs/cgroup/systemd
这样就大功告成了!可以在WSL2中使用CUDA了。