Parallel und in Echtzeit

Parallel und in Echtzeit

Bildverarbeitung auf APUs

Die Bildregistrierung, die Erzeugung stabilisierter Bildabfolgen, übernehmen häufig Digitale Signalprozessoren oder Field Programmable Gate Arrays. Das Unternehmen CASS hat einen anderen Weg eingeschlagen und eine videobasierte Bildregistrierungslösung entwickelt, die parallel abläuft und damit leistungsfähiger ist, als bisherige Lösungen auf Basis von DSPs und FPGAs. APUs vereinen dabei die parallele Verarbeitungskapazität eines Grafikprozessores mit der seriellen Verarbeitungskapazität einer CPU. Entsprechende Leistungen fordert z.B. die medizinische Bildverarbeitung bei der Endoskopie.
Das israelische Unternehmen Company for Advanced Supercomputing Solutions (CASS) erhielt die komplexe Aufgabenstellung ein kompaktes System für die Bildregistrierung zu entwickeln, das einen Videostream mit 120 Frames pro Sekunde bei 720p Auflösung inklusive Bildfilter zuverlässig verarbeiten kann. Zum Einsatz kommt eine solche Lösung bei der Bildstabilisierung von Videos, die auch aus unterschiedlichen Quellen und Perspektiven stammen können. Die Bildregistrierung erlaubt zudem, Bilder oder Videos mit unterschiedlichem Informationsgehalt und aus unterschiedlichen Quellen auszurichten und kongruent übereinander zu legen, um die Darstellung anzureichern. Einsatzgebiete sind die medizinische Bildverarbeitung bei der Endoskopie oder das maschinelle Sehen, beispielsweise für Pick & Place-Applikationen. Dabei stellen die ständig zunehmenden Frameraten und Auflösungen aktueller Bild- und Videosensoren die Bildverarbeitungshardware vor immer größere Herausforderungen: Zum einen nimmt die Menge der zu verarbeitenden Daten drastisch zu, und zum anderen können bei hohen Auflösungen selbst kleinste Erschütterungen die Bildqualität beeinträchtigen. Deshalb ist es nötig, die hochauflösenden Bilddaten vor der Bilderkennung zunächst zu stabilisieren und zu optimieren. In dem konkreten Fall erfolgte die Bildregistrierung bislang über Digitale Signalprozessoren (DSP) bzw. Field Programmable Gate Array (FPGA). Die nun anfallenden Datenraten überfordern jedoch diese Hardware-Komponenten. Da das System für die Bildregistrierung zudem auch mobil zum Einsatz kommen soll und nur beschränkte Energiereserven zur Verfügung stehen, galt zusätzlich, die Anforderungen in einer kompakten Lösung mit geringer Stromaufnahme umzusetzen. Abgesehen von den Vorgaben für Baugröße und Leistungsaufnahme gab es für CASS allerdings keine weiteren Einschränkungen in Bezug auf Systemdesign und Prozessorarchitektur. Durch die richtigen Anpassungen der Algorithmen und die Wahl der passenden Architektur arbeitet die Applikation in Echtzeit. Die Lösung nutzt statt DSPs oder FPGAs eine Kombination aus paralleler und serieller Datenverarbeitung auf einer heterogenen Systemarchitektur von AMD. Sie kann damit auch als Referenz für eine neue DSP-Generation für Sensor- und Computer-Vision-Plattformen dienen.

Grafikprozessoren statt DSP und FPGA

Das Unternehmen setzt seit Jahren Grafikprozessoren (GPU) von AMD ein. Programmierbare GPUs bieten entscheidende Leistungsvorteile in Applikationen mit hoher Parallelität, wie der Bildverarbeitung. „Viele Industrien nutzen Grafikprozessoren in ihren Videoprojekten“, erklärt Mordechai Butrashvily, CEO und CTO bei CASS. „Aber uns war klar, dass eine Lösung die einzig auf eine dedizierte GPU setzt, einfach nicht die eng gesteckten Anforderungen unseres Auftraggebers an Leistungsaufnahme und Baugröße erfüllen kann.“ Butrashvily und sein Team untersuchten eine Auswahl an möglichen Lösungen und erkannten, dass ihre Optionen sehr begrenzt waren: Nur wenige Hersteller können die geforderte Leistung liefern, ohne dass Kompromisse bei Größe oder Strombedarf einzugehen waren. Die Ergebnisse ihrer Untersuchungen führten das Bildverarbeitungsunternehmen schließlich zur AMD Embedded G-Series APU. Accelerated Processing Units (APU) vereinen die parallele Verarbeitungskapazität einer GPU mit der seriellen Verarbeitungskapazität einer CPU in einer kompakten und energieeffizienten Lösung. „Wir evaluierten mehrere Lösungen, doch keine andere reichte in Sachen Größe, Stromaufnahme und Funktionsumfang an das Leistungsniveau der APU heran. Und kein anderer bietet eine Lösung mit ähnlicher Leistung pro Watt“, erläutert Butrashvily. „Ein zusätzlicher Vorteil der AMD Embedded G-Series APUs ist, dass sie als Embedded Lösung verkauft werden. Das bedeutet, dass sie auch hinsichtlich Langzeitverfügbarkeit und Haltbarkeit unter rauen Umgebungsbedingungen den Anforderungen des Embedded Marktes gerecht werden.“

Echtzeiterkennung durch paralleles Rechnen

Die AMD G-T56N APU erfüllte die eng gesteckten Anforderungen des Systems an die Stromaufnahme und bot gleichzeitig die benötigte Leistungsstärke für die Bildregistrierung. Da der Prozessor weitere Filterfunktionen durchführen musste, um die Ergebnisse zu optimieren, musste CASS sicherstellen, dass genügen Leistungskapazitäten verfügbar waren, um die zusätzlichen Algorithmen in Echtzeit auszuführen. CASS nutzte die Schnittstelle Open Computing Language (OpenCL), um die beschleunigten Algorithmen als Bausteine zu implementieren. In einem Prototypen diente die APU als digitaler Signal- und Bildprozessor und war an einen Sensor angeschlossen. „Wir testeten die APU, um zu sehen, ob wir die vom Sensor geforderte Echtzeit-Leistung erreichen“, sagt Butrashvily. „Dabei gibt es keinen Spielraum für Latenzen: Das Signal muss mit minimale Verzögerung zu dem Zeitpunkt verarbeitet werden, in dem es empfangen wird.“ Der komplette Algorithmus wurde in OpenCL umgesetzt. Die APU dient dabei als Host-Manager/Koordinator und Frame-Grabber. Mit dem Ziel, eine Verarbeitungskapazität schneller als Echtzeit zu erreichen, nutzte das Unternehmen paralleles Processing für intensive, dichte Matrizenoperationen wie GEMM (Matrizenmultiplikation), GEMV (Matrix-Vektor Multiplikation) und GESV (Inverse Matrix). Dies gelang auf der parallelen Recheneinheit bis zu 130 Mal schneller, als mit den Basic Linear Algebra Subprograms-Bibliotheken (AMD-BLAS) auf dem x86er-Prozessor alleine. Um die numerische Stabilität zu verifizieren, die insbesondere wichtig für lang laufende, kritische Operationen ist, wurden die arithmetischen Ergebnisse der APU mit denen der x86er-CPU entsprechend des IEEE754 Standards verglichen. Es ergab sich eine hohe Konsistenz und Genauigkeit, sodass sichergestellt war, dass das System eine hohe numerische Stabilität erreicht. Darüber hinaus verkomplizierten zusätzliche Bildoptimierungsfilter den Prozess, sodass die Laufzeitverbesserung in der Summe im Bereich von Faktor 20 bis 30 lag.

Seiten: 1 2Auf einer Seite lesen

AMD Advanced Micro Devices GmbH
www.amd.com/de

Das könnte Sie auch Interessieren