PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : GPU switching/hybrid graphics


raffa
2023-04-03, 21:12:34
Ich hab mir ja jetzt ein b550 board + 5600g geholt,
und ich dacht ich schau mal wie das mit dem gpu switching so läuft. tja und siehe da, es läuft einfach.

Monitor ans Board stöpseln, Wayland benutzt die IGP, Vulkan Apps laufen auf der RX 6600, fertig

vgl hier:
https://www.reddit.com/r/linux_gaming/comments/zm8ugi/hybrid_amd_graphics_questions/

Naja fast fertig, ich hab bisher keinen Weg gefunden, die diskrete Graka komplett abzuschalten, wenn ich sie nicht brauche. Die schläft halt mit ihren paar Watt vor sich hin.

Jemand ne Ahnung ob das irgendwie geht?

Shink
2023-04-03, 21:50:28
Krass - ich wusste gar nicht, dass das geht bei nem Desktop.

BlacKi
2023-04-03, 22:04:19
Jemand ne Ahnung ob das irgendwie geht?physischen switch zwischen die powerkabel machen.



dann ist die dgpu off. ich hab das aber im ausgeschaltenen zustand geswitched. ausschalten geht bestimmt auch im eingeschaltenen zustand, aber fürs einschalten muss man wohl den rechner neu starten, damit die gpu neu erkannt wird.


ich denke auch nicht das pcie wirklich hotswapping erlaubt, bzw. funktioniert.

raffa
2023-04-03, 22:26:59
Krass - ich wusste gar nicht, dass das geht bei nem Desktop.
bin auch etwas schockiert


hmm, schade, ich dachte es gibt vielleicht einen
echo 0 > /sys/.... befehl der geht

du bist schuld, das ich jetzt mal testweise den stecker zieh!

edit: so richtig gern hat es das System nicht wenn man das tut :D
...
crasht zwar nicht gleich, aber wieder anstecken und ne anwendung auf die GPU legen (lassen), da wars dann vorbei

Berniyh
2023-04-03, 23:28:17
ich denke auch nicht das pcie wirklich hotswapping erlaubt, bzw. funktioniert.
Klar gibt es das. Muss sogar, denn Thunderbolt nutzt PCIe intern.
Genauso wie die meisten M.2 devices und ja, auch die kann man hotswappen.
Nicht auf den typischen Desktop Mainboards (da sind die M.2 Slots ja meist maximal unzugänglich), aber prinzipiell geht das.
menuconfig HOTPLUG_PCI
»···bool "Support for PCI Hotplug"
»···depends on PCI && SYSFS
»···default y if USB4
»···help
»··· Say Y here if you have a motherboard with a PCI Hotplug controller.
»··· This allows you to add and remove PCI cards while the machine is
»··· powered up and running.

»··· Thunderbolt/USB4 PCIe tunneling depends on native PCIe hotplug.

»··· When in doubt, say N.

Wenn es nicht geht, dann dürfte es eher am amdgpu Treiber liegen. Solche Situationen sind einfach nicht vorgesehen.

hmm, schade, ich dachte es gibt vielleicht einen
echo 0 > /sys/.... befehl der geht
Ich denke die Karte ist schon im schläfrigsten Zustand, den es ohne komplett "off" gibt.
Es muss am Ende halt auch was an bleiben, damit sie wieder aufgeweckt werden kann.
Bedenke auch, dass Desktop GPUs einfach nicht für so eine Situation gedacht sind. Bei Notebooks verwendet man ja andere Platinendesigns, so dass der Unterschied bei nicht benötigter dGPU vermutlich noch geringer sein sollte.

Letztendlich ist die RX6600 (hab ja selbst eine) aber so sparsam, dass es eigentlich kaum Sinn macht die neben einem G Modell einzusetzen.
Ist in den meisten Tests die sparsamste Desktop Karte, die aktuell verfügbar ist.
Wäre mal interessant die gesamte Leistungsaufnahme des Systems zu messen, also nur APU, dann APU+RX6600 und dann ein normaler 6-Kerner (oder 8-Kerner) + RX6600.
Denke der Unterschied wird nicht sooo groß sein und zumindest 3-5W davon gehen auch noch auf das Chiplet Design der CPU.

Edit: was es gibt ist das hier:
GFXOFF
======

GFXOFF is a feature found in most recent GPUs that saves power at runtime. The
card's RLC (RunList Controller) firmware powers off the gfx engine
dynamically when there is no workload on gfx or compute pipes. GFXOFF is on by
default on supported GPUs.

Userspace can interact with GFXOFF through a debugfs interface (all values in
`uint32_t`, unless otherwise noted):

``amdgpu_gfxoff``
-----------------

Use it to enable/disable GFXOFF, and to check if it's current enabled/disabled::

$ xxd -l1 -p /sys/kernel/debug/dri/0/amdgpu_gfxoff
01

- Write 0 to disable it, and 1 to enable it.
- Read 0 means it's disabled, 1 it's enabled.

If it's enabled, that means that the GPU is free to enter into GFXOFF mode as
needed. Disabled means that it will never enter GFXOFF mode.
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/Documentation/gpu/amdgpu/thermal.rst#n67

Das sollte aber standardmäßig aktiviert sein, d.h. du bist wahrscheinlich schon am Minimum das man erreichen kann.
Edit2: wenn du die Werte auslesen wolltest, dann müsstest du vermutlich /sys/kernel/debug/dri/1/amdgpu_gfxoff abfragen, nicht 0.

raffa
2023-04-04, 00:14:47
Tja, das mit dem Sinn, ich bastel halt gern :)

Den G hab ich aus mehreren Gründen genommen, Cezanne ist sparsam, der Rechner läuft wenns sein muss auch ohne GPU, und ich kann mir diese Dinge ansehen.

GFXOFF funktioniert (funktionierte schon vorher), grad mit vkcube ausprobiert. thx!

Es bleiben ~7W ab Netzteil zum Erhalt der RX 6600 (und das Netzeil is nicht das neueste), das ist schon ok. Und ja, die Rx 6600 ist wirklich ein sehr sparsames Kärtchen.

Rooter
2023-04-04, 19:42:59
Hmm, klappt bei mir nicht, auch nicht als Root:

rooter@Ryzen:~$ xxd -l1 -p /sys/kernel/debug/dri/0/amdgpu_gfxoff
xxd: /sys/kernel/debug/dri/0/amdgpu_gfxoff: Permission denied
rooter@Ryzen:~$ sudo xxd -l1 -p /sys/kernel/debug/dri/0/amdgpu_gfxoff
[sudo] Passwort für rooter:
xxd: Invalid argument
:confused:
Den Eintrag amdgpu_gfxoff gibt es an der Stelle aber.

MfG
Rooter

Berniyh
2023-04-04, 20:22:02
Dass das nicht als normaler Nutzer geht ist ja klar. Das ist im Kernel debugfs und auf das soll bitte nur root Zugriff haben. ;)
Die Antwort mit invalid bekommt man, wenn da nix vernünftiges zurück kommt.

Vermutlich heißt das, dass die Funktion auf deiner GPU nicht unterstützt wird, oder sonst aus einem Grund nicht verfügbar ist. Im Text steht ja nur recht unspezifisch "most recent GPUs".
Zumindest die Dokumentation wurde erst mit Kernel 6.1 hinzugefügt. Ob das auch für die Funktion gilt weiß ich nicht.
Es kann jedenfalls sein, dass das derzeit z.B. nur für RDNA2 und RDNA3 aktiviert ist, keine Ahnung.
Und kann auch sein, dass es auf älteren Kernel die Datei schon gibt, aber da nix vernünftiges rauskommt.
Wie auch immer, wenn man nicht zwei GPUs hat, dann dürfte die Funktion eh nutzlos sein.

Ich würde übrigens davon abraten sich zu viele andere Dinge in dem Verzeichnis anzuschauen. Ich hab mir da auch schon mal das System gecrasht, als ich eine Datei ausgelesen habe (ja, nur ausgelesen).
Also da besser nur Dinge machen, für die ihr eine gute Referenz habt.