Cortex® Architektur: Performance-Optimierung

27.02.2019

30.03.2020 - 01.04.2020

Veranstaltungsort: München, MicroConsult

Cortex® Architektur: Performance-Optimierung

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.

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.

Inhalt

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.