У меня есть ноутбук (Xiaomi Mi Notebook Pro) с Nvidia MX150. Так что он использует технологию Nvidia Optimus. В качестве дистрибутива я использую Fedora 28.
Шмель
Поэтому я установил Bumblebee, чтобы воспользоваться этой технологией.
Он должен быть установлен правильно, так как я могу запустить glmark2 через optirunили primusrun. Также запущены cat /proc/acpi/bbswitchoutputs ON. Так что графический процессор Nvidia действительно должен работать.
Докер
Для установки Docker я следовал инструкциям наhttps://docs.docker.com/install/linux/docker-ce/fedora/#install-docker-ce
Запуск docker run hello-worldвыводит то, что и должен, так что docker тоже работает.
nvidia-docker2
Я установил nvidia-docker2 на Fedora с помощью следующих команд:
curl -s -L https://nvidia.github.io/nvidia-docker/centos7/nvidia-docker.repo | \
sudo tee /etc/yum.repos.d/nvidia-docker.repo
sudo dnf install nvidia-docker2
sudo pkill -SIGHUP dockerd
Установленные пакеты nvidia
Чтобы проверить, какие пакеты nvidia установлены, я запускаю эту команду:
rpm -qa '*nvidia*'
- Вывод:akmod-nvidia-396.51-1.fc28.x86_64
- nvidia-контейнер-время выполнения-2.0.0-1.docker18.06.1.x86_64
- nvidia-драйвер-396.51-1.fc28.x86_64
- kmod-nvidia-4.17.9-200.fc28.x86_64-396.45-1.fc28.x86_64
- kmod-nvidia-4.17.14-202.fc28.x86_64-396.51-1.fc28.x86_64
- nvidia-docker2-2.0.3-1.docker18.06.1.ce.noarch
- nvidia-драйвер-libs-396.51-1.fc28.x86_64
- nvidia-container-runtime-hook-1.4.0-1.x86_64
- libnvidia-container1-1.0.0-0.1.rc.2.x86_64
- kmod-nvidia-4.17.12-200.fc28.x86_64-396.45-1.fc28.x86_64
- libnvidia-контейнер-инструменты-1.0.0-0.1.rc.2.x86_64
Тестовый докер работает с графическим процессором Nvidia
К сожалению, в настоящее время docker не работает с графическим процессором Nvidia:
optirun docker run --runtime=nvidia --rm nvidia/cuda nvidia-smi
Я получаю эту ошибку:
docker: Error response from daemon: OCI runtime create failed: container_linux.go:348: starting container process caused "process_linux.go:402: container init caused \"process_linux.go:385: running prestart hook 1 caused \\\"error running hook: exit status 1, stdout: , stderr: exec command: [/usr/bin/nvidia-container-cli --load-kmods configure --ldconfig=@/sbin/ldconfig --device=all --compute --utility --require=cuda>=9.0 --pid=26115 /var/lib/docker/overlay2/c00aa7855e42deee545cb07531a571538e0d051d38f45e36584a1c850dd47680/merged]\\\\nnvidia-container-cli: initialization error: driver error: failed to process request\\\\n\\\"\"": unknown.
Что я упускаю?
Пока я не знаю, где ошибка. Думаю, проблема в версии CUDA.
решение1
Единственное «исправление», которое я нашел (скорее обходной путь), — убедиться, что карта nvidia первой загружена/выбрана через prime-select:
sudo prime-select nvidia
Такое ощущение, что это сводит на нет смысл использования шмеля.


