Implémentations efficaces des fonctions d'activation basées sur CORDIC pour l'accélération des RNN sur FPGA
Mise en œuvre efficace des fonctions d’activation RNN : percée dans l’algorithme CORDIC et l’accélération matérielle FPGA
Contexte et importance de l’étude
Ces dernières années, avec le développement rapide des technologies d’apprentissage profond, les réseaux neuronaux récurrents (Recurrent Neural Networks, RNN), en particulier les réseaux à mémoire à long et court terme (Long Short-Term Memory, LSTM), ont démontré une capacité puissante dans les tâches de séries temporelles, telles que le traitement du langage naturel (Natural Language Processing, NLP), la reconnaissance vocale et le diagnostic médical. Toutefois, comparés aux réseaux neuronaux convolutifs (Convolutional Neural Networks, CNN), les modèles RNN se distinguent par leur complexité et leur recours intensif à des fonctions d’activation non linéaire, ce qui entraîne des coûts de calcul considérablement plus élevés. En particulier, lors du déploiement des modèles RNN sur des dispositifs périphériques à ressources limitées (Edge Devices), la mise en œuvre des fonctions d’activation constitue un goulot d’étranglement pour les performances globales.
On sait que les fonctions d’activation (Activation Functions) constituent l’un des composants clés des réseaux neuronaux profonds. Leur rôle est d’introduire des caractéristiques non linéaires dans les modèles, ce qui améliore leur capacité de représentation. Cependant, l’utilisation massive de fonctions telles que tanh, sigmoid, et arctan accroît considérablement les coûts de calcul et la latence. Les méthodes traditionnelles, comme l’ajustement polynômial (Polynomial Fitting), les tables de correspondance (Lookup Table, LUT) et l’approche par approximations linéaires par morceaux (Piecewise Linear Approximation), bien qu’elles réduisent en partie la complexité, peinent à trouver un équilibre optimal entre précision, consommation de ressources et latence.
C’est dans ce contexte que les auteurs de cette étude proposent, dans une perspective d’accélération matérielle, une solution intégrant les avantages de l’algorithme Coordinate Rotation Digital Computer (CORDIC). Ils conçoivent une architecture matérielle unifiée et efficace, conçue pour optimiser le calcul des fonctions d’activation dans les modèles RNN, améliorant ainsi leurs performances sur les périphériques Edge.
Origine de l’étude et informations sur la publication
Cette étude, intitulée “Efficient CORDIC-Based Activation Functions for RNN Acceleration on FPGAs”, est réalisée par Wan Shen, Junye Jiang, Minghan Li et Shuanglong Liu. Les auteurs sont affiliés à l’École de Physique et d’Électronique de l’Université Normale de Hunan, ainsi qu’au Laboratoire Clé des Structures Quantiques de Basse Dimension et Contrôle Quantique du Ministère de l’Éducation en Chine. Cet article a été publié dans le volume 6, numéro 1, de IEEE Transactions on Artificial Intelligence en janvier 2025.
Approche méthodologique et innovations
L’article se concentre sur les conceptions matérielles à base de FPGA (Field Programmable Gate Arrays) à faible consommation. Il propose un algorithme CORDIC amélioré et développe une architecture matérielle unifiée prenant en charge plusieurs fonctions d’activation. Voici un aperçu des étapes principales de cette étude :
1. Bases théoriques et analyse des problèmes
Les auteurs commencent par analyser le mécanisme des RNN, les contraintes existantes dans la mise en œuvre des fonctions d’activation, ainsi que les avantages et les limitations de l’algorithme CORDIC. Dans les applications RNN traditionnelles, les fonctions d’activation comme tanh et sigmoid se distinguent par leur complexité et leur consommation de temps. L’algorithme CORDIC quant à lui, grâce à son architecture basée sur des opérations de décalage et d’addition, peut calculer efficacement différentes fonctions non linéaires. Il s’agit donc d’une technique prometteuse pour les scénarios aux ressources matérielles limitées. Cependant, les implémentations actuelles de CORDIC présentent des défis liés à la lenteur de convergence, une utilisation inefficace des ressources et des limites dans le support simultané de plusieurs fonctions d’activation.
2. Proposition d’un algorithme CORDIC amélioré
L’étude introduit un algorithme CORDIC amélioré qui incorpore un algorithme glouton (Greedy Algorithm). Les améliorations principales incluent : - Une stratégie de sélection des angles basée sur un algorithme glouton pour choisir l’angle de rotation optimal à chaque itération, réduisant ainsi le nombre total d’itérations. - Un mécanisme unifié de sélection et de mappage d’angles, permettant de prendre en charge simultanément les systèmes coordonnés circulaires (Circular Coordinate) et hyperboliques (Hyperbolic Coordinate) pour implémenter les fonctions tanh, sigmoid et arctan. - L’extension du domaine de convergence traditionnel de CORDIC via un mappage des angles, permettant ainsi de prendre en charge des entrées hors des plages standard.
3. Proposition d’une architecture matérielle unifiée
Les auteurs conçoivent une architecture matérielle en pipeline, composée des modules suivants : 1. Module de prétraitement : - Applique un mappage des angles pour transformer les valeurs d’entrée dans des plages compatibles ([0, 1) ou [0, π/4]) avec les propriétés de convergence de CORDIC. - Comprend une conversion en complément à deux pour les valeurs négatives et des opérations arithmétiques simples (addition et soustraction).
Module d’itérations :
- Constitué d’un module de sélection d’angle et d’un module de fonction de rotation.
- Le module de sélection d’angle utilise des encodeurs de priorité (Priority Encoder) pour calculer dynamiquement l’index de l’angle optimal, optimisant ainsi la latence de calcul.
Module de post-traitement :
- Les résultats de CORDIC sont transformés pour calculer les fonctions tanh et sigmoid en combinant des opérations simples (addition, décalage, division).
- La fonction arctan est calculée via des passerelles logiques et des multiplicateurs adaptatifs.
Cette architecture FPGA est flexible et prend en charge plusieurs fonctions d’activation, réduisant ainsi les coûts en ressources matériels de conception pour différents modules de calcul.
Résultats et analyses
Précision des fonctions d’activation
Comparé à la méthode CORDIC traditionnelle, l’approche proposée améliore considérablement la précision d’approximation des fonctions tanh, sigmoid et arctan tout en réduisant le nombre d’itérations nécessaires. Avec seulement 4 itérations, l’erreur relative moyenne (Relative Error, RE) est maintenue à : 0,0019 pour tanh, 0,046 pour sigmoid et 0,0224 pour arctan, atteignant une précision comparable à celle de CORDIC traditionnel avec 8 itérations.
Performances des RNN
Appliquée à trois modèles RNN de référence (LSTM, Bidirectional LSTM et GRU), la méthode assure une perte de précision inférieure à 2%, tout en requérant significativement moins d’itérations par rapport aux méthodes conventionnelles.
Ressources matérielles et performances
Grâce au partage des modules d’itération, cette architecture utilise une quantité comparable de ressources logiques FPGA par rapport à CORDIC traditionnel, tout en divisant par deux les retards des calculs de fonctions d’activation. De plus, les expérimentations démontrent une accélération globale du traitement des modèles RNN d’environ 2 fois.
Conclusion et pertinence
Cette étude propose une implémentation innovante des fonctions d’activation RNN basée sur CORDIC, qui non seulement maintient la précision des modèles mais améliore également leur vitesse d’exécution tout en réduisant les coûts en ressources. L’architecture matérielle unifiée et configurable répond aux besoins des scénarios Edge où les ressources sont limitées et les exigences de latence strictes.
Points saillants
- Avancée méthodologique : Intégration novatrice de l’algorithme glouton pour améliorer la précision et la vitesse de convergence de CORDIC.
- Flexibilité unifiée : Architecture matérielle prenant en charge efficacement plusieurs fonctions d’activation (tanh, sigmoid, arctan).
- Efficience matérielle : Réduction des latences et coûts matériels par rapport aux méthodes à base de LUT ou de polynômes.
Applications potentielles
Cette avancée technologique augmente la faisabilité d’utilisation des RNN dans des scénarios temps réel et propose de nouvelles perspectives pour le déploiement de modèles d’apprentissage profond sur des plateformes Edge. Les chercheurs prévoient d’intégrer ce design sur des plateformes hardware avancées (telles que AMD Versal SoC) pour renforcer la sécurité matérielle et les performances de calcul.