将nvidia运行时添加到docker运行时

时间:2019-11-23 13:45:23

标签: docker cuda gpu nvidia-docker

我正在GCP上使用特斯拉GPU运行虚拟机。 并尝试部署基于PyTorch的应用程序,以通过GPU对其进行加速。

我想让docker使用此GPU,可以从容器访问它。

我设法在主机上安装了所有驱动程序,并且该应用在那儿运行良好,但是当我尝试在docker中运行(基于nvidia / cuda容器)时pytorch失败:

File "/usr/local/lib/python3.6/dist-packages/torch/cuda/__init__.py", line 82, 
in _check_driver http://www.nvidia.com/Download/index.aspx""")
AssertionError: 
Found no NVIDIA driver on your system. Please check that you have an NVIDIA GPU and installed a driver from

要获取有关可在容器中看到的nvidia驱动程序的一些信息,请运行以下命令:

docker run --runtime=nvidia --rm nvidia/cuda nvidia-smi
但它抱怨:docker: Error response from daemon: Unknown runtime specified nvidia.

在主机nvidia-smi上的输出如下所示:

+-----------------------------------------------------------------------------+
| NVIDIA-SMI 440.33.01    Driver Version: 440.33.01    CUDA Version: 10.2     |
|-------------------------------+----------------------+----------------------+
| GPU  Name        Persistence-M| Bus-Id        Disp.A | Volatile Uncorr. ECC |
| Fan  Temp  Perf  Pwr:Usage/Cap|         Memory-Usage | GPU-Util  Compute M. |
|===============================+======================+======================|
|   0  Tesla P100-PCIE...  On   | 00000000:00:04.0 Off |                    0 |
| N/A   39C    P0    35W / 250W |    873MiB / 16280MiB |      0%      Default |
+-------------------------------+----------------------+----------------------+

如果我在docker中检查运行时,则只能获得runc运行时,而无法获得nvidia,如互联网示例所示。

$ docker info|grep -i runtime
 Runtimes: runc
 Default Runtime: runc

如何将这个nvidia运行时环境添加到我的Docker?

到目前为止,我发现的大多数帖子和问题都说类似“我只是忘记重新启动docker守护程序,它起作用了”之类的内容,但对我没有帮助。我该怎么办?

我在github上检查了很多问题,还有#1#2#3 StackOverflow问题-没有帮助。

1 个答案:

答案 0 :(得分:3)

您需要的easy_install librosa Searching for librosa Best match: librosa 0.6.3 Removing librosa 0.6.2 from easy-install.pth file Adding librosa 0.6.3 to easy-install.pth file Using /home/marta/anaconda3/lib/python3.7/site-packages Processing dependencies for librosa Finished processing dependencies for librosa 运行时是nvidia

按照此处的安装说明进行操作:
https://github.com/NVIDIA/nvidia-container-runtime#installation

基本上,如果不存在,请先与软件包管理器一起安装:

nvidia-container-runtime

然后将其添加到docker runtimes:
https://github.com/nvidia/nvidia-container-runtime#daemon-configuration-file

此选项对我有用:

sudo apt-get install nvidia-container-runtime

检查是否已添加

$ sudo tee /etc/docker/daemon.json <<EOF
{
    "runtimes": {
        "nvidia": {
            "path": "/usr/bin/nvidia-container-runtime",
            "runtimeArgs": []
        }
    }
}
EOF
sudo pkill -SIGHUP dockerd