Créer plus facilement de puissantes applications Edge AI

La conception d'un dispositif simple basé sur des capteurs pour l'Internet des objets (IoT) n'est pas la chose la plus difficile qui soit, mais concevoir un dispositif connecté capable de prendre en charge l'apprentissage automatique (ML) en périphérie est une tout autre histoire. Il existe une gamme de processeurs, une carte de développement et un logiciel associé de NXP Semiconductors conçus pour surmonter les principaux défis en matière de fonctionnalités, de performances et de développement, pour un déploiement plus rapide des capacités sophistiquées d'intelligence artificielle (IA) en périphérie dans les applications industrielles et IoT.

Les concepteurs ont déjà commencé à tirer parti de solutions Edge AI capables d'effectuer des inférences ML sur des dispositifs basse consommation sans dépendre de ressources basées sur le cloud. Des fonctions telles que la détection de mots d'activation, l'analyse de schémas de données de capteurs et la détection d'objets de base peuvent typiquement être prises en charge par des processeurs écoénergétiques exécutant des modèles ML élaborés à l'aide de structures et d'outils d'optimisation de modèles. Des problèmes se posent lorsqu'il s'agit d'utiliser les ressources du processeur pour résoudre des problèmes plus complexes, en particulier ceux qui nécessitent une réponse en temps réel ou quasi réel.

Comment un processeur multicœur peut considérablement accélérer l'inférence ML

NXP Semiconductors relève les défis liés aux fonctionnalités et aux performances de ces nouvelles conceptions Edge AI en temps réel grâce à sa gamme de processeurs d'applications i.MX 93 (Figure 1).

Figure 1 : Les processeurs d'applications i.MX 93 constituent la base des conceptions Edge AI grâce à leur combinaison de ressources de traitement, de système de sécurité, de mémoire et d'un ensemble complet d'horloges, de temporisateurs, d'options de connectivité et d'interfaces. (Source de l'image : NXP Semiconductors)

Ces dispositifs intègrent un riche ensemble de capacités, notamment des fonctions multimédias, de la mémoire, des interfaces et des options de connectivité, et offrent une combinaison puissante de ressources de traitement :

  • Jusqu'à deux cœurs de processeur d'application Arm Cortex-A55 hautes performances pour le traitement d'applications basées sur Linux
  • Une plateforme Arm Cortex-M33 ultrabasse consommation pour le traitement des commandes en temps réel à faible latence
  • Une unité de traitement neuronal (NPU) Arm Ethos-U65 microNPU pour une exécution efficace des inférences ML
  • L'enclave sécurisée EdgeLock Secure Enclave (ESE) intégrée de NXP, qui fournit une base de confiance pour le démarrage sécurisé et la gestion des clés, des fonctions cryptographiques à la volée et d'autres capacités nécessaires pour protéger les applications en périphérie

Grâce aux capacités de ces processeurs, il est possible de diviser de grandes applications Edge AI en éléments gérables : au lieu de voler des cycles au code d'application exécuté sur les cœurs Cortex-A55, l'unité NPU décharge l'exécution des algorithmes de réseaux neuronaux nécessitant des calculs intensifs. Séparément, le Cortex-M33 reste dédié aux tâches sensibles à la latence, comme l'acquisition de données de capteurs ou le contrôle de processus, tandis que l'ESE assure la sécurité du système, du code logiciel et des données critiques. Comme indiqué ci-dessous, la capacité de l'unité NPU à décharger l'inférence ML des cœurs Cortex-A55 est un élément clé pour les applications Edge AI qui nécessitent une réactivité en temps quasi réel.

Comment une carte matérielle et un logiciel permettent d'accélérer le développement d'applications

Même si les fonctionnalités et les performances des processeurs sont des facteurs clés, le développement efficace d'applications Edge AI dépend de la capacité à se familiariser rapidement avec les capacités des processeurs et à développer rapidement des logiciels efficaces. La combinaison de la carte de développement FRDM-IMX93 de NXP (Figure 2) et des ressources de développement logiciel associées offre tout le nécessaire pour commencer à créer des applications.

Figure 2 : La carte de développement FRDM-IMX93 intègre un processeur d'application i.MX 93 et plusieurs puces complémentaires pour fournir un système complet pour le développement. (Source de l'image : NXP Semiconductors)

La carte FRDM-IMX93 est conçue pour simplifier le développement d'applications avec la gamme de processeurs i.MX 93. Mesurant seulement 105 mm × 65 mm, la carte inclut 2 Go de mémoire vive dynamique (DRAM) LPDDR4X, une carte eMMC5.1 de 32 Go, un circuit intégré de gestion de l'alimentation (PMIC), un module émetteur-récepteur radio avec Wi-Fi 6, Bluetooth 5.4 et un réseau personnel sans fil 802.15.4, ainsi que d'autres puces de support nécessaires. Les embases, les connecteurs et l'interface de débogage de la carte vous permettent d'ajouter facilement des cartes d'extension pour déboguer votre système.

La carte offre plusieurs options de configuration, mais est prête à l'emploi dans son mode par défaut. Après avoir connecté un écran et une souris, et branché la carte à l'alimentation à l'aide du câble USB fourni, la carte démarre à partir de l'eMMC, sur laquelle est préchargée une image de démonstration binaire Linux de NXP.

Les applications pré-définies accélèrent le déploiement Edge AI

La véritable force de la carte de développement FRDM-IMX 93 réside dans le logiciel et les outils qui l'accompagnent. Inclus dans l'image de démonstration par défaut, le progiciel GoPoint pour processeurs d'applications i.MX de NXP fournit un ensemble d'applications d'exemple accessibles via l'interface utilisateur graphique (GUI) GoPoint. Lorsque vous lancez une application, GoPoint vous guide tout au long des étapes de configuration requises, comme la spécification d'une source vidéo de caméra.

Autre point tout aussi intéressant pour nombre d'entre nous : le référentiel d'applications d'exemple de NXP contient le code source Python complet pour chaque application GoPoint. Par ailleurs, la documentation pour chaque application inclut une description de l'architecture logicielle, les modèles d'apprentissage automatique utilisés et la configuration de lancement. Par exemple, la documentation pour l'application GoPoint d'apprentissage automatique basse consommation i.MX 93 décrit le flux d'exécution entre les cœurs Cortex-A55 et Cortex-M33, en montrant comment le Cortex-M33 effectue la majeure partie du travail, à savoir la détection des mots d'activation, jusqu'à finalement activer Linux sur le Cortex-A55 pour avertir l'utilisateur.

L'application GoPoint pour système de surveillance du conducteur (DMS) de NXP illustre un autre concept important : comment combiner l'exécution de plusieurs modèles pour détecter plusieurs états différents dans une application plus complexe. Après avoir invoqué cette application, sélectionnez la source de la caméra et le processeur d'inférence (processeur d'application ou NPU, par exemple), puis procédez à l'exécution. Pendant son exécution, le statut actuel du sujet de la caméra (conducteur) est affiché, ce qui permet d'indiquer si le sujet est distrait, somnolent, bâille, fume ou utilise un téléphone portable (Figure 3).

Figure 3 : Exécutée sur un processeur d'application i.MX 93, une application GoPoint d'exemple effectue une inférence sur plusieurs modèles d'apprentissage automatique pour détecter différents états du conducteur avec seulement quelques millisecondes de latence. (Source de l'image : NXP Semiconductors)

Les données de performances, qui montrent la capacité de l'unité NPU à permettre des applications Edge AI plus efficaces, sont des informations essentielles dans le référentiel de chaque application. Dans l'application pour système de surveillance du conducteur, par exemple, NXP a constaté que l'inférence de détection cigarette/téléphone basée sur processeur avec un seul thread prend 407,963 ms. L'exécution avec deux threads réduit le temps d'inférence à 303,159 ms, mais le véritable avantage réside dans l'utilisation de l'unité NPU : l'inférence sur l'unité NPU réduit le temps à seulement 23,008 ms.

Conclusion

La capacité d'un processeur d'application i.MX 93 basse consommation à effectuer des tâches d'inférence importantes avec une latence en temps quasi réel ouvre de nombreuses possibilités pour les solutions Edge AI dans les applications industrielles et IoT. En utilisant une carte de développement et un logiciel associés, il est possible de créer rapidement et efficacement ces applications.

À propos de l'auteur

Image of Stephen Evanczuk

Stephen Evanczuk affiche plus de 20 ans d'expérience dans la rédaction de contenu pour et sur l'industrie électronique, couvrant un large éventail de sujets, notamment le matériel, les logiciels, les systèmes et les applications, y compris l'IoT. Il a obtenu son doctorat (Ph.D.) en neurosciences sur les réseaux neuronaux et a travaillé dans l'industrie aérospatiale sur les systèmes sécurisés massivement distribués et les méthodes d'accélération par algorithmes. Actuellement, lorsqu'il n'écrit pas d'articles techniques, il travaille sur l'application de l'apprentissage approfondi pour les systèmes de reconnaissance et de recommandation.

More posts by Stephen Evanczuk
 TechForum

Have questions or comments? Continue the conversation on TechForum, DigiKey's online community and technical resource.

Visit TechForum