Cortex® Architektur: Performance-Optimierung - Präsenz-Training
Das Training richtet sich an Entwickler auf der Arm-Plattform, die schon erste Schritte mit der Architektur unternommen haben und die Möglichkeiten der Hardware bestmöglich nutzen wollen. Ausgehend von der Identifikation von Performance Bottlenecks (sog. Hotspots) werden Methoden und Techniken vermittelt, um die modernen Architekturmerkmale wie SIMD, Multicore und die superskalare Pipeline optimal einzusetzen. Die Inhalte werden anhand von Beispielen aus der Bildverarbeitung vermittelt. Im Training wird ausgehend von einem Anwendungsbeispiel (Image Processing) in C eine optimierte Variante erstellt, indem diese immer stärker auf die Hardwarearchitektur angepasst wird. Die gezeigten Methoden sind auch für andere Anwendungsgebiete einsetzbar, z.B. für Regelungstechnik, Signalverarbeitung oder Grafik. Dadurch sind je nach Anwendung Geschwindigkeitssteigerungen um einen Faktor von 2-10 gegenüber optimiertem C-Code möglich. Bildverarbeitungssysteme sind komplex. Ein typisches Bildverarbeitungssystem mit Objekterkennung, etwa für Viola Jones (Gesichtserkennung) oder ADAS (Automotive Driving Assistance Systems) besteht aus den sechs Stufen Preprocessing, Segmentation, Classification, Tracking, Situation Analysis und Information Fusion. Die zeitaufwändigsten Schritte darin sind typischerweise Preprocessing und Classification. Da für diese auch das größte Potential zur Zeiteinsparung mit den im Training behandelten Techniken besteht, werden exemplarisch Algorithmen aus diesen Abschnitten besprochen und optimiert.
Sie erhalten einen Überblick sowie eine praktische Einführung in komplexe Themen der Softwareentwicklung mit der Arm-Architektur. Dieses Training ist auf eine der u.a. speziellen Hardware- und Softwareplattformen zugeschnitten und beleuchtet ein spezielles Anwendungsbeispiel.
Applikationsprogrammierer
Kenntnis der Cortex-Architektur (Cortex-M, Cortex-R oder Cortex-A) und des Arm Basis Assembler Instruction Sets (Arm-v4T) sowie ANSI-C Kenntnisse.
Kurze Einführung in die Cortex-Architektur
Anwendungsbeispiel in C
- Z.B. Optical Flow, Viola Jones, ...
Arm-v7 Thumb-2 Assembler Instruction Set
- Advanced SIMD Extension
- Vector Operations
Implementierung des Programmes als:
- Inline-/Embedded-Assembler
- Intrinsic-Funktionen
- Assembler-Routinen
Programmoptimierung
- Optimierung auf C-Ebene
- Optimierung auf Assembler-Ebene mit SIMD-Instructions
- Schleifenoptimierung, Vektorisierung
Performance-Analyse
- Profiling, Hotspots finden
- Hardware-Optimierung
- Cache-Optimierung
- Multiprozessor-Optimierung
- pthread, openMP oder 3 * main
Floating-Point Extension
- Advanced Floating Point Extension
- Arm® NEON™ General-purpose SIMD-Engine
MicroConsult Plus: Übungen auf einer Zielhardware
- Die Programme werden mit der IAR Workbench auf einer Cortex-A basierenden Hardware ausgeführt und getestet.
- Für Onsite-Trainings werden die eingesetzten Tools und die Hardware-Plattform mit dem Kunden individuell abgestimmt.
Präsenz-Training
Onsite-Training
In maßgeschneiderten Workshops kombinieren wir Ihre konkreten Projektaufgaben mit unserem Trainingsangebot. Dabei berücksichtigen wir Ihre Anforderungen bezüglich Inhalt, Zeit, Ort, Dauer, technischem Umfeld und Vermittlungsmethodik.
Für Ihre Anfrage oder weiterführende Informationen stehen wir Ihnen gern zur Verfügung.