Electrosens R&D
Electrosens NVIDIA DGX Spark · 6 November 2026

Speculative decoding sur DGX Spark : quand le pari à plusieurs tokens transforme le GB10 (mise à jour novembre 2026)

Le DGX Spark de NVIDIA est un paradoxe : capable de charger des modèles de 200 milliards de paramètres dans ses 128 Go de mémoire unifiée, il plafonne pourtant à quelques tokens par seconde en décodage natif. La faute à une bande passante mémoire qui n’a rien d’exceptionnel. Mais une technique vieille de quelques années, le speculative decoding, transforme progressivement ce colosse aux pieds d’argile en machine d’inférence redoutable — et l’automne 2026 rebat les cartes avec l’arrivée des décodeurs spéculatifs fusionnés dans les checkpoints, comme le DSpark de DeepSeek V4 Flash ou le MTP de Qwen3.8-Flash-Next. Mieux : une analyse publiée récemment montre que le GB10 est, mathématiquement, l’une des machines où le speculative decoding est le plus rentable — et pas seulement par intuition.


Le GB10, ce colosse aux pieds de mémoire : pourquoi le décodage natif plafonne

Le DGX Spark, propulsé par le superchip GB10 Grace Blackwell, est un objet fascinant. Dans un format de mini-PC d’environ 1,2 kg, NVIDIA a réussi à loger un système complet capable d’exécuter des modèles de plusieurs centaines de milliards de paramètres. La clé de cette prouesse tient dans ses 128 Go de mémoire unifiée LPDDR5x, une configuration qui permet de charger des poids qui dépassent de très loin ce qu’une carte graphique classique peut accueillir. Le tout est interconnecté via le NVLink-C2C, qui relie le CPU Grace et le GPU Blackwell avec une cohérence mémoire totale.

La fiche technique officielle, relayée par la documentation Ultralytics et la page produit NVIDIA, précise le tableau : jusqu’à 1 pétaFLOP en FP4, un CPU Arm à 20 cœurs (10 Cortex-X925 + 10 Cortex-A725), une interface mémoire 256 bits cadencée à 4 266 MHz, et une bande passante de 273 Go/s. Un chiffre impressionnant pour un mini-PC, mais dérisoire face aux 3,35 To/s d’une H100 ou aux 8 To/s d’un B200. Or, le décodage autorégressif d’un LLM est une opération fondamentalement memory-bound : à chaque token généré, le modèle doit relire l’intégralité de ses poids depuis la mémoire. Plus le modèle est gros, plus cette relecture est coûteuse, et plus la bande passante devient le facteur limitant.

Les mesures communautaires confirment ce diagnostic. Sur un modèle dense 70B en FP8, la machine plafonne à environ 2,7 tokens/s selon une mesure LMSYS relayée par QuelLLM.fr. Pour un Llama 3.1 8B, les ordres de grandeur rapportés sur les forums NVIDIA et Reddit tournent autour de 20 à 30 tokens/s — utilisable, mais loin des performances d’un GPU discret. Un Qwen 2.5 14B quantifié en Q4 atteint péniblement 10 à 15 tokens/s. Et un 70B en Q4, malgré la réduction de poids, reste coincé sous la barre des 5 tokens/s.

Le paradoxe est cruel : le DGX Spark peut charger des modèles que même une RTX 5090 ne peut pas accueillir, mais il les fait ramper en session unique. C’est exactement le scénario pour lequel le speculative decoding a été inventé — et c’est aussi pourquoi la machine s’épanouit en serving multi-agents, où le batch masque la latence.

Le draft model, ou comment tricher intelligemment : le principe du pari à plusieurs tokens

Le décodage autorégressif classique est d’une lenteur exaspérante parce qu’il est séquentiel : un token à la fois, chaque token nécessitant une passe complète du modèle. Le speculative decoding, popularisé par les travaux de Google Research en 2023, propose une alternative élégante : parier sur plusieurs tokens à la fois.

Bande passante mémoire et seuil de concurrence : GB10 vs H200GB10 (DGX Spark) — ban273Go/s (bande passante) — B* sans unitéH100 — bande passante3350Go/s (bande passante) — B* sans unitéB200 — bande passante8000Go/s (bande passante) — B* sans unitéGB10 — B* (compute/ban458Go/s (bande passante) — B* sans unitéH200 — B* (compute/ban206Go/s (bande passante) — B* sans unité

Le principe est simple. Un petit modèle — typiquement 0,5 à 1 milliard de paramètres, appelé draft model — propose une séquence de k tokens candidats. Le modèle cible, celui qui nous intéresse vraiment, vérifie ensuite ces k tokens en une seule passe forward, en parallèle. Si les tokens proposés sont corrects, on les accepte tous et on a gagné k tokens pour le prix d’une seule passe du gros modèle. Si certains sont faux, on les rejette et on repart du dernier token correct. La qualité finale est strictement identique au décodage natif : le modèle cible reste l’arbitre ultime.

Le gain théorique dépend d’un paramètre clé : le taux d’acceptation p, c’est-à-dire la probabilité que le draft model propose un token que le modèle cible aurait choisi. La formule classique du speedup est 1 / (1 – p + p×k). Avec un taux d’acceptation de 0,7 et k = 4 tokens proposés, le speedup théorique atteint 1 / (1 – 0,7 + 0,7×4) ≈ 1,35×. Avec p = 0,8 et k = 5, on monte à 1,56×. Le draft model doit être suffisamment petit pour être rapide, mais suffisamment intelligent pour bien prédire — un équilibre délicat.

Cette technique est particulièrement adaptée aux architectures memory-bound comme le GB10. Pourquoi ? Parce que le draft model, avec ses quelques centaines de millions de paramètres, ne pèse que quelques centaines de Mo en mémoire. Le lire en entier ne coûte qu’une fraction de la bande passante nécessaire pour lire un modèle de 70B. Le pari est donc presque toujours gagnant : on sacrifie une petite lecture mémoire pour potentiellement économiser plusieurs grosses lectures.

Le point de bascule théorique : pourquoi le GB10 est un cas d’école (et pourquoi l’H200 ne l’est pas)

C’est ici que l’automne 2026 apporte l’éclairage le plus intéressant, et il vient d’un travail de benchmark communautaire encore en cours : le dépôt faruk-akyol/speculative-decoding-blog, qui documente un protocole de mesure du speculative decoding sur une seule DGX Spark (GB10). Attention à la prudence méthodologique : au moment de la consultation, le statut affiché est « experiment design complete, benchmarks not yet run ». Autrement dit, le raisonnement qui suit est un modèle prédictif, pas encore une campagne de mesures publiée. Il n’en reste pas moins précieux, car il explique pourquoi les chiffres observés sur DGX Spark divergent de ceux des cartes data center.

Le raisonnement part d’une observation simple : une étape de décodage est limitée par la bande passante mémoire. Le speculative decoding échange du compute contre de la bande passante en rédigeant k tokens à bas coût puis en les vérifiant en une seule passe batchée. Cet échange n’est « gratuit » que tant que la passe de vérification reste memory-bound. D’où un seuil de concurrence critique :

c* = B* / (k + 1), avec B* = peak_compute / memory_bandwidth

Le GB10 a une bande passante inhabituellement faible (273 Go/s) au regard de son compute (environ 125 TFLOPS denses en BF16), ce qui donne B* ≈ 458 — contre ≈ 206 pour une H200. Conséquence : le plateau memory-bound du Spark est 2,2× plus large que celui de la H200.

Cette différence n’est pas cosmétique. Elle prédit un comportement contre-intuitif et vérifiable : les benchmarks publiés de Qwen3.8-27B-DFlash2 montrent que MTP et DSpark deviennent net-négatifs sur une H200 à concurrence 32 (0,77–0,95× — plus lents que sans spéculation du tout). À k=7, cela correspond à un batch effectif de 256, au-delà du point de crête de la H200 (206). Sur un Spark, 256 reste confortablement sous 458 — donc la même configuration devrait continuer à gagner. C’est précisément l’hypothèse que ce dépôt existe pour tester.

Et l’enjeu est plus grand sur cette machine que sur une carte data center. Qwen3.8-27B-FP8 pèse environ 30,8 Go ; le décodage en batch 1 sur ce boîtier est donc plafonné à 273 / 30,8 ≈ 8,9 tok/s, quelle que soit la qualité des kernels. Sur un Spark, le speculative decoding n’est pas une micro-optimisation : c’est la différence entre un modèle utilisable en interactif et un modèle qui ne l’est pas.

Le protocole compare deux familles de modèles de 27–31B, choisies pour leurs architectures d’attention contrastées :

Modèle Type d’attention Têtes spéculatives disponibles
Qwen3.8-27B hybride : 48 couches linéaires (SSM type Mamba) + 16 complètes, ratio 3:1 MTP natif · DFlash 2 · DSpark
gemma-4-31B-it glissante (fenêtre 1024) + complètes, ratio 5:1 MTP assistant · EAGLE3 · DFlash

L’appariement est la partie intéressante. Rejeter un token spéculé dans gemma implique de tronquer un KV cache ; dans Qwen3.8, cela implique de rembobiner l’état récurrent SSM sur 48 des 64 couches. Leurs courbes de coût devraient diverger avec la longueur de contexte — le KV cache de gemma grossit et consomme précisément la bande passante que la spéculation cherche à économiser, tandis que les couches linéaires de Qwen3.8 maintiennent un état constant. Sept classes de méthodes sont recensées, chacune vérifiée contre le registre du moteur d’inférence.

2026, l’année du draft fusionné : DSpark, MTP et la fin du draft model séparé

La grande nouveauté de l’automne 2026, c’est que le draft model n’est plus forcément un fichier séparé. Les laboratoires intègrent désormais le décodeur spéculatif dans le checkpoint lui-même, ce qui change radicalement l’ergonomie.

Source : haruni.net

Le cas le plus documenté est celui de DeepSeek V4 Flash-0731, un MoE de 284 milliards de paramètres (13 milliards actifs par token) publié le 31 juillet 2026 sous licence MIT. Ce modèle intègre un module DSpark, décrit comme un décodeur spéculatif fusionné dans le checkpoint. Autrement dit, le draft model n’est plus un fichier à télécharger et à configurer : il est embarqué. Les premiers retours sur les forums NVIDIA indiquent des performances honorables : environ 30 tok/s en configuration par défaut, et jusqu’à 59 tok/s en serving multi-agents après ajustement. Un utilisateur rapporte même 1 000 tok/s en prefill et 59 tok/s en serving multi-agents sur une seule machine.

La même dynamique touche l’écosystème Qwen. Qwen3.8-Flash-Next a reçu le support MTP (Multi-Token Prediction), avec un gain annoncé de 1,67× sans perte de qualité : le débit passe de 83 à 138 tok/s en GGUF, avec vérification exacte. Sur DGX Spark, la famille Qwen3.8-27B (sortie en août 2026) tourne autour de 34-38 tokens/s en session unique, et Qwen3.6-27B atteint 28-33 tokens/s en session unique, jusqu’à 163 tokens/s en pic de décodage et 136 tokens/s avec 10 agents en parallèle. À noter aussi : NVIDIA a détaillé fin octobre 2026 un workflow en ligne de commande pour faire tourner Nemotron-3.5 Lightning sur DGX Spark 64 Go, avec données de benchmark et résultats de speculative decoding à l’appui — signal que la stack logicielle officielle embrasse désormais la technique de bout en bout.

Cette bascule vers le draft intégré a une conséquence pratique majeure : elle supprime la principale source d’erreur de configuration (mauvais appariement draft/cible, tokenizer incompatible) et rend le speculative decoding accessible sans expertise fine. Elle réduit aussi le surcoût mémoire, puisque le décodeur partage les embeddings et souvent une partie du KV cache avec le modèle principal.

273 Go/s, le goulot qui change tout : pourquoi le speedup théorique ne s’applique pas comme sur une H100

Sur une H100, le speculative decoding est une affaire de compute. Le GPU est si rapide que le draft model ajoute une charge de calcul supplémentaire qui peut, dans certains cas, dépasser le gain obtenu. Les implémentations doivent donc être fines, et le choix du draft model est crucial pour ne pas transformer l’opération en gouffre énergétique.

Sur le GB10, l’équation est radicalement différente. La machine est memory-bound : le GPU passe l’essentiel de son temps à attendre que les poids arrivent de la mémoire LPDDR5x. Le compute, lui, reste largement sous-utilisé. Dans ce contexte, le draft model n’ajoute pas une charge de calcul significative — il ajoute une lecture mémoire supplémentaire, mais une lecture minuscule. Le rapport coût/bénéfice est donc structurellement favorable, et le calcul du point de crête (B* ≈ 458 contre 206 pour une H200) le quantifie précisément.

La mémoire unifiée et le NVLink-C2C jouent ici un rôle décisif. Sur une architecture classique avec un GPU discret, les allers-retours entre le draft model (souvent logé en VRAM) et le modèle cible (parfois en RAM système) passent par le bus PCIe, avec ses latences et ses goulots d’étranglement. Sur le GB10, tout est dans le même espace d’adressage : le CPU et le GPU partagent la même mémoire physique, et le NVLink-C2C offre une cohérence totale. Les bascules entre draft et cible se font sans copie, sans transfert, sans synchronisation coûteuse. C’est un avantage structurel que les frameworks exploitent désormais pleinement.

Cela dit, le speedup pratique reste inférieur au speedup théorique. La formule 1/(1-p+p×k) suppose que le draft model est gratuit, ce qui n’est jamais le cas. Sur le GB10, le draft model consomme de la bande passante — environ 0,5 à 1 Go/s pour un modèle 0,5B en FP8, ce qui reste négligeable face aux 273 Go/s disponibles. Mais il ajoute aussi de la latence : chaque cycle draft → vérification introduit un aller-retour supplémentaire. En streaming single-request, cette latence peut annihiler le gain de débit. C’est précisément pourquoi les gains les plus spectaculaires s’observent en serving multi-agents, où le batch amortit la latence du cycle spéculatif — et pourquoi le seuil c* du Spark, plus large, laisse de la marge bien plus longtemps que sur une carte data center.

vLLM, TensorRT-LLM, llama.cpp : le match des implémentations sur mémoire unifiée

Trois frameworks dominent le paysage du speculative decoding sur DGX Spark : vLLM, TensorRT-LLM et llama.cpp. Chacun a ses forces, ses faiblesses, et sa manière d’exploiter — ou non — la mémoire unifiée.

Source : 3dvf.fr

vLLM est probablement le plus mature. Son flag --speculative-model permet de spécifier un draft model séparé, et le framework gère automatiquement le KV cache partagé entre le draft et la cible. C’est un avantage considérable : le draft model et le modèle cible partagent les mêmes clés/valeurs de contexte, ce qui évite de dupliquer la mémoire et accélère les transitions. vLLM supporte également le speculative decoding avec des modèles MoE, ce qui le rend compatible avec les architectures récentes comme DeepSeek V4 Flash. C’est la stack que Context Studios utilise en production sur ses nœuds ASUS Ascent GX10 sous vLLM. La communauté maintient par ailleurs un dépôt dédié, vllm-dgx-spark, qui documente précisément la configuration du speculative decoding sur cette plateforme — un point d’entrée utile pour qui veut reproduire les réglages.

TensorRT-LLM, la solution maison de NVIDIA, est plus rigide mais potentiellement plus rapide. Son outil pyexec permet de charger des draft models pré-convertis en moteurs TensorRT. L’avantage est une latence minimale grâce à l’optimisation en profondeur du graphe de calcul. L’inconvénient est la complexité : il faut convertir chaque modèle, gérer les versions, et les mises à jour sont fréquentes. NVIDIA a annoncé lors du CES 2026 des optimisations permettant jusqu’à 2,5× de performance en inférence sur DGX Spark, incluant TensorRT-LLM et le speculative decoding — un chiffre prometteur, mais dont le détail technique reste flou. La mise à jour logicielle d’octobre 2026 de la plateforme DGX Spark, déployée à partir du 21 octobre, consolide cette stack (les systèmes partenaires à base de GB10 Grace Blackwell bénéficiant des mêmes correctifs).

llama.cpp, le framework communautaire par excellence, propose le flag -md (pour model draft). Son avantage est la simplicité : on charge un GGUF de draft model, et c’est parti. Sa gestion de la mémoire unifiée est plus rudimentaire, mais le framework est constamment mis à jour par une communauté très active. Pour les utilisateurs qui veulent tester rapidement, c’est souvent le meilleur point d’entrée.

Framework Flag / Outil Gestion KV cache partagé Complexité Idéal pour
vLLM --speculative-model Oui, automatique Moyenne Production, batch, MoE
TensorRT-LLM pyexec + moteurs TRT Oui, optimisé Élevée Latence minimale, intégration NVIDIA
llama.cpp -md Partielle Faible Tests rapides, usage personnel

Le point commun des trois : grâce à la mémoire unifiée, ils évitent les copies PCIe qui plombent les systèmes à GPU discret. Le draft model et la cible vivent dans le même espace mémoire, et les transitions se font par simple pointeur. C’est un avantage que les benchmarks sur H100 ne montrent pas, car sur ces machines, le PCIe est un goulot d’étranglement supplémentaire.

Chiffres réels : ce que le speculative decoding donne (et ne donne pas) sur une Spark

Il faut ici séparer soigneusement trois catégories de chiffres : les mesures publiées et reproductibles, les retours communautaires, et les prédictions issues du modèle de crête. Les mélanger serait la meilleure façon de se mentir.

Mesures et retours établis. Sur DeepSeek-V4-Flash en IQ2_XXS avec le moteur ds4.c d’antirez, une Spark unique atteint environ 14 tok/s en single-stream et 410 tok/s en prefill (août 2026). Sur une suite GGUF llama.cpp, un modèle 35B-A3B grimpe jusqu’à 67 tok/s. En configuration bi-Spark avec vLLM en tensor parallel (TP=2) et DeepSeek-V4-Flash FP8, on observe ~41 tok/s en single-stream, ~350 tok/s agrégés à concurrence 32, et ~1 785 tok/s en prefill — avec un pool de KV cache partagé de 1 105 096 tokens. Deux Spark supportent jusqu’à 405 milliards de paramètres.

Le cas Qwen3.8-27B, le plus parlant. En FP8, le modèle pèse ~30,8 Go, ce qui plafonne le décodage batch-1 à ~8,9 tok/s sans spéculation. Les chiffres rapportés avec MTP/DSpark sur DGX Spark (34-38 tok/s en session unique pour Qwen3.8-27B, jusqu’à 163 tok/s en pic et 136 tok/s à 10 agents pour Qwen3.6-27B) montrent l’ampleur du levier : on passe d’un modèle à peine interactif à un modèle confortable. C’est exactement le type de gain que le modèle de crête prédit, et c’est cohérent avec le fait que 256 (batch effectif à k=7) reste sous le seuil de 458 du Spark.

Ce qui reste à prouver. Le dépôt de benchmark cité plus haut n’a pas encore publié ses mesures : ses courbes de coût par longueur de contexte (KV cache de gemma vs état SSM de Qwen3.8) sont des hypothèses. Tant que ces runs ne sont pas exécutés, on ne peut pas affirmer que le gain observé sur H200 s’inverse sur Spark — seulement qu’il devrait ne pas s’inverser. La nuance est importante pour quiconque dimensionne une ferme d’agents sur cette base.

Le piège du single-stream. Beaucoup d’utilisateurs comparent des tok/s en session unique et concluent que le speculative decoding « ne marche pas ». C’est une erreur de protocole : la latence du cycle draft → vérification pénalise précisément ce cas. Les gains spectaculaires (59 tok/s en serving multi-agents sur DeepSeek V4 Flash, 136 tok/s à 10 agents sur Qwen3.6-27B) apparaissent quand le batch amortit cette latence. Sur un Spark, la bonne question n’est donc pas « combien de tok/s en solo ? » mais « combien d’agents puis-je servir simultanément à latence acceptable ? ».

Fine-tuning, clusters et écosystème : le speculative decoding n’est qu’une pièce

Le speculative decoding ne vit pas isolé. Sur DGX Spark, il s’insère dans une stack plus large qu’il faut connaître pour ne pas sur-optimiser un maillon en négligeant les autres.

Source : huggingface.co

Fine-tuning. La machine est taillée pour l’adaptation locale de modèles, avec un avantage net sur les solutions à mémoire unifiée concurrentes grâce à l’écosystème CUDA. Mais la falaise est réelle : la version 64 Go, arrivée en boutique le 23 octobre 2026 à 4 999 $, réduit drastiquement la marge pour le LoRA/QLoRA sur gros modèles, tandis que la version 128 Go a franchi les 6 000 $ sur le marché. Le choix de configuration conditionne donc directement ce qu’on peut fine-tuner — et donc ce qu’on peut ensuite servir avec un draft bien apparié.

Clusters. L’agrégation de plusieurs Spark est l’argument que ni un Mac ni un mini-PC concurrent ne peut suivre. En TP=2 sous vLLM, on double la capacité mémoire utile (jusqu’à 405B de paramètres) et on obtient des débits agrégés qui rendent le serving multi-agents crédible. Kubernetes et le GPU Operator permettent d’exposer les ressources GB10 proprement ; c’est la voie recommandée dès qu’on dépasse deux nœuds.

Concurrence. Le paysage s’est densifié : l’AMD Ryzen AI Halo 192 Go (7 299,99 $ chez Micro Center) charge des modèles de 300 milliards de paramètres que peu de machines peuvent accueillir, mais les benchmarks indépendants créditent le DGX Spark d’un avantage de vitesse. Le DGX Station for Windows (748 Go de mémoire cohérente, 20 PFLOPs FP4, lancement Q4 2026 via six partenaires OEM) vise un autre segment. Et la famille RTX Spark / N1X, même silicium GB10 sous une autre étiquette, est créditée d’une mémoire plus rapide sur les portables — un détail qui compte, car une bande passante supérieure déplace le seuil c* et rend le speculative decoding moins indispensable. Enfin, côté logiciel, la release d’octobre 2026 de DGX Spark apporte son lot de nouveautés et de pièges, à déployer avec précaution sur les nœuds partenaires.

Le fil rouge. Toutes ces briques convergent vers une même conclusion : sur GB10, la performance perçue dépend moins du pic de calcul que de la gestion fine de la bande passante. Le speculative decoding est l’outil le plus direct pour cela — à condition de le régler pour le batch, pas pour le solo, et de vérifier ses propres chiffres plutôt que de recopier ceux d’une H200.

Sources

Article recherché et rédigé automatiquement · Magazine Electrosens
📬 Restez à la pointe
Recevez chaque semaine les nouveautés de ce magazine par email.
💬 Une remarque, une correction ?
Aidez-nous à améliorer cet article. Nous prenons en compte vos retours.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *