DSP Emulation AVX Vectorization

C6000-DSP-Unterstützungsbibliotheken

Ein beispielhaftes Stück C66x-Assembly.

Effektive und effiziente Entwicklung benötigt die richtigen Werkzeuge. Wenn man Code hardwarenah auf Embedded-Plattformen entwickelt kann dies eine Herausforderung sein. In einem Projekt stand unser Kunde vor den folgenden drei Herausforderungen:

  1. Recompute des Target-spezifischen Codes auf Workstations.
  2. Das Ganze auch effizient zu tun.
  3. Und die Bit-Identität zwischen Recomputing und Target zu gewährleisten.

Um diese Ziele zu erreichen entwickelten wir zwei Bibliotheken für den Kunden. Die erste war ein transparenter Ersatz für Com­pi­ler-In­trin­sics auf dem C6000™-DSP. Anstatt C6000-Ins­truk­tio­nen zu generieren, emulierte diese Bibliothek die Berechnungen unter Einsatz von AVX2, um eine hohe Geschwindigkeit zu erreichen. Das war nötig, da der C6000™-DSP sehr komplexe Instruktionen wie 2×2-Mat­rix-Vek­tor-Mul­ti­pli­ka­tio­nen für komplexe Zahlen hat. Mit unserer Hilfe war es dem Kunden möglich, Recompute auf x86-64-Workstations in Echtzeit durchzuführen.

Die zweite Bibliothek war eine Sammlung von Stan­dard-Ma­the­ma­tik-Funk­tion­en für Gleitkommazahlen wie Sinus, Potenzen, etc. Sie produzierte für alle möglichen Eingaben bit-identische Ergebnisse sowohl auf dem C6000™-DSP als auch auf x86-64. Außerdem war schneller als die vom Hersteller bereitgestellte Mathematikbibliothek und gleichzeitig auch noch präziser.

Ein paar schnelle Fakten

Hardware:

  • SoC: Texas Instruments™ TMS320C6000™
  • DSP: Texas Instruments C6000

Operating System:

  • Texas Instruments RTOS

Compiler:

  • Texas Instruments CGT C6000
  • GNU Compiler Collection für x86-64-Workstations

Zusammenfassung der von uns erzielten Ergebnisse:

  • Entwicklung eines Intrinsics-Emulators für C6000™-Compiler-Intrinsics auf x86-64 für Echt­zeit-Re­com­pute.
  • Entwicklung einer Mathematikbibliothek für bit-identische Ergebnisse, sowohl auf dem C6000™-DSP, als auch auf x86-64.
Alle genannten Produkte oder Dienstleistungsnamen und Handelsmarken sind das Eigentum ihrer respektiven Eigentümer.