Entwicklung von Inline-Profiling Methoden zur erweiterten Analyse des Laufzeitverhaltens paralleler Fahrassistenzalgorithmen
Betreuung: | Arndt, Jakob |
Student/in: | Lefherz, Tile |
Jahr: | 2013 |
Laufzeit: | 09.12.2013- |
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 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.
Da parallele Prozesse ein 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. Um das Laufzeitverhalten des Programms zu analysieren und eine objektive Verifikation der optimalen Hardware-Auslastung zu erlauben, ist der Einsatz von Tools notwendig. Allerdings hat sich bei bisherigen Arbeiten gezeigt, dass herkömmliche Analysetools keine ausreichenden Metriken zur Verfügung stellen, weshalb zusätzliche Messungen im Source-Code erforderlich waren (Inline-Profiling). Eine am Institut entwickelte Bibliothek zur modularen Parallelisierung von kamerabasierten Fahrassistenzalgorithmen bietet die Möglichkeit, auf alle Schnittstellen von Parallelisierungsaufrufen zuzugreifen.
Herr Lefherz erhält die Aufgabe, bestehende Schnittstellen des Frameworks zu verwenden, um relevante Parameter zu extrahieren ohne den parallelisierten Code beeinflussen zu müssen. Hierbei sollen zunächst, nach einer Einarbeitungszeit in parallele Programmierung, herkömmliche Tools untersucht und deren Vor- und Nachteile gegenübergestellt werden. Anschließend sollen die Bibliotheks-Schnittstellen erweitert werden, um daraus extrahierte Werte gezielt aufbereiten zu können. Als Abschluss der Arbeit wird eine exemplarische Analyse der vorhandenen Algorithmen SGM und HOG angestrebt, wobei sich ggf. der Vergleich des Schedulings auf verschiedenen Architekturen anbietet. Auf eine gute Dokumentation des C++ Codes ist zu achten. Die eingereichten Exemplare, sowie die Ergebnisse der Arbeit bleiben Eigentum des Instituts.