So verwenden Sie „Prime-Select On-Demand“ im neuesten Kubuntu 19.10

So verwenden Sie „Prime-Select On-Demand“ im neuesten Kubuntu 19.10

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 intelkann ich ausschließlich mit meiner Intel On-Chip-Grafik arbeiten, während prime-select nvidiaich 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-smiund 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 glxinfooder glxgearsich 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-demandOption 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.

verwandte Informationen