NXP propose une première implantation sur microcontrôleur du compilateur de réseaux de neurones open source Glow

eIQ-Glow

NXP a annoncé fin juillet la prise en charge du compilateur de réseaux de neurones (NN) Glow par son environnement logiciel pour apprentissage automatique eIQ, ce qui constituerait une première pour ce compilateur NN d’origine Facebook dans le monde des microcontrôleurs. ...Glow est un compilateur open source dont la vocation est d’accélérer les performances des frameworks d'apprentissage profond sur différentes plates-formes matérielles, et notamment les microcontrôleurs, via une compilation ahead-of-time. Il convertit les réseaux de neurones en fichiers objet que l'utilisateur peut transformer en une image binaire pour améliorer les performances et réduire l’empreinte mémoire par rapport à un moteur d'inférence d'exécution traditionnel.

NXP a donc mis à profit cette capacité en utilisant des bibliothèques d'opérateurs NN pour les cœurs Arm Cortex-M et le cœur de DSP Tensilica HiFi 4 de Cadence. Ce qui permet, selon la société de semi-conducteurs, de maximiser les performances d'inférence de ses processeurs crossover qui embarquent ce DSP, à savoir l'i.MX RT685 (à cœur Cortex-M33) et les i.MX RT1050 et RT1060 (à cœur Cortex-M7). Cette fonctionnalité est désormais intégrée dans l’environnement de développement logiciel eIQ, disponible gratuitement dans le SDK MCUXpresso de NXP qui indique avoir joué un rôle actif au sein de la communauté open source Glow.

« La version standard et prête à l'emploi de Glow disponible sur GitHub est agnostique vis-à-vis des ressources matérielles afin de donner aux utilisateurs la flexibilité de compiler des modèles de réseaux de neurones pour les architectures fondamentales qui les intéressent, y compris les cœurs Arm Cortex-A et Cortex-M, ainsi que les architectures RISC-V, détaille Dwarak Rajagopal, responsable de l'ingénierie logicielle chez Facebook. En utilisant les bibliothèques logicielles ad hoc qui exploitent les éléments de calcul de ses propres microcontrôleurs et en prouvant une augmentation des performances d’un facteur 2 à 3, NXP a démontré les avantages de l'utilisation du compilateur Glow NN pour les applications à apprentissage automatique, tant sur des machines haut de gamme dans le cloud que sur des plates-formes embarquées à faible coût. »

La plate-forme eIQ est présentée par NXP comme un environnement de développement incluant les outils qui permettent de structurer et d’optimiser des modèles d’apprentissage automatique préalablement entraînés dans le nuage pour qu’ils puissent s’exécuter dans des équipements en périphérie de réseau (edge). Avec l’intégration du compilateur Glow dans l’environnement eIQ (qui prend aussi en charge TensorFlow Lite), les développeurs, indique NXP, pourront disposer d'un framework haute performance pour élaborer des applications à apprentissage automatique, adaptable à l’ensemble des solutions de traitement edge du fabricant de semi-conducteurs, qui s’étagent entre les microcontrôleurs crossover i.MX RT et les processeurs d’application i.MX 8.

Les applications vocales, la reconnaissance d'objets et la reconnaissance faciale, entre autres, sont dans la ligne de mire de NXP.

A noter que la prise en charge de Glow par NXP est ici étroitement couplée à la bibliothèque neuronale NNLib que Cadence fournit avec son cœur de DSP Tensilica HiFi 4 (qui déploie une puissance de calcul de 4,8 GMACs). Le compilateur met aussi à profit la bibliothèque logicielle Arm CMSIS-NN intégrée dans l’environnement eIQ pour minimiser l’empreinte mémoire des réseaux de neurones sur les cœurs Cortex-M.

Si le compilateur de réseaux de neurones Glow est déjà accessible pour les processeurs crossover i.MX RT600, i.MX RT1050 et i.MX RT1060, sa disponibilité pour d’autres microcontrôleurs NXP est prévue ultérieurement.

Vous pouvez aussi suivre nos actualités sur la vitrine LinkedIN de L'Embarqué consacrée à l’intelligence artificielle dans l’embarqué : Embedded-IA

Vous pouvez aussi suivre nos actualités sur la vitrine LinkedIN de L'Embarqué consacrée aux microcontrôleurs : Embedded-MCU