Ошибка в Cmake "Идентификация компилятора CUDA неизвестна" при создании сборки докера

Я пытаюсь создать сборку докеров в Xavier. Когда я запускаю свой код без докера, он работает плавно, и я получил идентификацию компилятора 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 - выпуск 10.0, V10.0.326. моя версия cmake - 3.10.2

Может кто-нибудь сказать мне, чего не хватает в Dockerfile?

1 ответ

Решение

Базовый образ l4t по умолчанию не загружает компоненты времени выполнения nvidia. У них есть только заглушки. Если вы хотите сделать это, вам нужно будет включить среду выполнения nvidia по умолчанию в файле /etc/docker/daemon.json. Это загрузит все компоненты среды выполнения, такие как nvcc.


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

}

Просто обратите внимание, что если вы сделаете это, размер вашего встроенного докера будет больше.

Другие вопросы по тегам