Fedora 上的 Docker 與 Bumblebee

Fedora 上的 Docker 與 Bumblebee

我有一台配備 Nvidia MX150 的筆記型電腦(小米筆記型電腦 Pro)。因此它利用了 Nvidia 的 Optimus 技術。作為發行版,我使用 Fedora 28。

熊蜂

因此我安裝了 Bumblebee 來利用這項技術。

它應該正確安裝,因為我可以通過optirun或啟動 glmark2 primusrun。還運行cat /proc/acpi/bbswitch輸出ON。所以 Nvidia GPU 確實應該正在運行。

碼頭工人

要安裝 docker,我按照以下說明進行操作https://docs.docker.com/install/linux/docker-ce/fedora/#install-docker-ce

運行docker run hello-world會輸出它應該輸出的內容,因此 docker 也可以工作。

Nvidia-docker2

我使用以下命令在 Fedora 上安裝了 nvidia-docker2:

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-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

測試 docker 正在使用 Nvidia GPU 運行

不幸的是,docker 目前無法與 Nvidia GPU 一起運行:

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

我發現的唯一“修復”(更多的是解決方法)是確保首先通過 prime-select 加載/選擇 nvidia 卡:

sudo prime-select nvidia

感覺這違背了使用大黃蜂的目的

相關內容