Ich benutze
Kubuntu 19.10
Intel(R) Core(TM) i7-7820HQ CPU @ 2.90GHz
NVIDIA UNIX x86_64 Kernel Module 435.21
und da Kubuntu Bumblebee fallen gelassen hat, suchte ich nach einer anderen Möglichkeit, Nvidia-Treiber pro Anwendung zu verwenden. So kam ich zum Problem "PRIME Render Offload", aber ich verstehe nicht wirklich, wie es funktioniert, obwohl ich durchgelesen habeREADME und Installationshandbuch für den NVIDIA Accelerated Linux Graphics-Treiber.
Wenn ich wähle, prime-select intel
kann ich ausschließlich mit meiner Intel On-Chip-Grafik arbeiten, während prime-select nvidia
ich mit ausschließlich Nvidia GPU verwenden kann, wobei ich bei Auswahl jeweils neu starten muss. Wenn ich wähle prime-select on-demand
, kann ich aufrufen nvidia-smi
und es wird angezeigt als ...
Wed Nov 13 15:35:06 2019
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 435.21 Driver Version: 435.21 CUDA Version: 10.1 |
|-------------------------------+----------------------+----------------------+
| GPU Name Persistence-M| Bus-Id Disp.A | Volatile Uncorr. ECC |
| Fan Temp Perf Pwr:Usage/Cap| Memory-Usage | GPU-Util Compute M. |
|===============================+======================+======================|
| 0 GeForce 940MX Off | 00000000:02:00.0 Off | N/A |
| N/A 36C P8 N/A / N/A | 0MiB / 2004MiB | 0% Default |
+-------------------------------+----------------------+----------------------+
+-----------------------------------------------------------------------------+
| Processes: GPU Memory |
| GPU PID Type Process name Usage |
|=============================================================================|
| No running processes found |
+-----------------------------------------------------------------------------+
aber ich kann nicht überprüfen, ob ich die Nvidia-GPU wirklich „verwenden“ kann, z. B. beim Anrufen glxinfo
oder glxgears
ich habe die Information erhalten, dass die Nvidia-GPU nicht verwendet wird. Ich habe auch versucht, was in der NVIDIA-Readme oben steht, z. B. __NV_PRIME_RENDER_OFFLOAD=1 glxgears
, aber ich kann nicht beweisen, dass die Nvidia-GPU verwendet wird. Ich befürchte, dass die prime-select on-demand
Option nicht wirklich funktioniert oder - was definitiv eine Option ist - ich verstehe nicht wirklich, wie sie funktioniert.
Könnte mir also bitte jemand so freundlich sein, mir hier zu helfen und das Mysterium zu entschlüsseln?
Antwort1
Dies ist eine verwirrende neue „Option“, die nicht beschrieben wird und für die meisten Benutzer im Allgemeinen nutzlos ist. Der Fehlerbericht, der zur Hinzufügung dieser Option führte, lautete:
„Wenn wir laut aktuellem NV- und Intel-GPU-Treiber nur nvidia.ko laden, können wir die Anzeige auf der Intel-GPU durchführen und den NV dem Deep Learning für eine Grafik-Workstation überlassen.“
Hier melden -https://bugs.launchpad.net/ubuntu/+source/nvidia-prime/+bug/1824282
Fehlerbericht darüber, wie schlecht dies hier umgesetzt wurde -
https://bugs.launchpad.net/ubuntu/+source/nvidia-settings/+bug/1851416
Antwort2
In Ubuntu 19.10 benötigt xorg einige Patches, die nur für 18.04 und 19.04 verfügbar sindHier Alle Informationen können Sie hier nachlesenHier
Zuerst müssen Sie Intel-Treiber entfernen, um softwarebasiertes Rendering (Modeseting, auch bekannt als llvmpipe-Renderer) zu verwenden. Installieren Sie die neuesten Treiber von diesemppaund schließlich gepatchtes Xorg kompilieren/installieren.
Die einfachste Lösung besteht heute darin, auf Ubuntu 20.04 zu aktualisieren und NVIDIA-Treiber zu installieren.
sudo ubuntu-drivers install
Ich konfiguriere die iGPU- und dGPU-Geräte explizit in xorg.conf.d (BusID kann in anderen Systemen anders sein):
$ sudo cat /etc/X11/xorg.conf.d/20-intel.conf
Section "Device"
Identifier "Intel Graphics"
Driver "intel"
Option "AccelMethod" "sna"
EndSection
$ sudo cat /etc/X11/xorg.conf.d/90-nvidia.conf
Section "ServerLayout"
Identifier "layout"
Screen 0 "iGPU"
Option "AllowNVIDIAGPUScreens"
EndSection
Section "Device"
Identifier "iGPU"
Driver "modesetting"
BusID "PCI:0:2:0"
EndSection
Section "Screen"
Identifier "iGPU"
Device "iGPU"
EndSection
Section "Device"
Identifier "dGPU"
Driver "nvidia"
BusID "PCI:3:0:0"
EndSection
... neu starten und Prime zum Laufen bringen:
$ offload-glx glxinfo | grep "OpenGL renderer"
OpenGL renderer string: GeForce 940M/PCIe/SSE2
$ glxinfo | grep "OpenGL renderer"
OpenGL renderer string: Mesa Intel(R) HD Graphics 5500 (BDW GT2)
offload_glx kommt von mate-prime-select und ist ein Alias davon: __NV_PRIME_RENDER_OFFLOAD=1 __GLX_VENDOR_LIBRARY_NAME=nvidia glxgears
Installieren Sie also NVIDIA-Treiber und konfigurieren Sie Xorg.