OpenCL konfigurieren
Die riesige Vielfalt der Systeme und deutliche Unterschiede zwischen OpenCL-Anbietern und Treiberversionen macht es unmöglich, einen umfassenden Überblick darüber zu geben, wie man OpenCL konfiguriert. Wir können dir nur ein Beispiel geben, in diesem Fall für den NVIDIA-Treiber Version 542.29.06 für Fedora 39. Wir hoffen, dass dies als eine grundlegende Anleitung dienen kann und dir helfen wird, spezifische Probleme für dein Setup zu lösen.
Der prinzipielle OpenCL-Funktionsablauf sieht so aus:
darktable > libOpenCL.so > libnvidia-opencl.so.1 > kernel-Treibermodul(e)> GPU
-
darktable lädt
libOpenCL.so
dynamisch nach– eine Systembibliothek, auf die der dynamische Lader des Betriebssystems (ld.so
) Zugriff haben muss. -
libOpenCL.so
liest die herstellerspezifische Informationsdatei (/etc/OpenCL/vendors/nvidia.icd
), um die Bibliothek mit der herstellerspezifischen OpenCL-Implementierung zu ermitteln. -
Die herstellerspezifische OpenCL-Implementierung befindet sich in der Bibliothek
libnvidia-opencl.so.1
(in unserem Fall ein symbolischer Link auflibnvidia-opencl.so.545.29.06
). -
libnvidia-opencl.so.1
kommuniziert mit den herstellerspezifischen Kernelmodulennvidia
undnvidia_uvm
über spezifische Gerätedateien/dev/nvidia0
,/dev/nvidiactl
und/dev/nvidia-uvm
.
Beim Starten des Systems müssen die erforderlichen, spezifischen Gerätedateien (/dev/nvidia*
) erzeugt werden. Falls das auf dem eigenen System nicht automatisch passiert, ist der leichteste Weg die Installation des Pakets nvidia-modprobe
, um die Dateien zu erzeugen und das Laden aller Module sicherzustellen.
Ein Benutzerkonto, das aus darktable heraus auf OpenCL zugreifen will, muss Lese-/Schreibberechtigung für die NVIDIA spezifischen Gerätedateien haben. Auf einigen Systemen haben diese Dateien Lese-/Schreibzugriff für alle, was die Vergabe von Zugriffsrechten vereinfacht, aber eher fraglich hinsichtlich der Systemsicherheit ist. Andere Systeme beschränken den Zugriff auf eine Benutzergruppe, z.B. “Video”. In diesem Fall muss das Benutzerkonto ein Mitglied dieser Gruppe sein.
Somit sind die Pakete, die in diesem speziellen Fall installiert werden mussten, folgende:
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
In Linux Systemen wirst du sicher auch das Paket clinfo
, das dir noch viele Informationen über dein OpenCL System und die Einstellungen gibt.