nvidia-docker - может ли cuda_runtime быть доступным при сборке контейнера?
При попытке скомпилировать darknet в команде сборки контейнера-докера я постоянно сталкиваюсь с исключением include/darknet.h:11:30: fatal error: cuda_runtime.h: No such file or directory
,
Я строю контейнер из инструкции здесь: https://github.com/NVIDIA/nvidia-docker/wiki/Deploy-on-Amazon-EC2. У меня простой Dockerfile
Я тестирую с - соответствующие части:
FROM nvidia/cuda:9.2-runtime-ubuntu16.04
...
WORKDIR /
RUN apt-get install -y git
RUN git clone https://github.com/pjreddie/darknet.git
WORKDIR /darknet
# Set OpenCV makefile flag
RUN sed -i '/OPENCV=0/c\OPENCV=1' Makefile
RUN sed -i '/GPU=0/c\GPU=1' Makefile
#RUN ln -s /usr/local/cuda-9.2 /usr/local/cuda
# HERE I have been playing with commands to show me the state of the docker image to try to troubleshoot the problem
RUN find / -name "cuda_runtime.h"
RUN ls /usr/local/cuda/lib64/
RUN less /usr/local/cuda/README
RUN make
Большую часть документации я вижу в ссылках, использующих библиотеки nvidia при запуске контейнера, но darknet компилируется по-разному при сборке с gpu
поддержка, так что мне нужно cuda_runtime.h
доступны во время сборки.
Возможно, я неправильно понимаю, что nvidia-docker
делает - я предполагаю, что nvidia-docker
существует, потому что код Nvidia должен быть установлен на фактическом хост-компьютере, а не внутри контейнера, и они используют некоторый механизм для обмена "родным" кодом с контейнерами, чтобы можно было управлять GPU - это правильно?
Должен ли я даже пытаться построить darknet
при сборке моего контейнера или я должен установить его на хост-машине, а затем сделать его доступным для контейнера? Кажется, это идет вразрез с переносимостью контейнеров, но я могу жить с некоторыми ограничениями, чтобы получить доступ к графическому процессору.
1 ответ
ОТ nvidia/cuda:9.2-runtime-ubuntu16.04
Ваше изображение содержит только кусочки CUDA-9.2, необходимые для запуска приложения CUDA, но не имеет битов, необходимых для его создания.
Вам нужно использовать вариант -devel.