Skip to content
Bitpute
ToolsModelsGPUsCloudLearn
Methodology

How Bitpute calculates VRAM, speed & cost

Maintained by Bitpute Engineering · Updated 6 August 2026 · How we estimate · Sources · Editorial policy · Version history · Report an error

Every number on this site is computed from a published formula — not scraped, averaged, or guessed. This page shows the exact math, the constants, and what we deliberately don't model.

Calculation engine v1.1.0 Last reviewed: July 2026 Runs entirely in your browser

Why Bitpute exists

Choosing a GPU for an AI model shouldn’t come down to a single VRAM number. The memory a model needs moves with its parameter count, the precision it is stored at, the quantization you pick, runtime overhead and — where the architecture is published — the KV cache that grows with context length. A model that looks like it fits inside a card’s advertised VRAM can still leave too little usable memory to run in practice.

Bitpute exists to make those trade-offs visible. Rather than issuing one generic recommendation, it computes the underlying requirement stage by stage and compares it against usable GPU capacity — so you can see why a model fits, doesn’t fit, or is a tight match, and change one variable to find out what would.

Who publishes this and how it is reviewed: About Bitpute and the editorial policy.

How a number is produced
Model parametersPublished parameter countPrecision / quantizationBits per weight (FP16 → Q4_0)Weight memoryparams × bpw ÷ 8Runtime overheadFixed floor + fraction of weightsKV cacheGrows with context *Total footprintWeights + overhead + KVUsable GPU VRAM95% of advertised capacityGPU fit / recommendationFits · tight · won't fit

* KV cache is included when the required architecture data (layers, KV heads, head dimension) is available for the model. Where it is not, the figure shown is the base footprint — weights plus overhead — and the page says so.

All calculators here run client-side. Nothing about your hardware or the models you look up is sent to a server. The trade-off is that our numbers are estimates from first principles, not measured benchmarks — accurate enough to plan a purchase, but always sanity-check against a real run for your exact stack.

1Model weights

The dominant cost is the weights themselves. Given a model's parameter count and the precision it's stored at:

Weights (GiB)weights = params(B) × 1e9 × bpw ÷ 8 ÷ 2³⁰

params(B) is billions of parameters. bpw is bits per weight — set by the quantization. We divide by 8 to go from bits to bytes, and by 2³⁰ (1,073,741,824) because we report in binary gigabytes (GiB), the unit GPUs actually allocate in. On the rest of the site we write the shorter GB, the way GPU vendors and everyone else label a card — but the arithmetic is always binary, so a figure shown as 4.5 GB is the 4.52 GiB computed here.

Worked example — Llama 3.1 8B at Q4_K_M
8 × 1e9 × 4.85 ÷ 8 ÷ 2³⁰ ≈ 4.52 GiB of weights.

2Runtime overhead

Loading a model costs more than the raw weights: the CUDA context, the memory allocator, and working buffers all take space. We model this as a fixed base plus a small fraction of the weights:

Overhead (GiB)overhead = 0.75 + 0.05 × weights

For the 8B example above that's 0.75 + 0.05 × 4.52 ≈ 0.98 GiB, so weights + overhead ≈ 5.5 GiB before any context.

3KV cache (context)

Every token you feed or generate is cached as key/value tensors. This grows linearly with context length and sits on top of the weights — at long context it can rival or exceed them:

KV cache (GiB)kv = 2 × layers × kv_heads × head_dim × context × bytes ÷ 2³⁰

The leading 2 is for the two tensors (K and V). bytes defaults to 2 (an FP16 cache). Models using grouped-query attention (GQA) have far fewer kv_heads than attention heads, which is why a modern 8B model's cache is small while older architectures balloon.

Worked example — Llama 3.1 8B (32 layers, 8 KV heads, head_dim 128)
At 8K context: 2×32×8×128×8192×2 ÷ 2³⁰ ≈ 1.0 GiB. At 128K context: ≈ 16 GiB — larger than the Q4 weights.

4Total footprint & single-GPU fit

Totaltotal = weights + overhead + kv_cache

A card doesn't hand you 100% of its VRAM — the display, drivers and fragmentation take a slice. So we treat usable VRAM = capacity × 0.95, and a model fits when total ≤ usable. For a comfortable daily driver we suggest capacity × 1.10 headroom over the total, so you're not living at the edge of OOM.

5Decode speed ceiling

Token generation is memory-bandwidth bound: each token requires reading the active weights from VRAM once. So the theoretical upper bound on tokens/second is:

Decode ceiling (tok/s)ceiling = memory_bandwidth (GB/s) ÷ active_weight_bytes (GB)
This is a ceiling, not a benchmark.

Real throughput is lower — kernel efficiency, batching, sampling, and CPU offload all cost tokens. Treat it as "this card physically cannot exceed X for this model," useful for comparing cards, not for promising a number.

6Power & running cost

Wall-plug draw is higher than the GPU's rated TDP once you add the CPU, board and PSU losses, so we estimate system power ≈ 1.3 × GPU TDP. Energy cost is then power × hours × your electricity rate (the calculator defaults are editable). Buy-vs-rent compares that running cost plus hardware amortization against on-demand cloud pricing.

7Quantization reference

Bits per weight for the six formats we model:

FormatBits / weightTypical use
FP1616.0Full precision — max quality, max VRAM
Q8_08.5Near-lossless
Q6_K6.56Very high quality
Q5_K_M5.69High quality, balanced
Q4_K_M4.85The common sweet spot
Q4_04.5Smallest — some quality loss

These are representative effective sizes. K-quants are mixed — different tensors in the same file get different types — so the exact bits-per-weight varies with architecture. For a concrete reference point, llama.cpp publishes measured figures for Llama 3.1 8B in its quantize documentation: Q4_K_M 4.8944, Q5_K_M 5.7036, Q6_K 6.5633, Q8_0 8.5008, F16 16.0005. We round to the values above and treat them as typical rather than exact; on a 70B model the difference between 4.85 and 4.8944 bpw is roughly 0.4 GB, which is inside the headroom the fit calculation already reserves.

8Data sources & assumptions

9What we deliberately don't model

Being explicit about the edges matters more than pretending there are none:

10How these numbers are verified

There is no single named reviewer signing off on prose here — instead numbers are held to a mechanical parity check on every build, and every input constant is traceable to a primary source:

This is deliberate: for a calculator, a reproducible method you can re-run beats a credential you have to take on faith. How content is produced and corrected is set out in the editorial policy.

Common mistakes when sizing VRAM

Every one of these has a number behind it elsewhere on this site. They are listed because each is a way a correct-looking calculation produces a wrong answer.

  1. More VRAM does not always mean faster. The RTX 4060 Ti 16GB holds bigger models than the RTX 3060 12GB but has lower memory bandwidth (288 GB/s against 360 GB/s). Decode speed tracks bandwidth once a model fits, so the larger card is roughly 20% slower on the models both can run.
  2. A 24 GB card does not give you 24 GB. We size against 95% of nameplate VRAM — about 22.8 GB on a 24 GB board. The display buffer, CUDA context and allocator fragmentation take the rest. Sizing to the nameplate figure is the most common way a model that “should fit” throws an out-of-memory error.
  3. Two cards with the same name can have different specs. An A100 80GB SXM runs at 2,039 GB/s and 400 W; the PCIe card is 1,935 GB/s at 300 W. H100 is starker: 3.35 TB/s SXM against roughly 2 TB/s PCIe. Most cloud instances are PCIe. Our GPU pages state which module the figures describe.
  4. Mixture-of-experts models still need all the weights resident. Active-parameter counts describe how much compute runs per token, not how much memory is occupied. A 671B model with 37B active still needs the full 671B in VRAM. Sizing an MoE by its active count understates the requirement by an order of magnitude.
  5. Instruct and base checkpoints have identical footprints. Fine-tuning changes weight values, not weight counts. If a base model fits, its instruct sibling fits. Where our catalogue holds both, each page names the other.
  6. Context length can cost more than the model. KV cache grows linearly with context. A 3B model at Q4_K_M is under 2 GB of weights, but a long context window can add more than that again. Model size alone does not tell you whether a setup fits.
  7. Quantization bits-per-weight are not exact integers. Q4_K_M is a mixture — different tensors get different types — so effective size lands near 4.85–4.89 bits per weight depending on architecture, not 4.0. Sizing a 4-bit build at 4 bits underestimates it by roughly 20%.

11References & sources

The formulas above rest on public, primary sources:

Every constant is chosen from these; if you have a better primary source for one, tell us.

12Changelog

The full version history for the engine, methodology and data now lives on the dedicated changelog page. In brief: the current calculation engine is v1.1.0 (July 2026), parity-tested to ±0.01 GB.

Found an error or have a better source for a constant? Corrections are welcome — we'd rather fix a number than defend it. See the engineering notes for deeper derivations.

Try the VRAM calculator → Changelog Editorial policy About Bitpute