Seitdem moderne Grafikkarten immer leistungsfähiger werden, ist es bei rechenintensiven Aufgaben eigentlich eine kräftige Ressourcenverschwendung nicht auf die Rechenpower der schnellen Grafikchips zurückzugreifen. Diese Idee greift schon länger OpenCL als Schnittstelle zwischen Haupt-, Grafik- und anderen digitalen Signalprozessoren für sogenannte uneinheitliche Parallelrechner auf. Von Apple, AMD, Intel und Nvidia entwickelt, unterstützen aktuelle Grafikchips diese Technik eigentlich auch unter Linux von Haus aus, nur muss natürlich auch die Software diese unterstützten. Mit einem Intel-Grafikchip im Rechner und Aftershot Pro als Raw-Bildbearbeitung lässt sich die Rechenzeit um mehr als 40 Prozent reduzieren.

Intels Implementierung von OpenCL fasst das Beignet Projekt zusammen. Für Beignet braucht es allerdings einen Rechner mit Chips aus der 3. Generation der Intel-Core-Prozessoren oder später, also mindestens einen Ivy Bridge als Hardware, oder eben noch aktuellere CPUs aus der Haswell- oder Broadwell- aka Rockwell-Reihe. Seid ihr euch über euren Rechner nicht im Klaren, dann lest mit cat /proc/cpuinfo den CPU-Namen aus und schlagt schnell in der Wikipedia nach, zu welcher Generation der Prozessor in eurem Computer gehört. Ich habe Beignet hier mit einem Intel Core i5-3470T mitsamt Intel HD Graphics 2500 aus der Ivy-Bridge-Klasse getestet. Mit einem Haswell werdet ihr in meinen Augen noch bessere Ergebnisse erzielen.

$ cat /proc/cpuinfo | grep name
model name : Intel(R) Core(TM) i5-3470T CPU @ 2.90GHz
model name : Intel(R) Core(TM) i5-3470T CPU @ 2.90GHz
model name : Intel(R) Core(TM) i5-3470T CPU @ 2.90GHz
model name : Intel(R) Core(TM) i5-3470T CPU @ 2.90GHz

Beignet findet ihr seit Jessie in den Paketquellen von Debian. Bei Ubuntu gibt es OpenCL in Form von Beignet seit Trusty in den Paketquellen, allerdings nur in einer sehr alten Version. Wenn ihr unter Ubuntu mit Intels OpenCL-Implementation arbeiten möchtet, würde ich daher eher zu einem Ubuntu 15.04 „Vivid Vervet“ greifen. Bei Arch muss man sich um sowas natürlich keine Gedanken machen, allerdings muss man zur Installation von Beignet auf das Arch User Repository zurückgreifen. Dabei gilt es zu beachten, dass das Paket llvm aktuell nicht in den Abhängigkeiten aufgeführt wird. Ohne dieses bricht der Build-Prozess allerdings ab. Installiert daher das Paket vor der Installation von Beignet manuell.

### Beignet unter Arch Linux installieren
$ sudo pacman -S llvm
$ pacaur -S beignet clinfo
### Beignet unter Debian/Ubuntu installieren
$ sudo apt-get install beignet clinfo

Anschließend könnt ihr mit einem Aufruf von clinfo direkt testen, ob OpenCL auf eurem System nun auch funktioniert. Irgendwelche Einstellungen im Xserver oder andere Treiber sollten, zumindest auf Systemen mit Intel-Chipsätzen ohne eine dedizierte Grafikkarte, nicht nötig sein.

$ clinfo
Number of platforms 1
Platform Name Intel Gen OCL Driver
Platform Vendor Intel
Platform Version OpenCL 1.2 beignet 1.0.3
Platform Profile FULL_PROFILE
Platform Extensions cl_khr_global_int32_base_atomics cl_khr_global_int32_extended_atomics cl_khr_local_int32_base_atomics cl_khr_local_int32_extended_atomics cl_khr_byte_addressable_store cl_khr_icd
Platform Extensions function suffix Intel
[...]

Das von Corel vertriebene RAW-Bildbearbeitungsprogramm AfterShot Pro unterstützt nun OpenCL schon seit mehreren Versionen. Die Ergebnisse des OpenCL-Turbos sind beachtlich. Tom’s Hardware hatte Mitte 2012 in einem ausführlichen Bericht eine Beschleunigung des Exports in das JPG-Format um den Faktor 2 ermittelt. Damals allerdings noch ohne Intel-Grafikkarten und nur mit AMD und Intel als Hardware.

Es lohnt sich daher einen Blick auf AfterShot zu werfen: Damit AfterShot auf OpenCL zurückgreift, müsst ihr im Programm unter Datei | Einstellungen | Hardware-Beschleunigung die Option OpenCL verwenden aktivieren und daraufhin das Programm neu starten. Führt AfterShot hier nicht eure Grafikkarte als OpenCL-Provider auf, dann hat etwas mit der Installation von Beignet nicht funktioniert. Bei Systemen mit anderen Grafikkarten müsst ihr euch selber in Richtung OpenCL und Nvidia oder AMD schlau machen.

Damit Aftershot Pro auch von Intel-Grafikchips profitieren kann, muss die passende Software installiert sein.
Damit Aftershot Pro auch von Intel-Grafikchips profitieren kann, muss die passende Software installiert sein.

Neben der Haupt-Einstellung müsst ihr unbedingt dem Schieberegler OpenCL-Nutzung Beachtung schenken. Mit diesem bestimmt ihr, wie stark AfterShot Pro bei der Berechnung der Bilddaten auf die Rechenfähigkeiten der Grafikkarte zurückgreifen soll: Mehr ist hier allerdings nicht immer von Vorteil, besonders bei Systemen mit Intel-Grafik. Zum Test sucht ihr euch am besten ein definiertes Set an RAW-Bildern heraus und exportiert dieses mit einem Druck auf [F] ins JPG-Format. AfterShot zeigt die Dauer des Vorgangs dann am Ende über ein kleines Popup an.

  • Aus: 1:22,5 s
  • Minimum: 58,5 s
  • Niedrig: 1:29,6 s
  • Standard: 1:27,2 s
  • Hoch: 1:23,4 s

Notiert euch die Zeit, geht wieder in die Einstellung und stellt die OpenCL-Nutzung auf den nächsten Wert. Startet AfterShot daraufhin neu, ruft erneut den Export der selben Daten auf und notiert euch wieder das Ergebnis. Wiederholt den Vorgang nun so lange, bis ihr die optimalen Einstellungen ermittelt habt. Die Intel HD Graphics 2500 aus meinem Core i5 liefert das beste Ergebnis, wenn ich die OpenCL-Nutzung nach ganz links auf Minimum setze. Mit den anderen Settings wird AfterShot Pro auf meinem System eher langsamer als schneller. Es gilt die Fausregel: Je mehr Power eure Grafikkarte besitzt, desto höher solltet ihr den Regler ziehen können.

AfterShot Pro zeigt die Dauer eines längeren Prozess als kleines Popup an.
AfterShot Pro zeigt die Dauer eines längeren Prozess als kleines Popup an.

Gegenüber dedizierten Grafik-Chips von AMD oder Nvidia kommt Intels OpenCL-Implementation auf meinem „langsamen“ Core i5 mit Intel HD Graphics 2500 zwar nicht auf einen Geschwindigkeitszuwachs um Faktor 2, allerdings wird der Berechnungsvorgang dennoch deutlich schneller. Besonders weil die Installation von Beignet nicht wirklich viel Aufwand macht und in der Regel ohne Komplikationen gelingen sollte, lohnt sich der Beschäftigung mit dem Thema.

1 Kommentar

Kommentieren Sie den Artikel

Bitte geben Sie Ihren Kommentar ein!
Bitte geben Sie hier Ihren Namen ein