setting up OpenCL
De enorme diversiteit aan systemen en de duidelijke verschillen tussen OpenCL-leveranciers en stuurprogrammaversies maken het onmogelijk om een uitgebreid overzicht te geven van hoe OpenCL moet worden ingesteld. We kunnen jou alleen een voorbeeld geven, in dit geval voor NVIDIA-stuurprogrammaversie 542.29.06 on Fedora 39. We hopen dat dit een basisintroductie zal zijn en jou zal helpen bij het oplossen van eventuele problemen die specifiek zijn voor jouw installatie.
Het principe van de OpenCL-functiestroom is als volgt:
darktable > libOpenCL.so > libnvidia-opencl.so.1 > kernel driver module(s) > GPU
-
darktable laadt dynamisch
libOpenCL.so
– een systeembibliotheek die toegankelijk moet zijn voor de dynamische lader van het systeem (ld.so
). -
libOpenCL.so
leest het leverancierspecifieke informatiebestand (/etc/OpenCL/vendors/nvidia.icd
) om de bibliotheek te vinden die de leverancierspecifieke OpenCL-implementatie bevat. -
De leverancierspecifieke OpenCL-implementatie wordt geleverd als een bibliotheek
libnvidia-opencl.so.1
(wat in ons geval een symbolische link is naarlibnvidia-opencl.so.545.29.06
). -
libnvidia-opencl.so.1
moet met de leverancierspecifieke kernelmodulesnvidia
ennvidia_uvm
praten via speciale apparaatbestanden/dev/nvidia0
,/dev/nvidiactl
en/dev/nvidia -uvm
.
Bij het opstarten van het systeem moeten de vereiste speciale apparaatbestanden (/dev/nvidia*
) worden aangemaakt. Als dit niet standaard op jouw systeem gebeurt, is de eenvoudigste manier om ze in te stellen en ervoor te zorgen dat alle modules zijn geladen, door het pakket nvidia-modprobe
te installeren.
Een gebruikersaccount dat gebruik moet maken van OpenCL vanuit darktable, moet lees-/schrijftoegang hebben tot de speciale apparaatbestanden van NVIDIA. Op sommige systemen bieden deze bestanden standaard toegang tot lezen en schrijven over de hele wereld, waardoor problemen met de machtiging worden vermeden, maar het kan ter discussie zijn in termen van systeembeveiliging. Andere systemen beperken de toegang tot een gebruikersgroep, b.v. “video”. In dit geval moet jouw gebruikersaccount lid zijn van die groep.
Samenvattend waren de pakketten die in dit specifieke geval moesten worden geïnstalleerd:
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
On Linux systems you might also want the clinfo
package giving you a lot of information about your OpenCL system and settings.