darktable page lede image
darktable page lede image

Como configurar o OpenCL no darktable

10.2.3. Como configurar o OpenCL no darktable

Usar OpenCL no darktable requer que seu PC esteja equipado com uma placa gráfica adequada, e que tenha as bibliotecas necessárias instaladas. Placas modernas da NVIDIA e AMD vem com suporte completo a OpenCL. O compilador OpenCL normalmente vem como parte do driver proprietário; é usado como uma biblioteca dinâmica chamada libOpenCL.so. Esta biblioteca deve estar em uma pasta em que possa ser encontrada pelo linker dinâmico do sistema.

Quando o darktable inicial, ele primeiro tentará encontrar e carregar a libOpenCL.so e - tendo sucesso - verificar se a placa gráfica vem com suporte a OpenCL. Uma quantidade de memória suficiente na placa gráfica (1Bg+) precisa estar disponível para que o darktable possa usar a GPU. Se isto estiver OK, o darktable tenta preparar seu ambiente OpenCL: um contexto OpenCL e uma pipeline de cálculos precisam ser inicializados, código fonte OpenCL (com extensão .cl) precisa ser lido e compilado, e as rotinas incluídas (chamadas kernels OpenCL) precisam estar preparadas para os módulos do darktable. Se tudo isso for feito, a preparação está terminada.

Por default suporte a OpenCL é ativado no darktable es todos os passos acima tiverem tido sucesso. Se quiser desativar suporte a OpenCL, você pode fazê-lo nas opções do core (Seção 8.8, “Cpu / gpu / memória”) desligando a opção ativar suporte ao OpenCL. Este parâmetro de configuração também informa se a inicialização do OpenCL falhou: neste caso a opção estará inabilitada, em cinza.

A qualquer momento você pode ligar e desligar o suporte a OpenCL; isto tem efeito imediatamente. Dependendo do tipo de módulo que estiver usando, você notará o efeito de uma aceleração geral durante trabalho interativo e exportação. A maioria dos módulos do darktable pode usar o OpenCL, mas nem todos os módulos são tão demandantes para que a diferença seja perceptível. Para perceber a diferença, use módulos como sombras e realces, nitidez, passa-baixas, passa-altas ou, para uma diferença ainda mais extrema, equalizador e remoção de ruído (perfilado).

Se você estiver interessado em dados de profiling, pode iniciar o darktable com os parâmetros de linha de comando -d opencl -d perf. Depois de cada execução da pixelpipe, você receberá uma descrição detalhada do tempo de processamento de cada módulo mas um profiling muito detalhado de cada kernel OpenCL.

Além do aumento em velocidade, você não deve perceber nenhuma diferença nos resultados entre computação na CPU e na GPU. Exceto por erros de arredondamento, os resultados são projetados para serem iguais. Se, por algum motivo, o darktable falhar em terminar apropriadamente uma computação em GPU, ele normalmente perceberá e automaticamente (transparentemente, também) reverterá para processamento em CPU.