L’IA à la périphérie du réseau signifie rarement uniquement inférence. Le déploiement dans le monde réel implique généralement des entrées/sorties (E/S) à grande vitesse, un conditionnement du signal et des boucles de contrôle en temps réel, qui sont tous exécutés simultanément. Ces charges de travail multifonctionnelles nécessitent une coordination étroite et une grande certitude, et les concepteurs ont eu du mal à répondre à ces exigences en utilisant du matériel d’IA traditionnel.
Deux facteurs rendent ce problème encore plus complexe. Premièrement, les modèles d’IA se développent à un rythme étonnant, incitant les concepteurs à adopter des plates-formes prenant en charge des mises à jour rapides des algorithmes. Entre-temps, de nombreux systèmes de périphérie sont utilisés sur site depuis dix ans, voire plus, ce qui rend difficile la garantie d'une adaptabilité à long terme. Deuxièmement, le chemin qui mène des modèles bien formés au déploiement et à la mise en œuvre du système est encore fragmenté. Les data scientists utilisent PyTorch et TensorFlow, tandis que les équipes embarquées utilisent des chaînes d'outils complètement différentes, ce qui crée des frictions lors du processus de transfert et ralentit la vitesse de production.
Pour relever ces défis, les plates-formes doivent être capables de combiner un traitement d'IA à haut débit avec un comportement déterministe, des E/S flexibles et une adaptabilité à long terme, le tout devant être atteint dans la plage de consommation d'énergie typique d'un déploiement périphérique limité.
Cet article se concentre sur les scénarios d’application et les exigences associées qui incitent les concepteurs à explorer de nouvelles architectures d’IA de pointe. Ensuite, il a présenté les dispositifs FPGA (Field Programmable Gate Array) et les outils logiciels d'Altera qui prennent en charge l'IA de pointe, et a démontré comment les utiliser pour répondre aux diverses exigences de performances et de puissance de ces applications.
L’évolution de l’IA de pointe nécessite une innovation architecturale
Les systèmes Edge adoptent de plus en plus diverses technologies d'IA, notamment l'apprentissage automatique (ML) classique pour la détection des anomalies, les réseaux neuronaux convolutifs (CNN) pour la perception et les convertisseurs pour les grands modèles de langage (LLM). Ces algorithmes gourmands en calcul coexistent souvent avec des fonctions exigeantes non IA telles que le traitement du signal, la communication réseau et le contrôle en temps réel.
Les systèmes autonomes en sont un bon exemple. Ils doivent généralement capturer des données provenant de plusieurs modalités de capteurs telles que la vidéo, l'audio, le radar, le LiDAR et le retour de mouvement/position, prétraiter ces flux de données avec un débit élevé, analyser les résultats à l'aide d'une IA complexe, puis gérer des boucles de contrôle de haute précision, qui nécessitent toutes une détermination fiable.
Il existe de nombreux exemples similaires dans les applications d’automatisation industrielle, d’imagerie médicale, de défense et de télécommunications. Un défi commun auquel ils sont confrontés est que les architectures traditionnelles sont difficiles à adapter à des charges de travail constamment convergentes.
Pourquoi le FPGA est particulièrement adapté à l'IA de pointe
En revanche, ces exigences sont entièrement compatibles avec les fonctionnalités du FPGA. Le cœur du FPGA est de fournir une logique configurable pour effectuer des opérations de manière véritablement parallèle, avec son comportement de synchronisation intégré au moment de la conception plutôt que fluctuant au moment de l'exécution. Cette architecture peut atteindre un déterminisme à faible latence, ce qui est crucial pour l’IA de pointe. Une logique flexible peut également utiliser des E/S puissantes : les FPGA fournissent généralement de nombreuses E/S à haut débit, qui peuvent être connectées à divers capteurs et actionneurs pour obtenir un couplage étroit avec le traitement de l'IA.
Le FPGA comprend également une mémoire interne distribuée, qui permet à la logique qui y opère d'accéder aux données. Cela réduit le goulot d'étranglement qui survient lorsque plusieurs étapes de traitement doivent être en concurrence pour accéder au bus de mémoire partagée, ce qui constitue une limitation courante dans les architectures basées sur des processeurs.
De nombreux FPGA intègrent également du matériel spécialisé de traitement du signal numérique (DSP). Par rapport aux structures conventionnelles, ces circuits améliorés offrent des performances supérieures et une meilleure efficacité énergétique pour les charges de travail de traitement du signal. Certains FPGA intègrent également des systèmes de processeurs câblés capables d'exécuter des piles logicielles standard (y compris Linux), permettant le développement de logiciels traditionnels pour des tâches telles que la mise en réseau, la gestion des périphériques et l'interface utilisateur.
En bref, un seul FPGA peut intégrer des fonctions qui pourraient autrement nécessiter des puces d'E/S séparées, des accélérateurs d'IA, des DSP et des processeurs de plan de contrôle. Cela peut réduire la nomenclature, réduire la surface du circuit imprimé et réduire la consommation d'énergie, tout en maintenant la faible latence et la certitude requises pour les applications d'IA de pointe.
Comment ouvrir de nouvelles possibilités avec l'ajout de blocs tenseurs IA
Le matériel FPGA DSP traditionnel est déjà très adapté à de nombreuses charges de travail de pointe, mais l'inférence IA repose souvent sur des opérations de multiplication denses mais de faible précision. Pour résoudre ce problème, les appareils Agilex 3 et Agilex 5 d'Altera utilisent des DSP améliorés avec des blocs tenseurs IA. Il s'agit d'un matériel spécialisé pour la multiplication matricielle et matricielle vectorielle, qui apparaît à plusieurs reprises dans les graphiques de calcul de l'IA.
Le cœur de cette méthode est le produit scalaire et le moteur additionneur/accumulateur (Figure 1). En mode tenseur, le moteur de points câblé utilise une entrée 8 bits et des poids 8 bits préchargés pour effectuer un produit scalaire de 10 éléments. Afin d'étendre la plage dynamique, le chemin de données peut également utiliser un « index commun » partagé pour la mise à l'échelle des blocs à virgule flottante afin de faire face aux scénarios typiques dans lesquels l'inférence de l'IA nécessite généralement une plage dynamique élevée mais une faible précision.

