Methods notePrivate SI cloud

How much GPU memory LLM inference needs

LLM inference memory is weights plus a KV cache that grows with context and users, with the arithmetic for a 70B model on 80, 94 and 141 GB GPUs.

Cover of the full report: How much GPU memory LLM inference needs
The research behind this article, with every source listed. 20 pages.

Key points

From the Summary of the full report

  1. How much GPU memory LLM inference needs is set by two terms and a reserve: fixed model weights, a KV cache that grows with every token each active request holds, and room the serving engine keeps for activations and buffers [4, 17, 21, 31].
  2. Weights are parameters times bytes per parameter. Published 70B checkpoints of one architecture measure 131.42 GiB in BF16, 67.68 GiB in FP8 and 36.81 GiB with 4-bit weights, viewed 24 October 2026 [27, 28, 29].
  3. KV bytes per token are 2 x layers x KV heads x head size x bytes per element: 320 KiB per token in BF16 for a 70B model with 80 layers and 8 KV heads, or 40 GiB for one sequence of 131,072 tokens [1, 14]. Grouped-query attention makes this 8 times smaller than multi-head attention for this model, and latent attention and sliding windows cut further [3, 5, 7].

How much GPU memory LLM inference needs comes down to two terms and a reserve. The weights take a fixed amount: parameters times bytes per parameter. The KV cache grows with every token that each active request holds. The serving engine also reserves memory for activations and buffers [18, 21].

One published 70B model's checkpoint in BF16 is 131.42 GiB [27]. Its KV cache takes 320 KiB per token in BF16, so one 128K-token sequence (131,072 tokens) holds 40 GiB [1, 14]. At vLLM's default memory setting, BF16 weights fit on no single 80, 94 or 141 GB GPU. FP8 weights fit on each, with little room left on the 80 GB card, and the KV cache then decides how many users and how much context each GPU serves [17, 27, 28, 33, 34, 35, 36].

Worked figures below are arithmetic from the cited sources. None is measured.

How much GPU memory LLM inference uses

GPU memory = weights + KV bytes per token x tokens held by all active requests + engine reserve

Weights take about 2 bytes per parameter in BF16, 1 in FP8 and about half a byte at 4 bits, which puts a 70B model near 140, 70 and 35 GB [16, 31, 32]. In the PagedAttention paper's profile of a 13B model on a 40 GB A100, about 65% of memory held weights and close to 30% held the state of requests [9].

VRAM for a 70B model: the weights

Published checkpoints confirm the weight rule.

70B checkpoint Size of the files Share of BF16
BF16, 70,553,706,496 parameters 131.42 GiB 100%
FP8 weights and activations 67.68 GiB 51.5%
INT4 weights, group size 128 36.81 GiB 28.0%

Sources: [27, 28, 29], viewed 24 October 2026. BF16 is the model maker's own release. FP8 and INT4 are published checkpoints of another 70B release by the same maker, with the same architecture. Shares are this note's arithmetic.

The quantized files sit above one half and one quarter because the embeddings and output layer stay in 16 bits, and the 4-bit file also stores a scale for each group of 128 weights [28, 29]. Their publisher reports MMLU scores of 81.31 for FP8 and 80.62 for INT4, against 81.60 for that release unquantized [28, 29]. The 70B model's authors warn that standard benchmarks can miss FP8 errors [1]. Mixture-of-experts models are sized by total parameters: one with 13B active per token has memory costs proportional to its 47B total [12].

KV cache size calculation

The KV cache stores one key vector and one value vector per layer and per KV head for each token held [5, 14]:

KV bytes per token = 2 x layers x KV heads x head size x bytes per element

The 70B model has 80 layers, a model dimension of 8,192, 64 attention heads and 8 key/value heads [1]. Its maker's reference code sets head size to model dimension over attention heads, 128 here, and sizes the cache by KV heads [14]. In BF16 that is 2 x 80 x 8 x 128 x 2 = 327,680 bytes, or 320 KiB per token [1, 14]. A sequence of 8,192 tokens holds 2.5 GiB and one of 32,768 holds 10 GiB [1, 14].

Two published versions of the formula need care. NVIDIA's 2023 technical blog on inference writes it with heads times head size, equated with the model's hidden size [31]. That holds only for multi-head attention. For the 70B model it gives 2.5 MiB per token, eight times the figure above [1, 31]. Hugging Face's release post for the same model family prints a 405B row twice what the formula gives for 126 layers and 8 KV heads, by this note's arithmetic [1, 32].

Attention design changes the cache several-fold

Multi-query attention shares one key and value head across all query heads [2]. Grouped-query attention keeps more than one KV head and fewer than the query heads, with quality close to multi-head attention [3]. The 70B model uses 8 KV heads for 64 query heads, one eighth of the multi-head cache, to reduce the size of key-value caches during decoding [1, 3].

A 236B mixture-of-experts model with latent attention compresses keys and values into a latent vector, and its paper reports a KV cache 93.3% smaller than that of the same maker's earlier 67B model [5]. The deployed model also stores each cache element in about 6 bits on average [5]. By this note's arithmetic from both papers' tables, the 93.3% matches that 6-bit cache, and the latent design alone at 16 bits gives about 82% less [5, 6]. Sliding windows cap the cache at the window size [7]. In one 7B model, a rolling buffer cuts cache memory 8 times on a 32K sequence [7].

Context length and concurrent users

The cache is unique to each sequence, so it grows with every active request [4]. For the 70B model in BF16, ten users at 8K tokens each hold 25 GiB, by this note's arithmetic [1, 14]. At 32K each they hold 100 GiB, more than the 67.68 GiB of FP8 weights [28].

The PagedAttention authors measured that earlier systems used only 20.4% to 38.2% of their KV cache memory for token states [9]. Paged blocks brought waste near zero and raised throughput 2 to 4 times at the same latency [9]. When the cache still runs out, vLLM preempts requests and recomputes them, at a cost in latency [18].

FP8 KV cache memory and its caveats

An FP8 cache halves the KV term, to 160 KiB per token for the 70B model [1, 14]. Without calibration, vLLM sets every scale to 1.0. It recommends calibrated scales and names sliding-window layers as more sensitive to KV quantization [15].

vLLM's April 2026 evaluation used uncalibrated scales. On the other 70B release, the MRCR long-context test to 128K tokens recovered about 97 to 98% of the baseline AUC [30]. The same work found a Hopper kernel problem that cut 128K needle-in-a-haystack accuracy from 91% to 13% until a fix restored it [30]. The authors advise staying with BF16 for contexts under about 7K tokens, for models with many small sliding-window layers, and where uncalibrated accuracy falls below 95% on the workload [30].

GPU sizing for LLM serving on one GPU

NVIDIA lists 80GB for the H100 SXM, 94GB for the H100 NVL and 141GB for the H200, and marks the H200 figures as preliminary [23, 24]. The driver reports totals close to those labels in binary units: 81,559 MiB (79.65 GiB), 95,830 MiB (93.58 GiB) and 143,771 MiB (140.40 GiB) [33, 34, 35]. The test below works in GiB on both sides, with the default of 0.92 of GPU memory in vLLM's stable documentation as the budget [36]. Its development documentation, viewed 7 November 2026, gives 1.0 when the extensible KV cache is on [17].

GPU Budget at 0.92 BF16 weights Left after FP8 weights BF16 KV tokens FP8 KV tokens
H100 SXM 80GB 73.28 GiB Do not fit 5.60 GiB about 18,300 about 36,700
H100 NVL 94GB 86.10 GiB Do not fit 18.42 GiB about 60,400 about 120,700
H200 141GB 129.17 GiB 2.25 GiB short 61.49 GiB about 201,500 about 403,000

This note's arithmetic from [17, 27, 28, 33, 34, 35]. The space left also holds activations and CUDA graphs, so the token counts are ceilings.

By the same arithmetic, with FP8 weights, one H200 holds at most about 24 sequences of 8K tokens with a BF16 cache, or 49 with an FP8 cache [17, 28, 35]. An H100 80GB holds about two [17, 28, 33]. The reserve depends on the engine. vLLM profiles memory use and estimates CUDA graph memory at startup [18]. TensorRT-LLM gives the KV cache 90% of the memory still free after loading [21].

How many GPUs to serve a 70B model

Tensor parallelism splits the weights and the KV heads across GPUs [18, 20, 21]. vLLM divides KV heads among GPUs until the GPU count reaches the KV head count, then copies them [20]. For the 70B model in BF16 on H100 80GB GPUs:

Split Weights per GPU Left per GPU KV per token per GPU KV tokens for the group
2 GPUs 65.71 GiB 7.57 GiB 160 KiB about 49,600
4 GPUs 32.85 GiB 40.42 GiB 80 KiB about 530,000
8 GPUs 16.43 GiB 56.85 GiB 40 KiB about 1.49 million

This note's arithmetic from [1, 17, 20, 27, 33], with weights split evenly.

By the same arithmetic, two H200s leave 63.46 GiB each, about 415,900 tokens for the group [1, 17, 20, 27, 35]. vLLM's guidance is one GPU when the model fits, tensor parallelism inside a node when it does not, and pipeline parallelism added across nodes [19]. Newer parts carry more memory per GPU [25, 26]. The parts inside an eight-GPU HGX server are set out in what an HGX B200 or B300 server price includes. Renting the GPUs instead is covered in what posted GPU cloud prices tell you.

Sizing the hardware, platform and models is the Design step when Rillor deploys a private superintelligence (SI) cloud: a dedicated environment with your models and data on infrastructure you control.

Read the full report

The full report, with the KV table for the family's 8B, 70B and 405B models, the attention designs side by side, the 4-bit and multi-GPU cases on all three GPUs and the complete source list, is available as a PDF.

The full report

How much GPU memory LLM inference needs

The research behind this article, with every source listed. 20 pages.

  1. Summary
  2. Background
  3. Method
  4. Findings
  5. Implications
  6. Limits of this analysis
  7. Sources

Sources

  1. The Llama 3 Herd of Models. Llama Team, AI @ Meta, arXiv:2407.21783v3, 23 November 2024. https://arxiv.org/html/2407.21783v3
  2. Fast Transformer Decoding: One Write-Head is All You Need. Noam Shazeer, arXiv:1911.02150, 6 November 2019. https://arxiv.org/abs/1911.02150
  3. GQA: Training Generalized Multi-Query Transformer Models from Multi-Head Checkpoints. Ainslie et al., Google Research, EMNLP 2023, arXiv:2305.13245v3, 23 December 2023. https://arxiv.org/abs/2305.13245
  4. Efficiently Scaling Transformer Inference. Pope et al., Google, arXiv:2211.05102, 9 November 2022. https://arxiv.org/abs/2211.05102
  5. DeepSeek-V2: A Strong, Economical, and Efficient Mixture-of-Experts Language Model. DeepSeek-AI, arXiv:2405.04434v5, 19 June 2024. https://arxiv.org/html/2405.04434v5
  6. DeepSeek LLM: Scaling Open-Source Language Models with Longtermism. DeepSeek-AI, arXiv:2401.02954, 5 January 2024. https://arxiv.org/abs/2401.02954
  7. Mistral 7B. Jiang et al., Mistral AI, arXiv:2310.06825, 10 October 2023. https://arxiv.org/abs/2310.06825
  8. Efficient Memory Management for Large Language Model Serving with PagedAttention. Kwon et al., SOSP 2023, arXiv:2309.06180, 12 September 2023. https://arxiv.org/abs/2309.06180
  9. Mixtral of Experts. Jiang et al., Mistral AI, arXiv:2401.04088, 8 January 2024. https://arxiv.org/abs/2401.04088
  10. Llama reference implementation, models/llama3/model.py. Meta, GitHub repository meta-llama/llama-models, viewed 24 October 2026. https://github.com/meta-llama/llama-models/blob/main/models/llama3/model.py
  11. Quantized KV Cache. vLLM documentation, updated 3 August 2026. https://docs.vllm.ai/en/latest/features/quantization/quantized_kvcache.html
  12. FP8 W8A8. vLLM documentation, updated 24 September 2026. https://docs.vllm.ai/en/latest/features/quantization/llm_compressor/fp8/
  13. Engine Arguments. vLLM documentation, updated 7 November 2026, viewed 7 November 2026. https://docs.vllm.ai/en/latest/configuration/engine_args.html
  14. Optimization and Tuning. vLLM documentation, updated 20 August 2026. https://docs.vllm.ai/en/latest/configuration/optimization.html
  15. Parallelism and Scaling. vLLM documentation, updated 15 October 2026. https://docs.vllm.ai/en/latest/serving/parallelism_scaling.html
  16. vllm/model_executor/layers/linear.py (QKVParallelLinear), commit cba669d. vLLM project, GitHub, 24 October 2026. https://github.com/vllm-project/vllm/blob/cba669d45d127f56ed3e634074b620d2d16d05cd/vllm/model_executor/layers/linear.py
  17. Memory Usage of TensorRT-LLM. NVIDIA, TensorRT-LLM documentation, viewed 24 October 2026. https://nvidia.github.io/TensorRT-LLM/reference/memory.html
  18. NVIDIA H100 Tensor Core GPU. NVIDIA, viewed 24 October 2026. https://www.nvidia.com/en-us/data-center/h100/
  19. NVIDIA H200 Tensor Core GPU. NVIDIA, viewed 24 October 2026. https://www.nvidia.com/en-us/data-center/h200/
  20. NVIDIA DGX B200. NVIDIA, viewed 24 October 2026. https://www.nvidia.com/en-us/data-center/dgx-b200/
  21. AMD Instinct MI355X GPUs. AMD, viewed 24 October 2026. https://www.amd.com/en/products/accelerators/instinct/mi350/mi355x.html
  22. meta-llama/Llama-3.1-70B-Instruct, model card and file metadata. Meta, on Hugging Face, last modified 15 December 2024, viewed 24 October 2026. https://huggingface.co/meta-llama/Llama-3.1-70B-Instruct
  23. RedHatAI/Llama-3.3-70B-Instruct-FP8-dynamic, model card and file metadata. Red Hat AI, on Hugging Face, last modified 9 June 2026, viewed 24 October 2026. https://huggingface.co/RedHatAI/Llama-3.3-70B-Instruct-FP8-dynamic
  24. RedHatAI/Llama-3.3-70B-Instruct-quantized.w4a16, model card and file metadata. Red Hat AI, on Hugging Face, last modified 5 August 2026, viewed 24 October 2026. https://huggingface.co/RedHatAI/Llama-3.3-70B-Instruct-quantized.w4a16
  25. The State of FP8 KV-Cache and Attention Quantization in vLLM. vLLM Blog, 22 April 2026. https://vllm.ai/blog/2026-04-22-fp8-kvcache
  26. Mastering LLM Techniques: Inference Optimization. NVIDIA Technical Blog, 17 November 2023. https://developer.nvidia.com/blog/mastering-llm-techniques-inference-optimization/
  27. Llama 3.1 - 405B, 70B & 8B with multilinguality and long context. Hugging Face blog, 23 July 2024. https://huggingface.co/blog/llama31
  28. Get started: Serverless GPU compute with H100 GPUs. Databricks documentation, updated 11 September 2026. https://docs.databricks.com/aws/en/machine-learning/ai-runtime/examples/tutorials/sgc-api-h100-starter
  29. NVIDIA guest driver on PVE 8 + H100 94GB vGPU. Proxmox Support Forum, 24 October 2024. https://forum.proxmox.com/threads/nvidia-guest-driver-on-pve-8-h100-94gb-vgpu.156429/
  30. Job Resource Utilization. Tufts University, TTS Research Technology Guides, viewed 24 October 2026. https://rtguides.it.tufts.edu/hpc/slurm/utilization.html
  31. Engine Arguments, stable documentation. vLLM documentation, updated 1 November 2026, viewed 7 November 2026. https://docs.vllm.ai/en/stable/configuration/engine_args/

Notices

Rillor is not a registered investment adviser or commodity trading advisor and does not provide investment or trading advice. Research, forecasts, data and software described on this site are for research and engineering use. Nothing here is an offer or recommendation to buy or sell any security, commodity interest or digital asset. Past or simulated results do not indicate future results.

NVIDIA, AMD, Ceph, Kubernetes and related product names are trademarks of their owners and are used only to identify products. No affiliation or endorsement is implied.

Superintelligence (SI) outputs can be wrong. Important decisions should include human review.

Run SI on infrastructure you control.

Send us the workloads you want to run, the data they use, who uses them and where your hardware sits today.

Scope a deployment