Nvidia Jetson Nano с docker - PullRequest
       85

Nvidia Jetson Nano с docker

0 голосов
/ 13 января 2020

Я запускаю пользовательский образ Yocto на Nvidia Jetson Nano с включенным docker -ce (v19.03.2). Я могу без проблем запустить docker.

Проблема возникает, когда я хочу использовать docker для проверки зрения. Мне нужен доступ к CUDA на стороне хоста и tenorRT. Доступ к нему осуществляется через среду выполнения контейнера Nvidia поверх docker -ce. Я установил Nvidia Container Runtime (v0.9.0 beta) вручную (извлек необходимые пакеты .deb и скопировал их в rootfs), чтобы протестировать мою сборку, и, похоже, она работает нормально.

Когда я запускаю docker info, я вижу, что доступна среда выполнения nvidia, и он не жалуется, когда я запускаю docker с docker run -it --runtime=nvidia image.

Если я запускаю deviceQuery test OUTSIDE docker, я получаю следующее:

$ /usr/bin/cuda-samples/deviceQuery
...
CUDA Driver Version / Runtime Version          10.0 / 10.0
CUDA Capability Major/Minor version number:    5.3
...
deviceQuery, CUDA Driver = CUDART, CUDA Driver Version = 10.0, CUDA Runtime Version = 10.0, NumDevs = 1
Result = PASS

Однако, когда я хочу запустить deviceQuery IN a docker для проверки доступности CUDA не удается:

./deviceQuery Starting...

 CUDA Device Query (Runtime API) version (CUDART static linking)

cudaGetDeviceCount returned 35
-> CUDA driver version is insufficient for CUDA runtime version
Result = FAIL

Где Dockerfile выглядит следующим образом:

FROM nvcr.io/nvidia/l4t-base:r32.2

COPY ./deviceQuery /tmp/deviceQuery

WORKDIR /tmp/

CMD ["./deviceQuery"]

Итак, мои вопросы таковы:

Почему тест deviceQuery не выполняется внутри docker, даже если у меня установлена ​​среда выполнения Nvidia с docker? - и как я могу исправить эту проблему?

------------ РЕДАКТИРОВАТЬ: ----------

Подробнее об этом на эта тема от nvidia devtalk.

1 Ответ

0 голосов
/ 23 января 2020

.csv, включенный в rootfs из NVIDIA SDK-manager, содержит спецификацию c lib / dir / sym, необходимую для передачи доступа графического процессора к контейнеру. Файлы, перечисленные в файлах .csv, объединяются в контейнер и обеспечивают доступ к этим файлам. Какие именно c файлы нужны, зависит от того, что нужно в контейнере.

Конечно, очень важно, чтобы фактические пути к файлам, перечисленным в файлах csv, были одинаковыми на хосте, иначе объединение не удастся. Эти пути не являются правильными путями в настройке Yocto по умолчанию, так как они сделаны для стандартной настройки rootfs образа NVIDIA SDK-manager и поэтому должны быть исправлены.

После исправления доступ к ускорению GPU в контейнере должно быть возможно и может быть подтверждено выполнением теста deviceQuery.

...