Google ouvre son architecture pour faire fonctionner l’IA sur des appareils à très faible consommation

Google complète l’architecture ouverte Coral NPU et son compilateur pour exécuter des modèles IA sur objets connectés, capteurs et robots.

Faire fonctionner une intelligence artificielle en permanence sur une montre, des écouteurs ou un capteur industriel suppose de résoudre un problème qui ne se pose pas de la même manière dans les centres de données : chaque opération consomme une partie d'une batterie limitée. Google Research cherche à réduire cette dépense avec Coral NPU, une architecture matérielle ouverte conçue pour exécuter des modèles d'IA directement sur de petits appareils. Le projet franchit une nouvelle étape avec l'achèvement de son architecture 32 bits, la publication d'un compilateur open source et l'arrivée de composants commerciaux développés avec Synaptics. Réduire les déplacements de données plutôt que multiplier les calculs

Dans un accélérateur d'intelligence artificielle, la consommation électrique ne dépend pas uniquement du nombre d'opérations réalisées. Une partie importante de l'énergie sert à déplacer les données entre la mémoire et les unités de calcul. Ce problème devient particulièrement contraignant pour les appareils alimentés par batterie, qui doivent analyser en continu des informations provenant de microphones, de caméras ou de différents capteurs.

L'architecture Coral NPU s'appuie sur RISC-V, un jeu d'instructions ouvert, auquel Google associe des unités spécialisées pour les opérations utilisées par les réseaux neuronaux. Elle comprend un processeur scalaire destiné au contrôle des programmes, un coprocesseur vectoriel pour les calculs parallèles, un sous-système mémoire étroitement intégré et, désormais, une unité de calcul matriciel.

Cette dernière, appelée Matrix Execution Unit, complète la version 32 bits du projet. Elle traite les multiplications de matrices largement utilisées dans les modèles de vision et les architectures Transformer. Au lieu de charger plusieurs fois les mêmes données pour effectuer successivement des calculs vectoriels, son moteur réalise des opérations sur des blocs bidimensionnels en réutilisant localement les poids et les activations.

Google décrit une capacité de 256 opérations multiply-accumulate par cycle, avec une architecture configurable jusqu'à 1 TOPS, soit mille milliards d'opérations par seconde. La conception vise une consommation moyenne de l'ordre de 10 milliwatts pour l'inférence. Il s'agit toutefois d'un objectif de conception, et non d'une autonomie mesurée sur l'ensemble des appareils qui pourraient intégrer cette technologie. Des modèles plus complexes sur les objets connectés

Les accélérateurs à très faible consommation sont souvent associés à des fonctions relativement simples, comme la détection d'un mot-clé ou la reconnaissance d'un mouvement. L'ajout d'un moteur matriciel permet d'envisager des traitements plus complexes, notamment des modèles de vision, des fonctions audio avancées et de petits modèles de langage.

Google cite la traduction vocale en temps réel sur les appareils portables, le filtrage spatial du son dans les écouteurs et la perception visuelle à faible latence pour les robots. Des modèles compacts de la famille Gemma font également partie des architectures auxquelles Coral NPU pourrait être adapté.

La démarche ne consiste pas à transférer l'ensemble des capacités d'un grand modèle cloud vers une puce de montre. Google envisage plutôt une répartition des tâches entre plusieurs niveaux de calcul. Un petit modèle local peut surveiller en permanence les signaux reçus par l'appareil et réaliser les traitements immédiats. Lorsqu'une opération nécessite davantage de ressources ou un raisonnement plus élaboré, elle peut être confiée à un modèle plus important, exécuté sur l'appareil ou dans le cloud.

Cette organisation permet de limiter certaines transmissions de données et de réduire la dépendance à une connexion permanente. Elle ne garantit pas, à elle seule, que toutes les informations resteront locales : cela dépend des applications, des choix de leurs développeurs et des traitements effectivement délégués. Un compilateur commun pour plusieurs fabricants de puces

La consommation énergétique constitue une première difficulté. La fragmentation des composants en représente une autre. Les fabricants utilisent des architectures et des outils logiciels différents, ce qui oblige souvent les développeurs à adapter leurs modèles à chaque nouveau matériel, parfois jusqu'à réécrire des opérations de calcul ou modifier leur quantification.

Pour limiter ces adaptations, Google publie Coral Compiler v1.0, une chaîne de compilation ouverte fondée sur les technologies IREE et MLIR. Elle permet de préparer des modèles issus de JAX, PyTorch ou TensorFlow pour une exécution sur l'architecture Coral NPU, en utilisant notamment les représentations intermédiaires StableHLO et TOSA.

Le compilateur répartit les opérations entre le processeur principal et le NPU, fusionne certaines instructions et organise les calculs matriciels en fonction de la mémoire disponible. Il traduit ensuite les traitements vers les instructions scalaires, vectorielles et matricielles de Coral. Les développeurs disposent également d'un simulateur MPACT et d'une conception FPGA de référence pour tester leurs logiciels et leurs choix matériels avant la fabrication d'une puce.

Google met en accès libre le code RTL de l'architecture 32 bits, qui décrit les circuits matériels et peut être utilisé comme base pour une implémentation sur silicium. Les dépôts publics de l'architecture et du compilateur sont accessibles sur GitHub. La possibilité de réutiliser une même chaîne d'outils ne signifie cependant pas qu'un modèle quelconque fonctionnera sans modification sur toutes les configurations matérielles : les contraintes de mémoire, la compatibilité des opérations et les performances restent propres à chaque puce. Synaptics transforme l'architecture en composants commerciaux

Le projet dispose déjà de premières déclinaisons matérielles grâce à Synaptics. Le fabricant a présenté sa deuxième génération de microcontrôleurs Astra SR200, destinée notamment aux appareils portables, aux capteurs