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. Manuelles Deaktivieren geht unter in darktable-Voreinstellungen > Bearbeitung > CPU/GPU/Speicher. Dieser Konfigurationsparameter ist ausgegraut, wenn die OpenCL-Initialisierung fehlgeschlagen ist.

You can switch OpenCL support off and on at any time without requiring a restart. Depending on the type of modules you are using, you will notice the effect as a general speed-up during interactive work and export. Most modules in darktable can take advantage of OpenCL but not all modules are demanding enough to make a noticeable difference. In order to feel a real difference, use modules like diffuse or sharpen, and denoise (profiled).

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.

translations