os bastidores
O processamento de imagens em alta resolução é uma tarefa exigente que requer um computador moderno. Em termos de memória e potência de CPU, obter o melhor de uma imagem típica de 15, 20 ou 25 megapixels pode levar rapidamente o seu computador ao limite.
Os requisitos do darktable não são exceção. Todos os cálculos são realizados em 4 vezes com números de ponto flutuante de 32 bits. Isso é mais lento do que a álgebra de números inteiros “normal” de 8 ou 16 bits, mas elimina todos os problemas de quebras tonais ou de perda de informação.
Diversas otimizações foram realizadas para tornar o darktable o mais rápido possível. Se você executar uma versão atual do darktable em um computador moderno, pode não notar qualquer “lentidão”. No entanto, existem condições e certos módulos em que você sentirá (ou ouvirá pelo barulho da ventoinha da CPU) o quanto o seu pobre processador de múltiplos núcleos tem que lutar.
É aí que entra o OpenCL. O OpenCL permite que o darktable aproveite o enorme poder das placas de vídeo modernas. A demanda dos jogadores por mundos 3D altamente detalhados em jogos de tiro modernos (bem como mineração de criptomoedas) fomentou o rápido desenvolvimento de GPU. AMD, NVIDIA e companhia tiveram que colocar um enorme poder de processamento em suas GPUs para atender a essas demandas. O resultado são placas gráficas modernas com GPUs altamente paralelizadas que podem calcular rapidamente superfícies e texturas com altas taxas de quadros.
Você não é um gamer e não tira proveito desse poder? Bem, então você deve pelo menos usá-lo no darktable! Para a tarefa de cálculos de ponto flutuante altamente paralelos, as GPUs modernas são muito mais rápidas do que as CPUs. Isso é especialmente verdadeiro quando você deseja repetir as mesmas etapas de processamento de milhões de itens. Caso de uso típico: processamento de imagens com muitos megapixels.