Accélérez les charges de travail DSP avec les moteurs Versal AI Engine
La clé de l'amélioration des performances globales du système
La technologie Versal AI Engine permet le traitement de signal numérique (DSP) hautes performances.
Les clients travaillant sur des applications DSP de nouvelle génération ont besoin de capacités de calcul exceptionnelles qui ne sont pas mises en œuvre efficacement dans les architectures FPGA traditionnelles. Les applications DSP gourmandes en ressources de calcul telles que FIR, FFT et General Matrix Multiply peuvent utiliser de grandes quantités de blocs DSP et de ressources logiques programmables.
Cette complexité d'algorithme peut réduire considérablement la capacité de calcul globale disponible sur les dispositifs logiques programmables traditionnels. Le simple fait d'augmenter les blocs DSP et la logique programmable disponibles n'est pas une solution évolutive pour les charges de travail DSP intensives, qui ont des budgets énergétiques stricts. Les moteurs Versal AI Engine sont conçus pour fournir une solution de calcul plus efficace dans ces cas.
Notre bibliothèque de vidéos explicatives fournit les informations techniques essentielles pour commencer.
La conception de fonctions de traitement de signal numérique (DSP) hautes performances ciblant les moteurs AMD Versal™ AI peut être réalisée à l'aide des outils de développement AMD Vitis™ ou en utilisant le flux Vitis Model Composer. En effet, il permet de tirer parti des capacités de simulation et de représentation graphique de l'outil MathWorks Simulink®.
Dans les deux cas, il est crucial de mapper l'application DSP dans des fonctions à mettre en œuvre dans le FPGA ou les moteurs d'IA ou une combinaison de logique de FPGA et d'AI Engines. Pour ce faire, il est nécessaire de comprendre les fonctionnalités de l'appareil ainsi que l'ensemble du système.
En général, les fonctions gourmandes en ressources de calcul sont mieux adaptées à la mise en œuvre d'AI Engine, tandis que les fonctions nécessitant un déplacement/réorganisation des données sont mieux adaptées à une mise en œuvre FPGA.
Dans l'exemple ci-dessous, le filtrage complexe et les transformations de Fourier sont généralement mieux adaptés au sein de la matrice AI Engine.
Une fois que les fonctions ont été clairement identifiées comme étant adaptées à AI Engine, elles peuvent être mises en œuvre dans AI Engine à l'aide de l'une des options ci-dessous.
Remarque : Une approche hybride utilisant plusieurs options de la liste ci-dessous est également possible.
La plateforme Vitis offre deux environnements de programmation, qui tire parti des bibliothèques DSP, des API et des composants intrinsèques
C/C++ intégré
La plateforme Vitis est dotée de blocs de construction open source pour les algorithmes DSP, les fonctions et les graphiques d'appareil courants. Utilisez-les tels quels pour des tests rapides ou personnalisez-les en fonction de vos besoins.
Flux C/C++
Pour commencer à utiliser les moteurs AI Engine pour DSP, il est fortement recommandé de commencer par les fonctions de la bibliothèque Vitis DSP (basées sur C). Bien que le codage manuel puisse donner lieu à une implémentation plus optimisée, l'utilisation des méthodes ci-dessous est le moyen le plus rapide de commencer à travailler avec les moteurs AI Engine pour DSP, tout en offrant des performances impressionnantes. (Une approche hybride utilisant plusieurs options de la liste ci-dessous est également possible.)
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);
Différentes fonctions AI Engine sont ensuite interconnectées à l'aide du code graphique C, qui est le code C++ décrivant un réseau de plusieurs vignettes AI Engine.
Conception | Options de simulation |
Moteur IA uniquement | Simulateur x86 (rapide) et simulateur AIE (simulation approximative de cycle) |
Moteur IA + sous-système PL (PL codée avec VItis HLS) |
Simulation fonctionnelle Vitis avec MATLAB ou Python |
Moteur IA + sous-système PL (PL codée avec HDL) |
Simulation fonctionnelle avec banc d'essai HDL utilisant Vivado™ XSIM |
Moteur IA + PL + PS | Émulation hardware dans Vitis Simulation PS à l'aide de QEMU Simulation PL à l'aide de XSIM (banc d'essai HDL) Simulation AIE à l'aide du simulateur AIE (système C) |
Pour plus d'informations sur les flux de simulation, consultez le Guide de conception SoC adaptatif Versal (UG1273)
Flux basé sur un modèle avec Vitis Model Composer
Le Composer intègre le développement dans l'environnement MathWorks MATLAB®/Simulink®, où vous pouvez générer des noyaux pour les moteurs Versal AI Engine, intégrer des modules logiques programmables et simuler des systèmes.
Flux de Vitis Model Composer
L'utilisation de Vitis Model Composer permet une interconnexion graphique entre les différentes fonctions AI Engine. Cette représentation graphique peut être convertie en code C graphique par Vitis Model Composer. Les puissantes fonctionnalités de simulation de l'environnement MathWorks Simulink peuvent également être utilisées pour vérifier la conception.
Pour en savoir plus sur le développement de Versal AI Engine à l'aide de Vitis Model Composer, veuillez consulter la page développement de Versal AI Engine à l'aide de Vitis Model Composer.
Tirez parti du GitHub AMD pour obtenir des exemples de conception optimisés, des tutoriels et des fonctions de bibliothèque pour les moteurs AI Engine dans les applications DSP hautes performances. Il s'agit de conceptions open source qui peuvent être mises à profit pour accélérer les cycles de conception.
Bien que le compilateur et les outils de simulation d'AI Engine fassent partie du programme d'installation du software AMD Vitis™, ces outils nécessitent toujours une licence gratuite pour être utilisés. Vous pouvez obtenir cette licence sur le site de gestion des licences produit.
Saisissez vos informations et choisissez l'option « Licence pour les outils AI Engine ».
Pour des benchmarks de comparaison directe des conceptions exclusivement à logique programmable par rapport à une conception avec SoC adaptatif + moteur d'IA utilisant des SoC adaptatifs AMD Versal, veuillez contacter le service commercial ou votre FAE pour obtenir les résultats des benchmarks et les conceptions sources.