Ubuntu nutzt meine GPU nicht

Ubuntu nutzt meine GPU nicht

Leute, ich habe tagelang recherchiert, wie ich das zum Laufen bekomme. Ich habe gerade mit einer Neuinstallation begonnen, um alle Unsinnigkeiten zu beheben, die in der Zwischenzeit möglicherweise durcheinander geraten sind. Soweit ich weiß, soll DRI_PRIME=1 die DGPU zum primären machen, wenn Sie diese Codezeile verwenden, bevor Sie ein Programm ausführen.
lspci -k | grep -EA2 'VGA|3D' zeigt

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

Das System „sieht“ also meine GPU, verwendet sie aber nicht.

: $DRI_PRIME=1 glxinfo | grep "OpenGL-Renderer"

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

ich bin auf Kernel Linux 6.2.0-20-generic Ubuntu 23.04 Wayland

Leute, ich habe ein Downgrade auf LTS durchgeführt und sofort DRI_PRIME=1 ausgeführt, bevor ich irgendwelche Updates ausgeführt habe, und es erkennt die Karte ..... Ich bin mir absolut nicht sicher, warum einige Betriebssysteme dies tun und andere nicht, da ich viele Distributionen ausprobiert habe. Aber ich werde mich nicht beschweren.

Antwort1

Früher wurde die DGPU als primär festgelegt, wenn die Energieoption auf „Leistung“ eingestellt wurde, aber eines Tages funktionierten meine CUDA-Beispiele nicht mehr, weil die Demos versuchten, auf der Intel-GPU zu laufen. Ein Laptop ist normalerweise im Hybridmodus, die DGPU erledigt die harte Arbeit und übergibt die Anzeige an die Intel-GPU. Sehen Sie sich die Ausgabe von xrandr beim Ausführen von X an (die Moduseinstellung ist die von 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

oder vielleicht sieht es so aus:

$ 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

Beim ersten scheinen Quelle und Senke vertauscht zu sein und benötigen die Umgebungsvariablen __NV_PRIME_RENDER_OFFLOAD=1 __GLX_VENDOR_LIBRARY_NAME=nvidia, die vor einem Programm verwendet werden können, das Sie zur Verwendung von Nvidia zwingen möchten.

__NV_PRIME_RENDER_OFFLOAD=1 __GLX_VENDOR_LIBRARY_NAME=nvidia <prog>

verwandte Informationen