这篇文章上次修改于 686 天前,可能其部分内容已经发生变化,如有疑问可询问作者。

78528-gx5bzxzsn28.png

错误溯源

个人认为该错误是Docker容器无法被正常注册所致,究其根源是Docker 19.03及之后的版本虽然不再需要nvidia-docker支持GPU调用,但仍需NVIDIA的Toolkit(Runtime)注册Docker容器。
故可能导致此错误的原因有两个:

  1. NVIDIA驱动未被正确安装/NVIDIA驱动PCI寻址失败(找不到设备)。
  2. 未安装nvidia-container-runtime。

解决问题

安装NVIDIA驱动

CentOS/RHEL系可参考: 《现代操作系统的现代显卡驱动安装方法》
Ubuntu可以用ubuntu-drivers(APT Package: ubuntu-drivers-common)安装。

安装NVIDIA CONTAINER RUNTIME

解决方法:安装NVIDIA Container Runtime(适用于NVIDIA芯片)
先向/etc/docker/daemon.json写入以下内容:

{
    "runtimes": {
        "nvidia": {
            "path": "/etc/nvidia-container-runtime",
            "runtimeArgs": []
        }
    }
}

path可根据实际nvidia-container-runtime的位置改变

然后用包管理器安装:

apt install nvidia-container-runtime
systemctm restart docker

yum install nvidia-container-runtime
systemctl restart docker

Q.E.D