0

我正在尝试在 Xavier 中创建一个 docker build。当我在没有 docker 的情况下运行我的代码时,它运行顺利,并且我得到了 CUDA 编译器标识。但是当我尝试使用 dockerfile 进行构建时,它给了我一个错误,即 CUDA 编译器标识未知。

以下是我的 dockerfile 步骤:

FROM nvcr.io/nvidia/l4t-base:r32.3.1
RUN apt-get update && apt-get install -y --no-install-recommends make g++ && apt-get install -y cmake gcc libopenblas-dev build-essential
WORKDIR /home/username/docker_fc/tensorrt_l2norm_helper
CMD ["python3", "./step01_pb_to_uff.py"]
COPY . /home/username/docker_fc/
RUN cmake --version
RUN nvcc --version
RUN mkdir build && cd build && pwd && cmake .. && make

我在使用 cmake 的最后一步出错了。

我的 mvcc 版本是 release 10.0, V10.0.326。我的 cmake 版本是 3.10.2

谁能告诉我 Dockerfile 中缺少什么?

4

1 回答 1

1

l4t 的基础镜像默认不加载 nvidia 的运行时组件。他们只有存根。如果你想这样做,你需要在 /etc/docker/daemon.json 文件中启用默认运行时 nvidia。这将加载所有运行时组件,例如 nvcc。


{
 "default-runtime": "nvidia",
  "runtimes": {
     "nvidia": {
         "path": "/usr/bin/nvidia-container-runtime",
         "runtimeArgs": []
     }
 },

}

请注意,如果您这样做,您构建的 docker 的大小会更大

于 2020-05-18T01:13:51.673 回答