Windows11下WSL2 Docker CUDA支持报错排查求助
Windows 11多GPU环境下WSL2 Docker GPU容器启动失败的排查方法
环境信息
- Windows系统CUDA版本:11.8
- Windows端
nvidia-smi输出:
Sat Dec 3 06:44:49 2022 +-----------------------------------------------------------------------------+ | NVIDIA-SMI 527.37 Driver Version: 527.37 CUDA Version: 12.0 | |-------------------------------+----------------------+----------------------+ | 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 A30 TCC | 00000000:41:00.0 Off | 0 | | N/A 48C P0 39W / 165W | 0MiB / 24576MiB | 0% Default | | | | Disabled | +-------------------------------+----------------------+----------------------+ | 1 NVIDIA GeForce ... WDDM | 00000000:61:00.0 On | N/A | | 24% 41C P8 15W / 180W | 1411MiB / 8192MiB | 11% Default | | | | N/A | +-------------------------------+----------------------+----------------------+ +-----------------------------------------------------------------------------+ | Processes: | | GPU GI CI PID Type Process name GPU Memory | | ID ID Usage | |=============================================================================| | 1 N/A N/A 2632 C+G ...y\ShellExperienceHost.exe N/A | | 1 N/A N/A 6040 C+G ...ontend\Docker Desktop.exe N/A | | 1 N/A N/A 8588 C+G C:\Windows\explorer.exe N/A | | 1 N/A N/A 10692 C+G ...n1h2txyewy\SearchHost.exe N/A | | 1 N/A N/A 10724 C+G ...artMenuExperienceHost.exe N/A | | 1 N/A N/A 13060 C+G ...perience\NVIDIA Share.exe N/A | | 1 N/A N/A 14252 C+G ...418.62\msedgewebview2.exe N/A | | 1 N/A N/A 14816 C+G ...ge\Application\msedge.exe N/A | | 1 N/A N/A 15300 C+G ...lPanel\SystemSettings.exe N/A | | 1 N/A N/A 15384 C+G ...ck\app-4.29.149\slack.exe N/A | | 1 N/A N/A 16488 C+G ...418.62\msedgewebview2.exe N/A | | 1 N/A N/A 18084 C+G ...me\Application\chrome.exe N/A | +-----------------------------------------------------------------------------+
- WSL版本:WSL2
PS C:\Users\olegj> wsl -l -v NAME STATE VERSION * docker-desktop Running 2 docker-desktop-data Running 2
- Docker版本:
20.10.21, build baeda1f - Docker Desktop版本:
4.15.0 (93002)
报错信息
启动带GPU的Docker容器时触发以下错误:
docker: Error response from daemon: failed to create shim task: OCI
runtime create failed: runc create failed: unable to start container
process: error during container init: error running hook #0: error
running hook: exit status 1, stdout: , stderr: Auto-detected mode as
'legacy' nvidia-container-cli: initialization error: nvml error:
unknown error: unknown.
触发报错的命令示例:
docker run --rm --gpus all nvidia/cuda:11.8.0-base-ubuntu20.04 nvidia-smi docker run --env NVIDIA_DISABLE_REQUIRE=1 --gpus all nvcr.io/nvidia/k8s/cuda-sample:nbody 342 nbody -gpu -benchmark
问题背景
全新Windows系统单GPU时一切正常,安装第二块不同型号GPU后出现上述报错,重新安装CUDA、Docker及WSL内的CUDA后问题仍存在。
排查方法
- 验证WSL2中GPU可用性
进入WSL2环境(执行wsl命令),运行nvidia-smi确认能否识别两块GPU。若WSL内无法识别,优先解决WSL与NVIDIA驱动的兼容性问题,确保Windows端驱动为支持WSL2的版本。 - 检查GPU模式冲突
当前A30为TCC模式、GeForce显卡为WDDM模式,尝试将A30切换为WDDM模式(需管理员权限执行nvidia-smi -dm 0,重启生效),或在NVIDIA控制面板确认默认GPU设置后再测试容器启动。 - 排查nvidia-container-toolkit配置
在WSL2内检查/etc/nvidia-container-runtime/config.toml文件,确保未限制GPU型号;尝试手动指定单块GPU运行容器,命令示例:docker run --rm --gpus '"device=1"' nvidia/cuda:11.8.0-base-ubuntu20.04 nvidia-smi,排查多GPU型号不兼容问题。 - 更新Docker及相关组件
将Docker Desktop升级到最新稳定版,执行wsl --update更新WSL2内核;在WSL2内重新安装nvidia-container-toolkit,确保组件与驱动版本匹配。 - 检查系统服务与权限
确认Windows端NVIDIA Container Runtime服务处于运行状态;以管理员权限启动Docker Desktop;尝试在WSL2内以root用户运行容器,排查权限不足问题。 - 收集详细日志
启动容器时添加--debug参数获取Docker启动日志;查看WSL2内/var/log/nvidia-container-runtime.log文件,定位nvml错误的具体原因。
内容的提问来源于stack exchange,提问作者DuckQueen
相关产品推荐
相关产品推荐

