veilletech.fr
8 sept. Feed du jour
#07 LLM Article

Un contexte d'un million sur huit H200

La mémoire ne manquait pas : on la remplissait de jetons que personne ne lisait.

vLLM introduit Hybrid HiSparse, une politique de résidence du cache KV qui exploite l'attention creuse de GLM 5.3 : l'indexeur ne retient que les top-K jetons, tout le reste part en mémoire hôte, ce qui borne la mémoire GPU par requête. Le cache reste sur la carte tant qu'il y a de la place et ne bascule qu'en cas de pression. Sur un nœud de 8× H200, cela rend possible le contexte plein d'un million de jetons, jusque-là hors d'atteinte.

4 min de lectureavancévidéo 1:11
Partager
Sommaire4 sections
  1. Ce qui se passe
  2. Les trois états de résidence
  3. Les chiffres
  4. Ce qu'il faut en retenir

Ce qui se passe

Servir un modèle à contexte long bute toujours au même endroit : le cache clé-valeur. Le pool de blocs de la carte est fixe, une charge agentique multiplie les requêtes simultanées dont le contexte grandit sans cesse, et la mémoire finit par manquer.

Deux réponses existaient, mauvaises toutes les deux :

L'équipe vLLM exploite une propriété du modèle. GLM 5.3 utilise une attention creuse à MLA : un indexeur sélectionne les top-K jetons et n'attend que ceux-là. HiSparse décharge donc tout le cache KV sauf les jetons sélectionnés, ce qui donne enfin une borne supérieure à la mémoire GPU nécessaire par requête. Le cache de l'indexeur reste résident et croît avec le contexte, mais il est bien plus petit — l'IndexShare de GLM 5.3 ne prévoit qu'une couche d'indexeur pour quatre couches sparse-MLA.

Hybrid HiSparse ajoute la nuance qui compte : le cache reste sur le GPU tant qu'il y a de la place, et le mécanisme de déchargement ne s'applique qu'en cas de pression réelle. On ne paie les transferts hôte-carte qu'au moment où la concurrence l'impose.

Les trois états de résidence

pool sous pressionplace libereelignes rapatrieesrequete termineePleine residenceResidence mixteAucune residence
Comment une requête change d'état à mesure que le cache se remplit

En pleine résidence, tout le cache sparse-MLA est sur la carte, et les pages de préfixe achevées sont recopiées d'avance vers l'hôte — de sorte qu'elles pourront libérer leur emplacement plus tard sans nouvelle copie.

En résidence mixte, la queue de la requête reste sur le GPU et n'est jamais évincée ; les pages plus anciennes ne vivent qu'en mémoire hôte, et les lignes que l'indexeur réclame sont placées dans des hot buffers. Un noyau fusionné résout les top-K : les jetons résidents sont lus sur place, les jetons chauds rafraîchissent leur entrée LRU, et un défaut recopie une seule ligne depuis la mémoire hôte épinglée. Rien sur le chemin de décodage n'attend une décision du CPU, ce qui préserve la capture en graphe CUDA.

En absence de résidence, une nouvelle requête qui réutilise un préfixe présent seulement côté hôte démarre sur des emplacements vides : les lignes arrivent au fur et à mesure que l'indexeur les demande. On paie ce que le modèle regarde, pas tout l'historique.

La clé de voûte est que les hot buffers ne sont pas une allocation séparée : ce sont des blocs ordinaires du même pool, loués via le Hybrid Memory Allocator de vLLM. Un bloc libéré par une requête peut devenir capacité chaude pour une autre.

Les chiffres

Le banc d'essai porte sur 8× H200, avec une charge agentique OpenHands : conversations de 13 tours, premier tour de 74 160 jetons, tours suivants de 753, sorties fixées à 220 jetons.

Les deux déploiements comparés sont en TP8, MTP3, cache KV en FP8, limite d'admission à 142K, max_num_batched_tokens=32768, max_num_seqs=256, gpu_memory_utilization=0.92.

Le budget hôte est identique de part et d'autre, réparti autrement : 512 Gio de pool de déchargement pour la référence, contre 384 Gio de pool HiSparse plus 128 Gio de déchargement pour Hybrid HiSparse.

Résultat annoncé : le contexte plein d'un million de jetons devient exécutable sur ce matériel, ce qui ne l'était pas, avec une concurrence sensiblement supérieure à toutes les longueurs de contexte.

Ce qu'il faut en retenir

Source : vLLM