# Dynamo : servir des LLM sur plusieurs GPU, en open source

> Dynamo orchestre vLLM, SGLang ou TensorRT-LLM sur un cluster de GPU : routage, cache KV, mise à l'échelle automatique, déploiement sur Kubernetes.

- Type : projet open source
- Famille : LLM locaux · Serveur d'inférence LLM
- Habitat : Cluster de GPU · Kubernetes · Rust
- Niveau : avancé
- Langage : Rust
- Étoiles GitHub : 8247 (relevé le 8 octobre 2026)
- Source : https://github.com/ai-dynamo/dynamo
- Publié le : 8 octobre 2026
- Page : https://geekus.fr/projets/dynamo/

Dynamo est une pile d'inférence open source pensée pour les centres de données. Elle ne remplace pas vLLM, SGLang ou TensorRT-LLM : elle les coordonne pour servir un modèle de langage sur plusieurs GPU et plusieurs machines. Voici ce qu'elle fait, comment l'essayer et dans quels cas elle sert.

## En bref

- Dynamo est la couche d'orchestration au-dessus des moteurs d'inférence vLLM, SGLang et TensorRT-LLM
- Il sépare le prefill et le decode sur des pools de GPU qui évoluent indépendamment
- Un routeur tient compte du cache KV et un planner ajuste les ressources selon des objectifs de latence
- Installation par conteneur, par PyPI ou sur Kubernetes ; licence Apache 2.0
- Pour un seul modèle sur un seul GPU, le moteur seul suffit probablement

## Ce qu'est Dynamo et le problème qu'il règle

La plupart des moteurs d'inférence optimisent un seul GPU ou une seule machine. Dynamo se place au-dessus : son README le décrit comme une couche d'orchestration qui transforme un cluster de GPU en système d'inférence coordonné. Il vise les charges de travail de modèles de langage, de raisonnement, multimodales et de génération vidéo.

Le projet est publié par ai-dynamo sous licence Apache 2.0. Il est écrit en Rust pour les performances, avec Python pour l'extensibilité. Le code du dépôt se répartit ainsi au 8 octobre 2026 : Rust 52 %, Python 35 %, Go 12 %, Shell 1 %.

## Comment fonctionne Dynamo

Le principe repose sur plusieurs briques qui travaillent ensemble. Le **prefill** (la lecture du prompt) et le **decode** (la génération des mots) sont séparés sur des pools de GPU distincts, que l'on dimensionne chacun de son côté. Le README parle de matériel adapté à chaque phase.

Le routeur choisit le worker (le processus qui exécute le modèle) selon sa charge et selon le recouvrement de cache KV. L'objectif est d'éviter de recalculer un prefill déjà fait. Le README cite un temps jusqu'au premier token deux fois plus court dans un test de Baseten avec Qwen3-Coder 480B.

## Les fonctions de Dynamo pour un cluster de GPU

Le README liste plusieurs composants, que la documentation officielle présente comme adoptables séparément : on peut commencer par le frontend, le routeur, le planner ou le gestionnaire de cache, puis ajouter le reste.

Dynamo accepte aussi des GPU NVIDIA et AMD ainsi que des XPU Intel, et tourne sur Kubernetes, Slurm ou en local, d'après sa documentation.

- KV-aware routing : orienter les requêtes selon la charge et le cache déjà présent
- KV Block Manager : déporter le cache KV du GPU vers le CPU, le SSD puis un stockage distant
- Planner : autoscaler guidé par des objectifs de latence, au moindre coût total
- ModelExpress : transfert des poids de GPU à GPU pour démarrer plus vite de nouveaux réplicas
- Tolérance aux pannes : contrôles de santé et migration des requêtes en cours

## Installer et essayer Dynamo

Trois voies existent : un conteneur prêt à l'emploi, un paquet PyPI, ou Kubernetes pour la production. Avec le conteneur vLLM, il faut lancer le frontend et un worker, puis envoyer une requête à l'API compatible OpenAI. Le README fournit une variante SGLang et mentionne aussi une image TensorRT-LLM.

Pour une installation par PyPI, le README demande d'installer uv. TensorRT-LLM exige pip avec un index supplémentaire, détaillé dans le guide d'installation.

Sur Kubernetes, il faut d'abord installer la plateforme Dynamo, puis déployer un manifeste. Le README précise que ce déploiement sans configuration est en bêta.

```bash
docker run --gpus all --network host --rm -it nvcr.io/nvidia/ai-dynamo/vllm-runtime:1.5.0
python3 -m dynamo.frontend --http-port 8000 --discovery-backend file > /dev/null 2>&1 &
python3 -m dynamo.vllm --model Qwen/Qwen3-0.6B --discovery-backend file &
uv pip install --prerelease=allow "ai-dynamo[vllm]"
```

## Déployer un LLM sur Kubernetes avec Dynamo

Dans le mode Kubernetes, on décrit le modèle, le moteur et les objectifs de latence dans un seul fichier YAML. Dynamo estime des configurations candidates, le planner optimise la topologie, puis le déploiement est lancé.

Deux topologies de routage sont possibles. Dans la première, le frontend de Dynamo reçoit le trafic et son routeur choisit le worker. Dans la seconde, une passerelle Kubernetes compatible Gateway API Inference Extension appelle un plugin de Dynamo avant de transmettre la requête. Le dépôt propose aussi des recettes prêtes à l'emploi, par exemple DeepSeek-R1 avec SGLang en mode désagrégé.

## Où en est le projet

La dernière version, la v1.5.1, est sortie le 7 octobre 2026. C'est un correctif : il traite la récupération du routeur après surcharge et plusieurs points liés aux entrées multimodales. Deux changements demandent une action à la mise à jour : la variable `DYN_MM_TRUST_EGRESS_PROXY=1` pour les workers passant par un proxy HTTP, et `DYN_MM_LOCAL_PATH` pour les fichiers locaux de génération avec SGLang Diffusion.

La v1.5.0, du 21 septembre 2026, regroupe 658 PR fusionnées de 123 contributeurs. Elle rend le choix des workers personnalisable et déprécie KVBM, dont le retrait est visé pour la v1.6.0. AIConfigurator devient AISimulate.

Relevés du 8 octobre 2026 : 8 247 étoiles, 1 675 forks, 426 contributeurs, 1 725 tickets et demandes de fusion ouverts.

## Pour qui, et avant de se lancer

Dynamo vise ceux qui servent des modèles sur plusieurs GPU ou plusieurs nœuds, veulent un routage conscient du cache, une mise à l'échelle séparée du prefill et du decode, ou des démarrages rapides de réplicas. Le README précise que pour un seul modèle sur un seul GPU, le moteur d'inférence seul suffit probablement.

Les chiffres de performance du README (7 fois plus de débit par GPU, 80 % de dépassements d'objectifs en moins) viennent de contextes précis, indiqués à chaque fois, et ne se transposent pas d'office à un autre matériel. Le README ne donne pas de configuration minimale en matériel.

## Quelques repères

- **Prefill et decode** : Les deux étapes de la réponse d'un modèle de langage. Le prefill lit et traite le texte envoyé, le decode produit ensuite la réponse mot après mot.
- **Cache KV** : Mémoire où le modèle garde des calculs intermédiaires sur le texte déjà lu. La réutiliser évite de refaire ces calculs pour des requêtes qui se ressemblent.
- **Moteur d'inférence** : Logiciel qui fait tourner un modèle d'IA déjà entraîné pour produire des réponses. Il gère la mémoire du GPU et l'exécution des calculs.

## Questions fréquentes

### Dynamo remplace-t-il vLLM ou SGLang ?

Non. Dynamo est la couche d'orchestration au-dessus de vLLM, SGLang et TensorRT-LLM : il les coordonne sur plusieurs nœuds sans les remplacer.

### Dynamo est-il gratuit et open source ?

Oui, le dépôt est publié sous licence Apache 2.0. Le README ne mentionne pas de prix.

### Faut-il Dynamo pour un seul modèle sur un seul GPU ?

Probablement pas. Le README indique que, dans ce cas, le moteur d'inférence seul suffit probablement.

### Dynamo fonctionne-t-il avec Kubernetes ?

Oui. Dynamo tourne sur Kubernetes, Slurm ou en local, et le README recommande Kubernetes pour la production multi-nœuds. Des guides existent pour AWS EKS, Google GKE et Azure AKS.

## À retenir

Dynamo orchestre vLLM, SGLang ou TensorRT-LLM sur un cluster de GPU, avec prefill et decode séparés, routage selon le cache KV et planner d'autoscaling. Son intérêt commence avec plusieurs GPU ou nœuds ; pour un seul modèle sur un seul GPU, le moteur seul suffit probablement.

Sources :

- [ai-dynamo](https://github.com/ai-dynamo/dynamo) (README)
- [docs.nvidia.com](https://docs.nvidia.com/dynamo/latest) (documentation officielle)
- [GitHub](https://github.com/ai-dynamo/dynamo/releases) (notes de version)

Mots-clés : inférence, llm, gpu, kubernetes, rust, nvidia

---

Fiche publiée par Geekus : https://geekus.fr/projets/dynamo/
