urządzenia amd/ati

Podczas gdy urządzenia NVIDIA i większość nowoczesnych urządzeń AMD / ATI będą na ogół działać od razu, więcej do zrobienia pozostaje w przypadku starszych kart graficznych AMD / ATI, a mianowicie tych wcześniejszych niż seria HD7xxx. Zaczyna się to od tego, że te urządzenia będą zgłaszać tylko część całkowitej pamięci GPU do darktable. W przypadku urządzenia o pojemności 1 GB zwykle wynosi to tylko 512 MB, wartość, którą darktable w standardowej konfiguracji odrzuci jako niewystarczającą. W konsekwencji urządzenie nie będzie używane.

W sieci możesz znaleźć wskazówkę, jak ustawić zmienną środowiskową GPU_MAX_HEAP_SIZE na 100, jeśli tak się stanie. W rzeczywistości spowoduje to, że sterownik AMD/ATI zgłosi pełną zainstalowaną pamięć do darktable. Jest jednak problem. Na wielu (większości?) kartach spowoduje to przydzielenie buforów na twoim komputerze (host), a nie na karcie graficznej! W takim przypadku wszystkie dostępy do pamięci będą musiały przejść przez wolną magistralę PCIe. Będzie to 10 razy lub więcej wolniejsze i sprawi, że OpenCL będzie dla ciebie bezużyteczny, zwłaszcza podczas eksportowania plików.

Inną zmienną środowiskową, zmieniającą zachowanie sterownika jest GPU_MAX_ALLOC_PERCENT. Możesz ustawić to na 100, aby umożliwić przydział pamięci 1 GB na karcie AMD/ATI. Problem polega na tym, że prędzej czy później spowoduje to awarię darktable.

Dlatego zalecamy pozostawienie tych ustawień bez zmian. Często twoja karta zostanie rozpoznana z 512 MB pamięci i maksymalnym rozmiarem alokacji 128 MB. Istnieją trzy parametry konfiguracyjne, które możesz ustawić w $HOME/.config/darktable/darktablerc, aby wszystko działało. Oto szczegóły:

opencl_memory_requirement
Ustaw ten parametr na 500, aby darktable zaakceptował twoją 512MB pamięć graficzną jako wystarczającą.
opencl_memory_headroom
Ten parametr kontroluje, ile pamięci graficznej (z tej zgłaszanej przez twoją kartę) darktable powinien pozostawić nietknięte do użytku przez sterownik i wyświetlacz. Ponieważ w przypadku urządzeń AMD/ATI i tak możemy uzyskać tylko połowę dostępnej pamięci RAM, bezpiecznie jest ustawić ją na zero, aby całe 512 MB mogło być wykorzystane przez darktable.
opencl_avoid_atomics
Operacje atomowe w OpenCL to specjalna metoda synchronizacji danych. Są używane tylko w kilku jądrach. Niestety, niektóre (większość?) urządzeń AMD/ATI bardzo wolno przetwarzają atomy. Lepiej jest przetwarzać moduły, których dotyczy problem, na procesorze, niż akceptować bardzo wolną ścieżkę kodową GPU. Dlatego ustaw ten parametr na TRUE, jeśli doświadczasz powolnego przetwarzania modułów, takich jak cienie i światła, monochromatyczność, kontrast miejscowy lub globalna mapa tonów (przestarzałe) lub jeśli system się zawiesza.

Zalecenia te nie dotyczą nowszej serii Radeon HD7xxx z architekturą GCN. Poza tym, że wspomniane karty są bardzo szybkie pod względem obliczeń GPU, zwykle działają po wyjęciu z pudełka, chociaż możesz rozważyć wypróbowanie niektórych opcji optymalizacji wydajności, opisanych w poniższej sekcji.

translations