el trasfondo

El procesamiento de imágenes de alta resolución es una tarea exigente que requiere una computadora moderna. En términos de memoria y potencia de la CPU, sacar lo mejor de una imagen típica de 15, 20 o 25 megapíxeles puede llevar rápidamente a su computadora al límite.

Los requisitos de darktable no son una excepción. Todos los cálculos se realizan en números de coma flotante de 4 x 32 bits. Es más lento que el álgebra de enteros de 8 o 16 bits “ordinaria”, pero elimina todos los problemas de rupturas tonales o pérdida de información.

Se ha realizado una gran cantidad de optimización para hacer darktable lo más rápido posible. Si ejecuta una versión actual de darktable en una computadora moderna, es posible que no note ninguna “lentitud”. Sin embargo, hay condiciones y ciertos módulos en los que sentirá (o escuchará el aullido del ventilador de su CPU) cuánto tiene que luchar su pobre procesador de múltiples núcleos.

Ahí es donde OpenCL entra en juego. OpenCL permite que darktable aproveche el enorme poder de las tarjetas gráficas modernas. La demanda de los jugadores de mundos 3D altamente detallados en los juegos de disparos modernos (así como la minería de criptomonedas) ha fomentado el rápido desarrollo de la GPU. AMD, NVIDIA y compañía tuvieron que poner una enorme potencia de procesamiento en sus GPU para satisfacer estas demandas. El resultado son tarjetas gráficas modernas con GPU altamente paralelizadas que pueden calcular rápidamente superficies y texturas a altas velocidades de cuadro.

¿No eres un jugador y no aprovechas ese poder? Bueno, ¡al menos deberías usarlo en darktable! Para la tarea de cálculos de punto flotante altamente paralelos, las GPU modernas son mucho más rápidas que las CPU. Esto es especialmente cierto cuando desea repetir los mismos pasos de procesamiento millones de veces. Caso de uso típico: procesamiento de imágenes de altos megapíxeles.