Moderne Bildverarbeitungs-Software verteilt die Aufgaben zwischen CPU und GPU

Die GPU als Co-Prozessor der CPU

4. Februar 2011, 21:49 Uhr | Andreas Knoll
Diesen Artikel anhören

Fortsetzung des Artikels von Teil 3

Martin Kersting, Stemmer Imaging: »Leistungsstarke 'Rechenknechte'«

Martin Kersting, Stemmer Imaging
Martin Kersting, Stemmer Imaging
© Stemmer Imaging

Martin Kersting (Stemmer Imaging) über GPUs in IBV-Systemen:

»GPUs und Grafikkarten bieten eine Reihe herausragender Vorzüge, die sie für den Einsatz in der Bildverarbeitung qualifizieren. Unter anderem sind sie exzellent als leistungsfähige 'Rechenknechte’ geeignet, erlauben die Verarbeitung von in Pipelines organisierten Operatoren, haben ihre Funktionen häufig in Hardware implementiert und arbeiten asynchron zur CPU. Sie bieten damit also Rechenleistung an, die sonst nutzlos im System brachliegen würde. Zudem ist die Rechenleistung einer GPU meist ungleich höher als die einer CPU, und die Speicheranbindung ist durch höhere Taktraten und breite Busse erheblich leistungsfähiger. GPUs sind für die Verarbeitung von Bildern optimiert, was sie besonders interessant für rechenintensive Bildverarbeitungs-Operationen macht.

CPUs bieten im Gegensatz zu GPUs einen schnellen, wahlfreien Zugriff auf den Speicher, während GPUs die Bilddaten als Stream benötigen. Zur Verarbeitung müssen die Bilddaten zunächst zur GPU und nach der Berechnung wieder zurück zum Host transferiert werden, wodurch eine Verzögerung zwischen Bildaufnahme und Bereitstellung des Ergebnisses entsteht. Für viele Anwendungen stellt dies jedoch kein Problem dar.

Um den Overhead durch den Transfer zu minimieren, ist es sinnvoll, die Anzahl der Transfers so gering wie möglich zu halten und nicht nur einzelne Operatoren auf die GPU zu übertragen. In den GPU-Systemen von Stemmer Imaging setzen wir dies in der Regel so um, dass wir die Bilddaten einmal in die GPU transferieren und dort dann alle Operatoren in einer Pipeline hintereinander ausführen, bevor der Rücktransfer erfolgt. Diese Vorgehensweise verschafft uns einen deutlichen Vorteil gegenüber Systemen, die einzelne Operatoren mit Hilfe der GPU beschleunigen und dabei jeweils einen Transfer zur GPU und von ihr zurück umfassen.

Der wesentliche Vorteil von FPGAs besteht darin, dass die Daten 'on the fly’ bearbeitet werden können, dass also keine nennenswerte Verzögerung eintritt. Allerdings braucht man zur Nutzung von FPGAs spezielle, teure und komplizierte Entwicklungs-Tools und ein weitreichendes Expertenwissen. Bei einem Wechsel der Hardware muss außerdem unter Umständen wieder von vorne mit der Programmierung begonnen werden. Aus diesem Grund sind FPGAs nur unter ganz bestimmten Voraussetzungen eine sinnvolle Lösung in der Bildverarbeitung.

Im Gegensatz dazu ist die GPU-Unterstützung zumindest bei unseren Systemen mittels DirectX im Betriebssystem integriert. Der Anwender kann so auf wechselnde Hardware schnell und einfach reagieren, ohne neu kompilieren zu müssen. Hier profitiert die Bildverarbeitung vom großen Markt der Spiele-Industrie.«

Anbieter zum Thema

zu Matchmaker+

  1. Die GPU als Co-Prozessor der CPU
  2. Wie verteilt die Software die Aufgaben?
  3. Langzeitverfügbarkeit von GPUs
  4. Martin Kersting, Stemmer Imaging: »Leistungsstarke 'Rechenknechte'«
  5. Alexander Balz, IDS: »Für sequentielle Abläufe ungeeignet«
  6. Dr. Wolfgang Eckstein, MVTec: »Besonders hohe Verarbeitungsgeschwindigkeit«
  7. Michael Noffz, Silicon Software: »Parallele Verarbeitung als Stärke«

Lesen Sie mehr zum Thema


Das könnte Sie auch interessieren

Jetzt kostenfreie Newsletter bestellen!

Weitere Artikel zu Kameras

Weitere Artikel zu Grafikprozessoren

Weitere Artikel zu Mikroprozessoren