aktywacja opencl w darktable
Korzystanie z OpenCL w darktable wymaga, aby twój komputer był wyposażony w odpowiednią kartę graficzną i wymagane biblioteki. Większość nowoczesnych kart graficznych firm NVIDIA, Intel lub AMD ma pełną obsługę OpenCL. Kompilator OpenCL jest zwykle dostarczany jako część własnościowego sterownika graficznego i jest używany jako biblioteka dynamiczna o nazwie libOpenCL.so
. Ta biblioteka musi znajdować się w folderze, w którym może być znaleziona przez dynamiczny linker twojego systemu.
Po uruchomieniu darktable najpierw spróbuje znaleźć i załadować libOpenCL.so
, a jeśli się powiedzie, sprawdzi, czy dostępna karta graficzna obsługuje OpenCL. Aby darktable mógł korzystać z GPU, musi być dostępna wystarczająca ilość pamięci graficznej (co najmniej 1 GB+). Jeśli to sprawdzenie zakończy się pomyślnie, darktable spróbuje skonfigurować swoje środowisko OpenCL: należy zainicjować kontekst przetwarzania, uruchomić kolejkę obliczeniową, pliki kodu źródłowego OpenCL (rozszerzenie to .cl
) muszą zostać odczytane i skompilowane oraz dołączone procedury (jądra OpenCL) muszą być przygotowane na moduły darktable. Jeśli to wszystko zakończy się pomyślnie, przygotowania są zakończone.
Domyślnie obsługa OpenCL jest aktywowana w darktable, jeśli wszystkie powyższe kroki powiodły się. Jeśli chcesz ją deaktywować, możesz to zrobić w ustawienia > przetwarzanie > OpenCL. Ten parametr konfiguracyjny jest wyszarzony, jeśli inicjalizacja OpenCL nie powiodła się.
Możesz wyłączyć i włączyć obsługę OpenCL w dowolnym momencie, bez konieczności ponownego uruchamiania. W zależności od typu modułów, których używasz, efekt zauważysz w postaci ogólnego przyspieszenia podczas pracy interaktywnej i eksportu. Większość modułów w darktable może korzystać z OpenCL, ale nie wszystkie moduły są wystarczająco wymagające, aby zrobić zauważalną różnicę. Aby poczuć prawdziwą różnicę, użyj modułów takich jak dyfuzja lub wyostrzenie i odszumianie (profilowane).
Jeśli jesteś zainteresowany statystykami profilowania, możesz uruchomić darktable z parametrami wiersza poleceń -d opencl -d perf
. Po każdym uruchomieniu kolejki zobaczysz szczegóły czasu przetwarzania dla każdego modułu oraz jeszcze bardziej szczegółowy profil dla wszystkich używanych jąder OpenCL.
Poza przyspieszeniem nie powinieneś widzieć żadnej różnicy w wynikach przetwarzania CPU i GPU. Poza pewnymi błędami zaokrągleń wyniki mają być identyczne. Jeśli z jakiegoś powodu darktable nie zakończy poprawnie obliczeń GPU, zwykle wykryje awarię i automatycznie (i niewidocznie) powróci do przetwarzania przez procesor.