LLM Inference Economics: Hardware Limits, Costs & Cloud Break-Even
Serving LLMs is a sandwich of physics and economics. The physics — memory bandwidth, FLOPS, VRAM capacity — caps how many tokens a given GPU can produce. The economics — acquisition prices, power, cloud rates, API list prices — decides whether those tokens are cheaper on your own hardware or on someone else's. This page walks through both, with interactive calculators wired to the same roofline math as the inference calculator.
Getting started: the two resources that limit you
Memory: the batch-1 bottleneck
At low concurrency, decode is memory-bandwidth-bound. Generating one token means streaming every active model parameter from VRAM once:
Two more memory limits stack on top:
- Capacity: weights + KV cache must fit in VRAM. A 70B model at BF16 needs ~140 GB before a single token of context — no consumer card can hold it.
- Amortization ceiling: batching spreads the weight-read cost over more requests. But every additional sequence also grows the KV cache, so at some point VRAM is full and the batch stops growing.
Compute: the ceiling you hit at scale
The same GPU also has a hard FLOPS roof. Each token costs ~2 FLOPs per active parameter (multiply + accumulate), independent of quantization:
Unlike bandwidth, this ceiling is batch-independent: the weights are read once per decode step regardless of how many requests share them. Batching moves you toward it; nothing moves you past it.
When does the limit shift from memory to compute?
Per request, throughput stops improving when the aggregate bandwidth ceiling reaches the compute ceiling — the break-even batch B*. Below B*, more requests ride along on the same weight reads for free; at B*, the tensor cores saturate; beyond B*, every extra request dilutes everyone's speed. For a dense 32B model on an RTX PRO 6000, B* is around 280; for MoE models with small active parameter counts, B* can be in the thousands. The break-even analyzer computes B* for your exact combination.
Interactive Estimator
LLM inference planner beta
Total parameters drive VRAM capacity; active parameters drive decode speed (MoE only fetches routed experts per token). MLA and hybrid-attention models use compressed KV-cache math.
Capacity check (Single GPU)
- Model weights (total)
- 64 GB
- Active weights per token
- 64 GB
- KV cache per token
- 0.26 MB
- Total KV cache (5,120 tok × 1)
- 1.34 GB
- Activations
- 0.8 GB
- Runtime overhead
- 1.2 GB
- Total VRAM needed
- 67.34 GB
- Available VRAM
- 96 GB
- Headroom
- 28.66 GB
- Max batch @ current context
- ~22
- Max context @ batch 1
- ~114,452 tok
Roofline alignment
- GPU ops:byte (BF16 (2 B))279.02 ops/byte
- Base intensity (head_dim/2)64 ops/byte
- Effective intensity (× batch)64 ops/byte
- Gap215.02 ops/byte
Memory-bound: raising batch size lifts effective intensity because more tokens share each active-weight fetch.
Latency snapshot
- Decode throughput
- 21 tok/s
- Time per token
- 47.62 ms
- Throughput limit
- Memory
- Time to first token (4,096 tok)
- 745.96 ms
- Total request time
- 49.51 s
- Memory-limited ceiling
- 21 tok/s
- Compute-limited ceiling
- 5,859.38 tok/s
Decode ≈ min(aggregate bandwidth ÷ per-step bytes, FLOPS(BF16) ÷ 2·active-params, per-layer sync latency). Sync model: 0 sync(s)/layer × PCIe Gen5 x16 latency, scaled by kernel efficiency — TP+EP on PCIe fabrics is sync-bound, not bandwidth-bound.TTFT = max(total weight stream, linear + quadratic attention FLOPs). MoE capacity still needs all 32B params in VRAM.
Economics and reality
Which models fit which hardware?
Fit is a pure capacity question first: total parameters × bytes per parameter must leave room for KV cache. The matrix below shows it live for your chosen precision and GPU count — green means ≥15% headroom, amber means it technically fits but leaves almost no KV budget, red means it doesn't fit. Quantization shifts entire rows: FP8 halves every weight footprint, NVFP4 quarters it.
How expensive is the hardware?
Rule-of-thumb figures (Sept 2026, editable in the calculator): a single RTX PRO 6000 is ~$8.5k street, H100 ~$25k, H200 ~$28k, B200 ~$34k, MI300X ~$12k. A complete 8-GPU server multiplies card cost by roughly 1.8 for the chassis, CPUs, and networking. And the sticker price is only the entry ticket: power (a 700 W H100 at €0.25/kWh is ~$130/mo per card), housing, staff, and the cost of capital roughly double the monthly bill over 36 months of amortization.
How many tokens do you get out of the hardware?
Token yield = throughput at the operating point (the smaller of B* and the VRAM-feasible batch) × wall-clock. An RTX PRO 6000 serving Qwen3-30B-A3B at FP8 at 70% utilization produces on the order of 47 billion tokens per month; a B300 serving a 6B-active MoE produces roughly 5× that. The calculator computes this from the roofline — including the honesty that utilization, not peak throughput, is what most fleets get wrong.
When is cloud cheaper — and when is own hardware cheaper?
Three cost lines matter: cloud rent (per GPU-hour, linear in time), own hardware (mostly fixed per month, linear in tokens), and APIs (pure per-token). The crossover logic:
- Low, spiky utilization (< ~40%) → cloud wins. You pay only for hours used; owning idle silicon is the most expensive way to serve nothing.
- Steady high utilization (> ~60%) with a model that fits → own hardware wins by a factor of 3–10 on raw cost per token. A $8.5k card that outperforms a $2.20/h cloud GPU pays for itself in a few months at 24/7.
- Sporadic workloads, many different models, no ops team → APIs win despite the per-token premium, because the premium buys elasticity and zero operations.
- Compliance boundaries (ISO 27001, C5, DSGVO) → own hardware or dedicated hosting is often the only option, regardless of price; data must not leave the perimeter.
The calculator computes the crossover utilization and the break-even months for your concrete workload.
Open-weight models vs proprietary APIs
The uncomfortable truth for API vendors: at scale, tokens from open weights are dramatically cheaper. A 96 GB card serving a 30B-class MoE costs a few cents per million tokens in electricity and amortization; GPT-5 mini charges $0.25/$2.00 per million in/out. The table below compares each open-weight model with the proprietary class it realistically competes with — same quality class, not token-identical. Two caveats keep it honest: your time to operate the stack isn't priced in at API rates, and quality-per-token still differs — the comparison tells you what a quality class costs, not that the models are interchangeable.
Economics
LLM inference economics beta
From physics to euros: how memory and compute cap your throughput, which model fits which hardware, what the hardware costs, and when owning beats renting — including the comparison against proprietary API pricing.
Token yield from this hardware
Operating point: min(B*, VRAM-capable batch), FP8 KV, continuous serving.
Monthly cost of owning
Acquisition amortized over 36 months; capital cost shown separately below.
Which models fit which hardware (FP8 (1 B), 1× GPU)
| Model | |||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Qwen3-4B-Instruct4B | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
| Qwen3-14B14B | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
| Qwen3-32B32B | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✗ | ✓ | ✗ | ✓ |
| Qwen3-VL-8B-Instruct8B | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
| Qwen3-30B-A3B30.5B | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ~ | ✓ | ✗ | ✓ |
| Qwen3-Next-80B-A3B80B | ✓ | ✓ | ✓ | ✓ | ✗ | ✓ | ✓ | ✓ | ~ | ~ | ✗ | ✗ | ✗ | ✗ | ~ |
| Qwen3.8-Flash-Next180B | ✓ | ✗ | ~ | ✗ | ✗ | ✓ | ✓ | ~ | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ |
| Qwen3.8-27B27B | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ~ | ✓ | ✗ | ✓ |
| Qwen3-235B-A22B235B | ✓ | ✗ | ✗ | ✗ | ✗ | ✓ | ~ | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ |
| Llama 3.3-70B70B | ✓ | ✓ | ✓ | ✓ | ~ | ✓ | ✓ | ✓ | ✓ | ✓ | ✗ | ✗ | ~ | ✗ | ✓ |
| gpt-oss-120B-A5B117B | ✓ | ✓ | ✓ | ~ | ✗ | ✓ | ✓ | ✓ | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ |
| DeepSeek V3.2-671B-A37B671B | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ |
| DeepSeek V4-Flash-0731284B | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ |
| DeepSeek V4.1-Flash748B | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ |
| GLM-5.2744B | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ |
| Qwen3.6-35B-A3B35B | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✗ | ✓ | ✗ | ✓ |
| Nemotron Nano 9B v28.9B | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
✓ fits with ≥15% headroom for KV cache · ~ fits but <15% headroom · ✗ exceeds capacity. Click a column header to select that GPU. Weight overhead (3%) included. KV-cache need grows with context and batch — see the planner.
Renting the same GPU in the cloud
RTX PRO 6000 (96 GB) — Smaller clouds / managed hosts. Rates are editable defaults (Sept 2026); reserved/committed pricing is typically 40–60% lower.
API vs own hardware for your workload
API list prices, Sept 2026. Open-weight models compete in the same class, not token-identical.
Open-weight vs proprietary API cost per 1M tokens
Open-weight cost = own-hardware cost at 70% utilization, FP8 (1 B) weights, FP8 KV. Assignments are quality-class comparisons (e.g. DeepSeek V3.2 ↔ Claude Opus class), not token-identical substitutes.
| Open-weight model | Proprietary class | API in / out ($/Mt) | GPU size needed | Own $/Mt | API $/Mt (blended 30% out) | Verdict |
|---|---|---|---|---|---|---|
| Qwen3-32B | GPT-5 mini | 0.25 / 2 | 1× RTX PRO 60 | $0.03 | $0.77 | own −95.96% |
| Qwen3-VL-8B | GPT-5 mini | 0.25 / 2 | 1× RTX PRO 60 | $0.01 | $0.77 | own −99.17% |
| Qwen3-14B | GPT-5 mini | 0.25 / 2 | 1× RTX PRO 60 | $0.01 | $0.77 | own −98.55% |
| Qwen3-4B | GPT-5 mini | 0.25 / 2 | 1× RTX PRO 60 | $0 | $0.77 | own −99.59% |
| GLM-5.2 (744B-A40B) | GPT-5.2 | 1.25 / 10 | 8× RTX PRO 60 | — | $3.88 | API −100% |
| DeepSeek V4.1-Flash (552B-A16B) | Claude Sonnet 4.5 | 3 / 15 | 9× RTX PRO 60 | $1.62 | $6.6 | own −75.44% |
| DeepSeek V4-Flash (284B-A13B) | Gemini 3 Flash | 0.75 / 3 | 4× RTX PRO 60 | $0.27 | $1.42 | own −80.99% |
| Qwen3.8-Flash-Next (125B-A6B) | Gemini 3 Flash | 0.75 / 3 | 2× RTX PRO 60 | $0.32 | $1.42 | own −77.26% |
| Qwen3.8-27B (dense hybrid) | GPT-5 mini | 0.25 / 2 | 1× RTX PRO 60 | $0.02 | $0.77 | own −97.21% |
| Qwen3.6-35B-A3B | GPT-5 mini | 0.25 / 2 | 1× RTX PRO 60 | $0 | $0.77 | own −99.64% |
| Qwen3-235B-A22B | Claude Sonnet 4.5 | 3 / 15 | 3× RTX PRO 60 | $0.25 | $6.6 | own −96.14% |
| Llama 3.3-70B | Claude Sonnet 4.5 | 3 / 15 | 1× RTX PRO 60 | $0.24 | $6.6 | own −96.41% |
| gpt-oss-120B-A5B | GPT-5 mini | 0.25 / 2 | 2× RTX PRO 60 | $0.03 | $0.77 | own −96.26% |
| DeepSeek V3.2 (671B-A37B) | Claude Opus 4.5 | 5 / 25 | 8× RTX PRO 60 | $0.17 | $11 | own −98.44% |
| Qwen3-Next-80B-A3B | GPT-5 mini | 0.25 / 2 | 1× RTX PRO 60 | $0.04 | $0.77 | own −95.11% |
| Nemotron Nano 9B v2 | GPT-5 mini | 0.25 / 2 | 1× RTX PRO 60 | $0.01 | $0.77 | own −99.08% |
| Qwen3-30B-A3B | GPT-5 mini | 0.25 / 2 | 1× RTX PRO 60 | $0.01 | $0.77 | own −98.59% |
All prices are editable defaults (Sept 2026 street/list ballparks) — adjust to your contract rates. Throughput numbers reuse the same roofline math as the planner and break-even tools; they are theoretical ceilings, and real fleets typically land at 50–80% of them. Serving stack overhead (vLLM/SGLang), networking, and CPU-side preprocessing are not included.
Limitations
- All throughput numbers are roofline ceilings; real serving stacks achieve 50–80% of them.
- Prices are editable defaults (Sept 2026 street/list ballparks) — plug in your actual contract rates.
- The open-vs-proprietary table assigns quality classes; benchmarks move fast, verify against your own evals.
- Serving-stack overhead (vLLM/SGLang scheduling, CPU preprocessing, networking) is not modeled.