VramFit
GPU VRAM & Deployment Fit Planner
Loading the model is the easy part. The KV cache is what runs you out of memory under load.
GPU memory needed to serve common model sizes
VRAM is model weights plus KV cache plus roughly 10% runtime overhead. The KV cache is the part people forget, and it grows with both context length and concurrency. Rows assume an 80 GB GPU.
| Model | Precision | Context | Concurrent | Weights | KV cache | Total | GPUs |
|---|---|---|---|---|---|---|---|
| 7B | FP16 (2 B/param) | 4,096 | 8 | 13.0 GB | 16.0 GB | 31.9 GB | 1 |
| 13B | FP16 (2 B/param) | 4,096 | 8 | 24.2 GB | 25.0 GB | 54.1 GB | 1 |
| 70B | FP16 (2 B/param) | 4,096 | 8 | 130.4 GB | 80.0 GB | 231.4 GB | 3 |
| 70B | INT8 (1 B/param) | 4,096 | 8 | 65.2 GB | 80.0 GB | 159.7 GB | 2 |
| 7B | FP16 (2 B/param) | 32,768 | 8 | 13.0 GB | 128.0 GB | 155.1 GB | 2 |
| 70B | FP16 (2 B/param) | 8,192 | 32 | 130.4 GB | 640.0 GB | 847.4 GB | 11 |
Look at the last row: a 70B model needs 130 GB of weights but 640 GB of KV cache at 32 concurrent requests on an 8k context. Long context and high concurrency, not parameter count, are what usually blow the budget.
A GPU VRAM planner calculates whether a language model will actually fit on your hardware in production, which is a different and much harder question than whether it fits at all. Most VRAM estimates stop at model weights: multiply parameters by bytes per parameter and compare against the card. That number tells you whether the model loads. It does not tell you whether it serves traffic, and teams discover the difference when a deployment that worked in testing runs out of memory the moment concurrent users arrive.
The calculation has two parts. Weights are straightforward and fixed: parameter count multiplied by bytes per parameter, where the multiplier depends on quantization — two bytes for half precision, one for int8, half a byte for int4. This is why quantization is such a powerful lever, turning a model that needs multiple cards into one that fits on a single card. The second part is the KV cache, and it is where deployments fail. Every token in every active request stores key and value tensors across every layer, so the cache scales with layer count, hidden size, context length, and — critically — the number of requests in flight simultaneously. A cache that consumes a couple of gigabytes for one request at short context can consume more than the model weights themselves at long context with meaningful concurrency. Runtime overhead for activations, fragmentation, and the inference framework is added on top, and the total is divided by per-GPU VRAM to give the card count.
The planner also reports what fraction of total memory the KV cache represents and how many concurrent requests a single GPU could hold once weights and overhead are paid, because that is the number that governs real throughput. Two design consequences follow. First, context length is expensive in a way that is easy to underestimate: quadrupling the supported context roughly quadruples cache consumption per request, so advertising a very long context window has a direct and substantial hardware cost. Second, concurrency and context trade against each other on a fixed card — you can serve many short requests or a few long ones, and the serving framework's batching strategy determines which. Techniques like paged attention, grouped-query attention, and KV cache quantization materially change these numbers, so treat this as the first-order model and validate against your actual serving stack. The source research is right that a useful planner must add hardware availability, context and batch tradeoffs, quantization, and cost per throughput target rather than reporting a single fit-or-not answer.
The KV cache is the real constraint
Weights are a fixed cost you pay once; the KV cache is paid per token, per layer, per concurrent request. At long context with real concurrency it routinely exceeds the size of the model itself. Any capacity plan that sizes only for weights will look fine in a single-user test and fail under production load.
Context length and concurrency trade against each other
On a fixed card, KV cache is a shared budget: you can serve many short-context requests or a few long-context ones. Doubling your supported context roughly halves your maximum concurrency. That's why advertising a very large context window has a direct hardware cost — it's a capacity decision, not just a configuration flag.
Frequently asked questions
Can a 70B model at fp16 serve 16 concurrent requests at 8K context on an 80 GB GPU?
No. Weights alone are about 130 GB at fp16, before any cache — you'd need two 80 GB cards just to load it. Quantizing to int4 brings weights to roughly 33 GB, which leaves room for cache on a single card, though 16 concurrent requests at 8K context adds substantial KV on top. Run your own numbers above.
Why does my model load fine but crash under load?
Because loading only allocates weights. Each concurrent request then allocates KV cache proportional to its context length across every layer. A model comfortably resident at startup can exhaust VRAM once a handful of long-context requests run at once — the failure appears only under concurrency, which is exactly what single-user testing misses.
How much does quantization actually save?
It scales the weights term directly: int8 halves fp16, and int4 quarters it. A 70B model drops from roughly 130 GB to 33 GB moving from fp16 to int4. It does not shrink the KV cache unless you also quantize the cache separately, so at high concurrency quantizing weights alone may not be enough.
How is this different from the self-host vs API calculator?
This one answers whether the model physically fits on given hardware and how much concurrency that hardware supports. The self-host calculator takes hardware as given and answers the financial question — whether running it yourself beats paying per token once idle time and ops effort are counted.
Related Developer calculators
Database Storage, RAM & IOPS Sizing Calculator
Storage, RAM, and IOPS to provision for a database after indexes, replicas, and growth.
OpenAI Evaluation Sample Size & Budget Calculator
Samples needed to detect a real change in AI quality, and what the evaluation costs.
OpenModel Deprecation Migration Cost Calculator
Effort and cost to migrate off a deprecated model before its shutdown date.
OpenBatch API Savings vs Deadline Calculator
Savings from moving deferrable AI traffic to a discounted batch API within your SLA.
OpenLast updated: August 1, 2026