Docker con Bumblebee en Fedora

Docker con Bumblebee en Fedora

Tengo una computadora portátil (Xiaomi Mi Notebook Pro) con una Nvidia MX150. Por eso se utiliza la tecnología Optimus de Nvidia. Como distribución utilizo Fedora 28.

Abejorro

Por eso instalé Bumblebee para aprovechar esta tecnología.

Debería instalarse correctamente ya que puedo iniciar glmark2 mediante optiruno primusrun. También ejecutando cat /proc/acpi/bbswitchsalidas ON. Entonces, la GPU Nvidia debería estar ejecutándose.

Estibador

Para instalar Docker, seguí las instrucciones enhttps://docs.docker.com/install/linux/docker-ce/fedora/#install-docker-ce

La ejecución docker run hello-worldgenera lo que debería, por lo que Docker también funciona.

nvidia-docker2

Instalé nvidia-docker2 en Fedora con estos comandos:

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

Paquetes nvidia instalados

Para comprobar qué paquetes de nvidia están instalados, ejecuto este comando:

rpm -qa '*nvidia*'

  • Salida:akmod-nvidia-396.51-1.fc28.x86_64
  • nvidia-container-runtime-2.0.0-1.docker18.06.1.x86_64
  • controlador-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-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

La ventana acoplable de prueba se está ejecutando con la GPU Nvidia

Desafortunadamente, Docker actualmente no se ejecuta con la GPU Nvidia:

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

Recibo este error:

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.

¿Qué me estoy perdiendo?

Por ahora no tengo ni idea de dónde está el error. Supongo que podría ser un problema con la CUDAversión.

Respuesta1

La única "solución" que he encontrado (más bien una solución alternativa) es garantizar que la tarjeta nvidia se cargue/seleccione primero mediante prime-select:

sudo prime-select nvidia

Se siente como si estuviera frustrando el propósito de usar Bumblebee.

información relacionada