Das Brauchen von OpenCL in Ansel 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 Ansel 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 Ansel, um den Vorteil der GPU zu haben. Falls dieser Check erfolgreich ist, wird Ansel 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 Ansel-Module vorbereitet werden. Wenn das alles komplett ist, dann ist die Vorbereitung abgeschlossen.

By default, OpenCL support is activated in Ansel if all the above steps were successful. If you want to de-activate it you can do so in Preferences > Processing > CPU, GPU, Memory. This configuration parameter is grayed out if the OpenCL initialization failed.

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 Ansel 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 Ansel 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.

Apart from the speed-up you should not see any difference in the results between CPU and GPU processing. Except for some rounding errors, the results are designed to be identical. If, for some reason, Ansel fails to properly finish a GPU calculation, it will normally detect the failure and automatically (and transparently) fall back to CPU processing.