configurar o opencl
A enorme diversidade de sistemas e as diferenças marcantes entre os fornecedores do OpenCL e as versões do controlador tornam impossível dar uma visão geral abrangente de como configurar o OpenCL. Podemos dar apenas um exemplo, neste caso, para a versão 542.29.06 do driver NVIDIA no Fedora 39. Esperamos que isso sirva como uma introdução básica e ajude você a resolver quaisquer problemas específicos de sua configuração.
O princípio do fluxo da função OpenCL se dá dessa forma:
darktable > libOpenCL.so > libnvidia-opencl.so.1 > módulo(s) de driver do kernel > GPU
-
O darktable dinamicamente carrega a
libOpenCL.so
– uma biblioteca do sistema que deve ser acessível ao carregador dinâmico do sistema (ld.so
). -
A
libOpenCL.so
lê o arquivo de informações específico do fornecedor (/etc/OpenCL/vendors/nvidia.icd
) para encontrar a biblioteca que contém a implementação OpenCL específica do fornecedor. -
A implementação OpenCL específica do fornecedor vem como uma biblioteca
libnvidia-opencl.so.1
(que em nosso caso é um link simbólico paralibnvidia-opencl.so.545.29.06
). -
A
libnvidia-opencl.so.1
precisa conversar com os módulos de kernel específicos do fornecedornvidia
envidia_uvm
por meio dos arquivos especiais de dispositivo/dev/nvidia0
,/dev/nvidiactl
, e/dev/nvidia-uvm
.
Na inicialização do sistema, os arquivos especiais do dispositivo necessário (/dev/nvidia*
) precisam ser criados. Caso isto não aconteça em seu sistema por padrão, a maneira mais fácil de configurá-los e assegurar que todos os módulos estão carregados é instalando o pacote nvidia-modprobe
.
Uma conta de usuário que precisa fazer uso do OpenCL a partir do darktable deve ter acesso de leitura/escrita aos arquivos especiais do dispositivo NVIDIA. Em alguns sistemas, estes arquivos possuem permissão de acesso de leitura e escrita para todo o sistema por padrão, o que evita problemas de permissão, mas pode ser discutível em termos de segurança do sistema. Outros sistemas restringem o acesso a um grupo de usuários, por exemplo, “video”. Neste caso, sua conta de usuário deve ser membro desse grupo.
Em resumo, os pacotes que precisavam ser instalados neste caso específico eram:
xorg-x11-drv-nvidia
xorg-x11-drv-nvidia-libs
xorg-x11-drv-nvidia-cuda
xorg-x11-drv-nvidia-cuda-libs
xorg-x11-drv-nvidia-power
akmod-nvidia
nvidia-settings
nvidia-modprobe
nvidia-persistenced
opencl-headers
opencl-filesystem
ocl-icd
ocd-icd-devel
Em sistemas Linux você também pode querer o pacote clinfo
, que fornece muitas informações sobre seu sistema e configurações OpenCL.