How much VRAM do you need to run an LLM? A sizing guide with the actual arithmetic
How much VRAM to run an LLM comes down to two numbers: the memory the weights occupy at your chosen precision, and the memory the KV cache needs for the context and batch you serve. A 7B model needs about 14 GB at fp16 or 4–5 GB at int4 before cache; a 70B model needs roughly 140 GB at fp16 or 35–40 GB at int4. This guide gives the formulas, a sizing table, and maps each tier to the 49 GPU types on FastInfra GPU Cloud.
Weights: the first and largest number
Model weights occupy parameters × bytes per parameter. At 16-bit precision (fp16 or bf16) every parameter is two bytes, so a 7-billion-parameter model is about 14 GB, a 13B model 26 GB, a 70B model 140 GB. Quantisation shrinks that: int8 halves it, and 4-bit formats (GPTQ, AWQ, GGUF Q4) bring it to roughly 0.5–0.6 bytes per parameter including scale factors, so a 70B model fits in about 35–40 GB. Quality loss at int8 is negligible for most tasks; at int4 it is small but measurable on reasoning benchmarks, which is why many teams run int4 for chat and fp16 for evaluation.
KV cache: the number that grows with your traffic
During generation the model stores key and value tensors for every token in context so it does not recompute attention. Per token, that is 2 × layers × hidden_size × bytes (the 2 covers keys and values). For a Llama-3-style 8B model (32 layers, 4,096 hidden, fp16) it is about 0.5 MB per token; a 70B model (80 layers, 8,192 hidden) is roughly 2.5 MB per token before grouped-query attention reduces it, around 0.3 MB after. Multiply by the tokens in flight: context length × concurrent sequences. Serving 16 concurrent requests at 8,000 tokens each on an 8B model is 128,000 tokens × 0.5 MB ≈ 64 GB of cache, which is more than the weights.
Modern servers such as vLLM allocate cache in pages and reclaim it as sequences finish, so what matters is peak concurrent tokens, not the theoretical maximum of every request at full context.
The sizing table
| Parameters | fp16 weights | int8 weights | int4 weights | Comfortable serving budget |
|---|---|---|---|---|
| 3B | 6 GB | 3 GB | 2 GB | 12–16 GB |
| 7–8B | 14–16 GB | 7–8 GB | 4–5 GB | 24 GB |
| 13–14B | 26–28 GB | 13–14 GB | 7–8 GB | 40–48 GB |
| 27–34B | 54–68 GB | 27–34 GB | 15–19 GB | 48–80 GB |
| 70B | 140 GB | 70 GB | 35–40 GB | 80 GB (int4) / 2×80 GB (fp16) |
| 120B+ / MoE | 240 GB+ | 120 GB+ | 60–70 GB | 2–4 × 80 GB |
"Comfortable serving budget" assumes a few thousand tokens of context for a handful of concurrent users with 15% headroom. Push context to 32K or 128K and the cache dominates; budget for it explicitly.
Headroom you cannot skip
- CUDA context and framework overhead: 1–2 GB per process.
- Activations: proportional to batch × sequence; small at inference, large during fine-tuning.
- Fragmentation: allocators waste a few percent; paged attention reduces but does not eliminate it.
- Fine-tuning: optimizer states and gradients multiply the weight footprint by 3–4× at full precision, which is why LoRA and QLoRA exist.
A reliable rule: if the weights plus your planned cache exceed 85% of the card, go up a tier or add tensor parallelism across two cards.
Matching the numbers to a GPU pod
FastInfra GPU Cloud lists 49 GPU types with per-minute billing, so sizing experiments cost minutes, not hours. The current rates are read from the live catalog:
| GPU | VRAM | Secure cloud $/hr | Community cloud $/hr | Max GPUs per pod |
|---|---|---|---|---|
| MI350X | 294 GB | $5.93 | — | 8 |
| B300 | 288 GB | $9.71 | $7.50 | 8 |
| MI300X | 192 GB | $2.58 | — | 8 |
| B200 | 180 GB | $8.63 | $6.46 | 8 |
| H200 NVL | 143 GB | $4.09 | — | 8 |
| H200 SXM | 141 GB | $5.71 | $3.88 | 8 |
| RTX PRO 6000 | 96 GB | $2.69 | $1.83 | 9 |
| RTX PRO 6000 MaxQ | 96 GB | — | $1.77 | 2 |
| RTX PRO 6000 WK | 96 GB | $2.80 | $1.83 | 8 |
| H100 NVL | 94 GB | $3.45 | $2.80 | 10 |
| A100 PCIe | 80 GB | $1.93 | $1.29 | 8 |
| A100 SXM | 80 GB | $1.93 | $1.50 | 8 |
| H100 PCIe | 80 GB | $3.12 | $2.15 | 8 |
| H100 SXM | 80 GB | $4.31 | $2.91 | 8 |
| A40 | 48 GB | $0.64 | — | 10 |
| L40 | 48 GB | $0.89 | $0.75 | 10 |
| L40S | 48 GB | $1.18 | $0.85 | 8 |
| PRO 6000 MIG 48GB | 48 GB | $1.39 | — | 16 |
| RTX 6000 Ada | 48 GB | $1.07 | $0.80 | 8 |
| RTX A6000 | 48 GB | $0.64 | $0.36 | 10 |
| RTX PRO 5000 | 48 GB | $1.04 | $0.89 | 8 |
| A100 SXM 40GB | 40 GB | — | $1.08 | 2 |
| B300 MIG 34GB | 34 GB | $0.54 | — | 56 |
| RTX 5000 Ada | 32 GB | — | $0.53 | 4 |
| RTX 5090 | 32 GB | $1.29 | $0.75 | 8 |
| RTX PRO 4500 | 32 GB | $0.78 | — | 8 |
| RTX PRO 4500 SE | 32 GB | $0.78 | — | 8 |
| L4 | 24 GB | $0.64 | — | 9 |
| PRO 6000 MIG 24GB | 24 GB | $0.75 | — | 32 |
| RTX 3090 | 24 GB | $0.54 | $0.24 | 8 |
| RTX 3090 Ti | 24 GB | — | $0.29 | 4 |
| RTX 4090 | 24 GB | $0.96 | $0.37 | 8 |
| RTX A5000 | 24 GB | $0.29 | $0.17 | 10 |
| RTX PRO 4000 | 24 GB | $0.62 | — | 4 |
| RTX 4000 Ada | 20 GB | $0.30 | $0.22 | 8 |
| RTX 4000 Ada SFF | 20 GB | — | $0.20 | 7 |
| RTX A4500 | 20 GB | $0.27 | $0.21 | 4 |
| RTX 2000 Ada | 16 GB | $0.26 | — | 8 |
| RTX 4080 | 16 GB | — | $0.29 | 2 |
| RTX 4080 SUPER | 16 GB | — | $0.30 | 4 |
| RTX 5080 | 16 GB | — | $0.42 | 8 |
| RTX A4000 | 16 GB | $0.27 | $0.18 | 8 |
| Tesla V100 | 16 GB | — | $0.21 | 8 |
| V100 SXM2 | 16 GB | — | $0.25 | 8 |
| RTX 3080 Ti | 12 GB | — | $0.20 | 4 |
| RTX 4070 Ti | 12 GB | — | $0.21 | 5 |
| RTX 3080 | 10 GB | — | $0.18 | 2 |
| RTX 3070 | 8 GB | — | $0.14 | 7 |
| RTX A2000 | 6 GB | — | $0.13 | 4 |
A 24 GB card such as the RTX 4090 (24, from $0.96/hr) serves 7–8B models at fp16 or 13B at int4 for a small team. An 80 GB H100 (80, from $3.12/hr) serves a 70B model at int4 with room for cache, or a 30B model at fp16 with long context. For fp16 70B serving you need two 80 GB cards with tensor parallelism. Configure a pod on the GPU Cloud page, pull a vLLM image, and point the same OpenAI SDK you use for the hosted API at your pod.
When not to run it yourself
Renting a GPU makes sense when utilisation is high and steady, when you need a model that is not in the catalog, or when data must not leave your pod. For bursty or low traffic the hosted API is cheaper: you pay per token with no idle time, and the same model id is routed to the lowest-priced healthy upstream among 785 ids. Work the break-even with your measured tokens per day against the pod's hourly rate; the GPU cloud guides cluster walks through that comparison.
Measuring instead of estimating
The arithmetic above gets you to the right tier; the pod tells you the truth. After loading a model with vLLM or a similar server, watch nvidia-smi while you run a representative load test: peak memory used, GPU utilisation, and tokens per second at your target concurrency. Three outcomes are common. Memory headroom above 25% with utilisation under 40% means you can drop a tier or raise max-num-seqs to serve more users on the same card. Memory near the ceiling with out-of-memory errors under load means your KV budget was optimistic: lower max-model-len, reduce concurrency, or quantise. Healthy memory but low tokens per second means the bottleneck is compute or batching, not VRAM, and a card with more bandwidth will help more than one with more memory.
Record the numbers alongside the hourly rate from the GPU Cloud page and the per-token price of the same model on the pricing page; that pair is what the pod-versus-API decision rests on.
Frequently asked questions
Can I run a 70B model on a single 24 GB GPU?
Not usefully. Even at 4-bit the weights are 35–40 GB. A 70B model needs an 80 GB card at int4, or two 80 GB cards for fp16. Offloading layers to CPU works for experiments but runs at a few tokens per second.
How much does quantisation hurt quality?
int8 is close to lossless for most tasks. int4 formats (AWQ, GPTQ, GGUF Q4_K_M) lose a small amount on reasoning and long-form coherence; run your own evaluation set at both precisions before committing.
Does longer context need more VRAM even if I do not use it?
Only if the server pre-allocates. vLLM allocates KV cache pages on demand up to the configured maximum, so set max-model-len to what you actually serve rather than the model's theoretical maximum.
What about fine-tuning VRAM?
Full fine-tuning needs roughly 16 bytes per parameter for weights, gradients and Adam states, so about 110 GB for a 7B model. LoRA trains a few percent of parameters and fits a 7B model on a 24 GB card; QLoRA fits 70B on 48–80 GB.
Which GPU should I start with?
Start one tier above the minimum your arithmetic gives, rent it per minute, measure tokens per second and peak memory under real load, then move down if there is slack. Per-minute billing makes the test cost a few dollars.
Last reviewed October 16, 2026 by FastInfra. Prices and counts on this page are refreshed from the live catalog on every load.