我正在尝试跟随这博客文章让 CUDA 在 Ubuntu 20.04 内核中运行,以便在 Windows 10 下的 WSL 2 中运行非图形机器学习(使用 Nvidia 驱动程序 455.41 构建 20201.1000),并且我收到此命令的以下错误。
COMMAND: docker run --gpus all nvcr.io/nvidia/k8s/cuda-sample:nbody nbody -gpu -benchmark
RESPONSE: docker: Error response from daemon: could not select device driver "" with capabilities: [[gpu]].
博客文章本身和其他研究表明,可能需要重新启动 docker 来解决这个问题,但不幸的是,同一篇博客文章中关于停止和启动 docker 的命令不太起作用(停止可以但启动不行)。
启动命令据称是,sudo service docker stop
但我得到的响应是。如果我尝试使用似乎更合适的命令来“启动”服务,docker: unrecognized service
结果也是一样。sudo service docker start
请注意,我可以获得正在使用的服务列表,sudo service --status-all
但未列出 docker。但它在某处可以docker --version
工作。
这其他帖子暗示 Docker 服务可能未公开或未运行。非常确定它正在运行,因为wsl --shutdown Ubuntu
博客文章中的命令导致 Windows Docker 通知 Docker 意外停止并显示“您想重新启动它吗?”
对此的回答是肯定的,但也无济于事,所以我怀疑它没有被暴露,但不知道如何检查。
答案1
在关注了与您完全相同的博客后,我遇到了完全相同的问题。但我按照以下方法解决了它:
- 删除所有与 docker 和 nvidia-docker 相关的应用程序
- 按照此站点的 Docker 安装步骤进行操作:CUDA GPU 加速支持 WSL 2. 忽略运行时提示的Docker Desktop警告
curl https://get.docker.com | sh
。
docker: Error response from daemon: cgroups: cannot find cgroup mount destination: unknown. ERRO[0026] error waiting for container: context canceled
运行 时,您很可能遇到此错误docker run --gpus all nvcr.io/nvidia/k8s/cuda-sample:nbody nbody -gpu -benchmark
。如果是这种情况,请运行以下命令(更多信息请点击此处):
sudo mkdir /sys/fs/cgroup/systemd
sudo mount -t cgroup -o none,name=systemd cgroup /sys/fs/cgroup/systemd
完成这些步骤后,它应该可以正常工作。请注意,截至今天(2020 年 5 月 10 日),当前 Windows Insider Preview (20226.1000) 中似乎存在一个错误,阻止与 CUDA 进行任何交互。请查看以下链接了解更多信息:(CUDA 错误:所有支持 CUDA 的设备都繁忙或不可用)。
最有可能的是,您必须等到另一个 Windows 更新启动才能解决上一个问题。
希望能帮助到你!
编辑:Windows Insider Preview 版本 20236 运行良好!你可能想检查一下。