GPU schlägt CPU - STEMMER IMAGING

Werbung
Bildverarbeitungskomponenten
GPU schlägt CPU
Bildverarbeitung auf der Grafikkarte – Geschwindigkeit enorm gesteigert
Den technischen Vergleich selbst mit den
schnellsten am Markt verfügbaren, in der
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 enthielten
Grafikkarten bis vor kurzer Zeit mehrere
Es gibt viele Wege, die Verarbeitungsgeschwindigkeiten in der Bildverarbeitung zu steigern. Nun gibt
es eine neue Möglichkeit: 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 ständig 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.
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
48 IndustrialVISION 2/2007
hat ihre Vor- und Nachteile, doch eines ist
allen gemeinsam: Sie nutzen nicht den in
der Regel schnellsten vorhandenen Prozessor im System, um die BildverarbeitungsAlgorithmen 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 hohen Stückzahlen sowie die zugehörigen Gewinne, um die Entwicklung
der Grafik-Bausteine weiter voranzutreiben.
Davon profitieren nun auch andere Industriezweige wie z. B. die Bildverarbeitung.
Die Nase vorn
Den technischen Vergleich selbst mit den
schnellsten am Markt verfügbaren, in der
Bildverarbeitung gebräuchlichen FPGAs
entscheiden Grafik-Prozessoren in einigen
Kriterien eindeutig für sich. 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.
Dieser Geschwindigkeitszuwachs steht
dem Bildverarbeitungs-Anwender jedoch
„So werden alle Prozessoren
im System optimal genutzt“
Martin Kersting
Prozessoren für verschiedene Aufgaben. Mit
der Neuentwicklung von Grafik-Prozessoren
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
Mio. Transistoren des GeForce 8800-Prozessors kann dynamisch für Operationen wie
Geometrie- oder Pixel-Berechnungen allokiert 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
Martin Kersting, Leiter der Entwicklung bei
Stemmer Imaging
Bildverarbeitungskomponenten
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.“
Geschwindigkeit mal fünf
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 Spezial-Hardware auskommt“, beschreibt Kersting den Vorteil der
Technologie.
Um dem Bildverarbeitungs-Entwickler
die Vorteile der GPU-Bildverarbeitung auf
möglichst effektive Weise zu erschließen,
haben die Entwickler des Puchheimer Bildverarbeitungs-Spezialisten diese Möglichkeit nun in die Software-Bibliothek Common Vision Blox (CVB) des Unternehmens
integriert. „Wir haben dazu über 40 neue
Funktionen in CVB aufgenommen, die aus
einer CVB-Applikation heraus aufgerufen
werden können“, so Kersting.
Derzeit umfassen diese Funktionen u.a.
Im direkten Vergleich
zwischen einem
2,4 GHz Intel Core 2
Duo-Prozessor und
einer Nvidia 8800Grafikkarte erledigte
die GPU die Bildverarbeitungs-Aufgabe
rund fünf mal schneller
Vergleich FPGA - GPU
FPGA
GPU
Anzahl Prozessoren
Hardware-codiert
128
Taktfrequenz
100 MHz**
1,35 GHz
Speicherbreite
ca. 100 Bit
384 Bit
Speichertakt
-
900 MHz
On-board-Speicher
256 MByte***
>512 Mbyte
Datenrate
220 MByte***
87 GByte/s
Skalierbar
Mit proprietärem
Bus
Ja, SLI
Asynchrone Bearbeitung
Ja
Ja
Daten-Verzögerung
0 Bilder
bis zu 4 Bilder
* NVIDIA G8000-Serie, ** für eine 3x3-Filterung XILINX Virtex II, *** gebräuchliche FPGA-Hardware
Aufgaben wie die Bildfilterung, Punkt-Operationen zwischen zwei Bildern, die Parallelverarbeitung von vier Monochrom-Bildern, Transformationen vom RGB- ins HSIsowie vom Bayer- ins RGB-Format, so genannte Flat Field-Korrekturen sowie
Bild-Rotationen und -Skalierungen.
Welcher Geschwindigkeitszuwachs mit
der neuen Technologie möglich ist, haben
Kersting und sein Team inzwischen mehrfach getestet. So wurden Bilder von einer
monochromen CCIR-Kamera vom Typ JAI
A11 an einem PC-basierten System mit ei-
ner 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/s 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 × 5-Filter. Die Nvidia 8800 war dabei rund
fünf mal schneller.
WWW
STEMMER IMAGING
www.vfmz.de/175502
 Weitere Informationen 8 www.vfmz.de/171162
Weitere Informationen 8 www.vfmz.de/171172 
"
#!
IndustrialVISION 2/2007 49
Herunterladen