我正在尝试在 WSL2 中安装 cuda 以便与 TensorFlow 一起使用(按照TF 指令,其中包括NVIDIA 说明)。
Windows 端工具nvidia-smi.exe
运行并给出以下输出:
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 517.40 Driver Version: 517.40 CUDA Version: 11.7 |
|-------------------------------+----------------------+----------------------+
| 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:01:00.0 On | N/A |
| 38% 28C P8 7W / 120W | 473MiB / 6144MiB | 0% Default |
| | | N/A |
+-------------------------------+----------------------+----------------------+
我已确保在 WSL2 中安装了正确的 cuda 工具包(根据 NVIDIA 说明,非驱动程序版本为 11.7)。但是当我运行 WSL2 端工具时,nvidia-smi
我看到以下错误:
Failed to initialize NVML: GPU access blocked by the operating system
Failed to properly shut down NVML: GPU access blocked by the operating system
来自其他帖子的解决方案(包括重启、重新安装驱动程序、禁用安全启动以及升级至 Windows 21H2) 对我来说不起作用。
如何为 WSL2 正确配置 cuda?
(为清晰起见,已编辑)
答案1
“我已确保在 WSL2 中安装了正确(即非驱动程序)且匹配的 cuda 工具包版本。”
我认为这不是正确的做法,因为您链接的 NVIDIA 说明说:
使用最新的 Windows x86 生产驱动程序。R495 及更高版本的 Windows 将为 WSL 2 提供 CUDA 支持。
我可以想象在 WSL 内部安装驱动程序会产生这些问题。最近我创建了一个全新的 Ubuntu WSL2 安装,但没有在其中安装任何东西,但 nvidia-smi 仍然运行良好。
答案2
六个月后,我再次审视了这个问题,并设法找到了解决方案。我需要像 Ramhound 提到的那样升级到 Windows 11,然后从 Windows 管理员帐户使用 WSL2。后一步要求我在 BIOS 中启用虚拟化。