GPU-Reset (AMD)

Dass ich mit lokalen KI-Modellen experimentiere ist ja kein Geheimnis. Zuweilen hängt sich jedoch bei diesen Experimenten die Grafikkarte komplett auf, was in der Regel einen Neustart erfordert. Der Bildschirm friert entweder komplett ein oder die GPU läuft in einer Schleife auf 100% Last, wobei der verantwortliche Prozess schon lange beendet ist.

Ich verwende eine AMD-GPU (genauer: eine Radeon RX 7900 XTX), die aus mir bisher nicht bekannten Gründen gerne zu solchen Verhaltensweisen neigt. Es scheint ein Software-Problem zu sein, denn das Problem tritt normalerweise nicht auf - ausschließlich bei KI-Prozessen, die über ein spezielles Framework abgebildet werden.

Da die GPU in so einem Szenario wahlweise komplett jegliche Grafikausgabe einfriert oder die GPU-Last GUI-Prozesse so unbenutzbar machen, dass ein Neustart des Systems als die bessere Lösung erscheint, suchte ich nach einer Möglichkeit, das System anderweitig wiederzubeleben. Ich fand eine.

Der folgende Befehl setzt die komplette GPU-Umgebung komplett zurück. Das hat zwar zur Folge, dass die graphische Benutzerumgebung komplett mit abstürzt (und damit auch alle Anwendungen, die darunter gestartet waren), jedoch kommt danach der Anmeldebildschirm wieder hoch und man kann direkt weiter arbeiten oder den Fehler suchen.

sudo cat /sys/kernel/debug/dri/1/amdgpu_gpu_recover

Das Ganze funktioniert selbstverständlich nur mit AMD-Grafikkarten, ob ein Nvidia-Äquivalent existiert weiß ich nicht.

Da der Befehl in den meisten Fällen nicht mehr über den Client direkt eingegeben werden kann (selbst ein Wechsel auf andere virtuelle Konsolen hilft oft nicht), ist es am einfachsten, sich einfach via SSH auf den betroffenen Host zu verbinden (über ein Notebook, ein Tablet, ein Handy, etc.) und den Befehl dort einzutippen.