开发|wsl2使用GPU进行深度学习

环境搭建 首先查看自己系统版本,需要时win10的预览版或者时win11才能成功。。
参考链接
https://docs.nvidia.com/cuda/wsl-user-guide/index.html#installing-wip
1.wsl2安装 【开发|wsl2使用GPU进行深度学习】wsl2安装实际上非常简单,大体上来说可以分为两步

  • 安装激活wsl2功能
    其实这里可以直接参考官方的参考文档。但是其实这里我并没有直接使用命令就能成功,此处参考了另一个官方文档,成功安装了wsl2。
  • 安装linux的发行版
    linux发行版的安装在上面的官方教程里也有提到,其实就是直接到微软的应用商店下载安装对应的版本就行。(我这里安装的是ubuntu18.04。)
2.GPU相关环境安装 如果英语好可以直接见官方教程,挺详细的。
2.1cuda驱动安装
这部分是在windows系统中安装的,从链接中下载专为wsl开发的cuda驱动。下载完之后安装,选项我默认选的第一个(安装显卡驱动和experience程序),安装完之后需要重启电脑生效。这里需要提醒的是官方提示电脑上只需要这一个cuda驱动,它既可以为windows系统服务也可以为wsl2里的ubuntu系统服务。
安装完之后理论上可以在windows的命令行中运行nvidia-smi来获取GPU的当前运行状态,否则可能是安装失败了。
2.2.cuda toolkit 安装
这里就直接根据官方给的命令在wsl2的ubuntu终端中执行。
这里个人建议在执行命令之前将ubuntu中的自带apt-get进行更新(使用update和upgrade命令)。
并且这里第三行命令中的dep包特别大,有2个多G,有条件者可以用科学的方法下载。
$ wget https://developer.download.nvidia.com/compute/cuda/repos/wsl-ubuntu/x86_64/cuda-wsl-ubuntu.pin $ sudo mv cuda-wsl-ubuntu.pin /etc/apt/preferences.d/cuda-repository-pin-600 $ wget https://developer.download.nvidia.com/compute/cuda/11.4.0/local_installers/cuda-repo-wsl-ubuntu-11-4-local_11.4.0-1_amd64.deb $ sudo dpkg -i cuda-repo-wsl-ubuntu-11-4-local_11.4.0-1_amd64.deb $ sudo apt-key add /var/cuda-repo-wsl-ubuntu-11-4-local/7fa2af80.pub $ sudo apt-get update $ sudo apt-get -y install cuda

2.3.例子验证
$ cd /usr/local/cuda-11.4/samples/4_Finance/BlackScholes $ make BlackScholes $ ./BlackScholesInitializing data... ...allocating CPU memory for options. ...allocating GPU memory for options. ...generating input data in CPU mem. ...copying input data to GPU mem. Data init done.Executing Black-Scholes GPU kernel (131072 iterations)... Options count: 8000000 BlackScholesGPU() time: 0.207633 msec Effective memory bandwidth: 385.295561 GB/s Gigaoptions per second: 38.529556

出现报错信息,可以看出是权限不足,使用sudo生成即可。
开发|wsl2使用GPU进行深度学习
文章图片

又出现了新的报错信息,原因是之前的cuda驱动安装失败了。
开发|wsl2使用GPU进行深度学习
文章图片

解决办法:打开windows更新设置中的高级选项,把第一个勾选上,系统会自动为wsl进行驱动相关的更新。
开发|wsl2使用GPU进行深度学习
文章图片

最后发现貌似是因为操作系统内核原因导致,有两个解决思路,一个是加入win10预览体验计划升级操作系统内核,第二个是升级win11。我的版本是19043.1348,据说需要到20145的版本或者更高。
我决定升级win11了。,,,升级win11之后一切正常,甚至在wsl的控制台里可以直接使用nvidia-smi命令查看显卡情况,我佛了。

    推荐阅读