konfiguracja opencl
Ogromna różnorodność systemów i wyraźne różnice między dostawcami OpenCL a wersjami sterowników uniemożliwiają kompleksowy przegląd konfiguracji OpenCL. Możemy podać tylko przykład, w tym przypadku dla wersji sterownika NVIDIA 542.29.06 w systemie Fedora 39. Mamy nadzieję, że będzie to podstawowe wprowadzenie i pomoże rozwiązać wszelkie problemy, związane z konfiguracją.
Zasada działania funkcji OpenCL wygląda następująco:
darktable > libOpenCL.so > libnvidia-opencl.so.1 > moduł(y) sterownika jądra > GPU
-
darktable dynamicznie ładuje
libOpenCL.so– bibliotekę systemową, która musi być dostępna dla dynamicznego programu ładującego systemu (ld.so). -
libOpenCL.soodczytuje plik informacji specyficznych dla dostawcy (/etc/OpenCL/vendors/nvidia.icd), aby znaleźć bibliotekę zawierającą implementację OpenCL specyficzną dla dostawcy. -
Implementacja OpenCL specyficzna dla dostawcy jest dostępna jako biblioteka
libnvidia-opencl.so.1(która w naszym przypadku jest dowiązaniem symbolicznym dolibnvidia-opencl.so.545.29.06). -
libnvidia-opencl.so.1musi komunikować się z modułami jądra danego dostawcynvidiainvidia_uvmpoprzez specjalne pliki urządzenia/dev/nvidia0,/dev/nvidiactli/dev/nvidia -uvm.
Podczas uruchamiania systemu należy utworzyć wymagane pliki specjalne urządzenia (/dev/nvidia*). Jeśli domyślnie tak się nie dzieje, najłatwiejszym sposobem ich skonfigurowania i upewnienia się, że wszystkie moduły są załadowane, jest zainstalowanie pakietu nvidia-modprobe.
Konto użytkownika, które musi korzystać z OpenCL z poziomu darktable, musi mieć dostęp do odczytu/zapisu do specjalnych plików urządzenia NVIDIA. W niektórych systemach pliki te domyślnie umożliwiają dostęp do odczytu i zapisu dla wszystkich, co pozwala uniknąć problemów z uprawnieniami, ale może być dyskusyjne pod względem bezpieczeństwa systemu. Inne systemy ograniczają dostęp do grupy użytkowników, m.in. “wideo”. W takim przypadku twoje konto użytkownika musi być członkiem tej grupy.
Podsumowując, pakiety niezbędne do zainstalowania w tym przypadku to:
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
Na systemach linuksowych możesz również zainteresować się pakietem clinfo, udostępniającym sporo informacji o twoim systemie OpenCL i jego ustawieniach.