UbuntuはGPUを使用しません

UbuntuはGPUを使用しません

皆さん、私はこれをどうやって動かすか何日も研究してきました。その間に混乱したかもしれないナンセンスを修正するために、新規インストールからやり直したばかりです。今私が知っている限りでは、プログラムを実行する前にそのコード行を使用すると、DRI_PRIME=1 は DGPU をプライマリにすることが「想定」されています。lspci
-k | grep -EA2 'VGA|3D' は次のように表示します。

00:02.0 VGA compatible controller: Intel Corporation Skylake GT2 [HD Graphics 520] (rev 07)
DeviceName:  Onboard IGD
Subsystem: Dell Latitude E7470
01:00.0 VGA compatible controller: Advanced Micro Devices, Inc. [AMD/ATI] Baffin [Radeon RX 460/560D / Pro 450/455/460/555/555X/560/560X] (rev e5)
Subsystem: Dell Baffin [Radeon RX 460/560D / Pro 450/455/460/555/555X/560/560X]
Kernel driver in use: amdgpu

つまり、システムは私の GPU を「認識」しますが、使用しません。

: $DRI_PRIME=1 glxinfo | grep "OpenGL レンダラー"

OpenGL renderer string: Mesa Intel(R) HD Graphics 520 (SKL GT2)

私はカーネル Linux 6.2.0-20-generic Ubuntu 23.04 Wayland を使用しています

皆さん、私は LTS にダウングレードし、アップデートを実行する前にすぐに DRI_PRIME=1 を実行しました。するとカードが認識されました。多くのディストリビューションを試しましたが、一部の OS ではこれが実行され、他の OS では実行されない理由がまったくわかりません。しかし、文句は言いません。

答え1

以前は、電源オプションを「パフォーマンス」に設定すると、DGPU がプライマリに設定されていましたが、ある日、デモが Intel GPU で実行しようとしたため、CUDA サンプルが動作しなくなりました。ラップトップは通常ハイブリッド モードになっており、DGPU がハードワークを行い、ディスプレイは Intel GPU に引き渡されます。X を実行しているときの xrandr の出力を参照してください (モード設定は Intel です)。

 $ xrandr --listproviders
Providers: number : 2
Provider 0: id: 0x45 cap: 0x9, Source Output, Sink Offload crtcs: 4 outputs: 3 associated providers: 1 name:modesetting
Provider 1: id: 0x26e cap: 0x2, Sink Output crtcs: 4 outputs: 6 associated providers: 1 name:NVIDIA-G0

あるいは次のようになるかもしれません:

$ xrandr --listproviders
Providers: number : 2
Provider 0: id: 0x1b7 cap: 0x1, Source Output crtcs: 4 outputs: 6 associated providers: 1 name:NVIDIA-0
Provider 1: id: 0x1e7 cap: 0x6, Sink Output, Source Offload crtcs: 4 outputs: 3 associated providers: 1 name:modesetting

1 つ目は、ソースとシンクが逆になっているようで、__NV_PRIME_RENDER_OFFLOAD=1 __GLX_VENDOR_LIBRARY_NAME=nvidia 環境変数が必要になります。これは、nvidia を使用するように強制するプログラムの前で使用できます。

__NV_PRIME_RENDER_OFFLOAD=1 __GLX_VENDOR_LIBRARY_NAME=nvidia <prog>

関連情報