Beschleunigen Sie DSP-Auslastungen mit Versal AI Engines
Der Schlüssel zur Verbesserung der Gesamt-Performance des Systems
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.
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.
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.
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.)
dsplib::fft::dit1ch::fft_ifft_dit_1ch
aie::vector<int8_t, sizeTileA> A0
aie::vector<int8_t, sizeTileA> A1
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);
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.
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.
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).
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.