Videokarten Durcheinander
Hallo,
Habe eben eine neue Videokarte installiert,
kann damit aber darktable nicht überzeugen,
opencl zu verwenden. Außerdem kommt es immer
wieder zu einem unangenehmen "Ruckeln", wo der
Computer für vielleicht eine halbe Sekunde
einfriert und dann wieder weiter macht. Die
Details sind ziemlich lange und frustrierend,
will trotzdem versuchen zuviel "rant" zu
vermeiden.
Seit geraumer Zeit gab es zwei Programme,
welche ich sehr sporadisch verwende, und die
ein seltsames Verhalten zeigten: Gimp hatte
unlesbare icons und Titelzeilen (im Fenster),
und vlc kann praktisch jedes offene XTerm zum
flimmern bringen, sodaß ein Lesen oder
Schreiben in einem Texteditor unmöglich wird,
bis vlc wieder geschlossen wird. Das Problem
wurde akut, als ich etwas von Gtk benötigte,
was zwar funktionierte, aber die genannten
Nebeneffekte noch viel schlimmer zeigte.
So habe ich Emanuele Bassi von Gnome/Gtk
kontaktiert, dessen Diagnose war, daß meine
Videokarte (nVidia Quadro K2200 von 2015) zu alt
sei (wegen der Vulkan-Version). Das fand ich
sehr enttäuschend, denn Linux im allgemeinen und
Debian im speziellen waren immer dafür bekannt,
selbst mit Hardware Marke uralt zurecht zu
kommen. Mittlerweile habe ich einige Details
dazugelernt, sodaß dieser Vorwurf an Gtk nicht
mehr ganz so schwarz/weiß richtig/falsch ist,
aber ganz vom Tisch wischen kann ich ihn
dennoch nicht.
So habe ich eine neue Video-Karte bestellt und
eingebaut: Bassi sagte, daß er gute Erfahrung
mit der AMD Radeon RX 6800 XT machte, welche
ich dann auch suchte. Davon scheint es eine
etwas neuere Version zu geben, welche sehr
ähnliche Spezifikationen, und in etwa den
gleichen Preis hat: Die 7800. Zwar kann diese
Karte PCIe v4 während meine Kiste nur PCIe 3
kann, meine Hoffnung ist aber, daß es trotzdem
irgendwie akzeptabel gehen sollte.
Es hat eine Weile gedauert, bis ich dahinter
kam, daß es besser ist, alle Spuren zu
verwischen, daß jemals eine nVidia-Karte
installiert war, und daß die amd firmware
installiert werden muß, damit die Karte auch
mehr als nur ein muh von sich gibt. Dann aber
schien alles schlagartig zu funktionieren.
Während ich bei der vorigen Karte beobachten
mußte, daß gewisse besonders überladene
Webseiten die Ventilatoren so richtig aufheulen
ließen, was erst beim Schließen der Seite
wieder aufhörte, schien es mit mit der neuen
Karte nicht mehr ganz so schlimm. Es gibt aber
immer noch viele Seiten, welche in top den load
average konstant auf 100% halten.
Die Versuche, die Gtk-Programme auszuführen
zeigten auch, daß die zuvor beobachteten
Probleme weg waren. Dann aber merkte ich das
kurze Einfrieren des Computers, was ich als
sehr störend empfinde, auch weil es das eben mit
der alten Quadro K2200 nie gegeben hat.
Das Hauptproblem aber ist nun darktable; bei
großen Fotographien (ein Foto aus meiner Kamera
kann im raw-Format schnell trotz Kompression auf
40MB und mehr kommen), sodaß es mir völlig
gerechtfertigt erscheint, wenn so ein Programm
versucht, mit openCL, die schlimmste Last auf
die GPU auszulagern. Zwar funktioniert
darktable auch ohne openCL, aber eben viel
langsamer, was bei einer brandneuen 7800er
Karte kein gutes Gefühl vermittelt. Da war
meine K2200 um einiges schneller.
Darktable kann man auch als "darktable-cltest"
aufrufen, wobei nur getestet wird, um openCL
funktioniert. Und da bekomme ich die
Fehlermeldung: "insufficient device version",
was nach den Kosten und Mühen, die neue Karte
einzubauen, auch eher frustrierende Auswirkungen
zeigte. Mittlerweile habe ich aber verstanden,
daß sich dies nicht auf die Karte bezieht,
sondern auf die Version von openCL, welche
zumindest 1.2 sein sollte bei Mesa aber nur 1.1
ist.
Ganz so klar ist dies allerdings nicht. Denn
mit clinfo erhalte ich nun zwei Platformen: die
eine heißt "Clover":
Platform Version: OpenCL 1.1 Mesa 24.2.3-1
und die andere heißt rusticl
Platform Version: OpenCL 3.0
Wie es zu diesem rusticl gekommen ist, ist mir
ein Rätsel: Zuerst hatte ich mesa-opencl-icd
installiert. Dann wurde mir empfohlen,
rocm-opencl-icd zu installieren, wobei das
vorige deinstalliert wurde. Danach schien
opencl völlig verschwunden zu sein; in clinfo
wurde der Name von der Karte nicht mehr
erkannt. So installierte ich wieder
mesa-opencl-icd, wobei, erwartungsgemäß
rocm-opencl-icd wieder entfernt wurde. Nun aber
habe ich trotzdem auch rocm als zweite opencl
Platform installiert (obwohl nun wieder
mesa-opencl-icd installiert ist). ROCm aus dem
Jenseits?
Nach langem Suchen und ein wenig Hilfe in einem
IRC, bin ich auf die Umgebungsvariable
RUSTICL_ENABLE=radeonsi gestoßen. Es hat auch
eine Weile gedauert, um dahinter zu kommen, daß
nun in den Einstellungen von darktable das als
experimentell markierte rustiCL aktiviert
werden kann und muß, doch deutet nun alles
darauf hin, daß es nun funktioniert. Allerdings
habe ich noch nicht wirklich damit gearbeitet um
Vertrauen zu fassen und das "experimental" zu
ignorieren. Beunruhigend ist eine Bemerkung vom
Januar 2024:
"Please note that the rusticl driver is
extremely alpha and I haven't seen anyone have
great results with it yet".
Und das ruckeln ist immer noch da. Bei
glxgears reicht es, mit der Maus in ein
anderes Fenster zu gehen, daß die Zahnräder
sich scheinbar einen Augenblick lang in die
Gegenrichtung drehen.
So weit ich die Lage verstehe, habe ich jetzt
nur freien Code installiert, mit der
amd-firmware als einzige Ausnahme. Alternativ
scheint es jedoch auch irgendwo einen
proprietären driver zu geben, bei dem laut
einigen alles viel besser ist, und laut
anderen, alles noch schlechter wird.
Hat irgendwer Erfahrung mit solchen Dingen?
Muß ich damit rechnen, daß mein alter PCIe
version 3 für diese Videokarte nicht mehr
ausreicht? (das motherboard kann ich nicht
austauschen, dann für diese CPU gibt es keines
mehr, und dann müßte ich bis auf die Festplatten
alles auf den Müll kippen). Und ich wollte doch
bloß ein Problem mit Gtk lösen; der Computer
tut ja ansonsten alles, was ich von ihm erwarte.
Könnte der proprietäre Treiber eine Lösung
sein, daß das Ruckeln verschwindet und
darktable auch ohne Experimente einfach
funktioniert? Wenn ja, wie kann ich zu diesem
Treiber kommen, ohne mir meine Debian
Installation zu versauen?
Und da mir die meisten Konzepte so gar nicht
geläufig sind, wäre ich auch für weitere Tips
und Aufklärungen dankbar.
Sorry für den langen post.
--
Cris
Reply to: