WSL2安装配置GPU驱动
上一级:index-wsl
驱动安装--驱动只装在win端
习惯了ubuntu里面装nvdia驱动?那你可能要搞错了,wsl不需要你在ubuntu里面装驱动,你需要在win中装一个支持wsl2的驱动
安装Windows的nvidia驱动(Windows下的驱动)
下载并安装带有WSL2驱动的Windows-nvidia-驱动
再次强调, 不要在wsl里面的ubuntu装显卡驱动,显卡驱动应该装在windows端
根据自己电脑显卡类型,分GeForce和QUADRO两个版本,自己电脑是哪个就选哪个。下载驱动后,安装。(安装过程中可以直接选择“精简”模式)
有人会问:不是安装WSL2的驱动吗?为什么装Windows的?
实际上,官网文档上标注 了,包括有WSL2驱动的官方windows nvidia驱动是整个过程唯一要装的GPU驱动!!!
千万别被其他指南带错路了!(我就是没找到这个,白白浪费很多时间)
访问Update Drivers & Optimal Playable Settings | NVIDIA GeForce Experience
下载GeForce Experience
,用它来安装nvidia驱动
或者直接下载驱动Official Drivers | NVIDIA
windows端的驱动确认
正常情况下,采用Windows默认更新即可安装NVIDIA对应的显卡驱动。此时,开始菜单会存在NVIDIA Control Panel
应用,打开该应用即可查看驱动版本。本文对应的驱动版本如下图所示。
或者打开Windows Terminal
,在其默认标签页(windows 环境下的shell,如 cmd等)中输入如下命令:
nvidia-smi.exe
如果输出类似如下内容,即表示驱动安装成功。
Thu Mar 17 14:58:36 2022
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 472.42 Driver Version: 472.42 CUDA Version: 11.4 |
|-------------------------------+----------------------+----------------------+
| GPU Name TCC/WDDM | Bus-Id Disp.A | Volatile Uncorr. ECC |
| Fan Temp Perf Pwr:Usage/Cap| Memory-Usage | GPU-Util Compute M. |
| | | MIG M. |
|===============================+======================+======================|
| 0 NVIDIA GeForce ... WDDM | 00000000:2D:00.0 Off | N/A |
| N/A 0C P8 N/A / N/A | 64MiB / 2048MiB | 0% Default |
| | | N/A |
+-------------------------------+----------------------+----------------------+
+-----------------------------------------------------------------------------+
| Processes: |
| GPU GI CI PID Type Process name GPU Memory |
| ID ID Usage |
|=============================================================================|
| No running processes found |
+-----------------------------------------------------------------------------+
如果上述驱动无问题,在Windows Terminal
中新建Ubuntu标签页,然后输入如下命令:
nvidia-smi
会输入类似如下内容,表示Ubuntu中NVIDIA驱动正常。
Thu Mar 17 15:07:02 2022
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 470.83 Driver Version: 472.42 CUDA Version: 11.4 |
|-------------------------------+----------------------+----------------------+
| GPU Name Persistence-M| Bus-Id Disp.A | Volatile Uncorr. ECC |
| Fan Temp Perf Pwr:Usage/Cap| Memory-Usage | GPU-Util Compute M. |
| | | MIG M. |
|===============================+======================+======================|
| 0 NVIDIA GeForce ... Off | 00000000:2D:00.0 Off | N/A |
| N/A 39C P0 N/A / N/A | 64MiB / 2048MiB | ERR! Default |
| | | N/A |
+-------------------------------+----------------------+----------------------+
+-----------------------------------------------------------------------------+
| Processes: |
| GPU GI CI PID Type Process name GPU Memory |
| ID ID Usage |
|=============================================================================|
| No running processes found |
+-----------------------------------------------------------------------------+
值得注意的是,wsl里面nvidia-smi不能用,并没有具体进程的占用信息
检查WSL端显卡驱动
跟着nVidia官方文档来安装CUDA on WSL :: CUDA Toolkit Documentation (nvidia.com)
用户不得在WSL 2中安装任何NVIDIA GPU Linux驱动程序
从Windows Terminal
进入Ubuntu
。把wsl2中安装的NVIDIA驱动卸载:
sudo /usr/bin/nvidia-uninstall
卸载过程一路都是yes。
nouveau禁用
可以使用下面命令查看,如果没有输出,代表nouveau已经禁用:
lsmod | grep nouveau
没有禁用nouveau
的话,首先需要禁用nouveau
,不然会碰到冲突的问题,导致无法安装nvidia显卡驱动。
禁用方法如下,已经禁用的直接跳转到检查环境
(下一小节):
编辑文件/etc/modprobe.d/blacklist.conf
sudo vim /etc/modprobe.d/blacklist.conf
在文件最后部分插入以下两行内容
blacklist nouveau
options nouveau modeset=0
更新系统
sudo update-initramfs -u
之后需要重新启动
检查vulkan驱动,cuda驱动等
事实上,您不得在WSL端安装任何驱动,包括mesa-vulkan-driver
以及其他mesa-*-driver
,它们均由windows端的显卡驱动提供完整支持
vulkan将在未来的WSLG版本提供支持。Vulkan以及OpenCL的相关情况可以关注wsl-cuda-opengl-opencl-vulkan支持情况
cuda则直接被包含在了教新的Nvidia GPU 驱动 (Window)中
sudo apt remove mesa-vulkan-driver
# 同理,sudo apt remove mesa-*-driver
GPU使用情况分析--wsl里面nvidia-smi不能用
wsl里面nvidia-smi不能用,并没有具体进程的占用信息,这种情况很常见,
- 您可以使用了类似genie的容器,它类似于genie中
code
命令不可用,见genie-报错处理 - 另外一种情况,是n卡驱动本身的问题,可以手动设置path(使用
/usr/lib/wsl/lib/nvidia-smi
或者将/usr/lib/wsl/lib/
添加到PATH
.可以查看CUDA on WSL :: CUDA Toolkit Documentation (nvidia.com) )
再次强调, 不要在wsl里面的ubuntu装显卡驱动,显卡驱动应该装在windows端
在上述进行测试时,在Ubuntu
内使用watch -n 0.1 -d nvidia-smi
命令进行GPU使用情况监测,发现GPU显存占用会增加,但是并没有具体进程的占用信息,同时GPU-Util显示为ERR!。具体情况如下图所示:
你直接在win10里面看:
如果在Windows
系统shell
内使用nvidia-smi.exe
进行监测,会显示Insufficient Permissions
线程正在运行。
+-----------------------------------------------------------------------------+
| Processes: |
| GPU GI CI PID Type Process name GPU Memory |
| ID ID Usage |
|=============================================================================|
| 0 N/A N/A 4 C Insufficient Permissions N/A |
+-----------------------------------------------------------------------------+
通过搜索,发现该问题是WSL 2
目前存在的一个问题,所以读者可不必纠结于此问题。有关该问题的情况可以参考WSL 2.0 Windows 11 insider build GPU-Util ERR!
实时检测
nvidia-smi.exe -l 5
每5秒更新一次
ctrl + z退出,可以试试
修复libcuda.so.1 is not a symbolic link
修复libcuda-so-1-is-not-a-symbolic-link
参考、引用、致谢
MindSpore入门-基于Windows10系统WSL2安装GPU版本MindSpore_MindSpore_昇腾论坛_华为云论坛 (huaweicloud.com)
(24条消息) Linux安装CUDA的正确姿势_FlyWine的博客-CSDN博客_linux安装cuda
作者:小丁同学_99 https://www.bilibili.com/read/cv14608547 出处:bilibili