我正在运行虚拟机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 https://stackoverflow.com/questions/57957491/nvidia-docker-unknown-runtime-specified-nvidia, #2 https://stackoverflow.com/questions/52865988/nvidia-docker-unknown-runtime-specified-nvidia and #3 https://stackoverflow.com/questions/50364031/cant-execute-nvidia-runtime-on-dockerStackOverflow 问题 - 没有帮助。