GPU/Docker 在 Windows WSL 2 中无法运行 Ubuntu 20.04

GPU/Docker 在 Windows WSL 2 中无法运行 Ubuntu 20.04

我正在尝试跟随博客文章让 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 运行良好!你可能想检查一下。

相关内容