QDNAVente et intégration de plateformes d'inférence et d'entraînement de LLM, en local ou hybride

Prefill, decode et cache KV : quel matériel pour un LLM (2026)

Un LLM ne sollicite pas le matériel de la même façon selon qu'il lit votre requête ou qu'il rédige sa réponse. Comprendre les deux temps, et le rôle de la bande passante, permet de choisir la bonne carte et la bonne architecture, d'un poste à une baie.

Prefill, decode et cache KV : quel matériel pour un LLM
Réponse courte. Le prefill, qui lit votre requête, est limité par la puissance de calcul et fixe le délai avant le premier jeton. Le decode, qui écrit la réponse jeton par jeton, est limité par la bande passante mémoire et fixe la vitesse de génération, car il relit tous les poids et le cache KV à chaque jeton. Pour une carte unique, visez la bande passante mémoire. Pour plusieurs cartes, l'interconnexion décide : le NVLink sert surtout aux très grands modèles répartis et à l'entraînement, PCIe suffit pour l'inférence courante. Un cluster de DGX Spark débloque la capacité, pas la vitesse.

Les deux temps d'un LLM : prefill et decode

Une génération se déroule en deux phases aux besoins matériels opposés. Le prefill traite toute votre requête d'un coup, système, contexte et question. Ce sont de grosses multiplications matrice contre matrice, parfaitement parallèles, qui saturent le calcul de la carte. Cette phase est limitée par la puissance de calcul et fixe le délai avant le premier jeton. Un GPU à forte puissance, avec un format FP4 ou FP8 natif, la raccourcit.

Le decode écrit la réponse un jeton à la fois. Chaque jeton dépend des précédents, ce sont des opérations matrice contre vecteur qui font peu de calcul mais relisent une grande quantité de données. Cette phase est limitée par la bande passante mémoire et fixe la vitesse de génération, le temps entre deux jetons. L'intensité de calcul y tombe à quelques dizaines d'opérations par octet et l'occupation du GPU descend souvent sous la moitié. La règle qui en découle est simple : le prefill réclame des FLOPS, le decode réclame de la bande passante.

Le decode est limité par la bande passante mémoire

Comme la génération relit tous les poids du modèle à chaque jeton, la vitesse dépend directement de la vitesse à laquelle la carte lit sa mémoire. C'est le facteur décisif, et il varie d'un facteur trente selon la solution.

Bande passante mémoire par solution, du B300 à 8 To/s jusqu'au DGX Spark à 273 Go/s, le facteur qui décide de la vitesse de génération d'un LLMBande passante mémoire par solution, du B300 à 8 To/s jusqu'au DGX Spark à 273 Go/s, le facteur qui décide de la vitesse de génération d'un LLM
La bande passante mémoire par solution. Le decode, donc la vitesse de génération, suit cette échelle.

Un exemple chiffre l'écart. Sur un même modèle compact, le serveur RTX PRO 6000 génère environ 215 jetons par seconde là où un DGX Spark plafonne autour de 50, soit quatre fois moins, alors que les deux chargent le modèle sans peine. Sur un modèle de soixante-dix milliards de paramètres, un seul Spark ne tient plus que quelques jetons par seconde en génération : sa mémoire de 128 Go charge le modèle, sa bande passante de 273 Go/s ne le sert pas vite. À l'autre bout, une baie H200, B200 ou B300 vise le débit maximal pour le contexte long et le service à grande échelle, et un rack GB300 NVL72 pousse la mémoire cohérente à 20,7 To sur soixante-douze cartes.

Le DGX Station illustre un piège, signalé en orange sur le schéma. Ses 288 Go de HBM3e servent à 8 To/s, mais la machine ajoute 496 Go de LPDDR5X bien plus lente. Tant que le modèle et le cache KV tiennent dans les 288 Go de HBM, la génération est rapide. Dès qu'ils débordent sur la LPDDR5X, cette portion est lue à la vitesse de la RAM, quelques centaines de gigaoctets par seconde, et le decode ralentit fortement sur la part débordée. La grande capacité sert à charger de très gros modèles, pas à les servir tous à pleine vitesse.

Le cache KV, ce qui alourdit le decode

Pour ne pas tout recalculer à chaque jeton, le modèle mémorise les clés et les valeurs de l'attention dans un cache KV. Ce cache grandit avec la longueur du contexte, le nombre de requêtes simultanées et le nombre de couches. Sur de longues réponses et plusieurs utilisateurs, il peut dépasser la taille du modèle lui-même. Comme il est relu à chaque jeton, il aggrave le goulot du decode et occupe de la mémoire vidéo.

Trois leviers le contiennent : le regroupement des têtes d'attention, ou GQA, qui réduit le nombre de clés et de valeurs à stocker ; la quantification du cache KV, qui le compresse ; et un contexte maîtrisé. C'est aussi pourquoi le contexte très long exige d'abord de la bande passante mémoire, avant toute autre optimisation.

Ce qui doit tenir sur une carte

« Le modèle tient sur la carte » ne se limite pas aux poids. Quatre postes se partagent la mémoire vidéo, et le dernier est variable : les poids du modèle, le modèle d'embedding et le reranker d'une chaîne RAG, et le cache KV, qui grandit avec le contexte et le nombre de requêtes.

Prenons un exemple concret : Qwen3.6 35B A3B en NVFP4, contexte de 256K jetons, sur un RTX PRO 6000 de 96 Go. Le sigle A3B signifie que 3 milliards de paramètres sont actifs par jeton, mais les 35 milliards résident en mémoire, car un modèle à mélange d'experts charge tous ses experts.

PosteTaille (ordre de grandeur)
Poids Qwen3.6 35B A3B, NVFP4 (4 bits)~18 Go (les 35 Md résident)
Modèle d'embedding, ~4 Md en FP8~4 Go
Reranker, ~2 Md en FP8~2 Go
Framework et activations~4 Go
Sous-total fixe~28 Go
Cache KV pour 256K jetons, en FP16~24 Go
Cache KV pour 256K jetons, en FP8~12 Go

Le cache KV est le poste qui varie. Sa taille par jeton vaut deux fois le nombre de couches, fois le nombre de têtes KV, fois la dimension de tête. Pour une architecture de ce type, de l'ordre de quarante-huit couches, quatre têtes KV en GQA et une dimension de 128, cela fait environ 96 Ko par jeton en FP16, donc ~24 Go pour 256K jetons ; moitié moins en FP8 (~12 Go), encore moitié moins en 4 bits (~6 Go). Une requête de 256K jetons avec un cache KV en FP8 demande donc environ 28 + 12 = 40 Go, ce qui tient largement sur une carte de 96 Go.

Combien de contexte tient, alors ? Après le sous-total fixe (~28 Go), il reste environ 68 Go pour le cache KV. En FP16, à 96 Ko le jeton, cela porte une seule requête à près de 700 000 jetons ; en FP8, au-delà du million. En pratique, ce budget se partage entre requêtes simultanées : à 256K jetons par requête avec un cache KV en FP8, la carte sert environ cinq requêtes en parallèle. Réduire la précision du cache KV, ou activer le GQA, achète donc directement du contexte ou de la concurrence. Co-loger embedding, reranker et LLM sur une seule carte est le schéma type d'une petite plateforme RAG souveraine ; au-delà, on dédie une carte à l'inférence et une autre aux modèles de recherche.

L'interconnexion : quand plusieurs cartes doivent se parler

Dès qu'un modèle est réparti sur plusieurs cartes en tensor parallelism, chaque couche déclenche un all-reduce qui synchronise les cartes, donc à chaque jeton. La vitesse de ce lien devient alors le goulot. Les ordres de grandeur sont sans appel.

SolutionInterconnexion multi-GPUNote (avec ou sans NVLink)
GB300 NVL72 (rack)NVLink 5 et NVSwitch, 130 To/s sur le domaine72 GPU B300 vus comme un seul, 20,7 To de mémoire cohérente
B300 et B200 SXMNVLink 5, 1,8 To/s par carte, maillage completTensor parallelism quasi linéaire sur huit cartes
H200 SXM et H100 SXMNVLink 4 et NVSwitch, 900 Go/s par carteMaillage complet des huit cartes, avec NVLink
H200 NVL (PCIe)Pont NVLink jusqu'à quatre cartes, 900 Go/s ; sinon PCIeMême bande passante mémoire que le SXM, 4,8 To/s
H100 PCIePont NVLink par paires, 600 Go/s ; sinon PCIeMémoire plus lente que le SXM, 2,0 contre 3,35 To/s
Toute carte PCIe seule, sans pontPCIe Gen5 x16, ~128 Go/sSept fois plus lent que le NVLink 4, sans NVLink
DGX Station (GB300)NVLink-C2C interne, 900 Go/s entre processeur et GPUPoste mono-GPU, 784 Go de mémoire cohérente
Cluster DGX Spark (ConnectX-7 RoCE)200 Gb/s, soit ~25 Go/sLien réseau entre machines, sans commutateur

Sur PCIe, l'all-reduce du tensor parallelism fait chuter l'efficacité de mise à l'échelle autour de 0,7, et peut consommer le tiers du temps de calcul sur huit cartes. Le NVLink, lui, garde cet échange négligeable.

Une carte, ou plusieurs ? PCIe, NVLink, SXM

Le bon choix suit une logique claire.

Les moteurs modernes gèrent ce compromis : vLLM détecte la topologie au démarrage et bascule sur l'all-reduce optimisé pour NVLink quand les cartes sont pontées, sinon il passe par PCIe.

Empiler des DGX Spark : capacité, pas vitesse

Relier deux DGX Spark par leur port ConnectX-7 agrège 256 Go de mémoire et permet de charger un modèle de quatre cent cinq milliards de paramètres en FP4, impossible sur une seule machine. Mais le lien à 200 Gb/s reste lent face à la mémoire interne. En service à faible latence, NVIDIA annonce un temps par jeton qui suit à peu près le nombre de machines. En lot, le pipeline l'emporte largement sur le tensor parallelism sur ce lien réseau. Le message tient en une phrase : le cluster Spark débloque des modèles trop gros pour une seule machine, il n'accélère pas un modèle qui tient déjà.

Comment choisir : règles de dimensionnement

Le dimensionnement dépend donc du modèle, de la longueur de contexte et du nombre d'utilisateurs, pas d'une carte reine universelle. Les fourchettes de prix par gamme figurent dans notre guide des prix d'un serveur IA, et le choix du modèle dans notre comparatif des LLM open source. QDNA intègre ce matériel et l'exploite pour vous, du poste à la baie.

Questions fréquentes

Pourquoi mon LLM local génère-t-il lentement malgré un gros GPU ?

La génération, ou decode, est limitée par la bande passante mémoire, pas par la puissance de calcul. À chaque jeton, la carte relit tous les poids et le cache KV. Une carte à grande capacité mais faible bande passante, comme le DGX Spark à 273 Go/s, charge un gros modèle mais le génère lentement.

Faut-il du NVLink pour l'inférence d'un LLM ?

Rarement. Le NVLink sert quand un modèle est réparti sur plusieurs cartes en tensor parallelism, où un all-reduce synchronise les cartes à chaque jeton. En inférence courante, PCIe suffit, et le NVLink profite surtout à l'entraînement multi-GPU. Pour les très grands modèles répartis à faible latence, il redevient utile.

SXM ou PCIe pour servir un LLM ?

PCIe est plus économique et suffit pour la plupart des inférences, car le maillage NVLink des cartes SXM reste souvent inutilisé en génération. Le SXM se justifie pour l'entraînement multi-GPU, où l'all-reduce sur les huit cartes exige les 900 Go/s du NVSwitch.

Le DGX Spark est-il rapide pour un LLM ?

Le DGX Spark offre 128 Go de mémoire unifiée mais seulement 273 Go/s de bande passante. Il excelle en prototypage et sur des modèles compacts, mais génère lentement les grands modèles denses. Relier deux Spark débloque la capacité, jusqu'à Llama 405B en FP4, pas la vitesse par jeton.

Comment réduire le poids du cache KV ?

Trois leviers : le regroupement des têtes d'attention, ou GQA, qui réduit le nombre de clés et de valeurs à stocker ; la quantification du cache KV, qui compresse ces activations ; et un contexte maîtrisé, car le cache grandit avec la longueur de la conversation et le nombre de requêtes simultanées.

Dimensionnons votre matériel selon votre usage réel

Un échange pour cadrer la carte, l'architecture et le runtime selon vos modèles, votre contexte et votre nombre d'utilisateurs.

Réserver un échange

Références