Institut für Mikroelektronische Systeme Studium Studien- & Abschlussarbeiten Abgeschlossene Arbeiten
Implementierung und Evaluation einer Bewegungsschätzung für Fahrassistenzsysteme auf einem Multicore Mobil-Prozessor SoC

Implementierung und Evaluation einer Bewegungsschätzung für Fahrassistenzsysteme auf einem Multicore Mobil-Prozessor SoC

Betreuung:  Arndt, Jakob
Student/in:  Behmann, Nicolai
Jahr:  2014
Laufzeit:  01.04.2014-
Ist abgeschlossen:  ja

Am Institut für Mikroelektronische Systeme werden im Rahmen eines Forschungsvorhabens im Bereich kamerabasierte Fahrassistenz unterschiedliche Hardware-Plattformen auf ihre Eignung zur algorithmischen Umsetzung untersucht. Als exemplarische Algorithmen werden derzeit der Semi-Global Matching (SGM) Algorithmus zur Entfernungsbestimmung mit Stereokamera-Systemen und der Histograms of Oriented Gradients (HOG) Algorithmus zur Fußgängererkennung betrachtet. Dabei werden unterschiedliche Multi-Core Systeme als potentielle Plattform in Betracht gezogen. Es werden Laufzeiteigenschaften und Plattformparameter von stromsparenden eingebetteten Systemen bis hin zu leistungsstarken High-End Prozessoren analysiert, um Gesetzmäßigkeiten herauszustellen.

Ziel bei der Entwicklung von paralleler Software für Multicore-Prozessoren ist es, eine portable Lösung zu implementieren, die dennoch möglichst gut die vorhandenen Hardware-Ressourcen der jeweiligen Zielplattform ausnutzt. Dazu ist eine Parallelisierung auf unterschiedlichen Ebenen (Task- und Datenparallelität) notwendig. Da parallele Prozesse jedoch ein plattformabhängiges, nicht-deterministisches Laufzeitverhalten aufweisen, ist für deren Programmierung einige Erfahrung notwendig, um typische Programmierfehler (z.B. Deadlocks, Race-Conditions und False-Sharing) zu vermeiden. Für die Algorithmenklasse der videobasierten Fahrassistenz werden daher am Institut Bausteine und Werkzeuge zur plattform- und frameworkunabhängigen Implementierung und Analyse des Laufzeitverhaltens entwickelt. Eine aufkommende und relevante Prozessorklasse stellen hier leistungsstarke Multicore-Prozessoren für den mobilen Anwendungsbereich dar. Beispielsweise bietet der Samsung Exynos 5 Octa insgesamt acht heterogene Arm-Prozessorkerne zur Verfügung. Ebenfalls ist eine datenparallele Programmierung mit SIMD-Operationen durch die integrierte NEON-Einheit möglich.

Herr Behmann erhält die Aufgabe, im Rahmen einer Fallstudie auf einem Multicore-Mobilprozessor SoC, als ergänzenden Fahrassistenzalgorithmus, eine Bewegungsschätzung zu implementieren. Dabei sollen zunächst nach einer Einarbeitungszeit in parallele Programmierung, die Einsatzmöglichkeiten von (Cross-)Compilern und Programmiersprachenerweiterungen (z.B. Vektorisierungs-Intrinsics oder CilkPlus) im Hinblick auf Portabilität und effektive Ressourcenausnutzung für die Zielplattform untersucht werden. Anschließend soll mithilfe der zuvor ausgewählten Werkzeuge ein Block-Matching Bewegungsschätzungsalgorithmus implementiert werden. Als Abschluss der Arbeit wird eine Analyse der aktuellen Verfügbarkeit und Anwendbarkeit von Tools und Methodiken zur Implementierung und Analyse (externe, sowie am Institut entwickelte) angestrebt. Des Weiteren soll evaluiert werden, welche plattformspezifischen Optimierungen nötig sind, um eine effektive Ressourcenausnutzung der Plattform zu gewährleisten. Auf eine gute Dokumentation des C++ Codes ist zu achten. Die eingereichten Exemplare, sowie die Ergebnisse der Arbeit bleiben Eigentum des Instituts.