za kulisami
Przetwarzanie zdjęć w wysokiej rozdzielczości jest złożonym zadaniem, wymagającym dobrego komputera. Rozpatrując pamięć i moc obliczeniową procesora, zaawansowana obróbka 15-, 20- czy 25-megapikselowego zdjęcia może szybko doprowadzić twój komputer na skraj jego możliwości.
Wymagania darktable nie są wyjątkiem. Wszystkie obliczenia są wykonywane na 4 x 32-bitowych liczbach zmiennoprzecinkowych. Jest to wolniejsze od „zwykłej” 8 lub 16-bitowej algebry liczb całkowitych, ale eliminuje wszystkie problemy z przerwami tonacji lub utratą informacji.
Podjęto wiele optymalizacji, aby uczynić darktable tak szybkim, jak to możliwe. Jeśli uruchomisz aktualną wersję darktable na nowoczesnym komputerze, możesz nie zauważyć żadnej powolności. Istnieją jednak warunki i pewne moduły, w których poczujesz (lub usłyszysz – wycie wentylatora procesora) ciężar zadań, z którymi musi się zmagać twój biedny wielordzeniowy procesor.
Tu właśnie pojawia się OpenCL. Pozwala ona darktable na wykorzystanie ogromnej mocy nowoczesnych kart graficznych. Zapotrzebowanie graczy na bardzo szczegółowe światy 3D we współczesnych strzelankach (a także kopanie kryptowalut) sprzyja szybkiemu rozwojowi GPU. Aby sprostać tym wymaganiom, AMD, NVIDIA i spółka musiały włożyć ogromną moc obliczeniową w swoje procesory graficzne. Rezultatem są nowoczesne karty graficzne z procesorami graficznymi, wysoce zoptymalizowanymi do pracy równoległej, które mogą szybko obliczać powierzchnie i tekstury przy dużej liczbie klatek na sekundę.
Nie jesteś graczem i nie wykorzystujesz tej mocy? Cóż, w takim razie powinieneś przynajmniej użyć go w darktable! W zadaniach wysoce zaawansowanych równoległych obliczeń zmiennoprzecinkowych nowoczesne procesory graficzne są znacznie szybsze niż procesory. Jest to szczególnie ważne, gdy chcesz powtórzyć te same kroki przetwarzania miliony razy. Typowy przypadek użycia: przetwarzanie obrazów o wysokiej rozdzielczości.