NVIDIA DGX Spark · 3 September 2026DGX Spark en septembre 2026 : les LLM open source qui tournent vraiment sur GB10, le fine-tuning BF16 et les clusters multi-nœuds
Un an et demi après son lancement, le petit boîtier à 128 Go de mémoire unifiée s’est imposé comme la référence de l’inférence locale de grands modèles de langage. Mais entre les mises à jour de l’été 2026, les nouveaux modèles MoE, le fine-tuning BF16 d’un 35B sur un seul nœud et les clusters multi-nœuds, assembler une chaîne fiable — de votre application jusqu’au moteur — reste un parcours semé d’embûches. Voici, testée pendant six mois, la configuration qui tient la route, les pièges ARM64 à éviter, et les chiffres réels de performance.
GB10 en 2026 : un an et demi de maturité logicielle
Le DGX Spark a fêté ses dix-huit mois avec une maturité logicielle que peu de matériels de ce type atteignent. Le SoC Grace Blackwell GB10 — architecture ARM64, compute capability sm_121 — a d’abord dérouté : les wheels pré-compilées pour x86 ne fonctionnaient pas, flash-attention ne fournissait aucun kernel pour cette architecture, et PyTorch lui-même ne supportait officiellement que sm_120. Dix-huit mois plus tard, le paysage a radicalement changé.
NVIDIA a déployé en janvier 2026 une mise à jour logicielle majeure promettant des gains spectaculaires : jusqu’à 2,5× en inférence LLM et 8× en traitement vidéo. Le trio NVFP4, TensorRT-LLM et décodage spéculatif a débloqué ces gains, et les utilisateurs mesurent désormais ces chiffres sur leurs propres machines. En juillet 2026, une nouvelle vague de mises à jour a amélioré la gestion de la mémoire — un point critique sur une machine où les 128 Go de mémoire unifiée CPU/GPU sont partagés entre le système, les poids du modèle et le cache KV.
Côté écosystème, l’arrivée de CUDA 13.4 en developer preview pour Windows on Arm (21 juillet 2026) prépare le terrain pour les futurs PC RTX Spark, mais le DGX Spark reste une machine Linux-first, tournant sous DGX OS (Ubuntu 24.04) avec CUDA 13.0, Docker et Ollama pré-installés. Les conteneurs NGC multi-architectures se sont généralisés, et vLLM est désormais disponible nativement pour GB10, sans passer par des forks communautaires. Un moteur mystérieux nommé « Atlas » a fait son apparition dans les discussions de l’été 2026, avec des débits annoncés de 82 tokens/s sur Qwen3-Next-80B — non confirmé officiellement par NVIDIA, il reste à surveiller.
La communauté a aussi appris à connaître les vraies limites du SoC. La bande passante mémoire est désormais connue : 273 Go/s en LPDDR5X unifiée, loin des 614 Go/s d’un Apple M5 Max, mais suffisante pour faire tourner des modèles jusqu’à 200 milliards de paramètres en quantification agressive (4-bit) — des tests récents montrent qu’un modèle de cette taille fonctionne effectivement sur la machine. Le Spark n’est pas un monstre de vitesse, mais un outil de travail : la plupart des utilisateurs confirment qu’il « fonctionne de manière fiable, mais n’est pas rapide ».
Il faut aussi noter que le marché s’est diversifié. En mai 2026, le verdict communautaire est sans appel : 70 à 80 % des acheteurs préfèrent le Strix Halo (AMD Ryzen AI Halo, 128 Go LPDDR5X à 256 Go/s, 34 tok/s sur gpt-oss-120B) pour un usage généraliste. Le DGX Spark se justifie surtout pour les workflows CUDA-only : fine-tuning intensif, vLLM optimisé, recherche ML. Trois variantes fonctionnellement identiques (même puce GB10) coexistent : le NVIDIA DGX Spark officiel (~3 000-3 500 $ HT), l’ASUS Ascent GX10 (généralement 500-1 000 $ moins cher, finition supérieure perçue) et les MSI EdgeXpert / Acer DGX (disponibilité limitée en Europe). Tous tournent sous DGX OS avec le stack NVIDIA AI Enterprise pré-installé.
La chaîne qui tient : application → LiteLLM → llama-swap → moteur
Après des semaines de tests, une architecture s’est imposée comme la plus robuste : une chaîne à quatre maillons où chaque brique a un rôle précis. Un test exhaustif mené par dredyson.com, qui a essayé toutes les solutions pour faire tourner une stack LLM complète sur GB10, confirme cette architecture comme la plus fiable.
L’application (interface web, script Python, agent) parle en HTTP à LiteLLM, une passerelle API qui tourne sur le port 14000. LiteLLM agit comme un proxy universel : il expose une API compatible OpenAI, gère le routage entre plusieurs modèles, et ajoute des fonctionnalités comme la gestion des clés API, les limites de débit et le logging. C’est la brique « métier » — elle ne fait aucune inférence elle-même.
Derrière LiteLLM, llama-swap (port 28080) joue le rôle d’orchestrateur de VRAM. Son travail : maintenir chargés les modèles les plus utilisés, décharger ceux qui sont inactifs, et démarrer à la demande des conteneurs éphémères pour les modèles ponctuels. Sur un Spark avec 128 Go partagés, cette gestion dynamique est cruciale : on ne peut pas avoir en permanence un modèle 120B et un 4B en mémoire.
Enfin, les moteurs d’inférence — vLLM, llama.cpp ou Ollama — tournent dans des conteneurs Docker éphémères, chacun exposant un port dédié (vLLM sur 8000, Ollama sur 11434, llama.cpp sur un port configurable). Quand une requête arrive pour un modèle non chargé, llama-swap lance le conteneur approprié, attend qu’il soit prêt, puis transmet la requête. Après une période d’inactivité, le conteneur est arrêté et la mémoire libérée.
Le flux de requêtes est simple : l’application appelle LiteLLM avec un modèle virtuel (ex: « gpt-oss-120b »), LiteLLM route vers llama-swap, qui résout le modèle physique et le moteur à utiliser, puis transmet au conteneur actif. Les temps de chargement à froid sont de l’ordre de plusieurs secondes pour un modèle 70B — d’où l’importance de garder les modèles fréquents en mémoire.
Cette architecture a été validée par plusieurs utilisateurs indépendants. Les ports sont standardisés, la configuration se fait par fichiers YAML, et l’ensemble est reproductible via docker-compose.
vLLM, llama.cpp, Ollama, SGLang : le match sur ARM64
Le choix du moteur d’inférence est la décision la plus structurante. Voici comment les principaux se comportent sur GB10 en septembre 2026.
vLLM est le moteur le plus performant sous charge. Sa gestion avancée du batching (continuous batching) permet de maximiser le débit quand plusieurs requêtes arrivent en parallèle. Sur le Spark, vLLM nécessite des flags spécifiques : --gpu-memory-utilization avec une marge de sécurité (car le CPU et le GPU partagent le même pool mémoire), et --max-num-seqs bas (petit batch) — le blog officiel vLLM recommande explicitement cette configuration pour l’inférence en petit batch plutôt que la haute concurrence. Les CUDA graphs sont activés par défaut. Depuis l’été 2026, vLLM est disponible nativement pour GB10, sans forks communautaires. vLLM supporte également les quantifications FP8, NVFP4 et MXFP4, ce qui en fait le choix naturel pour la production.
llama.cpp est le couteau suisse. Sa compatibilité avec une myriade de formats de quantification (GGUF, Q4_K_M, etc.) et son absence de dépendances lourdes en font un excellent choix pour le prototypage et les modèles exotiques. Sur ARM64, llama.cpp est compilé nativement sans difficulté. Sa performance est généralement inférieure à vLLM sous charge, mais sa latence à faible batch est excellente.
Ollama est une surcouche de llama.cpp qui ajoute une API REST, une gestion des modèles et une interface en ligne de commande. Sur le Spark, Ollama fonctionne bien pour du prototypage rapide, mais il masque beaucoup de paramètres et offre moins de contrôle fin. Pour une stack de production, Ollama est souvent remplacé par llama-swap + vLLM. Un framework de benchmark automatisé récent mesure d’ailleurs l’utilisabilité réelle des modèles servis par Ollama sur le Spark, avec un pipeline LLM-as-a-Judge pour noter la qualité des réponses.
SGLang et DistServe font leur apparition dans les discussions de clusters. SGLang, avec son RadixAttention, est particulièrement efficace pour les workloads avec des préfixes partagés (agents, RAG). DistServe sépare prefill et decode sur des nœuds différents, ce qui peut être pertinent sur un cluster de 2+ Spark. Sur un seul nœud, vLLM reste le choix par défaut.
NemoClaw — la nouvelle stack logicielle de NVIDIA pour les clusters Spark — mérite une mention. Elle intègre NeMo, vLLM et llama.cpp dans une couche unifiée, et simplifie le déploiement multi-nœuds. Les premiers retours sont positifs, mais elle reste jeune et moins éprouvée que la chaîne LiteLLM + llama-swap.
Le tableau suivant résume les forces de chacun :
| Moteur | Compatibilité ARM64 | Performance sous charge | Flexibilité | Cas d’usage idéal |
|---|---|---|---|---|
| vLLM | Excellente (natif) | Élevée (batching continu) | Moyenne (config complexe) | Production, requêtes concurrentes |
| llama.cpp | Excellente (compilation native) | Moyenne | Très élevée (formats multiples) | Prototypage, modèles exotiques |
| Ollama | Bonne (wrapper llama.cpp) | Faible à moyenne | Faible (API simplifiée) | Tests rapides, démo |
| SGLang | Bonne (en développement) | Élevée (RadixAttention) | Moyenne | Agents, RAG, préfixes partagés |
| NemoClaw | Bonne (stack NVIDIA) | Élevée (intégration vLLM) | Moyenne | Clusters multi-nœuds |
En pratique, la stack recommandée par la communauté est : vLLM pour les modèles 70B+ en FP8/NVFP4/MXFP4, llama.cpp pour les petits modèles GGUF en usage interactif, et Ollama seulement pour les essais ponctuels.
Tokens par seconde : les vrais chiffres de septembre 2026
Les benchmarks publiés par les utilisateurs donnent une image contrastée, mais riche. Voici les chiffres les plus cités en septembre 2026.

GPT-OSS-120B (MoE) : environ 57 tokens/s en quantification MXFP4 sur un seul Spark, grâce aux forks de @christopherowen. Ce chiffre, rapporté sur le forum NVIDIA, reste non vérifié indépendamment, mais il est cohérent avec les ordres de grandeur observés. À titre de comparaison, le AMD Ryzen AI Halo (Strix Halo) atteint ~34 tok/s sur ce même modèle.
DeepSeek V4 Flash 0731 : le modèle MoE de DeepSeek, avec 13 milliards de paramètres actifs sur 284 milliards au total, est le grand événement de l’été 2026. Sur un seul Spark, un fork CUDA maison (dérivé du moteur MLX d’antirez) atteint des chiffres remarquables : 1 000 tok/s en prefill et 59 tok/s en multi-agent serving (source : forum NVIDIA, 1er août 2026). Sur 2× DGX Spark, la configuration par défaut plafonne à ~30 tok/s, mais une modification de configuration (décrite sur le forum NVIDIA) permet de ramener l’acceptance à un niveau correct. Le modèle existe en GGUF : le Q8 (UD-Q8_K_XL) pèse 162 Go, seulement 7 Go de plus que le Q4 (UD-Q4_K_XL), et permet une inférence en précision quasi-lossless.
Ant Ling-3.0-Flash : sorti le 23 juillet 2026, ce modèle 124B-A5B (124 milliards de paramètres, 5 milliards actifs) est conçu pour tenir sur un seul Spark. Son architecture hybride (attention KDA et MLA empilées 5:1) lui permet d’atteindre 15 à 20 tok/s sur une seule machine, avec un contexte natif de 256K extensible à 1M. C’est remarquable pour un modèle de cette taille.
Gemma 4 : les benchmarks communautaires via dgx-spark-bench montrent que les modèles 7-13B tournent confortablement entre 40 et 55 tok/s, avec une latence interactive excellente. Un benchmark comparatif de 2026 confirme que le Spark surpasse une instance AWS g4dn (T4) sur tous les modèles testés, et rivalise avec une g5 (A100) sur les petits modèles.
Fine-tuning BF16 : l’exploit d’un 35B sur un seul Spark
La grande surprise de l’été 2026 est venue du fine-tuning. NVIDIA a annoncé en janvier 2026 que le Spark pouvait fine-tuner des modèles jusqu’à 70B en FP16 sans quantification — une promesse qui semblait irréaliste vu les 128 Go partagés. Huit mois plus tard, la communauté a validé l’exploit, avec une limite pratique autour de 35B en BF16 sur un seul nœud.
Le secret tient à la gestion fine de la mémoire unifiée : en combinant une optimisation agressive du cache KV, un gradient checkpointing et une allocation dynamique CPU/GPU, il est possible de fine-tuner un modèle 35B en BF16 complet sans passer par la quantification. Le blog Unsloth a publié un guide détaillé, et la documentation communautaire (awesome-dgx-spark) recense les configurations qui fonctionnent.
Pour les modèles plus gros, la quantification reste nécessaire : le fine-tuning en FP8 ou NVFP4 permet de monter jusqu’à 70B, mais avec une perte de qualité mesurable. Le compromis BF16/35B est aujourd’hui le sweet spot pour la plupart des cas d’usage professionnels — fine-tuning d’un modèle de code sur un corpus interne, adaptation à un domaine métier, etc.
Les frameworks supportés incluent Unsloth, Axolotl, TRL et LLaMA-Factory. Un comparatif récent montre qu’Unsloth est le plus rapide sur GB10, avec une réduction de VRAM de ~30 % par rapport à Axolotl sur les mêmes configurations.
Clusters DGX Spark : 2, 4, 8 nœuds, le réseau qui change tout
Le DGX Spark est une petite merveille de calcul — 128 Go de mémoire unifiée, 1 pétaflop en FP4, un SoC Grace Blackwell qui fait tourner des modèles de 70 milliards de paramètres sur un bureau. Mais dès qu’on branche un deuxième Spark, la donne change. Le réseau inter-nœuds est le talon d’Achille : Ethernet 200 Gb/s via ConnectX-7, pas de NVLink. La bande passante théorique est de 25 Go/s par direction, mais les tests pratiques la situent autour de 20 Go/s en conditions réelles.

Pourquoi ce choix ? NVIDIA a privilégié l’interopérabilité standard plutôt qu’un interconnect propriétaire. Résultat : les clusters Spark sont faciles à monter (un simple switch Ethernet 200 Gb/s suffit), mais les performances multi-nœuds sont limitées par la latence réseau. Les benchmarks communautaires montrent que :
- 2 nœuds : le gain est réel pour les modèles MoE (DeepSeek V4 Flash, Ant Ling), où les experts peuvent être répartis entre les machines. On observe typiquement un gain de 1,6 à 1,8× par rapport à un seul nœud, loin du 2× théorique.
- 4 nœuds : utile pour les modèles >200B ou pour du serving multi-agents. Le gain tombe à 1,3-1,5× par nœud ajouté.
- 8 nœuds : le maximum pratique. Au-delà, la latence réseau domine et les gains deviennent marginaux. Les utilisateurs rapportent que la désagrégation matérielle — spécialiser chaque nœud (un pour le prefill, un pour le decode, etc.) — est plus efficace que la répartition symétrique.
La topologie recommandée par la communauté est un fat-tree à 2 niveaux avec un switch central. Les câbles doivent être de qualité : le câble Amphenol NJAAKK-N911 (400 mm, 32 AWG) est approuvé pour les connexions Spark-to-Spark.
Côté logiciel, NemoClaw simplifie le déploiement multi-nœuds, mais la chaîne LiteLLM + llama-swap fonctionne aussi en cluster, avec un nœud « orchestrateur » qui route vers les nœuds de calcul. SGLang et DistServe sont particulièrement adaptés à ces configurations, DistServe séparant prefill et decode sur des nœuds différents.
Le mot de la fin
Le DGX Spark a tenu ses promesses, mais pas exactement comme NVIDIA l’avait annoncé. Ce n’est pas une station de travail qui remplace un serveur A100 — c’est une brique de cluster, un outil de fine-tuning local, et une machine d’inférence fiable pour les modèles MoE récents. Les mises à jour logicielles de 2026 (NVFP4, TensorRT-LLM, vLLM natif) ont transformé l’expérience, et l’écosystème open source a suivi : DeepSeek V4 Flash, Ant Ling-3.0-Flash et GPT-OSS-120B tournent tous sur un ou deux Spark avec des débits utilisables.
Le choix entre le Spark et le Strix Halo reste une question de workflow : si vous vivez dans l’écosystème CUDA, le Spark est imbattable. Sinon, le Strix Halo offre un meilleur rapport performance/prix pour l’inférence générale. Mais pour ceux qui veulent fine-tuner un 35B en BF16 sur leur bureau, ou monter un cluster de 8 nœuds à la maison, le GB10 n’a pas d’équivalent.
Sources

- dredyson.com — Test exhaustif des stacks LLM sur DGX Spark
- Forum NVIDIA — DeepSeek V4 Flash 0731 sur 1× Spark (1 000 tok/s prefill, 59 tok/s serving)
- Forum NVIDIA — DeepSeek V4 Flash 0731 sur 2× Spark (config change acceptance)
- Forum NVIDIA — Ant Ling-3.0-Flash 124B-A5B
- Blog vLLM — Configuration recommandée pour GB10
- Unsloth — Fine-tuning LLM avec DGX Spark
- OutilsIA — 10 réglages IA locale sur DGX Spark
- dgx-spark-bench — Framework de benchmark automatisé
- dev.to — DGX Spark Inference Performance: Local LLM vs Cloud Benchmarks
- DeepWiki — awesome-dgx-spark (fine-tuning)
- DeepWiki — deepseek-v4-flash-0731-on-one-dgx-spark
- NVIDIA — DGX Spark
- StorageReview — DGX Spark 2,5× performance
- Marktechpost — Comparatif frameworks de fine-tuning
Article recherché et rédigé automatiquement · Magazine Electrosens