Apprentissage profond : Plumerai revendique le logiciel d’inférence le plus rapide sur architecture Arm Cortex-M

[EDITION ABONNES] Créée en 2017 et spécialiste des technologies d’apprentissage profond (deep learning) s’exécutant sur des ressources matérielles limitées, la jeune société britannique Plumerai assure que son logiciel d'inférence pour microcontrôleurs Arm Cortex-M est le plus rapide et le plus économe en mémoire au monde, ...aussi bien pour les réseaux de neurones binaires BNN (Binarized Neural Networks) que pour les modèles d’apprentissage profond 8 bits.

Selon des tests réalisés par la société d’outre-Manche, son logiciel d'inférence affiche une latence inférieure de 40% à celle de l’environnement TensorFlow Lite for Microcontrollers de Google et nécessite 49% de mémoire RAM, tout en conservant la même précision, et ce avec les noyaux de la bibliothèque de réseaux de neurones Arm CMSIS-NN. Plumerai estime en outre surpasser tout autre logiciel d'inférence d'apprentissage profond pour l’architecture Arm Cortex-M (voir tableau ci-dessous).

Dans le détail, le logiciel d’inférence de la start-up britannique repose sur TensorFlow Lite for Microcontrollers au sens où il prend en charge a minima l’ensemble des opérations de cet environnement. Mais comme les ressources sont rares sur un microcontrôleur, Plumerai ne s’appuie pas sur les noyaux TensorFlow ou Arm pour les couches les plus critiques en matière de performances. En lieu et place, la société a développé un code de noyau personnalisé, optimisé pour garantir une latence et une utilisation de la mémoire minimales.

Pour assurer une rapidité meilleure que les noyaux CMSIS-NN spécifiques à l’architecture Arm Cortex-M déjà fortement optimisés, Plumerai précise avoir plonger profondément à l'intérieur des boucles internes et avoir repenser également les algorithmes de niveau supérieur. Au-delà de ces optimisations génériques, le Britannique a aussi adapté son approche pour tirer le maximum des performances propres à l’architecture Cortex-M. (Pour plus de détails, lire l’article paru sur le blog de Plumerai.). Ainsi, plutôt que d'optimiser uniquement les convolutions en général, le logiciel d'inférence apporte des améliorations spécifiques en fonction de toutes les valeurs réelles des paramètres de chaque couche du réseau de neurones. Comme il n’est pas possible de connaître à l’avance quels réseaux de neurones le logiciel d'inférence va exécuter, ces optimisations sont effectués avec le compilateur, précise Plumerai, en générant du code dans une étape de prétraitement automatisée en utilisant le réseau de neurones comme entrée. Le compilateur est alors guidé pour obtenir la latence la plus faible possible.

Au-delà de l’architecture Arm Cortex-M, Plumerai se dit également capable d’optimiser son logiciel d'inférence pour les architectures Arm Cortex-A et RISC-V.

L’utilisation de réseaux de neurones BNN - des modèles d'apprentissage profond qui n'utilisent qu'un seul bit pour coder chaque poids et chaque fonction d’activation - permettrait en outre de rendre la technologie IA de la start-up encore plus efficace. (A cet égard, on rappellera que la start-up s’est engagé dans un partenariat avec son compatriote Xmos, spécialiste des microcontrôleurs multicœurs à vocation temps réel, afin de combiner sa bibliothèque logicielle et le processeur crossover à architecture propriétaire xcore.ai.)

A l’heure actuelle, la société travaille à bâtir des architectures de modèle d'apprentissage profond et des algorithmes d’apprentissage améliorés pour les BNN, et elle développe en parallèle un bloc d’IP personnalisé qui pourra être mis en œuvre dans des FPGA. A suivre donc.

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