我想构建一个 docker 映像,在其中使用 pytorch 编译自定义内核。因此,我需要访问可用的 GPU,以便在 docker 构建过程中编译自定义内核。在主机上,一切都已设置,包括nvidia-container-runtime
、nvidia-docker
、Nvidia-Drivers、Cuda 等。以下命令显示主机系统上的 docker 运行时信息:
$ docker info|grep -i runtime
Runtimes: nvidia runc
Default Runtime: runc
Run Code Online (Sandbox Code Playgroud)
正如你所看到的,在我的例子中,docker 的默认运行时是runc
. 我认为将默认运行时从 更改为runc
可以nvidia
解决此问题,如此处所述。
建议的解决方案不适用于我的情况,因为:
daemon.json
文件有没有办法在 Dockerfile 的构建过程中访问 GPU,以便为 CPU 和 GPU 编译自定义 pytorch 内核(在我的例子中是 DCNv2)?
这是我的 Dockerfile 的最小示例,用于重现此问题。在此图中,DCNv2 仅针对 CPU 进行编译,而不针对 GPU 进行编译。
FROM nvidia/cuda:10.1-cudnn7-devel-ubuntu18.04
RUN apt-get update && \
DEBIAN_FRONTEND=noninteractive apt-get install -y tzdata && \
apt-get install -y --no-install-recommends …
Run Code Online (Sandbox Code Playgroud)