nvidia-smi не работает после установки драйвера в контейнере - PullRequest
0 голосов
/ 03 июля 2019

Я использую Singularity и мне нужно установить драйвер nvidia в мой контейнер Singularity, чтобы провести глубокое изучение с помощью gtx 1080. Это изображение необычности создано из докера nvidia отсюда: https://ngc.nvidia.com/catalog/containers/nvidia:kaldi и преобразуется в контейнер для сингулярности. Я думаю, что драйверов nvidia не было, потому что nvidia-smi не был найден до установки драйвера.

Я выполнил следующие команды:

    add-apt-repository ppa:graphics-drivers/ppa
    sudo apt update
    apt install nvidia-418

После этого я хотел посмотреть, правильно ли установлен драйвер, и выполнил команду:

nvidia-smi

который возвращает: не удалось инициализировать NVML: несоответствие версии драйвера / библиотеки

Я искал, как решить эту ошибку и нашел эту тему: NVIDIA NVML Несоответствие версии драйвера / библиотеки

Один ответ говорит, чтобы выполнить команду:

lsmod | grep nvidia

и затем к rmmod на каждом кроме nvidia и наконец к rmmod nvidia.

rmmod drm

Но когда я делаю это, поскольку тема исключает это, у меня появляется ошибка: rmmod: ОШИБКА: модуль nvidia используется.

В теме говорится, что нужно нажать lsof / dev / nvidia * и убить процесс, использующий модуль, но я ничего не вижу при написании drm, и кажется, что убивать процесс - очень плохая идея (Xorg, gnome -Он).

Вот ответ на команду lsof / dev / nvidia *, за которой следует команда lsmod | grep nvidia, а затем rmmod drm enter image description here Перезагрузка компьютера также не работала.

что мне делать, чтобы управлять с помощью nvidia-smi и иметь возможность использовать мой графический процессор из контейнера singularity?

Спасибо

Ответы [ 2 ]

1 голос
/ 05 июля 2019

спасибо за ваш ответ.Я хотел установить драйвер графического процессора в контейнере с особенностями, потому что, находясь внутри контейнера, я не мог использовать графический процессор (nvidia-smi: команда не найдена), в то время как вне контейнера я мог использовать nvidia-smi.

Вы правы, драйвер должен быть установлен вне контейнера, я хотел установить его в контейнере, чтобы избежать проблемы отсутствия доступа к драйверу изнутри контейнера.

Теперь я нашел решение: чтобы использовать GPU из контейнера для сингулярности, вы должны добавить --nv при вызове контейнера.пример:

singularity exec --nv singularity_container.simg ~/test_gpu.sh 

или

singularity shell --nv singularity_container.simg

Когда вы добавите --nv, у контейнера будет доступ к драйверу nvidia, и nvidia-smi будет работать.Без этого вы не сможете использовать GPU, nvidia-smi пока не работает.

1 голос
/ 04 июля 2019

Возможно, вам придется выполнить описанные выше шаги в операционной системе хоста, а не в самом контейнере. /dev монтируется в контейнер как есть и все еще подлежит использованию хостом, хотя процессы выполняются в другом пользовательском пространстве.

...