TriCore™/AURIX™ Architektur: Performance-Optimierung

31.07.2018

30.03.2020 - 01.04.2020

Veranstaltungsort: München, MicroConsult

TriCore™/AURIX™ Architektur: Performance-Optimierung

Beim TriCore™ handelt es sich um eine spezielle Architektur, die besonders auf den Einsatz als eingebetteter Mikrocontroller optimiert ist. Sie erhalten einen Überblick sowie praktische Einführung in komplexe Themen der Softwareentwicklung mit der TriCore™-Architektur.

Beim TriCore™ handelt es sich um eine spezielle Architektur, die besonders auf den Einsatz als eingebetteter Mikrocontroller optimiert ist. Die geringen Stückkosten werden durch eine besonders sparsame Architektur ermöglicht, die effizientes Arbeiten und Optimierung besonders belohnt. Das Training richtet sich an Entwickler auf der TriCore™-Plattform, welche schon erste Schritte mit der Architektur unternommen haben und alle 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. Dabei wird besonders auf die speziellen Eigenheiten der TriCore™-Architektur eingegangen, die sich von der ARM- oder x86-Architektur unterscheidet. Die Inhalte werden anhand von Beispielen aus der Bildverarbeitung vermittelt. Ausgehend von einem Anwendungsbeispiel (Fast Fourier Transformation FFT) wird 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 TriCore™-Architektur. Dieses Training ist auf eine der u.a. speziellen Hardware- und Softwareplattformen zugeschnitten und beleuchtet ein spezielles Anwendungsbeispiel.

 

Inhalt

Kurze Einführung in die TriCore™-Architektur

Anwendungsbeispiel in C

  • Fast Fourier Transformation FFT

 

TriCore™ 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 individuelle Main-Funktionen

 

Floating-Point Extension

  • Floating Point Unit Instructions

 

MicroConsult Plus: Übungen auf einer Zielhardware

  • Die Programme werden mit einem Eclipse GNU Tool-Plugin und auf einer TriCore™ basierenden Hardware ausgeführt und getestet (Infineon TC1797, TC1798, TC275).
  • Für Inhouse-Trainings werden die eingesetzten Tools und die Hardware-Plattform mit dem Kunden individuell abgestimmt.