【问题标题】:NVIDIA Docker - initialization error: nvml error: driver not loadedNVIDIA Docker - 初始化错误:nvml 错误:未加载驱动程序
【发布时间】:2021-01-19 16:05:00
【问题描述】:

我是 Docker 的新手,所以下面的问题可能有点幼稚,但我被困住了,我需要帮助。

我正在尝试重现一些研究结果。作者只是released code along with a specification of how to build a Docker image 来重现他们的结果。相关位复制如下:

我相信我正确安装了 Docker:

$ docker --version
Docker version 19.03.13, build 4484c46d9d
$ sudo docker run hello-world

Hello from Docker!
This message shows that your installation appears to be working correctly.

To generate this message, Docker took the following steps:
 1. The Docker client contacted the Docker daemon.
 2. The Docker daemon pulled the "hello-world" image from the Docker Hub.
    (amd64)
 3. The Docker daemon created a new container from that image which runs the
    executable that produces the output you are currently reading.
 4. The Docker daemon streamed that output to the Docker client, which sent it
    to your terminal.

To try something more ambitious, you can run an Ubuntu container with:
 $ docker run -it ubuntu bash

Share images, automate workflows, and more with a free Docker ID:
 https://hub.docker.com/

For more examples and ideas, visit:
 https://docs.docker.com/get-started/

但是,当我尝试检查我的 nvidia-docker 安装是否成功时,我收到以下错误:

$ sudo docker run --gpus all --rm nvidia/cuda:10.1-base nvidia-smi
docker: Error response from daemon: OCI runtime create failed: container_linux.go:349: starting container process caused "process_linux.go:449: container init caused \"process_linux.go:432: running prestart hook 0 caused \\\"error running hook: exit status 1, stdout: , stderr: nvidia-container-cli: initialization error: nvml error: driver not loaded\\\\n\\\"\"": unknown.

看起来关键错误是:

nvidia-container-cli: initialization error: nvml error: driver not loaded

我在本地没有 GPU,我发现关于是否需要在 NVIDIA Docker 之前安装 CUDA 的信息相互矛盾。例如,this NVIDIA moderator says“正确的 nvidia docker 插件安装始于在基础机器上安装正确的 CUDA。”

我的问题如下:

  1. 我可以在不安装 CUDA 的情况下安装 NVIDIA Docker 吗?

  2. 如果是这样,这个错误的根源是什么?我该如何解决?

  3. 如果没有,我该如何创建这个 Docker 镜像来重现结果?

【问题讨论】:

    标签: docker nvidia nvidia-docker


    【解决方案1】:
    1. 我可以在不安装 CUDA 的情况下安装 NVIDIA Docker 吗?

    是的,你可以。 readme 声明 nvidia-docker 只需要安装 NVIDIA GPU 驱动和 Docker 引擎:

    注意,主机系统不需要安装CUDA Toolkit,但需要安装NVIDIA驱动

    1. 如果是这样,此错误的根源是什么?如何解决?

    那是因为您本地没有 GPU 或者不是 NVIDIA,或者是您在安装驱动程序时搞砸了。如果您有支持 CUDA 的 GPU,我建议使用 NVIDIA guide 安装驱动程序。如果您本地没有 GPU,您仍然可以使用 CUDA 构建图像,然后您可以将其移动到有 GPU 的地方。

    1. 如果没有,我如何创建这个 Docker 镜像来重现结果?

    问题在于,即使您设法摆脱了 Docker 映像中的 CUDA,也有需要它的软件。在这种情况下,修复 Dockerfile 在我看来是不必要的——您可以忽略 Docker 并开始修复代码以在 CPU 上运行它。

    【讨论】:

    • Re 2:我在本地没有 GPU,对。如果我在本地没有 (NVIDIA) GPU,有什么办法吗?
    • 我并不想摆脱 CUDA。我想在我的研究集群上使用 CUDA,但我没有在本地安装 CUDA。我无法在集群上制作 docker 映像,因为我没有超级用户权限。那么问题来了:如何在没有GPU的情况下,在本地使用NVIDIA docker制作docker镜像,包括镜像中的CUDA?
    • 如果没有 GPU,您将无法运行映像,因为它具有 CUDA,而 CUDA 需要 GPU。但是,这并不意味着您不能构建在您提到的集群中使用的映像。为此,除了 Docker 本身,您不需要任何东西。将存储库cd 克隆到其中,运行docker build . -t give_me_a_name_here,然后将构建的映像部署到集群中。
    • 为了澄清,我不是在问关于运行图像。我在问如何在没有安装 nvidia-docker 的情况下创建图像。说明明确指出我需要安装 nvidia docker
    猜你喜欢
    • 2018-08-12
    • 2022-08-22
    • 2015-09-02
    • 2018-06-24
    • 1970-01-01
    • 1970-01-01
    • 2022-11-12
    • 1970-01-01
    • 2018-08-13
    相关资源
    最近更新 更多