Der Hintergrund
Die Verarbeitung von hochauflösenden Bildern ist eine herausfordernde Aufgabe, die moderne Rechner erfordert. Hinsichtlich Speicherbedarf und Prozessorleistung kann bereits die optimale Bearbeitung eines typischen 15, 20 oder 25 Megapixel Bilds einen Rechner schnell an seine Grenzen bringen.
Die Anforderungen von darktable sind da keine Ausnahme. Alle Berechnungen werden in 4 x 32-Bit Gleitkommazahlen ausgeführt. Das ist langsamer als die “gewöhnliche” 8 oder 16 bit Integer-Algebra, aber es eliminiert die Probleme mit Tonwertabbrüchen oder dem Verlust von Informationen.
Umfangreiche Optimierungen wurde realisiert, um darktable so schnell wie möglich zu machen. Falls du eine neue Version von darktable auf einem modernen Computer laufen hast, kann es sein, dass du keine “Langsamkeit” ausmachen kannst. Es gibt aber Umstände und bestimmte Module, wo du merkst (oder hörst, wenn der Ventilator des Computers heult), wie sehr der Multikernprozessor zu kämpfen hat.
Hier kommt OpenCL ins Spiel. Durch OpenCL steht darktable die enorme Leistungsfähigkeit moderner Grafikkarten zur Verfügung. Die Anforderungen von Spielern an den Detailreichtum von 3D-Spielen hat, neben dem Krypto-Mining, die Entwicklung von Grafikprozessoren (GPUs) stark forciert. AMD, NVIDIA und Co. haben umfangreiche Ressourcen in die Deckung dieser Nachfrage gesteckt. Das Ergebnis sind moderne Grafikkarten mit hoch-parallelisierten GPUs, die auch bei hohen Frame-Raten sehr schnell Oberflächen und Texturen berechnen können.
Du bist kein Spieler und benötigst diese Leistung gar nicht? Nun, in darktable wird sie auch dir nützen. Bei hoch-parallelisierten Gleitkommaberechnungen sind heutige GPUs deutlich schneller als CPUs, vor allem wenn dieselben Prozessschritte millionenfach durchgeführt werden müssen. Typische Anwendung: Verarbeitung von Megapixelbildern.