Aktivierung von OpenCL in darktable
Das Brauchen von OpenCL in darktable erfordert es, dass dein Computer mit einer geeigneten Grafikkarte mit den erforderlichen Libraries ausgerüstet ist. Die meisten modernen Grafikkarten von NIVIDIA und AMD kommen mit vollem Support für OpenCL. Der Compiler für OpenCL wird normalerweise als Teil des proprietären Grafik-Treibers und wird als dynamische Library mit Namen libOpenCL.so
gebraucht. Diese Library muss in einem Ordner sein, wo diese vom System-Linker deines Systems gefunden werden kann.
Wenn darktable aufstartet, wird es zuerst versuchen libOpenCL.so
zu finden und zu laden, ist das erfolgreich, prüfe, ob die vorhandene Grafikkarte mit Support für OpenCL kommt. Genügend Grafik-Speicher (1GB+) muss vorhanden sein für darktable, um den Vorteil der GPU zu haben. Falls dieser Check erfolgreich ist, wird darktable versuchen die OpenCL-Umgebung aufzusetzen: Eine Verarbeitungs-Umgebung muss initialisiert werden, eine Berechnungs-Pipeline muss gestartet werden, OpenCL Quellcode-Dateien (Endung ist .cl
) müssen gelesen und compiliert werden und die beinhalteten Routinen (OpenCL Kernels) müssen für die darktable-Module vorbereitet werden. Wenn das alles komplett ist, dann ist die Vorbereitung abgeschlossen.
Als Standard wird OpenCL in darktable aktiviert, wenn alle obigen Schritte erfolgreich waren. Falls du es wieder deaktivieren willst, kannst du das tun in darktable-Voreinstellungen > CPU/GPU/Speicher. Dieser Konfigurations-Parameter ist ausgegraut, wenn die OpenCL Initialisierung nicht gut war.
Du kannst OpenCL Support jederzeit ausschalten, ohne dass ein Neustart nötig ist. Abhängig vom Typ des Moduls, das du brauchst, wirst du den Effekt als einen generellen Zuwachs der Geschwindigkeit beim interaktiven Arbeiten und beim Exportieren spüren. Die meisten Module haben mit OpenCl Vorteile, aber nicht alle Module sind genug fordernd, um einen merkbaren Unterschied festzustellen. Um einen großen Unterschied auszumachen, nutze die Module Schatten und Lichter, Schärfen, Tiefpass, Hochpass oder noch ausgeprägter Kontrast Equalizer und Entrauschen (Profil).
Wenn du in Statistiken des Profils interessiert bist, dann kannst du darktable mit dem Kommandolinien-Parameter -d opencl -d perf
starten. Nach jedem Lauf der Pixelpipe werden dir die Details der Verarbeitungszeit für jedes Modul angezeigt zusammen mit einem noch feineren Profil für alle OpenCL Kernels.
Abgesehen vom Geschwindigkeitszuwachs solltest du keinen Unterschied zwischen CPU- und GPU-Verarbeitung sehen. Außer bei einigen Rundungsfehlern sind die Ergebnisse identisch ausgelegt. Wenn, aus irgendeinem Grund, darktable eine GPU-Berechnung falsch durchführt, wird es normalerweise dieses Versagen bemerken und automatisch (und transparent) auf CPU-Berechnung zurückgreifen.