Aller au contenu

LLM VRAM Calculator: Dimensionnez le GPU avant de télécharger le modèle.

S’exécute dans votre navigateur — rien de ce que vous collez ne quitte cette page. Comment nous le prouvons

Espace de test de la LLM VRAM Calculator

Model
Quantization

KV cache is counted at FP16. Overhead is a fixed 1.5 GiB estimate for the runtime and compute buffers. A custom size borrows the architecture of the nearest preset.

Results update as you type — press Enter to run now.

fig. 40 — llm-vram-calculator · ai 7.05 GiB total at Q4_K_M, 8k context — fits an 8 GiB GPU.
Result
Total VRAM7.05 GiBfits an 8 GiB card
Weights4.55 GiB8 B × 4.89 bpw (Q4_K_M)
KV cache1.00 GiB8k ctx · 32 layers · 8 KV heads · 128 dim · FP16
Overhead1.50 GiBruntime + compute buffers, estimate
ArchitectureLlama 3.1 8B

GPU tiers

  • 8 GiBfitsRTX 4060, RTX 3070, RX 7600
  • 12 GiBfitsRTX 4070, RTX 3060 12GB, RTX 5070
  • 16 GiBfitsRTX 4060 Ti 16GB, RTX 4080, RTX 5080
  • 24 GiBfitsRTX 4090, RTX 3090, RX 7900 XTX
  • 32 GiBfitsRTX 5090, V100 32GB
  • 48 GiBfitsRTX A6000, RTX 6000 Ada, L40S
  • 80 GiBfitsA100 80GB, H100 80GB

Choisissez un préréglage de modèle comme Llama 3.1 8B ou saisissez un nombre de paramètres, une quantification GGUF comme Q4_K_M et une longueur de contexte, et obtenez la VRAM qu’un LLM local requiert — poids, cache KV et surcharge d’exécution en Gio, avec un verdict face aux tailles de GPU courantes — le tout calculé dans votre navigateur, sans inscription.

Le fossé

Les poids tiennent. Puis la fenêtre de contexte ne tient plus.

La mémoire GPU d’un LLM local, ce sont trois factures, pas une. Les poids sont la part que tout le monde dimensionne : paramètres fois bits par poids, ce qui explique qu’une quantification 4 bits d’un modèle 8B soit un fichier de 4,5 Gio. Le cache KV est la part que tout le monde oublie — deux tenseurs par couche qui croissent linéairement avec la longueur de contexte, si bien que le même modèle 8B réclame 1 Gio de cache à 8k tokens et 16 Gio à 128k. La surcharge d’exécution est le reste : tampons de calcul, contexte CUDA ou Metal et le framework lui-même, un coût fixe d’environ 1,5 Gio.

Deux systèmes d’unités aggravent les cas limites. Un GPU vendu « 24 Go » expose 24 Gio (2³⁰ octets chacun), alors que les fiches de modèle et les tailles de fichier citent souvent des Go (10⁹ octets) — un écart de 7,4 %. Ce calculateur travaille en Gio de bout en bout, de sorte qu’un ajustement est jugé face à ce que le pilote rapporte réellement, et la référence ci-dessous donne les deux chiffres pour l’exemple détaillé. Sur Apple silicon, la mémoire unifiée est partagée avec le système ; comptez sur environ 75 % de la RAM du Mac disponible pour le modèle.

Demander à une IA combien de VRAM un modèle requiert est le raccourci risqué : un modèle de langage se rappelle des chiffres plausibles tirés de forums à propos d’autres quantifications et longueurs de contexte. Ce calculateur calcule le vrai cache KV par couche à partir de la forme du config.json de chaque modèle et des bits par poids mesurés par llama.cpp — des nombres auxquels vous pouvez confronter la réponse d’une IA, et non du texte plausible de plus.

Vous convertissez entre Gio et Go ? Le Data Size Converter affiche les nombres d’octets exacts.

Le processus

Comment ça marche.

Quatre étapes déterministes s’exécutent à chaque changement — toutes dans l’onglet de votre navigateur, avec des formes de modèle vérifiées contre chaque config.json.

  1. Choisit la forme.

    Un préréglage fournit le nombre de couches, les têtes KV et la dimension de tête du modèle depuis son config.json ; un nombre de paramètres personnalisé emprunte la forme du préréglage le plus proche et est signalé comme estimé.

  2. Pèse les poids.

    Paramètres × bits effectifs par poids de la quantification choisie, ÷ 8, ÷ 2³⁰. Les bits par poids viennent de la table mesurée de llama.cpp, pas des 4 ou 8 nominaux.

  3. Dimensionne le cache KV.

    Deux tenseurs par couche (K et V) × têtes KV × head-dim × tokens de contexte × 2 octets en FP16 — la part de la facture qui grandit avec votre fenêtre de contexte.

  4. Ajoute la surcharge, puis tranche.

    1,5 Gio fixes pour le runtime et les tampons de calcul ; le total est ensuite confronté aux tailles de carte courantes et la plus petite qui convient est nommée.

Référence des formules

Les deux formules, détaillées.

Tout ce qu’affiche le panneau vient de ces deux lignes plus une surcharge fixe. Les voici avec de vraies formes de modèle, pour que vous puissiez vérifier le résultat à la main.

Le cache KV grandit avec le contexte

L’attention par groupes de requêtes garde le cache petit : Llama 3.1 a 32 têtes d’attention mais seulement 8 têtes KV par couche, et c’est ce nombre qui compte ici.

fig. 40.1 — kv-cache-llama-3-1-8b
KV cache (FP16) = 2 × layers × kv_heads × head_dim × context × 2 bytes

Llama 3.1 8B at 128k context
  layers 32 · kv_heads 8 · head_dim 128 · context 131,072
  = 2 × 32 × 8 × 128 × 131,072 × 2 B
  = 17,179,869,184 B
  = 16.0 GiB            (17.2 GB — the KV cache alone outgrows a 16 GiB card)

Same model at 8k context
  = 1.0 GiB

Poids par quantification

Un GGUF « 4 bits » ne fait pas 4 bits par poids : Q4_K_M atteint en moyenne 4,89 une fois ses échelles et les tenseurs de plus haute précision comptés, et Q8_0 en moyenne 8,5.

fig. 40.2 — weights-llama-3-1-70b
Weights = params × bits_per_weight ÷ 8 ÷ 2^30

Llama 3.1 70B, Q4_K_M (4.89 bpw measured)
  weights   70e9 × 4.89 ÷ 8 ÷ 2^30  = 39.85 GiB
  KV @ 8k   2 × 80 × 8 × 128 × 8,192 × 2 B  =  2.50 GiB
  overhead                                 =  1.50 GiB
  total                                    = 43.85 GiB   → fits a 48 GiB card, not 24 or 32

Llama 3.1 8B, Q4_K_M
  weights   8e9 × 4.89 ÷ 8 ÷ 2^30   = 4.55 GiB
  KV @ 8k                            = 1.00 GiB
  total (with overhead)              = 7.05 GiB   → fits an 8 GiB card

Étape suivante

Vous servez le modèle sur un cluster ? Dimensionnez aussi le pod.

Une fois la carte choisie, la Kubernetes Resource Calculator transforme votre nombre de réplicas et les demandes CPU, mémoire et GPU par pod en totaux par nœud et en marge — pratique avant d’écrire le Deployment qui monte le modèle.

fit.txt
Llama 3.1 8B   Q4_K_M    8k   →  7.05 GiB   fits  8 GiB
Llama 3.1 8B   FP16    128k   →  32.4 GiB   fits 48 GiB
Llama 3.1 70B  Q4_K_M    8k   →  43.8 GiB   fits 48 GiB

FAQ

Vos questions, nos réponses.

Appuyez sur une question pour afficher la réponse.

Additionnez trois parts. Les poids sont le nombre de paramètres multiplié par les bits par poids de la quantification choisie, divisé par 8 pour obtenir des octets et par 2^30 pour obtenir des GiB — un modèle de 8B occupe environ 15 GiB en FP16, 8 GiB en Q8_0 et 4,6 GiB en Q4_K_M. Le cache KV grandit avec la longueur du contexte (question suivante), et le runtime ajoute un tampon fixe, que cette calculatrice fixe à 1,5 GiB. Le total doit tenir dans la mémoire de la carte avec un peu de marge ; sinon, choisissez d'abord une quantification plus petite ou un contexte plus court avant de viser un GPU plus gros.

La quantification stocke chaque poids sur moins de bits que les 16 de son entraînement. FP16 garde 16 bits par poids (bpw) ; Q8_0 en utilise environ 8,5 et est pratiquement sans perte ; Q4_K_M en utilise environ 4,89 — à peu près un tiers de la taille FP16 — avec un léger coût en qualité que la plupart des gens ne remarquent pas en conversation. Les valeurs fractionnaires viennent des agencements mixtes de llama.cpp, qui gardent quelques tenseurs sensibles en précision supérieure et stockent un facteur d'échelle par bloc ; c'est pourquoi un fichier « 4 bits » ne fait pas exactement la moitié d'un fichier 8 bits.

Chaque token du contexte conserve un vecteur clé et un vecteur valeur dans chaque couche, donc le cache KV vaut 2 × couches × têtes KV × dimension de tête × tokens × 2 octets en FP16. Pour Llama 3.1 8B (32 couches, 8 têtes KV, dimension de tête 128), cela fait 128 KiB par token : 1 GiB à 8 192 tokens et 16 GiB aux 131 072 complets — plus que les poids Q4_K_M eux-mêmes. L'attention à requêtes groupées (8 têtes KV au lieu de 32) divise le cache par quatre, ce qui explique que Llama 3 tienne de longs contextes là où Llama 2 échouait. Le curseur de contexte dessine le cache comme un segment à part de la barre, pour que vous voyiez où part la mémoire.

La mémoire GPU se vend en gigaoctets binaires : une RTX 4090 « 24 GB » contient 24 GiB, soit 25,77 GB. Un GB vaut 10^9 octets et un GiB vaut 2^30 = 1 073 741 824 octets, 7,37 % de plus ; diviser par 10^9 ferait paraître chaque modèle 7,4 % plus gros qu'il n'est et tromperait les verdicts à la limite. La calculatrice divise partout par 2^30, afin qu'un verdict compare ce qui est comparable.

Les poids et le cache KV ne font pas tout : le runtime (llama.cpp, Ollama, vLLM) alloue des tampons de calcul pour les activations, le contexte CUDA ou Metal prend quelques centaines de MiB, et le pilote réserve un peu de mémoire pour lui-même. 1,5 GiB est une estimation ronde qui couvre tout cela pour la plupart des modèles sur une seule carte ; la valeur réelle dépend du runtime, de la taille de lot et du GPU. Voyez-y une marge, pas une mesure — si un verdict tombe à moins d'un demi-GiB d'un palier, attendez-vous à des ennuis.

Pas entièrement sur le GPU. Llama 3.1 70B en Q4_K_M demande environ 40 GiB pour les seuls poids, avant le cache KV et le surcoût du runtime, donc une seule carte de 24 GiB ne peut pas le contenir. Il tient sur une carte de 48 GiB (RTX 6000 Ada, A6000) ou réparti sur deux cartes de 24 GiB par découpage des couches ; Q2_K, à environ 3,16 bpw, ramène les poids vers 26 GiB, encore trop pour une carte et avec un coût en qualité visible. Les runtimes peuvent décharger les couches restantes vers la RAM système, mais la vitesse en tokens retombe alors à ce que permet la bande passante mémoire du CPU, typiquement quelques tokens par seconde.

Apple Silicon partage un seul réservoir de mémoire entre CPU et GPU, donc un Mac à 64 GB peut charger des modèles qu'aucune carte de 24 GiB n'accepte. Par défaut, macOS laisse le GPU utiliser environ 75 % de la mémoire unifiée (près de 48 GiB sur une machine à 64 GB) et garde le reste pour le système ; le sysctl iogpu.wired_limit_mb permet de relever la limite, à vos risques. Saisissez comme budget environ les trois quarts de la mémoire du Mac, et rappelez-vous que la bande passante, non la capacité, fixe la vitesse en tokens : un M-series Max débite environ 400 GB/s, une RTX 4090 près de 1 TB/s.

Non. La calculatrice s'exécute à 100 % côté client : les préréglages d'architecture et l'arithmétique sont livrés avec la page, et chaque nombre est calculé dans l'onglet de votre navigateur. Rien n'est envoyé à un serveur, il n'y a ni compte ni inscription, et le lien de partage encode votre sélection dans le fragment de l'URL, que les navigateurs n'envoient jamais à un serveur.

Pour les seuls poids : un modèle de 8B demande environ 4,6 GiB en Q4_K_M, 7,9 GiB en Q8_0 et 14,9 GiB en FP16 (un 7B environ 4,0, 6,9 et 13,0 GiB) ; un 14B environ 8,0, 13,9 et 26,1 GiB ; un 70B environ 39,9, 69,3 et 130,4 GiB. Ajoutez le cache KV de votre contexte — à 8 192 tokens, 1 GiB pour Llama 3.1 8B et 2,5 GiB pour Llama 3.1 70B — plus les 1,5 GiB de surcoût du runtime : un 8B en Q4_K_M avec 8k de contexte arrive ainsi vers 7,1 GiB au total. Chaque modèle populaire a sa propre page avec son vrai nombre de couches et de têtes KV, pour lire directement le verdict de ce modèle.

Les poids ont une taille fixe, mais le cache KV grandit à chaque token : il coûte 2 × couches × têtes KV × dimension de tête × 2 octets par token en FP16. Pour Llama 3.1 8B, cela fait 2 × 32 × 8 × 128 × 2 = 128 KiB par token, donc le contexte complet de 131 072 tokens demande 16 GiB de cache contre environ 4,6 GiB de poids Q4_K_M. C'est l'attention à requêtes groupées qui le garde aussi petit — 8 têtes KV au lieu de 32 ramènent le cache au quart —, alors que les anciens modèles à attention multi-têtes, avec une tête KV par tête de requête, saturent la mémoire à des contextes bien plus courts.

More free, private DevOps tools.

La LLM VRAM Calculator est l’un des outils de OpsCanopy — une canopée grandissante de validateurs, convertisseurs et testeurs basés sur le navigateur qui ne touchent jamais à un serveur.

Vous débutez avec AI & local LLMs ?  Lire le guide AI & local LLMs →

42 outils gratuits, tous utilisables hors ligne — opscanopy.com fonctionne sans inscription et sans rien téléverser.

Plus de dimensionnement : la Kubernetes Resource Calculator et le Data Size Converter, ou parcourez le répertoire complet des outils.

Estimations seulement ; le cache KV est dimensionné en FP16 et la surcharge est une provision fixe, alors confirmez toujours auprès du rapport de votre propre runtime avant d’acheter du matériel. OpsCanopy est gratuit et ouvert.