将 nvidia 运行时添加到 docker 个运行时
Add nvidia runtime to docker runtimes
我正在 运行使用特斯拉 GPU 在 GCP
上安装虚拟机。
并尝试部署一个基于 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?
到目前为止,我发现的大多数帖子和问题都是类似 "I just forgot to restart my docker daemon, it worked" 的内容,但这对我没有帮助。我应该做什么?
我在 github 和 , #2 and Whosebug 问题上检查了很多问题 - 没有帮助。
您需要的 nvidia
运行时是 nvidia-container-runtime
。
按照此处的安装说明进行操作:
https://github.com/NVIDIA/nvidia-container-runtime#installation
基本上,您首先使用包管理器安装它,如果它不存在:
sudo apt-get install nvidia-container-runtime
然后将其添加到 docker 运行时:
https://github.com/nvidia/nvidia-container-runtime#daemon-configuration-file
这个选项对我有用:
$ sudo tee /etc/docker/daemon.json <<EOF
{
"runtimes": {
"nvidia": {
"path": "/usr/bin/nvidia-container-runtime",
"runtimeArgs": []
}
}
}
EOF
sudo pkill -SIGHUP dockerd
检查是否已添加:
$ docker info|grep -i runtime
Runtimes: nvidia runc
Default Runtime: runc
我正在 运行使用特斯拉 GPU 在 GCP
上安装虚拟机。
并尝试部署一个基于 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?
到目前为止,我发现的大多数帖子和问题都是类似 "I just forgot to restart my docker daemon, it worked" 的内容,但这对我没有帮助。我应该做什么?
我在 github 和
您需要的 nvidia
运行时是 nvidia-container-runtime
。
按照此处的安装说明进行操作:
https://github.com/NVIDIA/nvidia-container-runtime#installation
基本上,您首先使用包管理器安装它,如果它不存在:
sudo apt-get install nvidia-container-runtime
然后将其添加到 docker 运行时:
https://github.com/nvidia/nvidia-container-runtime#daemon-configuration-file
这个选项对我有用:
$ sudo tee /etc/docker/daemon.json <<EOF
{
"runtimes": {
"nvidia": {
"path": "/usr/bin/nvidia-container-runtime",
"runtimeArgs": []
}
}
}
EOF
sudo pkill -SIGHUP dockerd
检查是否已添加:
$ docker info|grep -i runtime
Runtimes: nvidia runc
Default Runtime: runc