环境搭建 首先查看自己系统版本,需要时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.1cuda驱动安装
这部分是在windows系统中安装的,从链接中下载专为wsl开发的cuda驱动。下载完之后安装,选项我默认选的第一个(安装显卡驱动和experience程序),安装完之后需要重启电脑生效。这里需要提醒的是官方提示电脑上只需要这一个cuda驱动,它既可以为windows系统服务也可以为wsl2里的ubuntu系统服务。
安装完之后理论上可以在windows的命令行中运行2.2.cuda toolkit 安装nvidia-smi
来获取GPU的当前运行状态,否则可能是安装失败了。
这里就直接根据官方给的命令在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生成即可。
文章图片
又出现了新的报错信息,原因是之前的cuda驱动安装失败了。
文章图片
解决办法:打开windows更新设置中的高级选项,把第一个勾选上,系统会自动为wsl进行驱动相关的更新。
文章图片
最后发现貌似是因为操作系统内核原因导致,有两个解决思路,一个是加入win10预览体验计划升级操作系统内核,第二个是升级win11。我的版本是19043.1348,据说需要到20145的版本或者更高。
我决定升级win11了。,,,升级win11之后一切正常,甚至在wsl的控制台里可以直接使用nvidia-smi命令查看显卡情况,我佛了。
推荐阅读
- 学习|深度学习中(使用GPU和CPU的区别)
- 深度学习|深度学习(GPU云服务器的租用)
- 深度学习|为什么深度学习(Deep Learning)要使用GPU而不是CPU()
- ubuntu|ubuntu系统下gcc命令的执行与Makefile的简单使用
- ubuntu|Ubuntu系统里使用gcc和Makefile编译c程序
- 嵌入式开发|ubuntu下使用gcc和Makefile执行c程序
- 机器学习|pytorch查看网络架构的几种方法
- 安全工具|ubuntu安装CobaltStrike,MSF,john
- Linux|Ubuntu Linux操作系统——图形界面与命令行