Eine neue Dimension des DSP-Computing mit AMD Versal™ AI Engines

AMD Versal AI Engine-Technologie ermöglicht High-Performance Digitale Signalverarbeitung (DSP) 

Kunden, die auf DSP-Anwendungen der nächsten Generation arbeiten, benötigen enorme Computing-Kapazitäten, die in herkömmlichen FPGA-Architekturen nicht effizient implementiert werden können. Rechenintensive DSP-Anwendungen wie FIR, FFT und General Matrix Multiply können erhebliche Mengen an DSP-Blöcken und Ressourcen für programmierbare Logik verwenden.

Diese Algorithmuskomplexität kann die Gesamtrechenkapazität, die in herkömmlichen Geräten für programmierbare Logik verfügbar ist, deutlich reduzieren. Eine einfache Erhöhung der DSP-Blöcke und der verfügbaren programmierbaren Logik ist keine skalierbare Lösung für intensive DSP-Auslastungen, die ein striktes Energiebudget haben. Versal AI Engines sind darauf ausgelegt, eine effizientere Computing-Lösung in diesen Fällen bereitzustellen. 

Unsere Bibliothek mit erläuternden Videos bietet wichtige technische Informationen für den Einstieg.

AI Engine DSP Design-Prozess

Die Entwicklung von High-Performance-DSP-Funktionen für AMD Versal™ AI Engines kann entweder mit den AMD Vitis™-Entwicklungstools oder mithilfe des Vitis Model Composer Workflows erfolgen, wobei die Simulations- und Grafikfunktionen des MathWorks Simulink®-Tools genutzt werden. 

In beiden Fällen ist die Zuordnung der DSP-Anwendung zu Funktionen, die in den FPGA- oder KI-Engines (oder einer Kombination aus FPGA-Logik und KI-Engines) implementiert werden sollen, von entscheidender Bedeutung. Dies erfordert ein Verständnis der Chipfunktionen und des Gesamtsystems. 

In der Regel eignen sich rechenintensive Funktionen besser für die KI-Engine-Implementierung. Funktionen, bei denen Daten verschoben/neu angeordnet werden müssen, sind hingegen besser für eine FPGA-Implementierung geeignet. 

Im folgenden Beispiel lassen sich komplexe Filterung und Fourier-Transformationen in der Regel besser innerhalb des AI-Engine-Arrays ausführen.

AMD Vitis AI Engine array chart

Sobald eindeutig festgestellt wurde, dass sich bestimmte Funktionen für die KI-Engine eignen, können sie mit einer der folgenden Optionen in die KI-Engine implementiert werden.

Hinweis: Ein hybrider Ansatz mit mehreren Optionen aus der nachstehenden Liste ist ebenfalls möglich. 

Programmierumgebungen

Die Vitis Plattform bietet zwei Programmierumgebungen mit DSP-Bibliotheken, APIs und Intrinsics 

Konstruktion in C/C++

Die Vitis Plattform verfügt über Open-Source-Bausteine für gängige DSP-Algorithmen, Funktionen und Chipdiagramme. Verwenden Sie sie ohne Modifizierungen für Schnelltests oder passen Sie sie an Ihre Anforderungen an.

C/C++-Flow

Für den Einstieg in KI-Engines für DSP wird dringend empfohlen, zunächst die Vitis DSP-Bibliotheksfunktionen (C-basiert) zu verwenden. Die manuelle Programmierung kann zwar zu einer optimierten Implementierung führen, die Verwendung der unten genannten Methoden bietet jedoch den schnellsten Einstieg in KI-Engines für DSP und liefert gleichzeitig eine hohe Performance. (Ein hybrider Ansatz mit mehreren Optionen aus der nachstehenden Liste ist ebenfalls möglich.)

Option 1
Funktionsaufruf der Vitis DSP-Bibliothek


dsplib::fft::dit1ch::fft_ifft_dit_1ch
 

  • Am benutzerfreundlichsten
  • Parametrisierbar
  • Kürzeste Entwicklungszeit
Option 2
Vektorisierte Programmierung mit KI-Engine-APIs

aie::vector<int8_t, sizeTileA> A0 

aie::vector<int8_t, sizeTileA> A1
 

  • Anpassbar
  • Kürzere Entwicklungszeit
Option 3
Vektorisierte Programmierung mit Intrinsics

Acc0 = mac16(acc0, Bbuff, 0, 0x00000000, 8, 0x3120, Abuff0, 0, 0xCC884400, 2, 0x3210);​

Acc0 = mac16(acc0, Bbuff, 32, 0x00000000, 8, 0x3120, Abuff0, 0, 0xCC884400, 2, 0x3210); 
 

  • Vollständige, umfassende Anpassung 
  • Längste Entwicklungszeit

Verschiedene KI-Engine-Funktionen werden dann per Graph-C-Code miteinander verbunden. Dabei handelt es sich um C++-Code, der ein Netzwerk aus mehreren KI-Engine-Kacheln beschreibt.  

Simulations- und Verifizierungsschritte

Design Simulationsoptionen
Nur KI-Engine X86-Simulator (schnell) und AIE-Simulator (Cycle-Approximate-Methode)
KI-Engine + PL-Subsystem
(PL-codiert mit Vitis HLS)
Vitis Functional Simulation mit MATLAB oder Python
KI-Engine + PL-Subsystem
(PL-codiert mit HDL)
Functional Simulation mit HDL- Testbench und Vivado™ XSIM
KI-Engine + PL + PS Hardware-Emulation in Vitis
PS-Simulation mit QEMU
PL-Simulation mit XSIM (HDL-Testbench)
AIE-Simulation mit AIE Simulator (System C)

Weitere Informationen zu Simulations-Flows finden Sie unter: Design Guide für adaptive Versal SoC (UG1273)

Modellbasierter Flow mit Vitis Model Composer

Der Composer ermöglicht das Entwickeln in der MathWorks MATLAB®/Simulink® Umgebung, wo Sie Kernel für Versal AI Engines generieren, programmierbare Logikmodule integrieren und Systeme simulieren können.

Vitis Model Composer – Flow

Mit Vitis Model Composer können Sie eine Verbindung zwischen den verschiedenen KI-Engine-Funktionen grafisch darstellen. Diese grafische Darstellung kann mit Vitis Model Composer per Tastendruck in den Graph-C-Code konvertiert werden. Die robusten Simulationsfunktionen der MathWorks Simulink-Umgebung können auch zur Überprüfung des Designs genutzt werden.

Weitere Informationen zur Versal AI Engine-Entwicklung mit Vitis Model Composer finden Sie auf der Seite zur Versal AI Engine-Entwicklung mit Vitis Model Composer.

Vitis GitHub-Konzeptbeispiele und -Tutorials

Designimplementierung mit AMD Vitis

Nutzen Sie AMD GitHub für optimierte Konzeptbeispiele, Tutorials und Bibliotheksfunktionen für KI-Engines in High-Performance-DSP-Anwendungen. Dabei handelt es sich um Open-Source-Konzepte, die zur Beschleunigung von Konzeptzyklen genutzt werden können.

GitHub-Links

Ressourcen

Erläuternde Videos

Online-Seminare

Entwicklung von AI Engine auf AMD Versal Chips meistern: Von Grundlagen zu fortgeschrittenen Anwendungen

Erste Schritte

Lizenzierung der AI Engine Tools: Compiler und Simulator

Obwohl die KI-Engine-Compiler- und Simulatortools Teil des AMD Vitis™ Softwareinstallationsprogramms sind, benötigen Sie für die Verwendung dieser Tools dennoch eine kostenlose Lizenz. Sie können diese Lizenz auf der Website zur Produktlizenzierung abrufen.

Geben Sie Ihre Daten ein und wählen Sie die Option „AI Engine Tools License“ (Lizenz für KI-Engine-Tools).

Benchmarks anzeigen, die Versal AI Engines mit der vorherigen Technologie für programmierbare Logik vergleichen

Für Head-to-Head-Benchmark-Vergleiche zwischen Designs, die nur auf programmierbarer Logik basieren, und einem Design mit adaptivem SoC und KI-Engine, das adaptive AMD Versal SoCs verwendet, wenden Sie sich an den Vertrieb oder Ihren Field Application Engineer. Dort erhalten Sie die Benchmark-Ergebnisse und Quelldesigns.

Fußnoten
  1. Basierend auf Benchmark-Tests, die von Dritten im Auftrag von AMD im Februar 2024 durchgeführt wurden. Die Tests erfolgten auf einem adaptiven AMD Versal SoC mit Vitis für KI-Designtools im Vergleich zu herkömmlicher programmierbarer Logik mit Vivado Software und Vitis Model Composer Tool, Version 2023.1, in einer FIR-Implementierung mit Signalverarbeitungsanwendung. Die Ergebnisse wurden über 3 Designs gemittelt. Die Ergebnisse können je nach Designspezifikationen abweichen. (VER-034)