darktable page lede image
darktable page lede image

darktable e OpenCL

10.2. darktable e OpenCL

O darktable pode usar aceleração de GPU via OpenCL para melhorar o desempenho.

10.2.1. O background

O processamento de imagens em alta resolução é uma tarefa demandante, que requer um computador moderno. Tanto em termos de quantidade de memória como em termos de poder de CPU, conseguir o máximo de uma imagem de 15, 20 ou 25 Megapixels pode rapidamente levar seu computador ao seu limite.

Os requisitos do darktable não são exceção. Nossa decisão de não comprometer a qualidade do processamento leva a cálculos sendo feitos em números de ponto flutuante de 4x32 bits. Isto é mais lento que álgebra ordinária de inteiros com 8 ou 16 bits, mas elimina os problemas de quebra tonal ou perda de informação.

Muita otimização feita a mão foi investida para fazer o darktable tão rápido quanto possível. Se você usa uma versão do darktable em um computador moderno, não deve notar nenhuma lentidão. No entanto, há condições e alguns módulos em que você sentirá (ou ouvirá o barulho da ventoinha da sua CPU) quanto seu pobre processador de múltiplos cores tem que se esforçar.

É aí que entra o OpenCL, que permite que tomemos vantagem do enorme poder de processamento das placas gráficas. A demanda dos gamers por mundos detalhados em 3D em jogos modernos impulsionou o desenvolvimento de GPUs. ATI, NVIDIA e Co puseram poder de processamento enorme em suas GPUs para atender essas demandas. O resultado vem como placas gráficas modernas com GPUS altamente paralelizadas, para calcular rapidamente superfícies e texturas em altas frame rates.

Você não é gamer, e não toma vantagem desse poder computacional? Bom, deveria ao menos usá-lo no darktable! Para tarefas de cálculo de ponto flutuante altamente paralelas, as GPUs modernas são mais rápidas que as CPUs. Isto é especialmente verdade quando você quer fazer os mesmos poucos passos de processamento em alguns milhões de itens. Típico caso de uso: processar imagens de muitos megapixels.