An Ultra-Compact, BRAM-Free Streaming 2D Convolution Accelerator on Low-Power FPGAs
Cet article présente un accélérateur de convolution 2D en streaming ultra-compact et sans BRAM pour FPGA à faible consommation, qui utilise des registres à décalage basés sur des LUT et un chemin de données MAC pipeliné pour atteindre un débit élevé et une utilisation minimale des ressources tout en maintenant une précision bit-à-bit sur un SoC Xilinx Zynq-7020.
Article original sous licence CC BY 4.0 (https://creativecommons.org/licenses/by/4.0/). Ceci est une explication générée par l'IA de l'article ci-dessous. Elle n'a pas été rédigée ni approuvée par les auteurs. Pour une précision technique, consultez l'article original. Lire la clause de non-responsabilité complète
Dans le monde de la technologie moderne, il existe une poussée constante pour rendre les appareils intelligents plus petits, moins chers et capables de fonctionner sur de minuscules batteries. Cette dynamique a donné naissance à l'« edge computing » (informatique de périphérie), où des tâches complexes comme la reconnaissance faciale ou la détection d'objets se produisent directement sur une caméra ou un capteur, plutôt que d'envoyer les données vers un énorme serveur dans le cloud. Le moteur mathématique derrière cette vision est un processus appelé convolution, qui agit comme un filtre glissant sur une image pour trouver des motifs spécifiques, tels que le bord tranchant d'un bâtiment ou la courbe d'un visage. Pour ce faire, l'appareil doit examiner un petit groupe de pixels à la fois, les multiplier par des nombres spécifiques et additionner les résultats. Bien que les ordinateurs puissants des centres de données gèrent cela facilement, le faire sur une petite puce à faible consommation est difficile car la puce possède une mémoire et une énergie très limitées. Elle ne peut pas se permettre de stocker l'image entière pour y revenir plus tard, ni de gaspiller de l'énergie en attendant l'arrivée des données.
Des chercheurs de l'Université d'Ain Shams ont conçu un nouvel accélérateur matériel qui résout ces problèmes pour les petites puces à faible consommation que l'on trouve dans des appareils comme les drones ou les capteurs portables. Ils ont créé un circuit spécialisé capable de traiter un flux de données d'image au fur et à mesure qu'elles arrivent, un pixel à la fois, sans jamais avoir besoin de stocker l'image complète en mémoire. L'équipe a construit ce système sur un type de puce reconfigurable appelé FPGA, ciblant spécifiquement un modèle connu sous le nom de Zynq-7020, courant dans l'électronique embarquée. Leur objectif était de supprimer tous les composants de mémoire lourds et gourmands en énergie habituellement requis pour cette tâche et de les remplacer par une structure beaucoup plus légère et efficace qui tient entièrement dans les blocs logiques de base de la puce.
Le cœur de leur innovation est une méthode de gestion des données d'image qui évite le besoin de grandes banques de mémoire dédiées. Typiquement, pour analyser un petit carré d'une image, un ordinateur doit se souvenir de la ligne de pixels actuelle et des deux lignes qui l'ont précédée. Les conceptions standards utilisent de grands blocs de mémoire pour conserver ces lignes, ce qui consomme de l'espace et de l'énergie précieux. Les chercheurs ont plutôt construit un système qui utilise de minuscules unités de stockage flexibles présentes à l'intérieur de la matrice logique de la puce. Ces unités agissent comme un tapis roulant, retenant juste assez de données pour reconstruire le carré de trois par trois pixels nécessaire à mesure que le flux d'image passe. En utilisant ces petits éléments de stockage distribués plutôt que de grands blocs de mémoire, ils ont éliminé le besoin de tuiles de mémoire dédiées, libérant ainsi de l'espace pour d'autres tâches et réduisant considérablement la puissance nécessaire pour faire fonctionner le système.
L'accélérateur traite les données d'image à un rythme régulier, acceptant un pixel à chaque cycle d'horloge. À mesure que les pixels arrivent, le système forme instantanément le voisinage de trois par trois requis, multiplie chaque pixel par son poids correspondant et additionne les résultats. Pour garantir que les calculs restent précis et ne produisent pas d'erreurs dues à des nombres trop grands, la conception utilise une taille de registres de calcul interne mathématiquement prouvée. Cela garantit que la somme des neuf valeurs multipliées ne dépassera jamais la capacité (overflow) ou ne s'inversera pas incorrectement, un problème courant dans les systèmes numériques à taille fixe. Une fois le calcul terminé, le résultat est soigneusement ajusté pour s'insérer dans une plage standard, et une étape optionnelle peut être appliquée pour supprimer les valeurs négatives, imitant une étape courante utilisée dans les réseaux d'intelligence artificielle.
L'équipe a testé sa conception de manière rigoureuse, la faisant passer par des simulations et comparant les résultats avec un modèle logiciel de confiance. Ils ont vérifié que le matériel produisait exactement le même résultat que le logiciel pour chaque pixel des images de test, y compris des photographies naturelles complexes et des motifs géométriques. Lorsqu'ils ont implémenté la conception sur la puce cible, les résultats ont montré que le système consommait presque aucune ressource de mémoire, utilisant zéro bloc de mémoire dédié. Il occupait moins de 0,5 % de la capacité logique totale de la puce et n'utilisait qu'une infime fraction de ses processeurs mathématiques spécialisés. Le système fonctionnait à une vitesse de 100 millions de cycles par seconde, traitant une image complète de 32 par 32 pixels en un peu plus de dix microsecondes.
La consommation d'énergie a été un autre succès majeur. La partie active de la puce qui effectue les calculs n'utilisait que neuf milliwatts de puissance, ce qui est moins que l'énergie requise pour éclairer une minuscule LED. Bien que la puissance totale mesurée inclue l'énergie nécessaire pour envoyer des signaux hors de la puce vers des broches externes, les chercheurs ont noté que dans un dispositif réel où la puce communique avec d'autres parties en interne, ce coût de puissance externe disparaîtrait, laissant le cœur de calcul fonctionner à moins de dix milliwatts. Ce niveau d'efficacité rend possible l'exécution de tâches de vision avancées sur des appareils alimentés par de petites batteries ou même par récupération d'énergie, sans nécessiter de grands systèmes de refroidissement ou de lourdes alimentations électriques.
La conception n'est pas exempte de limites. Elle est actuellement construite spécifiquement pour le traitement d'images à canal unique, telles que les photos en noir et blanc, et est optimisée pour une taille de motif de trois par trois. Changer la taille du motif ou gérer des images en couleur nécessiterait de reconstruire le circuit. De plus, le système attend un flux continu de données et ne possède pas de mécanisme pour faire une pause et attendre si la source de données s'arrête. Cependant, pour son objectif prévu consistant à gérer de petits fragments d'images rapides sur du matériel à faible consommation, les chercheurs ont démontré que leur approche est une solution hautement efficace. En prouvant que l'analyse d'images complexes peut être réalisée avec presque aucune mémoire et une puissance minimale, ce travail ouvre la voie à une nouvelle génération de capteurs intelligents et autonomes qui peuvent voir et comprendre le monde sans avoir besoin d'une connexion au cloud.
Noyé(e) sous les articles dans votre domaine ?
Recevez des digests quotidiens des articles les plus récents correspondant à vos mots-clés de recherche — avec des résumés techniques, dans votre langue.