darktable page lede image
darktable page lede image

Jak aktywować OpenCL w darktable

10.2.3. Jak aktywować OpenCL w darktable

Korzystanie z OpenCL wymaga komputera PC, wyposażonego w odpowiednią kartę graficzną i biblioteki. Nowoczesne karty graficzne NVIDIA i AMD oferują pełne wsparcie dla OpenCL. Kompilator OpenCL jest dystrybuowany jako część własnościowego sterownika grafiki; używany jest jako dynamiczna biblioteka o nazwie libOpenCL.so. Musi ona znajdować się w folderze, dostępnym dla dynamicznego linkera w twoim systemie.

W chwili startu darktable próbuje znaleźć i załadować libOpenCL.so i – jeśli to się uda – sprawdzić, czy dostępne karty graficzne posiadają wsparcie dla OpenCL. Do skorzystania z GPU wymagana jest wystarczająca (powyżej 1GB) pamięć karty graficznej. Jeśli to również jest spełnione, darktable próbuje ustawić środowisko dla OpenCL: zainicjalizować kontekst przetwarzania, uruchomić sekwencję startową, wczytać i skompilować pliki źródłowe OpenCL (.cl) oraz przygotować dla modułów darktable dołączone procedury (zwane jądrami OpenCL). Jeśli to wszystko przebiegnie pomyślnie, etap wstępny jest zakończony.

Domyślnie wsparcie dla OpenCL jest aktywowane w darktable, jeśli powyższe kroki zakończą się sukcesem. Jeśli chcesz je wyłączyć, możesz to zrobić w sekcji cpu / gpu / pamięć (Sekcja 8.8, „CPU / GPU / pamięć”) poprzez odznaczenie parametru włącz obsługę OpenCL. Ten parametr konfiguracyjny mówi również, czy inicjalizacja OpenCL zakończyła się niepowodzeniem; w takim przypadku parametr ten jest niedostępny.

W dowolnym momencie możesz wyłączać i włączać wsparcie dla OpenCL; efekty widoczne są natychmiast. W zależności od typu używanych modułów, efekt można zauważyć jako ogólne przyspieszenie podczas pracy interaktywnej i podczas eksportu. Z OpenCL korzysta większość modułów darktable, ale nie wszystkie w stopniu umożliwiającym zauważenie różnicy. Żeby poczuć prawdziwą różnicę, skorzystaj z takich modułów, jak cienie i światła, wyostrzenie, filtr dolnoprzepustowy, filtr górnoprzepustowy lub nawet bardziej ekstremalne korektor czy odszumianie (profilowane).

Jeśli interesują cię statystyki profilowania, możesz uruchomić darktable z parametrami -d opencl -d perf. Po każdym przebiegu sekwencji otrzymasz szczegółową informację o czasie przetwarzania przez każdy moduł, a dodatkowo dane profilowania dla wszystkich użytych jąder OpenCL.

Poza przyspieszeniem nie powinno być żadnych różnic pomiędzy efektami renderingu na CPU i GPU. Poza błędami zaokrągleń efekty powinny być identyczne. Jeśli z jakichś przyczyn darktable nie ukończy obliczeń na GPU, zostanie to zauważone, a obliczenia zostaną automatycznie i bezobsługowo przekierowane na CPU.