4

Я следовал приведенным ниже инструкциям и подробно прочитал официальное руководство, чтобы настроить Cuda в контейнере LXC.

Когда я пытаюсь выполнить пример сценария ./deviceQuery из официальных примеров кода, я получаю PASS на хосте. Однако когда я выполняю скрипт в контейнере, я получаю следующую ошибку:

$ ./deviceQuery 
./deviceQuery Starting...

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

cudaGetDeviceCount returned 38
-> no CUDA-capable device is detected
Result = FAIL

Cuda распознается и устанавливается внутри контейнера:

$ nvcc --version
nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2015 NVIDIA Corporation
Built on Tue_Aug_11_14:27:32_CDT_2015
Cuda compilation tools, release 7.5, V7.5.17

Устройства nVidia установлены внутри хоста и контейнера LXC:

$ ls -l /dev/nvidia*
crw-rw-rw- 1 root root 195,   0 Dec 20 23:31 /dev/nvidia0
crw-rw-rw- 1 root root 195, 255 Dec 20 23:31 /dev/nvidiactl
crw-rw-rw- 1 root root 246,   0 Dec 20 23:31 /dev/nvidia-uvm

Когда я запускаю sudo nvidia-smi внутри контейнера, я получаю следующую ошибку:

Failed to initialize NVML: Unknown Error

Как я могу сделать устройство доступным внутри контейнера?

Linux /index.html

1 ответ1

1

У меня была та же самая проблема, о которой я подробно писал здесь.

Возникшая у вас проблема может быть вызвана использованием шаблона LXC, который не соответствует вашему хосту. Я использую Proxmox 4.4, который основан на Debian 8.6. Мой контейнер был основан на Ubuntu 16.04. Как и вы, я видел пропущенные узлы в контейнере с root как владельцем и группой, а не nobody:nogroup, как и ожидалось.

Сообщение на форуме, на которое я наткнулся, вдохновило меня на создание нового контейнера на основе шаблона, соответствующего моему хосту, Debian 8.6. Как только я это сделал, узлы /dev никому не принадлежали nobody:nogroup и nvidia-smi правильно определили мой графический процессор.

Если ваши не совпадают, я настоятельно рекомендую вам сделать так, чтобы они совпадали - единственный известный мне способ - это восстановить его.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .