GPU schlägt CPU - STEMMER IMAGING

Werbung
M ACHINE V ISION
Bildverarbeitung auf der Grafikkarte
GPU schlägt CPU
Es gibt viele Wege, die Verarbeitungsgeschwindigkeiten in der Bildverarbeitung zu steigern. In der neuesten Version von Common Vision
Blox hat Stemmer Imaging eine neue Möglichkeit erschlossen: Teile der
Verarbeitung können auf die Grafikkarte des PC-Systems ausgelagert
werden, was die Bildverarbeitungs-Geschwindigkeit um bis zu Faktor
10 steigert.
Die Abarbeitung von Bildverarbeitungs-Algorithmen ist meist sehr rechenaufwändig.
In vielen Fällen reicht die laufend zunehmende Performance der in leistungsfähigen
PCs eingesetzten CPUs jedoch aus, um die
Aufgaben in der vorgegebenen Zeit zu bewältigen. Dennoch sind die führenden Hersteller von Hard- und Software für die Bildverarbeitung ständig auf der Suche nach
neuen, noch schnelleren Wegen, um sich
auch für solche Geschwindigkeits-Anforderungen zu rüsten, die derzeit noch unerreichbar scheinen.
Martin Kersting, Leiter
der Entwicklung bei
Stemmer
Imaging
Ungenutzte GPU
Zu den üblichen Methoden der Geschwindigkeitssteigerung in der Bildverarbeitung zählen
die Verteilung der Rechenaufgaben auf mehrere Dual- und Quad-Prozessoren oder auch
der Einsatz von spezialisierten FPGAs. Jede
dieser Technologien hat ihre Vor- und Nachteile, doch eines ist allen gemeinsam: Sie nutzen nicht den in der Regel schnellsten vorhandenen Prozessor im System, um die Bildverarbeitungs-Algorithmen abzuarbeiten: den
Grafik-Prozessor der Grafikkarte, auch bekannt als GPU (Graphical Processing Unit).
Diese Rennmaschinen unter den Prozessoren haben in der Vergangenheit eine unglaubliche Entwicklung hinter sich gebracht. Getrieben wurde dies vor allem
durch die Spiele-Industrie, wo die Anforderungen an die grafische Darstellung von
Spielszenen und Bewegungen sehr stark zugenommen haben. Millionenfach verkaufte
Spielekonsolen sorgten für die nötige Nachfrage und hohe Stückzahlen sowie die zugehörigen Gewinne, um die Entwicklung der
Grafik-Bausteine weiter voranzutreiben.
Davon profitieren nun auch andere Indus-
Im direkten Vergleich zwischen einem 2,4 GHz Intel
Core 2 Duo-Prozessor und einer Nvidia 8800-Grafikkarte erledigte die
GPU die Bildverarbeitungs-Aufgabe rund fünf
mal schneller
38
QUALITY ENGINEERING 1-2/2008
triezweige wie z.B. die Bildverarbeitung.
Den technischen Vergleich selbst mit den
schnellsten am Markt verfügbaren, in der
Bildverarbeitung eingesetzten FPGAs entscheiden Grafik-Prozessoren in einigen Kriterien eindeutig für sich (siehe Tabelle). So
sind sie um Faktoren im Bereich von 10 bis
20 höher getaktet als übliche FPGAs und erreichen so in Verbindung mit den größeren
Speichermöglichkeiten
Datendurchsätze,
die bis zu 500 mal höher sein können als bei
üblichen FPGAs.
Neue Möglichkeiten
Dieser Geschwindigkeitszuwachs steht dem
Bildverarbeitungs-Anwender jedoch nicht
komplett zur Verfügung: Die Auslagerung
der Algorithmik auf den GPU-Baustein
führt zu einer Verzögerung des Datenstroms
von der Bildaufnahme bis zur Verarbeitung
der Daten. Trotz dieses Effekts sprechen
verschiedene Untersuchungen bei rechenintensiven Operationen von einem Performance-Zuwachs um den Faktor 2 bis 10
beim Einsatz der GPU statt der CPU, wobei
diese dann zudem parallel für andere Aufgaben genutzt werden kann.
Dass diese Technologie erst seit Kurzem für
die Bildverarbeitung nutzbar ist, hat zwei
wesentliche Gründe. Zum einen waren Grafikkarten bis vor kurzer Zeit mit mehreren
Prozessoren für verschiedene Aufgaben bestückt. Mit der Neuentwicklung von GrafikProzessoren wie z.B. dem GeForce 8800
von Nvidia oder ähnlichen Produkten z.B.
des Herstellers ATI hat sich dies geändert:
Ein Teil der 681 Millionen Transistoren des
GeForce 8800-Prozessors kann dynamisch
für Operationen wie Geometrie- oder PixelBerechnungen genutzt werden. Zum anderen erlaubt die PCIe-Anbindung einen
schnellen Datentransfer zwischen Host und
VGA-Karte.
„Die Architektur eines Grafik-Bausteins ist
immer sehr komplex“, erklärt Martin Kersting, Leiter der Entwicklung bei Stemmer
Imaging. „Die DirectX-API und der High
Level Shader Language (HLSL)-Compiler
von Microsoft zusammen mit einer Handvoll Funktionen in unserer Software-Bibliothek Common Vision Blox versetzt Entwickler von Bildverarbeitungs-Software jedoch in die Lage, Bilder zwischen Host und
GPU auszutauschen und somit alle Prozessoren im System optimal zu nutzen.“
Wie bereits angesprochen verursacht der Datenaustausch zwischen VGA-Karte und GPU
eine gewisse Verzögerung zwischen der Bildaufnahme und der Verarbeitung der Daten auf
der Grafikkarte. „Die geschickte Nutzung der
GPU-Bildverarbeitung kann dennoch dazu
führen, dass man selbst bei Anwendungen mit
extrem hohem Datendurchsatz ohne SpezialHardware auskommt“, beschreibt Kersting
den Vorteil der Technologie.
Deutlich schneller
Den technischen Vergleich selbst mit den
schnellsten am Markt
verfügbaren, in der
Bildverarbeitung eingesetzten FPGAs entscheiden Grafik-Prozessoren
in einigen Kriterien eindeutig für sich.
Um dem Bildverarbeitungs-Entwickler die
Vorteile der GPU-Bildverarbeitung auf möglichst effektive Weise zu erschließen, haben
die Entwickler des Puchheimer Bildverarbeitungs-Spezialisten Stemmer Imaging diese
Möglichkeit nun in die Software-Bibliothek
Common Vision Blox (CVB) des Unternehmens integriert. „Wir haben dazu einige neue
Funktionen in CVB aufgenommen, die aus
einer CVB-Applikation heraus aufgerufen
werden können“, so Kersting. Derzeit umfassen diese Funktionen unter anderem Auf-
gaben wie die Bildfilterung, Punkt-Operationen zwischen zwei Bildern, die Parallelverarbeitung von vier Monochrom-Bildern,
Transformationen vom RGB- ins HSI- sowie
vom Bayer- ins RGB-Format, so genannte
Flat Field-Korrekturen sowie Bild-Rotationen und -Skalierungen. Zur Optimierung der
Bilddatentransfers zwischen Hauptspeicher
und GPU können auch mehrere Algorithmen
durch die freie Programmierung über die
HLSL-Sprache direkt in der Grafikkarte
kombiniert werden.
NEUER VERANSTALTUNGSORT AB 2008
Neue Landesmesse Stuttgart
11.–13. März 2008
Welcher Geschwindigkeitszuwachs mit der
neuen Technologie möglich ist, haben Kersting und sein Team inzwischen mehrfach getestet. So wurden Bilder z.B. von einer monochromen CCIR-Kamera vom Typ JAI
A11 an einem PC-basierten System mit einer Nvidia 8800 Grafikkarte auf die Größe
von 2k x 2k Pixel umgerechnet und auf dem
PC-Monitor angezeigt. Gleichzeitig rechnete der Grafik-Prozessor mit 30 Bildern/Sekunde einen 3 x 3 Sobel-Filter auf dem Bild.
Im direkten Vergleich zwischen einem 2,4
GHz Intel Core 2 Duo-Prozessor und der
Nvidia 8800 rechneten beide Aufbauten einen 5 x 5-Filter.
Das Ergebnis zeigt in beeindruckender Weise die Möglichkeiten, die Common Vision
Blox in Zusammenarbeit mit der neuen
GPU-Technologie eröffnet: Die Nvidia
8800 war rund fünf mal schneller.
Stemmer Imaging, Puchheim
QE 526
www.stemmer-imaging.de
Die führende
Fachmesse Europas
für die Hersteller
von medizinischen
Produkten
8600_GM_MT08
GESPONSERT VON
Unter www.medtecstuttgart.com können Sie sich online
anmelden. Hier erhalten Sie außerdem ausführliche
Messeinformationen auf Englisch, Deutsch und Französisch.
Geben Sie bitte bei der Online-Anmeldung den Code "AB" an.
Herunterladen