WSL2 中的 Cuda:“操作系统阻止了 GPU 访问”

WSL2 中的 Cuda:“操作系统阻止了 GPU 访问”

我正在尝试在 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 中启用虚拟化。

相关内容