最新の Kubuntu 19.10 で「prime-select on-demand」を使用する方法

最新の Kubuntu 19.10 で「prime-select on-demand」を使用する方法

私は使用しています

Kubuntu 19.10
Intel(R) Core(TM) i7-7820HQ CPU @ 2.90GHz
NVIDIA UNIX x86_64 Kernel Module  435.21

KubuntuがBumblebeeを廃止したので、アプリケーションごとにNVIDIAドライバーを使用する別の可能性を探していました。そこで、「PRIME Render Offload」の問題にたどり着きましたが、読んでみたものの、それがどのように機能するのかよくわかりません。NVIDIA Accelerated Linux グラフィックス ドライバーの README とインストール ガイド

を選択すると、prime-select intelIntel オンチップ グラフィックスのみを使用して作業できますが、 を使用すると、prime-select nvidiaNVIDIA GPU のみを使用できますが、それぞれを選択するときに再起動する必要があります。 を選択するとprime-select on-demand、 を呼び出すことができnvidia-smi、次のように表示されます...

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

glxinfoしかし、たとえば、呼び出し時や、glxgearsnvidia GPU を使用しないという情報を得たときに、実際に nvidia GPU を「使用」できるかどうかは確認できません。また、上記の NVIDIA Readme に記載されていることも試しましたが、nvidia GPU が使用されていることを証明できません。オプションが実際には機能していないか、または (確かにオプションではありますが)、どのように機能するかを本当に理解していないのではないか__NV_PRIME_RENDER_OFFLOAD=1 glxgearsと心配しています。prime-select on-demand

そこで、どなたか親切な方で、ここで私を助けて、この謎を解明していただけないでしょうか?

答え1

これは、説明されておらず、ほとんどのユーザーにとって役に立たない、紛らわしい新しい「オプション」です。これを追加するきっかけとなったバグレポートには、次のように書かれています。

「現在の NV および Intel GPU ドライバーでは、nvidia.ko のみをロードすると、Intel GPU で表示を行い、NV はグラフィック ワークステーションのディープラーニングに任せることができます。」

ここに報告 -https://bugs.launchpad.net/ubuntu/+source/nvidia-prime/+bug/1824282

ここでこれがいかに不適切に実装されているかについてのバグ報告 -

https://bugs.launchpad.net/ubuntu/+source/nvidia-settings/+bug/1851416

答え2

Ubuntu 19.10では、xorgには18.04と19.04でのみ利用可能なパッチがいくつか必要です。ここ すべての情報を読むことができますここ

まず、ソフトウェアベースのレンダリング(モード設定、別名llvmpipeレンダラー)を使用するために、Intelドライバーを削除する必要があります。ここから最新のドライバーをインストールしてください。ppa最後に、パッチを適用した xorg をコンパイル/インストールします。

今日の最も簡単な解決策は、Ubuntu 20.04にアップグレードしてNVIDIAドライバーをインストールすることです。

sudo ubuntu-drivers install

xorg.conf.d で iGPU および dGPU デバイスを明示的に構成します (BusID は他のシステムでは異なる場合があります)。

$ 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

... 再起動して Prime を動作させます:

$ 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 は mate-prime-select から来ており、次のエイリアスです: __NV_PRIME_RENDER_OFFLOAD=1 __GLX_VENDOR_LIBRARY_NAME=nvidia glxgears

したがって、nvidia ドライバーをインストールし、xorg を構成します。

関連情報