O uso do OpenCL no Ansel 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 Ansel 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 Ansel para aproveitar as vantagens da GPU. Se essa verificação for aprovada, o Ansel 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 Ansel. Se tudo isso for concluído com sucesso, a preparação está completa.
By default, OpenCL support is activated in Ansel if all the above steps were successful. If you want to de-activate it you can do so in Preferences > Processing > CPU, GPU, Memory. This configuration parameter is grayed out if the OpenCL initialization failed.
You can switch OpenCL support off and on at any time without requiring a restart. Depending on the type of modules you are using, you will notice the effect as a general speed-up during interactive work and export. Most modules in Ansel can take advantage of OpenCL but not all modules are demanding enough to make a noticeable difference. In order to feel a real difference, use modules like diffuse or sharpen, and denoise (profiled).
Se você estiver interessado em perfis estatísticos, você pode iniciar o Ansel 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.
Apart from the speed-up you should not see any difference in the results between CPU and GPU processing. Except for some rounding errors, the results are designed to be identical. If, for some reason, Ansel fails to properly finish a GPU calculation, it will normally detect the failure and automatically (and transparently) fall back to CPU processing.