![e3a21bf77c641f50d20ad14ec5c4d1d2.png](https://img-blog.csdnimg.cn/img_convert/e3a21bf77c641f50d20ad14ec5c4d1d2.png)
盼望着,盼望着,wsl2终于支持GPU了!之前预热了好久,一直等待着能正式上车,今天终于如愿以偿。关于wsl2的背景,关心的朋友大都知道,我就废话少说,直接来在wsl2上装CUDA!(不会真有人用AMD来炼丹吧。。
Windows侧驱动安装
- 首先需要升级到最新的fast预览版,版本号为20150,正好是618这天更新的,上车方法为参与Windows预览体验计划,选择fast ring,然后检查更新即可。
- 其次需要装好wsl2,这个就不用赘述了。
- 为了使用CUDA,我们还需要安装最新的测试版Nvidia驱动(需要申请一下Nvidia开发者账号,装过CuDnn的朋友们大多都有),下载链接如下:
Linux侧环境配置
好了,准备工作做完了,如果你是AMD的GPU,那恭喜你,可以直接开始炼丹了。如果是Nvidia的GPU,根据NV的说法,在linux上build的CUDA程序可以直接运行,但是我手头并没有linux的机器,而且NV更推荐使用docker来配置CUDA,所以在此直接介绍基于docker的方案。
首先安装docker:
$ curl https://get.docker.com | sh
添加NV的docker源:
$ 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
然后安装NV的docker runtime:
$ sudo apt update
$ sudo apt install -y nvidia-docker2
重启一下docker服务:
$ sudo service docker stop
$ sudo service docker start
安装合适的CUDA docker镜像
既然NV的GPU是通过docker实现GPU支持,那自然所有配置好了CUDA环境的镜像都是可以直接使用的。NV的文档中给出了TensorFlow的官方docker镜像例子,如果需要使用TF可以安装并运行这一镜像:
$ docker pull tensorflow/tensorflow:latest-gpu-py3-jupyter
$ docker run -it --gpus all -p 8888:8888 tensorflow/tensorflow:latest-gpu-py3-jupyter
这里一定需要添加--gpus all
的参数,才能支持GPU,安装运行后,在浏览器打开localhost:8888/?token=xxxxxxxxxx
即可直接使用启用GPU支持的Jupyter notebook,效果如下:
![9dea06de8964402ba4cad703ae4c026f.png](https://img-blog.csdnimg.cn/img_convert/9dea06de8964402ba4cad703ae4c026f.png)
如果不需要使用TF,而是像我一样需要在julia
中使用CUDA.jl
,则需要重头开始新建一个环境。由于CUDA.jl
安装时会自动安装CUDA
,CUDNN
以及CUTENSOR
等而不依赖系统,为了方便我直接使用了nvidia/cuda:10.2-base
这一docker镜像(仅有41M)作为底包。之所以不直接用ubuntu
是因为nvidia提供的底包里面添加了自己的源哈哈哈。 如果有其他包的需求可以看cuda镜像的tag,链接在此:https://ngc.nvidia.com/catalog/containers/nvidia:cuda/tags
$ docker pull nvidia/cuda:10.2-base
$ docker run -it --gpus all nvidia/cuda:10.2-base /bin/bash
进来以后直接就是root环境,然后就可以开始配置你自己的开发环境了,新建用户,安装build-essential
,julia
等,和普通ubuntu没有任何差异。配置完成后千万千万记住要commit,保存对原镜像的修改。需要使用docker ps
和docker tag
等命令,在此不再赘述。
好了,大功告成!来看看效果吧:
![eb2569b140c3b59de03f4cb5dd27cf4d.png](https://img-blog.csdnimg.cn/img_convert/eb2569b140c3b59de03f4cb5dd27cf4d.png)
还有更多有关的细节可以参考以下链接:
CUDA Toolkit Documentationdocs.nvidia.com![5fa61c775b1c79960dbcbfa4e177df99.png](https://img-blog.csdnimg.cn/img_convert/5fa61c775b1c79960dbcbfa4e177df99.png)
![031654ba0e46a931a7938fd7972c9fa7.png](https://img-blog.csdnimg.cn/img_convert/031654ba0e46a931a7938fd7972c9fa7.png)
![b4a3b6b0a676f62348a63bb1510e6d21.png](https://img-blog.csdnimg.cn/img_convert/b4a3b6b0a676f62348a63bb1510e6d21.png)