ativar o opencl no darktable
O uso do OpenCL no darktable requer que seu PC esteja equipado com uma placa gráfica adequada e que tenha as bibliotecas necessárias instaladas. A maioria das placas gráficas modernas da NVIDIA e AMD vem com suporte total para OpenCL. O compilador OpenCL normalmente é distribuído como parte do controlador gráfico proprietário e é usado como uma biblioteca dinâmica chamada libOpenCL.so
. Esta biblioteca deve estar em uma pasta onde possa ser encontrada pelo vinculador dinâmico do seu sistema.
Quando o darktable for iniciado, ele primeiro tentará encontrar e carregar a libOpenCL.so
e, em caso de sucesso, verificar se a placa de vídeo disponível vem com suporte para OpenCL. Uma quantidade suficiente de memória gráfica (1 GB+) precisa estar disponível para o darktable para aproveitar as vantagens da GPU. Se essa verificação for aprovada, o darktable tenta configurar seu ambiente OpenCL: um contexto de processamento precisa ser inicializado, um pipeline de cálculo deve ser iniciado, arquivos de código-fonte OpenCL (a extensão é .cl
) precisam ser lidos e compilados e as rotinas incluídas (Kernels OpenCL) precisam ser preparadas para os módulos do darktable. Se tudo isso for concluído com sucesso, a preparação está completa.
Por padrão, o suporte a OpenCL é ativado no darktable se todas as etapas acima forem bem-sucedidas. Se você deseja desativá-lo, pode fazê-lo em preferências > processamento > cpu / gpu / memória. Este parâmetro de configuração fica acinzentado se a inicialização do OpenCL falhar.
Você pode desligar e ligar o suporte OpenCL a qualquer momento sem a necessidade de reiniciar. Dependendo dos tipos de módulos que você está usando, você notará o efeito como uma aceleração geral durante o trabalho interativo e a exportação. A maioria dos módulos no darktable pode tirar proveito do OpenCL, mas nem todos os módulos são exigentes o suficiente para fazer uma diferença perceptível. Para sentir uma diferença real, use módulos como difusão ou nitidez e remoção de ruídos (perfilado).
Se você estiver interessado em perfis estatísticos, você pode iniciar o darktable com os parâmetros de linha de comando -d opencl -d perf
. Após cada execução do pixelpipe, você verá detalhes do tempo de processamento de cada módulo, além de um perfil ainda mais refinado para todos os kernels OpenCL usados.
Além da aceleração, você não deve ver nenhuma diferença nos resultados entre o processamento da CPU e da GPU. Exceto por alguns erros de arredondamento, os resultados são projetados para serem idênticos. Se, por algum motivo, o darktable não conseguir concluir corretamente um cálculo de GPU, ele normalmente detectará a falha e automaticamente (e de forma transparente) retornará ao processamento da CPU.