Hoeveel VRAM heb je nodig om een LLM te draaien?

We kunnen commissie verdienen als je via de links hieronder koopt. Meer informatie

Hoe modelgrootte, precisie, kwantisatie, contextlengte en batchgrootte het GPU-geheugen bepalen, met uitgewerkte schattingen.

  • Door AIHostCompare
  • Gepubliceerd
  • Bijgewerkt
  • 18 bronnen · Uitleg
Op deze pagina12 secties

Samenvatting

Voor inferentie is het geheugen dat je nodig hebt ruwweg de gewichten plus de KV-cache plus de runtime-overhead. Gewichten nemen het aantal parameters maal het aantal bytes per parameter in: ongeveer 2 GB per miljard parameters bij BF16, 1 GB bij FP8 en ruwweg 0.5 GB bij 4-bit. De KV-cache groeit met elk token in het geheugen, over alle gelijktijdige verzoeken heen, en bij de lange contexten die agents nodig hebben, wedijvert hij in omvang met de gewichten. Serving-frameworks geven niet de hele kaart aan het model, dus houd ruimte over voordat je een GPU kiest. Zonder GPU geldt dezelfde rekensom voor het systeem-RAM, met een lagere snelheid.

  • Gewichten = parameters × bytes per parameter (2 bij BF16, 1 bij FP8, ongeveer 0.5 bij 4-bit).
  • KV-cache per token = 2 × lagen × KV-heads × head-dimensie × bytes; vermenigvuldig met het aantal tokens dat tegelijk in het geheugen staat.
  • Schattingen verschillen vooral in de contextlengte die ze aannemen; controleer die voordat je twee getallen vergelijkt.
  • Mixture-of-experts-modellen moeten elke expert laden, ook al zijn er per token maar weinig actief.
  • Volledig fine-tunen met Adam vraagt ongeveer 16 bytes per parameter, nog vóór activaties; adapters vragen veel minder.

1. De drie delen van GPU-geheugen

Een taalmodel serveren kost GPU-geheugen voor drie dingen: de gewichten, de KV-cache met de attention-keys en -values van elk token dat in behandeling is, en werkgeheugen voor activaties, de CUDA-context en het serving-framework zelf.

Geheugen voor inferentie

benodigd VRAM ≈ gewichten + KV-cache + runtime-overhead

De eerste twee volgen uit de modelkaart en je instellingen. De derde hangt af van de runtime, en daardoor is een kaart nooit volledig beschikbaar voor het model. vLLM laat de model-executor bijvoorbeeld een vast deel van het GPU-geheugen gebruiken, ingesteld met --gpu-memory-utilization, dat in de huidige documentatie standaard 0.92 is , en standaard legt het CUDA-graphs vast, die volgens vLLM “take up extra memory in the GPU” (extra GPU-geheugen innemen) .

2. Gewichten: parameters × precisie

Gewichten hebben één waarde per parameter nodig. Vermenigvuldig het aantal parameters met het aantal bytes per waarde: een miljard parameters in BF16 nemen ongeveer 2 GB in.

Geheugen per miljard parameters, per precisie

Geheugen per miljard parameters, per precisie
PrecisieBytes per parameterGB per miljard parameters
FP3244.0
BF16 / FP1622.0
FP8 / INT811.0
4-bit (INT4, NF4, MXFP4)0.50.5

Qwen3-8B heeft 8.2 miljard parameters , dus de gewichten nemen ongeveer 16.4 GB in bij BF16, 8.2 GB bij FP8 en ruwweg 4.1 GB bij 4-bit. Gekwantiseerde formaten slaan naast de waarden ook schaalfactoren op, dus echte 4-bit-bestanden zijn iets groter dan een halve byte per parameter.

Mixture-of-experts-modellen laden elke expert

Een mixture-of-experts-model gebruikt per token maar een deel van zijn parameters, maar ze moeten allemaal in het geheugen staan. Qwen3-30B-A3B heeft in totaal 30.5 miljard parameters, waarvan er 3.3 miljard geactiveerd worden : het rekent als een klein model, maar heeft ongeveer 61.0 GB nodig voor de gewichten in BF16. Het formaat telt net zo zwaar als het aantal: gpt-oss-120b van OpenAI heeft 117 miljard parameters, en omdat de expertgewichten in MXFP4 worden geleverd, draait het op één GPU van 80 GB, terwijl gpt-oss-20b binnen 16 GB draait .

Lagere precisie is niet gratis

In de woorden van vLLM nemen gekwantiseerde modellen “take less memory at the cost of lower precision” (minder geheugen in, ten koste van een lagere precisie) . Bekijk de evaluaties van de modelmaker bij de precisie die je wilt draaien, of voer er zelf een uit op je eigen prompts.

3. KV-cache: contextlengte × gelijktijdige verzoeken

Voor elk token waaraan het model werkt, houdt elke laag per KV-head een key-vector en een value-vector bij. Het PagedAttention-artikel geeft het voorbeeld van OPT-13B, waar één token 800 KB inneemt: 2 (key en value) × 5,120 (verborgen dimensie) × 40 (lagen) × 2 bytes .

KV-cache per token

bytes per token = 2 × lagen × KV-heads × head-dimensie × bytes per waarde

Nieuwere modellen gebruiken grouped-query attention, met minder KV-heads dan query-heads, waardoor de cache kleiner wordt. Qwen3-8B heeft 32 query-heads maar 8 KV-heads . Met het aantal lagen en de head-dimensie uit het configuratiebestand van elk model komt de cache bij BF16 als volgt uit:

KV-cache bij BF16, per aantal tokens in het geheugen

Scroll opzij voor alle kolommen.

KV-cache bij BF16, per aantal tokens in het geheugen
ModelLagen × KV-heads × head-dimensiePer token8K tokens32K tokens128K tokens
Qwen3-8B 36 × 8 × 128147,456 bytes1.2 GB4.8 GB19.3 GB
Qwen3-30B-A3B 48 × 4 × 12898,304 bytes0.8 GB3.2 GB12.9 GB
Qwen2.5-72B-Instruct 80 × 8 × 128327,680 bytes2.7 GB10.7 GB42.9 GB
Qwen3-8B en Qwen3-30B-A3B ondersteunen standaard 32,768 tokens en 131,072 met YaRN-schaling  ; Qwen2.5-72B-Instruct vermeldt een volledige context van 131,072 tokens .

Het aantal tokens dat telt, is alles wat tegelijk in het geheugen staat: contextlengte × gelijktijdige verzoeken. Tien chats met elk 8K tokens hebben dezelfde cache nodig als één chat met 80K tokens. Daarom kan een model dat in een snelle test “past”, onder belasting toch zonder geheugen komen te zitten.

Twee instellingen maken de cache kleiner. vLLM schrijft dat de KV-cache in FP8 opslaan “can significantly reduce its memory footprint” (het geheugengebruik flink kan verkleinen), zodat er meer tokens in hetzelfde geheugen passen , en een grens aan de contextlengte (max_model_len) en de batchgrootte (max_num_seqs) beperkt hoeveel cache er kan worden aangevraagd .

4. Uitgewerkte schattingen voor drie open modellen

Gewichten plus een KV-cache van 32,768 tokens bij BF16 geven het geheugen waarmee je rekent, nog vóór de runtime-overhead:

Gewichten plus een BF16-KV-cache van 32,768 tokens, in GB

Gewichten plus een BF16-KV-cache van 32,768 tokens, in GB
ModelGewichten BF16Gewichten FP8Gewichten 4-bit
Qwen3-8B21.213.08.9
Qwen3-30B-A3B64.233.718.5
Qwen2.5-72B-Instruct156.183.447.1
Onze berekening op basis van de hierboven geciteerde modelkaarten en configuratiebestanden. De runtime-overhead komt erbovenop.
  • Qwen3-8B heeft bij BF16 ongeveer 21.2 GB nodig: krap op een kaart van 24 GB zodra de overhead erbij komt, ruim op 48 GB, en ongeveer 13.0 GB met FP8-gewichten.
  • Qwen3-30B-A3B rekent als een model van 3B, maar heeft bij BF16 ongeveer 64.2 GB nodig, omdat elke expert geladen blijft.
  • Qwen2.5-72B-Instruct heeft bij BF16 ongeveer 156.1 GB nodig, meer dan twee GPU's van 80 GB met de standaardinstelling aan vLLM overlaten (147.2 GB). Met FP8-gewichten (83.4 GB) past het op één H200 van 141 GB of verdeeld over twee GPU's van 80 GB. Bij 4-bit past het alleen met een kleiner budget op een kaart van 48 GB: ongeveer 39.0 GB met 8K tokens.

Waarom schattingen voor hetzelfde model verschillen

Geheugencalculators zijn het zelden oneens over de gewichten. Ze verschillen in de context die ze aannemen, in de vraag of ze de KV-cache überhaupt meetellen, en in hoeveel van de kaart ze als bruikbaar beschouwen. Hetzelfde model en dezelfde precisie geven heel verschillende antwoorden:

Qwen3-8B bij BF16 onder vier gangbare aannames, in GB

Qwen3-8B bij BF16 onder vier gangbare aannames, in GB
AannameSchatting
Gewichten plus een vaste marge van 20%19.7
Gewichten plus een KV-cache van 32,768 tokens21.2
Hetzelfde, gedeeld door een bruikbaar deel van 0.9223.1
Gewichten plus een KV-cache van 131,072 tokens35.7
Onze berekening. Het bruikbare deel is de standaardwaarde van vLLM, 0.92; andere runtimes reserveren geheugen op een andere manier.

Controleer, voordat je twee schattingen vergelijkt, de contextlengte en het aantal gelijktijdige verzoeken achter elk ervan. Om de rekensom voor je eigen model, precisie en context te maken, gebruik je de tool VRAM en modelgrootte.

5. Lange contexten: rekenen voor een agent met 64K tokens

Agents hebben lange contexten nodig, en de KV-cache groeit met elk token. Hermes Agent vereist bijvoorbeeld een model met een context van minstens 64,000 tokens en vraagt je een lokaal model op 64K in te stellen, bijvoorbeeld --ctx-size 65536 in llama.cpp . Ollama gebruikt een contextvenster van 4,096 tokens, tenzij je het verhoogt met OLLAMA_CONTEXT_LENGTH of num_ctx , dus de standaardwaarde ligt ver onder wat zo'n agent nodig heeft.

Bij 65,536 tokens heeft Qwen3-8B ongeveer 26.1 GB nodig met gewichten en cache in BF16, meer dan een kaart van 24 GB kan bevatten. Met FP8-gewichten en een FP8-KV-cache komt het uit op ongeveer 13.0 GB. Het model ondersteunt standaard 32,768 tokens, dus een venster van 64K betekent ook dat je YaRN-schaling inschakelt zoals de modelkaart beschrijft .

Gelijktijdigheid vermenigvuldigt de cache opnieuw: in Ollama groeit het geheugen dat een model nodig heeft met het aantal parallelle verzoeken maal de contextlengte . Reken op het aantal gesprekken dat de agent tegelijk voert, niet op één.

6. Als één GPU niet genoeg is

De eigen richtlijn van vLLM voor het kiezen van een indeling is kort:

  • Past het model op één GPU, draai het dan op die GPU; gedistribueerde inferentie is dan waarschijnlijk niet nodig.
  • Is het te groot voor één GPU maar past het op één node met meerdere GPU's, gebruik dan tensor parallelism.
  • Is het te groot voor één node, combineer tensor parallelism dan met pipeline parallelism .

Tensor parallelism verdeelt het model over GPU's (tensor_parallel_size) , en die GPU's wisselen dan bij elke laag data uit. Daar telt de interconnect uit de GPU-cloudchecklist: GPU's die via NVLink verbonden zijn, kunnen dat veel beter aan dan kaarten die alleen via PCIe communiceren.

Probeer, voordat je GPU's toevoegt, eerst de goedkopere knoppen: kwantiseer de gewichten, sla de KV-cache op in FP8 en begrens de contextlengte en de gelijktijdigheid tot wat je toepassing nodig heeft.

7. Fine-tunen vraagt een ander budget

Trainen houdt veel meer vast dan de gewichten. Het ZeRO-artikel splitst training met gemengde precisie en de Adam-optimizer uit: 2 bytes per parameter voor FP16-gewichten, 2 voor gradiënten en 12 voor de FP32-kopie van de gewichten, momentum en variantie, in totaal 16 bytes. Een GPT-2 met 1.5 miljard parameters heeft daarom minstens 24 GB nodig, tegenover 3 GB voor alleen de FP16-gewichten . Met dezelfde rekensom heeft volledig fine-tunen van Qwen3-8B ongeveer 131.2 GB nodig voor de modeltoestand, nog vóór activaties, en dat betekent meerdere GPU's en een gesharde optimizer.

Adapters veranderen het budget

Low-rank adapters trainen in plaats daarvan een klein aantal extra gewichten. Vergeleken met fine-tunen van GPT-3 175B met Adam melden de auteurs van LoRA 10,000 keer minder trainbare parameters en een 3 keer kleinere behoefte aan GPU-geheugen . QLoRA combineert een 4-bit-basismodel met adapters en maakte het mogelijk een model van 65B te fine-tunen op één GPU van 48 GB .

8. Koppel de schatting aan een GPU

Met een schatting in de hand kies je het kleinste geheugenniveau dat ruimte laat voor overhead en pieken in het verkeer. De tabel toont elke GPU in onze catalogus die vandaag een gecontroleerde prijs heeft:

GPU's met een gecontroleerde prijs, op geheugen

Scroll opzij voor alle kolommen.

GPU's met een gecontroleerde prijs, op geheugen
GPUGeheugenBandbreedteProvidersLaagste on-demand, per uurLaagste serverless, per uur
T416 GB GDDR60.32 TB/s1Niet vermeld$0.59≈ €0.527 (geschatte omrekening van $0.59)
V10016 GB HBM20.90 TB/s2$0.79≈ €0.706 (geschatte omrekening van $0.79)Niet vermeld
A1024 GB GDDR60.60 TB/s3$0.867≈ €0.774 (geschatte omrekening van $0.867)$1.03≈ €0.917 (geschatte omrekening van $1.03)
L424 GB GDDR60.30 TB/s3$0.855≈ €0.764 (geschatte omrekening van $0.855)$0.80≈ €0.715 (geschatte omrekening van $0.80)
A10040 GB HBM21.55 TB/s2$1.99≈ €1.78 (geschatte omrekening van $1.99)$2.10≈ €1.88 (geschatte omrekening van $2.10)
L4048 GB GDDR60.86 TB/s1$1.00≈ €0.893 (geschatte omrekening van $1.00)Niet vermeld
L40S48 GB GDDR60.86 TB/s5$1.55≈ €1.38 (geschatte omrekening van $1.55)$1.77≈ €1.58 (geschatte omrekening van $1.77)
RTX 6000 Ada Generation48 GB GDDR60.96 TB/s1$1.57≈ €1.40 (geschatte omrekening van $1.57)Niet vermeld
RTX A600048 GB GDDR60.77 TB/s2$0.50≈ €0.447 (geschatte omrekening van $0.50)Niet vermeld
A100 PCIe80 GB HBM2e1.94 TB/s1$1.35≈ €1.21 (geschatte omrekening van $1.35)Niet vermeld
A100 SXM480 GB HBM2e2.04 TB/s3$1.60≈ €1.43 (geschatte omrekening van $1.60)$2.50≈ €2.23 (geschatte omrekening van $2.50)
H100 PCIe80 GB HBM2e2.00 TB/s4$2.50≈ €2.23 (geschatte omrekening van $2.50)$3.53≈ €3.16 (geschatte omrekening van $3.53)
H100 SXM80 GB HBM33.35 TB/s7$3.20≈ €2.86 (geschatte omrekening van $3.20)$3.95≈ €3.53 (geschatte omrekening van $3.95)
GH200 Grace Hopper Superchip (96GB HBM3)96 GB HBM34.00 TB/s1$2.29≈ €2.05 (geschatte omrekening van $2.29)Niet vermeld
RTX PRO 6000 Blackwell96 GB GDDR7Niet gecontroleerd1Niet vermeld$3.03≈ €2.71 (geschatte omrekening van $3.03)
RTX PRO 6000 Blackwell Max-Q Workstation Edition96 GB GDDR71.79 TB/s1$2.74≈ €2.45 (geschatte omrekening van $2.74)Niet vermeld
H200 SXM141 GB HBM3e4.80 TB/s5$3.99≈ €3.56 (geschatte omrekening van $3.99)$4.54≈ €4.06 (geschatte omrekening van $4.54)
B200 SXM180 GB HBM3e7.70 TB/s5$6.00≈ €5.36 (geschatte omrekening van $6.00)$6.25≈ €5.58 (geschatte omrekening van $6.25)
Instinct MI300X192 GB HBM35.30 TB/s1$2.59≈ €2.31 (geschatte omrekening van $2.59)Niet vermeld
Geheugen en bandbreedte uit de GPU-catalogus (datasheets van de fabrikant); prijzen per GPU-uur uit providerrecords. De prijs van een multi-GPU-node wordt gedeeld door zijn aantal GPU's, dus de laagste prijs kan horen bij een node die je alleen in zijn geheel huurt.“Niet vermeld” betekent dat geen enkele provider in onze dataset de GPU met dat prijstype aanbiedt.Oudste prijs in deze tabel:Waargenomen · VerouderdPrijzen in USD, excl. btw. ≈ markeert een prijs die de provider in EUR vermeldt, omgerekend tegen de ECB-koers van 25 sep 2026.≈ Geschatte omrekening van de vermelde USD-prijs tegen de ECB-referentiekoers van 23 okt 2026 (1 EUR = 1.1193 USD). Factureringsvaluta niet gecontroleerd: providers kunnen in USD factureren, en de koers en kosten van je bank verschillen. Prijzen zijn excl. btw. EUR-lijstprijzen worden getoond zoals de provider ze vermeldt (de dataset rekent ze om naar USD tegen de ECB-koers van 25 sep 2026).

Providers per niveau staan in de vergelijkingen voor inferentiehosting en GPU-cloud. Per geheugenniveau: RTX 4090-cloud (24 GB), L40S-hosting (48 GB) en H100-hosting (80 GB).

9. Een model draaien zonder GPU

Een model kan ook vanuit gewoon systeemgeheugen draaien. llama.cpp draait op x86-CPU's met AVX, AVX2, AVX512 en AMX, en de hybride CPU+GPU-modus bestaat om “partially accelerate models larger than the total VRAM capacity” (modellen die groter zijn dan het totale VRAM gedeeltelijk te versnellen) . Ollama laat zien waar een geladen model staat: ollama ps meldt 100% GPU, 100% CPU (systeemgeheugen) of een verdeling tussen die twee .

De rekensom verandert niet: gewichten plus KV-cache moeten passen, nu in het RAM, naast het besturingssysteem en al het andere op de server. Op een machine met 16 GB heeft Qwen3-8B bij 4-bit met een cache van 32,768 tokens ongeveer 8.9 GB nodig en past het, terwijl Qwen3-30B-A3B bij 4-bit alleen voor de gewichten al ongeveer 15.3 GB nodig heeft en niet genoeg ruimte overlaat.

Reken erop dat genereren op alleen een CPU trager is dan op een GPU; dat verschil is wat de hybride modus hierboven gedeeltelijk dicht. Het past bij kleine modellen, weinig verkeer en agents op de achtergrond; test je model bij de contextlengte die je nodig hebt voordat je een plan kiest. CPU-servers worden vergeleken onder AI-VPS, en providers met Ollama-templates of -handleidingen onder Ollama-hosting.

Volgende stappen

Bronnen

Feitelijke uitspraken over providers, modellen, software en wetgeving verwijzen naar deze bronnen: eerst primaire bronnen (officiële prijspagina's, documentatie, modelkaarten en wetteksten), bronnen van derden alleen waar nodig en duidelijk als zodanig aangeduid. Prijzen en specificaties in de tabellen komen uit de dataset van AIHostCompare; de eigen bronnen en controlemomenten van elke provider staan op zijn providerpagina, en de methodologie legt uit hoe we data controleren. Aanbevelingen en vuistregels zijn ons redactionele oordeel.

  1. Engine arguments: --gpu-memory-utilization, --kv-cache-dtype (opent in een nieuw tabblad)

    vLLM project · Officiële documentatie · docs.vllm.ai · geraadpleegd

    ↩
  2. Conserving memory (opent in een nieuw tabblad)

    vLLM project · Officiële documentatie · docs.vllm.ai · geraadpleegd

    ↩
  3. Qwen3-8B model card (opent in een nieuw tabblad)

    Qwen team (Alibaba Cloud) · Modelkaart · huggingface.co · geraadpleegd

    ↩
  4. Qwen3-30B-A3B model card (opent in een nieuw tabblad)

    Qwen team (Alibaba Cloud) · Modelkaart · huggingface.co · geraadpleegd

    ↩
  5. gpt-oss-120b model card (opent in een nieuw tabblad)

    OpenAI · Modelkaart · huggingface.co · geraadpleegd

    ↩
  6. ↩
  7. Qwen3-8B config.json (opent in een nieuw tabblad)

    Qwen team (Alibaba Cloud) · Modelkaart · huggingface.co · geraadpleegd

    ↩
  8. Qwen3-30B-A3B config.json (opent in een nieuw tabblad)

    Qwen team (Alibaba Cloud) · Modelkaart · huggingface.co · geraadpleegd

    ↩
  9. Qwen2.5-72B-Instruct config.json (opent in een nieuw tabblad)

    Qwen team (Alibaba Cloud) · Modelkaart · huggingface.co · geraadpleegd

    ↩
  10. Qwen2.5-72B-Instruct model card (opent in een nieuw tabblad)

    Qwen team (Alibaba Cloud) · Modelkaart · huggingface.co · geraadpleegd

    ↩
Toon alle 18 bronnen
  1. Quantized KV cache (opent in een nieuw tabblad)

    vLLM project · Officiële documentatie · docs.vllm.ai · geraadpleegd

    ↩
  2. Hermes Agent quickstart: minimum context of 64K tokens (opent in een nieuw tabblad)

    Nous Research · Officiële documentatie · hermes-agent.nousresearch.com · geraadpleegd

    ↩
  3. FAQ: context window, CPU and GPU loading, concurrency and K/V cache quantisation (opent in een nieuw tabblad)

    Ollama · Officiële documentatie · docs.ollama.com · geraadpleegd

    ↩
  4. Parallelism and scaling (opent in een nieuw tabblad)

    vLLM project · Officiële documentatie · docs.vllm.ai · geraadpleegd

    ↩
  5. ↩
  6. LoRA: Low-Rank Adaptation of Large Language Models (Hu et al., 2021) (opent in een nieuw tabblad)

    arXiv · Wetenschappelijk artikel · arxiv.org · geraadpleegd

    ↩
  7. QLoRA: Efficient Finetuning of Quantized LLMs (Dettmers et al., 2023) (opent in een nieuw tabblad)

    arXiv · Wetenschappelijk artikel · arxiv.org · geraadpleegd

    ↩
  8. llama.cpp: supported hardware and CPU+GPU hybrid inference (opent in een nieuw tabblad)

    ggml-org (llama.cpp project) · Officiële documentatie · github.com · geraadpleegd

    ↩