Docker mit Bumblebee auf Fedora

Docker mit Bumblebee auf Fedora

Ich habe ein Notebook (Xiaomi Mi Notebook Pro) mit einer Nvidia MX150. Es nutzt also die Optimus-Technologie von Nvidia. Als Distribution verwende ich Fedora 28.

Hummel

Deshalb habe ich Bumblebee installiert, um die Vorteile dieser Technologie zu nutzen.

Es sollte korrekt installiert sein, da ich glmark2 über optirunoder starten kann primusrun. running gibt auch cat /proc/acpi/bbswitchaus ON. Die Nvidia-GPU sollte also tatsächlich laufen.

Docker

Um Docker zu installieren, folgte ich den Anweisungen aufhttps://docs.docker.com/install/linux/docker-ce/fedora/#install-docker-ce

Beim Ausführen docker run hello-worldwird das ausgegeben, was es soll, also funktioniert Docker auch.

nvidia-docker2

Ich habe nvidia-docker2 mit diesen Befehlen auf Fedora installiert:

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

Installierte NVIDIA-Pakete

Um zu überprüfen, welche NVIDIA-Pakete installiert sind, führe ich diesen Befehl aus:

rpm -qa '*nvidia*'

  • Ausgabe: akmod-nvidia-396.51-1.fc28.x86_64
  • nvidia-container-runtime-2.0.0-1.docker18.06.1.x86_64
  • nvidia-driver-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-driver-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-container-tools-1.0.0-0.1.rc.2.x86_64

Test-Docker läuft mit Nvidia-GPU

Leider läuft Docker derzeit nicht mit der Nvidia-GPU:

optirun docker run --runtime=nvidia --rm nvidia/cuda nvidia-smi

Ich erhalte diesen Fehler:

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.

Was vermisse ich?

Ich weiß momentan nicht, wo der Fehler liegt. Ich vermute, es könnte ein Versionsproblem sein CUDA.

Antwort1

Die einzige „Lösung“, die ich gefunden habe (eher ein Workaround), besteht darin, sicherzustellen, dass die NVIDIA-Karte zuerst über Prime-Select geladen/ausgewählt wird:

sudo prime-select nvidia

Es fühlt sich an, als würde es den Zweck der Verwendung von Bumblebee zunichte machen

verwandte Informationen