使用 WSL2 时无法获得 Docker 的 GPU 支持

使用 WSL2 时无法获得 Docker 的 GPU 支持

尝试运行启用 GPU 的容器,例如:

docker run --gpus all nvcr.io/nvidia/k8s/cuda-sample:nbody nbody -gpu -benchmark

我收到此错误:

docker: Error response from daemon: OCI runtime create failed: container_linux.go:367: starting container process caused: process_linux.go:495: container init caused: Running hook #0:: error running hook: exit status 1, stdout: , stderr: nvidia-container-cli: initialization error: driver error: failed to process request: unknown.
ERRO[0025] error waiting for container: context canceled

运行非 GPU 容器即可docker run hello-world正常工作。

  • 我确实在 Docker Desktop 设置中启用了 WSL 集成
  • Windows 10 Pro(版本 20H2 内部版本 19042.985)
  • Docker Desktop 3.3.3(64133),引擎 20.10.6,Compose 1.29.1
  • 带有 Ubuntu 20.04 的 WSL2
  • Nvidia 驱动程序 470.14 + CUDA 11.3
  • 在搭载 Geforce RTX 2070 Max-Q 的本地笔记本电脑上运行

答案1

使用 WSL2 时无法获得 Docker 的 GPU 支持

  • Windows 10 Pro(版本 20H2 内部版本 19042.985)

WSL2 中的 CUDA 要求比您正在运行的 Windows 版本更高。。您必须升级到受支持的 Windows Insider 版本才能实现您的目标

确保安装了 Build 版本 20145 或更高版本。为了获得最佳性能,我们建议使用 WIP OS 21332 及更高版本以及 Linux Kernel 5.4.91+。 您可以通过 Windows 运行命令运行 winver 来检查您的版本号。

此外:

单击“设置”应用的“Windows 更新”部分中的“检查更新”,确保您拥有最新的内核。如果安装了内核 4.19.121+ 的正确更新,您应该能够在 Windows 更新历史记录中看到它。或者,您可以通过在 PowerShell 中运行以下命令来检查版本号: wsl cat /proc/version

相关内容