Ho un notebook (Xiaomi Mi Notebook Pro) con un Nvidia MX150. Quindi utilizza la tecnologia Optimus di Nvidia. Come distribuzione, utilizzo Fedora 28.
Bumblebee
Quindi ho installato Bumblebee per sfruttare questa tecnologia.
Dovrebbe essere installato correttamente poiché posso avvia glmark2 tramite optirun
o primusrun
. Inoltre, vengono eseguiti cat /proc/acpi/bbswitch
output ON
. Quindi la GPU Nvidia dovrebbe essere effettivamente in esecuzione.
Docker
Per installare docker, ho seguito le istruzioni su https://docs.docker.com/install/linux/docker-ce/fedora/#install-docker-ce
Lesecuzione di docker run hello-world
restituisce ciò che dovrebbe, quindi anche docker funziona.
nvidia -docker2
Ho installato nvidia-docker2 su Fedora con questi comandi:
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
Pacchetti nvidia installati
Per verificare quali pacchetti nvidia sono installati, eseguo questo comando:
rpm -qa "*nvidia*"
- Output: 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
- libnvid ia-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
Docker di prova è in esecuzione con GPU Nvidia
Sfortunatamente, docker non funziona attualmente con la GPU Nvidia:
optirun docker run --runtime=nvidia --rm nvidia/cuda nvidia-smi
Ottengo questo errore:
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.
Cosa mi manca?
Per ora, non ho idea di dove sia lerrore. Immagino che potrebbe essere un problema con la versione CUDA
.
Risposta
Lunica “correzione” che ho trovato (più di una soluzione) è assicurarmi che la scheda nvidia venga prima caricata / selezionata tramite prime-select:
sudo prime-select nvidia
Sembra che stia sconfiggendo lo scopo di usare Bumblebee