Étiquette : GPU

Un gros plan sur des serveurs informatiques illuminés de lumières vertes, suggérant un environnement de calcul haute performance.

ML Drift : moteur GPU open-source pour l’inférence IA sur appareils périphériques

Le moteur de calcul GPU ML Drift est disponible en version open-source sous licence Apache 2.0, selon developers.googleblog.com. Ce nouveau composant est conçu pour accélérer l’inférence d’intelligence artificielle et de machine learning directement sur les appareils périphériques (edge), en résolvant les problèmes de diversité matérielle que rencontrent les développeurs.

Déployer de l’IA accélérée par GPU sur des dispositifs variés est notoirement difficile. Contrairement à l’inférence en datacenter, où les accélérateurs sont homogènes et prévisibles, le bord impose de composer avec une grande diversité d’architectures GPU, de versions de pilotes et d’API de bas niveau. ML Drift agit comme une couche d’abstraction unifiée, gérant les complexités des API telles qu’OpenGL ES, OpenCL, Metal et WebGPU.

Ce n’est pas une nouveauté absolue, car le delegate GPU de TensorFlow Lite avait déjà posé des jalons. Néanmoins, l’évolution des charges de travail – allant de la vision par ordinateur en temps réel à l’IA générative gourmande en paramètres – pousse les puces grand public à leurs limites. Les anciens systèmes n’étaient pas conçus pour gérer ces goulots d’étranglement de calcul et de mémoire. ML Drift, qui sert de moteur d’accélération GPU au sein de LiteRT, vise à fournir une base technique commune pour garantir à la fois la stabilité des modèles classiques et la performance maximale des architectures génératives les plus récentes.

Vue rapprochée d'un rack de serveurs rempli de cartes graphiques et de câbles, illustrant l'infrastructure de calcul IA.

Des innovations pour uniformiser le rendu graphique et les données

Pour surmonter la fragmentation logicielle, ML Drift introduit la « virtualisation des tenseurs ». Historiquement, optimiser les shaders nécessitait de lier explicitement la représentation logique d’un tenseur à une allocation physique spécifique sur le GPU pour chaque backend (OpenGL, Metal, etc.). La nouvelle approche découple cette logique de l’allocation physique. En utilisant des modèles de shaders unifiés et des templates dynamiques, le compilateur traduit les coordonnées lors de l’initialisation, éliminant ainsi le besoin d’entretenir des bases de code de shaders distinctes pour chaque plateforme. C’est un gain de portabilité avec un surcoût d’exécution minimal, selon l’annonce de developers.googleblog.com.

Par ailleurs, la gestion des données complexes est améliorée. Le delegate TFLite GPU était rigide quant aux tenseurs 4D, obligeant les ingénieurs à utiliser des astuces de mise en page pour les modèles nécessitant 5D. ML Drift intègre nativement le support des tenseurs 5D. Ceci permet d’exécuter des tâches lourdes, comme les réseaux convolutionnels 3D pour des modèles spatio-temporels (type Swin Transformer v2), directement sur les GPUs périphériques.

Optimisations ciblées pour les modèles de langage

L’accent n’est pas uniquement mis sur le généraliste. Pour les grands modèles de langage (LLMs) auto-régressifs, ML Drift apporte une optimisation granulaire en fonction de la phase d’inférence. Il distingue le stade de pré-remplissage du KV cache (limité par le calcul) et le stade de décodage (limité par la bande passante mémoire). En décodage, le système bascule dynamiquement les noyaux et utilise une mise en page spécifique pour le KV cache, appliquant une quantification agressive dans le noyau pour éviter des transferts de données inutiles entre la mémoire et le processeur.

Cette quête d’efficacité s’inscrit dans une tendance plus large. Par exemple, Google Cloud a récemment ouvert le stack de serving llm-d 1.0, un ensemble natif Kubernetes pour coordonner les serveurs de modèles sur des flottes mixtes TPU et GPU, afin d’améliorer la réutilisation du contexte et de réduire la latence de premier jeton (Source 3).

En plus des améliorations de performance pour les charges classiques, ML Drift étend sa portée. L’API unifiée, initialement pensée pour l’accélération dans un navigateur via WebGPU, a été compilée nativement hors navigateur grâce à Dawn (l’implémentation WebGPU de Chromium). Cela permet à ML Drift de fonctionner sous Windows et Linux, en s’appuyant sur l’abstraction matérielle moderne de WebGPU, au complément du backend Metal natif pour macOS. C’est une flexibilité bienvenue pour le développement local, même si l’objectif premier demeure le déploiement léger sur mobile et périphériques.

Sources

Crédits photo