Que désigne l’expression « field programmable array » ?

Le terme complet est Field Programmable Gate Array, ou FPGA : un réseau de portes logiques programmables. Un FPGA réalise une logique numérique configurable ; un NPU accélère les opérations de réseaux neuronaux qu’il prend en charge. Le choix dépend du chemin réel du signal. Le traitement sur FPGA peut être utile pour les interfaces parallèles ou l’acquisition sensible au temps, tandis qu’un NPU peut simplifier une charge d’inférence compatible.

D’une carte de développement FPGA à un produit sur mesure

Une carte FPGA ne valide qu’une partie du système. Une conception sur mesure nécessite aussi le séquencement des alimentations, les horloges, les interfaces mémoire, la conception thermique et une méthode d’essai reproductible. Comparez l’effort de conception et de vérification du FPGA avec un MPU ou une architecture SoC FPGA. Le coût inclut l’ingénierie, les outils, la complexité du circuit imprimé et les tests de production, en plus de la puce.

Qu'est-ce qu'un MPU IA ?

Une plate-forme MPU compatible avec l'IA combine un microprocesseur d'application avec les ressources logicielles et d'accélération nécessaires à une charge de travail d'apprentissage automatique. Commencez par identifier quelles tâches appartiennent au processeur et lesquelles bénéficient d’un accélérateur pris en charge.

Un MPU, ou microprocesseur d'application, est généralement le centre logiciel d'un système Linux embarqué. Un « AI MPU » n’est pas tant une catégorie de processeur distincte qu’une plate-forme MPU qui inclut ou travaille en étroite collaboration avec des ressources d’accélération telles qu’un NPU, un GPU, un DSP ou un FPGA. Le MPU héberge Linux, la mise en réseau, le stockage, les services de sécurité, la logique des applications et le moteur d'exécution qui coordonne les charges de travail d'IA.

Pour l’apprentissage automatique MPU, la question pratique n’est pas seulement la vitesse du processeur. La bande passante mémoire, la prise en charge des accélérateurs, les caméras et les E/S haut débit, la qualité Linux BSP, la disponibilité à long terme, la conception thermique et la maturité de la chaîne d'outils de modèles comptent souvent plus qu'une valeur TOPS globale.

Qu’est-ce qui fait d’un MPU une bonne plateforme d’intelligence artificielle ?

Le meilleur MPU pour l’intelligence artificielle est spécifique à la charge de travail. Une passerelle de vision peut donner la priorité à MIPI CSI, aux pipelines vidéo matériels et à un NPU. Un ordinateur de mission robuste peut avoir besoin de PCIe, de plusieurs ports Ethernet, de cœurs compagnons déterministes et de fonctionnalités de sécurité renforcées. Une plate-forme industrielle peut valoriser une longue durée de vie des produits, TSN, CAN-FD et un écosystème Linux stable.

Comparez le modèle réel et complétez la chaîne de prétraitement. Une plate-forme avec un chiffre d'accélérateur annoncé inférieur peut gagner si elle évite les copies de mémoire, prend en charge les opérateurs requis et maintient l'efficacité du chemin capteur-résultat.

NPU : une inférence neuronale efficace à la périphérie

Un Edge NPU accélère les opérateurs de réseaux neuronaux tels que les convolutions, les opérations matricielles et les fonctions d'activation communes. Il s’agit généralement de l’endroit le plus efficace pour prendre en charge les modèles de détection, de classification, de segmentation et d’extraction de fonctionnalités lorsque la puissance et le débit d’inférence soutenu sont importants.

Les performances du NPU dépendent de la compilation et de la couverture de l'opérateur. Les couches non prises en charge peuvent revenir au processeur ou à un autre accélérateur. Les exigences de quantification, la disposition des tenseurs, la résolution d'entrée et le mouvement de la mémoire peuvent également modifier considérablement les performances réelles. Comparez toujours le graphique de production plutôt que de vous fier uniquement aux TOPS théoriques.

FPGA : pipelines déterministes et inférence IA là où la flexibilité compte

Un FPGA excelle dans le mouvement déterministe des données, les interfaces personnalisées et les pipelines massivement parallèles. Dans les systèmes de pointe, il peut désérialiser les capteurs, aligner les horodatages, filtrer les données, générer des régions d'intérêt, effectuer un prétraitement d'image et alimenter un accélérateur avec une latence prévisible. L'inférence FPGA AI est également possible lorsqu'un modèle correspond bien à la pile d'accélération DSP, mémoire et fournisseur disponible.

Le compromis est un effort d’ingénierie. La conception RTL ou HLS, la simulation, la clôture du timing, la vérification et la stratégie de mise à jour doivent être planifiées. Un FPGA doit être sélectionné parce qu'un comportement déterministe ou un parallélisme personnalisé crée de la valeur système, et pas simplement parce qu'il peut exécuter des opérations arithmétiques.

NPU vs FPGA pour l'IA en périphérie

La décision NPU vs FPGA est souvent un faux binaire. Un NPU est généralement le choix le plus simple pour les réseaux de neurones pris en charge et les performances par watt élevées. Un FPGA est plus puissant lorsque le système nécessite des interfaces de capteurs personnalisées, un prétraitement déterministe, des formats de données inhabituels ou un pipeline étroitement contrôlé avant et après l'inférence.

Une architecture commune utilise à la fois : FPGA pour l'acquisition et le prétraitement des capteurs, NPU pour le réseau neuronal et MPU pour l'orchestration Linux. Cela réduit la quantité de travail irrégulier imposé à un processeur.

RessourceCharges de travail les mieux adaptéesPrincipales contraintes
FPGAPipelines déterministes, E/S personnalisées, horodatage, prétraitement, accélération spécialiséeEffort RTL/HLS, vérification, ressources de l'appareil
NPUInférence neuronale prise en charge avec de bonnes performances par wattPrise en charge des opérateurs, compilateur/runtime, quantification et mouvement de mémoire
MPUApplications Linux, mise en réseau, stockage, cybersécurité, orchestrationExécution moins déterministe ; frais généraux à usage général
Noyau MCU/RTBoucles de contrôle, supervision de sécurité, séquencement de puissance, E/S déterministesMémoire limitée et calcul de haut niveau
FPGAI/O
NPUAI
MPULinux · I/O

Edge computing

  1. Commencez par les délais : identifiez les signaux qui ont des exigences de synchronisation strictes et le délai maximum entre le capteur et l'action.
  2. Débits de données cartographiques : calculer le débit du capteur, les tailles de tenseurs intermédiaires et le trafic mémoire dans le pire des cas.
  3. Gardez l'ingestion déterministe à proximité de l'interface : Les moteurs FPGA, DMA ou cœurs temps réel sont souvent appropriés.
  4. Placez les modèles neuronaux pris en charge sur le NPU : valider la couverture de l’opérateur et les performances réelles compilées.
  5. Utilisez le MPU pour le système : la mise en réseau, le stockage, les mises à jour, la journalisation, les API et la politique d'application appartiennent naturellement à Linux.
  6. Réservez le contrôle en temps réel : un MCU ou un noyau déterministe doit superviser l’actionnement critique et l’état de la plate-forme si nécessaire.

La bande passante mémoire est souvent le goulot d’étranglement caché

De nombreuses conceptions d’IA en périphérie se concentrent sur les pics de calcul et découvrent plus tard que les copies, la conversion des couleurs, le reformatage tensoriel ou la DDR partagée dominent la latence. Les chemins sans copie ou à faible copie, la topologie DMA, le comportement du cache et l'accès à la mémoire par accélérateur doivent être évalués dès le début. La limitation thermique peut également transformer une référence solide en performances faibles et soutenues.

Ceci est particulièrement important lorsque plusieurs caméras, radars, capteurs d'événements ou flux Ethernet haut débit partagent le même sous-système de mémoire.

Exemples d'architecture de référence

Pipeline de vision/capteur d’événement

Capteur → Ingestion et horodatage FPGA → Inférence NPU → Services de décision MPU → Sortie CAN-FD ou Ethernet. Il s'agit d'un modèle fort de perception à faible latence et se connecte directement à notre .

Ordinateur IA intégré

E/S haut débit → Chemin DMA/accélérateur → Inférence NPU ou GPU → Services d'application Linux → API de stockage et de réseau. Notre module de calcul embarqué et ordinateur de bord robuste les classes de produits sont construites autour de ce type de partitionnement.

Passerelle déterministe industrielle

Interfaces CAN-FD / série / Ethernet → horodatage FPGA ou MCU et gestion du protocole → services MPU → analyse NPU en option. Ici, les E/S déterministes et la maintenabilité logicielle à long terme peuvent être plus importantes que le débit maximal de l’IA.

Comment choisir entre FPGA, NPU et MPU

Choisissez parmi la charge de travail complète, et non l'étiquette du processeur. Si le problème dominant est l'inférence neuronale, commencez par la compatibilité NPU. Si les E/S personnalisées et le prétraitement déterministe dominent, évaluez les ressources FPGA. Si les services Linux, les réseaux et les logiciels d'application dominent, commencez par la capacité MPU. La plupart des plateformes Edge hautes performances combineront au moins deux de ces ressources.

Avant d'engager du matériel, exécutez des flux représentatifs via la pile logicielle prévue et mesurez la latence, la puissance, la bande passante mémoire et les températures de bout en bout. Ces preuves sont plus précieuses que les classements génériques des accélérateurs.

Exemple concret : quatre caméras et un budget de mémoire partagée

Prenons un exemple de planification avec quatre flux 1 280 × 720 à 30 images par seconde, représentés en RVB avec un octet par canal après la conversion d'image. Leur charge utile d’image logique combinée est 4 × 1 280 × 720 × 30 × 3 = 331 776 000 octets par seconde, environ 332 Mo/s en unités décimales. Il ne s’agit pas du débit binaire de la liaison caméra ni des performances mesurées d’un produit Alvexis.

Une copie plein écran supplémentaire lit et écrit cette charge utile, ajoutant environ 664 Mo/s de trafic mémoire avant de prendre en compte le comportement du cache ou d'autres opérations. Les tenseurs de modèles, la conversion des couleurs, la journalisation et les services simultanés ajoutent leur propre trafic. Cela explique pourquoi une conception peut être contrainte par le mouvement des données même lorsque sa note d'accélération globale semble suffisante.

Travail à placerPoint de départPreuve avant de s'engager
Ingestion et synchronisation de la caméraInterfaces SoC prises en charge, avec FPGA ou un périphérique compagnon si nécessaireCapture de flux simultanée, comportement d'horodatage et perte sous charge
Inférence neuronaleNPU lorsque le graphique et la précision choisis sont pris en chargePrécision de conversion et mesures d'application soutenues sur l'appareil
Services et enregistrement LinuxRessources MPU et chemin de stockage explicitement budgétiséComportement du processeur, de la mémoire et des E/S lorsque l'inférence est active
Contrôle externe urgentUn contrôleur temps réel adapté ou une implémentation déterministe validéePreuve du temps de réponse dans le cadre de la charge de travail la plus défavorable pertinente

Le but du partitionnement est de rendre explicite chaque besoin en termes de timing et de ressources. Cela ne signifie pas que chaque conception nécessite quatre processeurs différents. Commencez par l'architecture la plus simple qui répond aux exigences, puis ajoutez des ressources là où les mesures ou les contraintes d'interface le justifient.

Un plan de validation pour le choix du mix processeur

  1. Gelez le contrat d’entrée : capteurs, formats de données, modèle, résolution et conditions de fonctionnement.
  2. Vérifiez la prise en charge du modèle et la qualité de sortie avant de comparer le débit de l'accélérateur.
  3. Mesurez l'acquisition, le prétraitement, l'inférence et la livraison séparément, puis mesurez le chemin complet.
  4. Répétez sous une charge thermique soutenue avec l’enregistrement, la mise en réseau et tous les capteurs prévus actifs.
  5. Enregistrez l’âge de la file d’attente, les entrées perdues et la latence de queue, de sorte qu’un débit moyen élevé ne cache pas les retards intermittents.

Conservez la révision de la carte, l'image du logiciel, les versions de la chaîne d'outils et les entrées de test avec les résultats. Pour une implémentation Rockchip, le Guide de déploiement du modèle RK3588 développe ce workflow. Pour les données de caméra d'événement, utilisez le guide d'intégration de logiciels pour définir des horodatages et des représentations avant de choisir le chemin d'inférence.

Une fois la charge de travail caractérisée, comparez Options d'intégration SoM et SBC. Cette décision relie l'architecture de calcul aux connecteurs, à l'alimentation, au boîtier et au travail de production.

De la sélection du processeur au produit à construire

Une liste restreinte de processeurs n’est utile que lorsqu’elle correspond au produit complet. Avant de commander une carte personnalisée, transformez la charge de travail en un bref mémoire d'ingénierie :

  • Entrées : nombre de capteurs, interfaces, fréquences d'échantillonnage et exigences de synchronisation.
  • Charge de travail de l'IA : le modèle réel, la précision prise en charge et la qualité de sortie acceptable.
  • Contraintes physiques : dimensions, source d'alimentation, refroidissement et environnement de fonctionnement.
  • Livraison : quantité de prototypes, volume de production, propriété du logiciel et tests d'acceptation.

Pour une station d'inspection, connectez le pipeline de la caméra au déclencheur de ligne, à l'identifiant de pièce et à l'interface de résultat. Notre solution de vision industrielle et de contrôle qualité explique comment ces exigences deviennent un projet pilote.

FAQ sur l'IA en périphérie MPU, NPU et FPGA

Qu’est-ce que MPU AI ?

MPU AI décrit les charges de travail d'intelligence artificielle déployées sur une plate-forme de microprocesseur embarquée, généralement avec Linux et souvent avec une accélération intégrée ou associée telle qu'un NPU, un GPU ou un FPGA. Le MPU gère généralement les applications, la mise en réseau, le stockage, la sécurité et l'orchestration autour du pipeline d'inférence.

Un MPU peut-il exécuter du machine learning ?

Oui. Les charges de travail d'apprentissage automatique MPU peuvent s'exécuter sur des cœurs de processeur ou utiliser des accélérateurs intégrés. Pour les systèmes de production, la prise en charge des modèles, la bande passante mémoire, les performances thermiques soutenues et la latence de bout en bout comptent plus que le seul titre TOPS.

NPU vs FPGA : quel est le meilleur pour l’IA en périphérie ?

Un NPU est généralement le choix le plus simple pour l’inférence de réseau neuronal prise en charge avec de fortes performances par watt. Un FPGA est préférable lorsque des interfaces de capteurs personnalisées, un prétraitement déterministe, des formats de données inhabituels ou des pipelines spécialisés sont au cœur de la conception. De nombreux systèmes utilisent les deux.

Pouvez-vous exécuter une charge de travail NPU sur un FPGA ?

Un FPGA peut implémenter des accélérateurs de réseaux neuronaux ou des pipelines d'inférence, mais il n'est pas automatiquement équivalent à un NPU dédié. Le commerce implique des ressources logiques programmables, de la mémoire, la maturité de la chaîne d'outils, la prise en charge des modèles, l'effort et la puissance de vérification.

Quand l’inférence FPGA AI a-t-elle un sens ?

L’inférence FPGA AI est intéressante lorsque l’inférence doit être étroitement couplée à un prétraitement déterministe, des interfaces personnalisées ou un mouvement de données spécialisé. Ceci est particulièrement utile lorsqu’un runtime NPU standard ne correspond pas aux contraintes de chemin du capteur ou de latence.

Références techniques

L'exemple de bande passante est un calcul explicite et non une référence de produit. Validez l’architecture sélectionnée sur la charge de travail prévue.

Partitionnez votre véritable charge de travail d’IA en périphérie.

Envoyez les interfaces des capteurs, le type de modèle, les débits de données, l'enveloppe de puissance et les contraintes de déploiement. Nous pouvons les mapper à une architecture MPU/NPU/FPGA et à une classe de module de calcul appropriée.