El uso de OpenCL en Ansel requiere que su PC esté equipada con una tarjeta gráfica adecuada y que tenga instaladas las bibliotecas necesarias. La mayoría de las tarjetas gráficas modernas de NVIDIA y AMD vienen con soporte completo para OpenCL. El compilador OpenCL normalmente se envía como parte del controlador de gráficos propietario y se usa como una biblioteca dinámica llamada libOpenCL.so. Esta biblioteca debe estar en una carpeta donde la pueda encontrar el enlazador dinámico de su sistema.

Cuando se inicie Ansel, primero intentará encontrar y cargar libOpenCL.so y, si tiene éxito, comprobará si la tarjeta gráfica disponible viene con soporte OpenCL. Debe haber una cantidad suficiente de memoria gráfica (1GB +) disponible para que Ansel aproveche la GPU. Si esa verificación pasa, Ansel intenta configurar su entorno OpenCL: se debe inicializar un contexto de procesamiento, se debe iniciar una canalización de cálculo, se deben leer y compilar los archivos de código fuente OpenCL (la extensión es .cl) y las rutinas incluidas (Kernels OpenCL) deben estar preparados para los módulos de Ansel. Si todo eso se completa con éxito, la preparación está completa.

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

Si está interesado en las estadísticas de creación de perfiles, puede iniciar Ansel con los parámetros de la línea de comandos -d opencl -d perf. Después de cada ejecución del pixelpipe, se le mostrarán detalles del tiempo de procesamiento de cada módulo más un perfil aún más detallado para todos los kernels OpenCL usados.

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.