LLM Speed Calculator
Pick a model and a GPU, choose the quantization and context length, and see how fast it writes: the memory-bandwidth limit and the range that engines such as llama.cpp and vLLM reach for one request.
Advanced: active parameters and several GPUs
If it fit:
– tokens per second
- Bandwidth limit
- –
- Read per token
- –
- Of which KV cache
- –
- A 500-token answer
- –
Reading the prompt: time to first token
| Prompt | Time to first token | Prompt speed (pp) |
|---|---|---|
| 8,192 | – | – |
| 16,384 | – | – |
| 32,768 | – | – |
Estimate for llama.cpp with flash attention, one request, an empty cache, a quantized GGUF. The range spans the lowest and highest share of the card’s FP16 peak that public llama-bench runs reached in its family.
On other hardware
| GPU | Bandwidth | Tokens per second |
|---|---|---|
| RTX 4060 8GB | 272 GB/s | – |
| RTX 3060 12GB | 360 GB/s | – |
| Arc B580 12GB | 456 GB/s | – |
| RTX 4070 12GB | 504 GB/s | – |
| RTX 5070 12GB | 672 GB/s | – |
| RTX 4060 Ti 16GB | 288 GB/s | – |
| RTX 5060 Ti 16GB | 448 GB/s | – |
| RX 9070 XT 16GB | 644 GB/s | – |
| RTX 4070 Ti Super 16GB | 672 GB/s | – |
| RTX 4080 Super 16GB | 736 GB/s | – |
| RTX 5070 Ti 16GB | 896 GB/s | – |
| RTX 5080 16GB | 960 GB/s | – |
| RTX 3090 | 936 GB/s | – |
| RTX 4090 | 1,008 GB/s | – |
| RX 7900 XTX | 960 GB/s | – |
| RTX 5090 | 1,792 GB/s | – |
| M4 Pro Mac (64 GB) about 75% of unified memory is usable by the GPU | 273 GB/s | – |
| M4 Max Mac (128 GB) about 75% of unified memory is usable by the GPU | 546 GB/s | – |
| M3 Ultra Mac Studio (512 GB) about 75% of unified memory is usable by the GPU | 819 GB/s | – |
| Ryzen AI Max+ 395 (128 GB) up to 96 GB can be assigned to the GPU | 256 GB/s | – |
| DGX Spark (128 GB) | 273 GB/s | – |
| L40S | 864 GB/s | – |
| RTX PRO 6000 Blackwell | 1,792 GB/s | – |
| A100 80GB | 2,039 GB/s | – |
| H100 SXM | 3,350 GB/s | – |
| H200 | 4,800 GB/s | – |
| B200 | 8,000 GB/s | – |
| M1 Mac (8 GB) about two thirds of unified memory is usable by the GPU | 68.25 GB/s | – |
| M1 Mac (16 GB) about two thirds of unified memory is usable by the GPU | 68.25 GB/s | – |
| M2 or M3 Mac (8 GB) about two thirds of unified memory is usable by the GPU | 100 GB/s | – |
| M2 or M3 Mac (16 GB) about two thirds of unified memory is usable by the GPU | 100 GB/s | – |
| M2 or M3 Mac (24 GB) about two thirds of unified memory is usable by the GPU | 100 GB/s | – |
| M4 Mac (16 GB) about two thirds of unified memory is usable by the GPU | 120 GB/s | – |
| M4 Mac (24 GB) about two thirds of unified memory is usable by the GPU | 120 GB/s | – |
| M4 Mac (32 GB) about two thirds of unified memory is usable by the GPU | 120 GB/s | – |
| M5 Mac (16 GB) about two thirds of unified memory is usable by the GPU | 153 GB/s | – |
| M5 Mac (24 GB) about two thirds of unified memory is usable by the GPU | 153 GB/s | – |
| M5 Mac (32 GB) about two thirds of unified memory is usable by the GPU | 153 GB/s | – |
| M1 Pro or M2 Pro Mac (16 GB) about two thirds of unified memory is usable by the GPU | 200 GB/s | – |
| M1 Pro or M2 Pro Mac (32 GB) about two thirds of unified memory is usable by the GPU | 200 GB/s | – |
| M3 Pro Mac (18 GB) about two thirds of unified memory is usable by the GPU | 150 GB/s | – |
| M3 Pro Mac (36 GB) about 75% of unified memory is usable by the GPU | 150 GB/s | – |
| M4 Pro Mac (24 GB) about two thirds of unified memory is usable by the GPU | 273 GB/s | – |
| M4 Pro Mac (48 GB) about 75% of unified memory is usable by the GPU | 273 GB/s | – |
| M5 Pro Mac (24 GB) about two thirds of unified memory is usable by the GPU | 307 GB/s | – |
| M5 Pro Mac (48 GB) about 75% of unified memory is usable by the GPU | 307 GB/s | – |
| M5 Pro Mac (64 GB) about 75% of unified memory is usable by the GPU | 307 GB/s | – |
| M1 Max or M2 Max Mac (32 GB) about two thirds of unified memory is usable by the GPU | 400 GB/s | – |
| M1–M3 Max Mac (64 GB) about 75% of unified memory is usable by the GPU | 400 GB/s | – |
| M2 Max Mac (96 GB) about 75% of unified memory is usable by the GPU | 400 GB/s | – |
| M3 Max Mac (36 GB) about 75% of unified memory is usable by the GPU | 300 GB/s | – |
| M3 Max Mac (48 GB) about 75% of unified memory is usable by the GPU | 400 GB/s | – |
| M3 Max Mac (96 GB) about 75% of unified memory is usable by the GPU | 300 GB/s | – |
| M3 Max Mac (128 GB) about 75% of unified memory is usable by the GPU | 400 GB/s | – |
| M4 Max Mac (36 GB) about 75% of unified memory is usable by the GPU | 410 GB/s | – |
| M4 Max Mac (48 GB) about 75% of unified memory is usable by the GPU | 546 GB/s | – |
| M4 Max Mac (64 GB) about 75% of unified memory is usable by the GPU | 546 GB/s | – |
| M5 Max Mac (36 GB) about 75% of unified memory is usable by the GPU | 460 GB/s | – |
| M5 Max Mac (48 GB) about 75% of unified memory is usable by the GPU | 614 GB/s | – |
| M5 Max Mac (64 GB) about 75% of unified memory is usable by the GPU | 614 GB/s | – |
| M5 Max Mac (128 GB) about 75% of unified memory is usable by the GPU | 614 GB/s | – |
| CPU only, DDR4-3200 dual channel (16 GB) system RAM minus about 6 GB for the OS and apps | 51.2 GB/s | – |
| CPU only, DDR4-3200 dual channel (32 GB) system RAM minus about 6 GB for the OS and apps | 51.2 GB/s | – |
| CPU only, DDR4-3200 dual channel (64 GB) system RAM minus about 6 GB for the OS and apps | 51.2 GB/s | – |
| CPU only, DDR5-5600 dual channel (32 GB) system RAM minus about 6 GB for the OS and apps | 89.6 GB/s | – |
| CPU only, DDR5-5600 dual channel (64 GB) system RAM minus about 6 GB for the OS and apps | 89.6 GB/s | – |
| CPU only, DDR5-5600 dual channel (128 GB) system RAM minus about 6 GB for the OS and apps | 89.6 GB/s | – |
| CPU only, DDR5-6000 dual channel (32 GB) system RAM minus about 6 GB for the OS and apps | 96 GB/s | – |
| CPU only, DDR5-6000 dual channel (64 GB) system RAM minus about 6 GB for the OS and apps | 96 GB/s | – |
| CPU only, DDR5-6000 dual channel (96 GB) system RAM minus about 6 GB for the OS and apps | 96 GB/s | – |
| CPU only, DDR4-3200 quad channel (64 GB) system RAM minus about 6 GB for the OS and apps | 102.4 GB/s | – |
| CPU only, DDR4-3200 quad channel (128 GB) system RAM minus about 6 GB for the OS and apps | 102.4 GB/s | – |
| CPU only, DDR4-3200 quad channel (256 GB) system RAM minus about 6 GB for the OS and apps | 102.4 GB/s | – |
Speed of popular models
Tokens per second for one request at Q4_K_M with a 4,096-token context; a dash means the model does not fit on one card. The model name leads to its memory requirements.
| Model | RTX 3060 12GB | RTX 4090 | RTX 5090 | M4 Max Mac (128 GB) | H100 SXM |
|---|---|---|---|---|---|
| Qwen3.6 35B-A3B (MoE) | — | 129–234 | 199–382 | 76–134 | 295–612 |
| Qwen3.6 27B | — | 31–43 | 53–76 | 17–24 | 93–137 |
| Qwen3-Coder-Next (80B MoE) | — | — | — | 76–133 | 294–608 |
| Gemma 4 31B | — | 26–36 | 45–63 | 14–20 | 79–115 |
| Gemma 4 26B-A4B (MoE) | — | 92–164 | 148–274 | 53–92 | 232–458 |
| Gemma 4 E4B | 38–53 | 96–142 | 153–239 | 56–79 | 239–405 |
| GLM-4.7 Flash | — | 121–220 | 189–361 | 72–126 | 284–583 |
| Nemotron 3 Nano 30B-A3B (MoE) | — | 116–210 | 182–346 | 69–120 | 275–562 |
| gpt-oss-20b | — | 110–198 | 173–326 | 64–112 | 264–534 |
| gpt-oss-120b | — | — | — | 47–80 | 211–408 |
| Qwen3.5 9B | 32–44 | 81–119 | 132–202 | 47–66 | 211–347 |
| Llama 3.1 8B | 35–49 | 89–131 | 143–222 | 51–73 | 226–378 |
Time to first token with a 32K-token prompt
Q4_K_M, one request, central estimate; “—” where the model does not fit the card or the card has no FP16 figure.
| Model | RTX 3090 | RTX 4090 | RTX 5090 | H100 SXM |
|---|---|---|---|---|
| Qwen3.6 35B-A3B (MoE) | 5.3 s | 2.3 s | 1.8 s | 2.4 s |
| Qwen3.6 27B | 24 s | 11 s | 8.3 s | 11 s |
| Qwen3-Coder-Next (80B MoE) | — | — | — | 2.4 s |
| Gemma 4 31B | 27 s | 12 s | 9.1 s | 12 s |
| Gemma 4 26B-A4B (MoE) | 6.8 s | 2.9 s | 2.3 s | 3.0 s |
| Gemma 4 E4B | 8.8 s | 3.8 s | 3.0 s | 3.9 s |
| GLM-4.7 Flash | 11 s | 4.9 s | 3.9 s | 5.1 s |
| Nemotron 3 Nano 30B-A3B (MoE) | 5.8 s | 2.5 s | 2.0 s | 2.6 s |
| gpt-oss-20b | 6.7 s | 2.9 s | 2.3 s | 3.0 s |
| gpt-oss-120b | — | — | — | 4.3 s |
| Qwen3.5 9B | 8.7 s | 3.7 s | 2.9 s | 3.9 s |
| Llama 3.1 8B | 10 s | 4.5 s | 3.5 s | 4.7 s |
How the prompt time is estimated
Reading a prompt is limited by compute, not memory bandwidth: every prompt token runs through every active weight once, 2 floating-point operations per weight, and attention adds 4 × width per query-key pair per layer, which grows with the square of the prompt length (sliding-window layers only up to their window; linear-attention and Mamba layers not at all). Time = operations ÷ (share × the card’s dense FP16 tensor throughput from the maker’s spec sheet), and attention runs at 0.9× the share of the weight matrices. The share is fitted per family on the public llama-bench runs below: 0.59 for GeForce and RTX, 0.19 for A100/H100/H200, which llama.cpp does not drive near their peak, and 0.4 for Radeon with ROCm. Mixture-of-experts models count only their active parameters, at 0.51× that share, fitted on gpt-oss 20B. One share for all cards would be off by -20% to +270%; per family, every run below lands within ±28%.
Calibration: estimate vs public llama-bench runs
Llama 2 7B Q4_0 from llama.cpp’s CUDA and ROCm scoreboards (flash attention on, one GPU), plus Llama 3.1 8B and gpt-oss 20B from the benchmark table of llama.cpp PR #25319. ppN is llama-bench’s average speed reading an N-token prompt into an empty cache, so N ÷ ppN is the wait for the first token.
| GPU | Model | Prompt | FP16 tensor TFLOPS | Measured | Estimated | Error | Source |
|---|---|---|---|---|---|---|---|
| RTX 4090 | Llama 2 7B | pp512 | 330.3 | 14,771 | 14,299 | -3% | llama.cpp #15013 |
| RTX 4090a second RTX 4090 run | Llama 2 7B | pp512 | 330.3 | 12,417 | 14,299 | +15% | llama.cpp #15013 |
| RTX 4090 | Llama 2 7B | pp2048 | 330.3 | 11,765 | 13,835 | +18% | llama.cpp #15013 |
| RTX 4090 | Llama 2 7B | pp8192 | 330.3 | 9,918 | 12,244 | +23% | llama.cpp #15013 |
| RTX 4090 | Llama 2 7B | pp16384 | 330.3 | 8,450 | 10,616 | +26% | llama.cpp #15013 |
| RTX 5090 | Llama 2 7B | pp512 | 419.0 | 14,970 | 18,139 | +21% | llama.cpp #15013 |
| RTX 5080 16GB | Llama 2 7B | pp512 | 225.1 | 9,488 | 9,745 | +3% | llama.cpp #15013 |
| RTX 5080 16GB | Llama 2 7B | pp2048 | 225.1 | 8,745 | 9,428 | +8% | llama.cpp #15013 |
| RTX 5080 16GB | Llama 2 7B | pp8192 | 225.1 | 7,597 | 8,344 | +10% | llama.cpp #15013 |
| RTX 5080 16GB | Llama 2 7B | pp16384 | 225.1 | 6,393 | 7,235 | +13% | llama.cpp #15013 |
| RTX 5070 Ti 16GB | Llama 2 7B | pp512 | 175.8 | 8,420 | 7,611 | -10% | llama.cpp #15013 |
| RTX 5070 12GB | Llama 2 7B | pp512 | 123.5 | 5,783 | 5,347 | -8% | llama.cpp #15013 |
| RTX 5060 Ti 16GB | Llama 2 7B | pp512 | 94.9 | 4,196 | 4,107 | -2% | llama.cpp #15013 |
| RTX 4080 Super 16GB | Llama 2 7B | pp512 | 209.0 | 9,439 | 9,048 | -4% | llama.cpp #15013 |
| RTX 4070 Ti Super 16GB | Llama 2 7B | pp512 | 176.5 | 7,612 | 7,641 | +0% | llama.cpp #15013 |
| RTX 4060 Ti 16GBrun on the 8 GB card, the same AD106 chip | Llama 2 7B | pp512 | 88.3 | 3,803 | 3,820 | +0% | llama.cpp #15013 |
| RTX 3090 | Llama 2 7B | pp512 | 142.0 | 5,560 | 6,147 | +11% | llama.cpp #15013 |
| A100 80GB | Llama 2 7B | pp512 | 312.0 | 5,286 | 4,350 | -18% | llama.cpp #15013 |
| A100 80GB | Llama 2 7B | pp2048 | 312.0 | 5,282 | 4,208 | -20% | llama.cpp #15013 |
| A100 80GB | Llama 2 7B | pp8192 | 312.0 | 4,884 | 3,725 | -24% | llama.cpp #15013 |
| A100 80GB | Llama 2 7B | pp16384 | 312.0 | 4,427 | 3,229 | -27% | llama.cpp #15013 |
| H100 SXM | Llama 2 7B | pp512 | 989.5 | 11,263 | 13,795 | +22% | llama.cpp #15013 |
| H100 SXM | Llama 2 7B | pp2048 | 989.5 | 11,331 | 13,347 | +18% | llama.cpp #15013 |
| H100 SXM | Llama 2 7B | pp8192 | 989.5 | 10,341 | 11,812 | +14% | llama.cpp #15013 |
| H100 SXM | Llama 2 7B | pp16384 | 989.5 | 9,211 | 10,242 | +11% | llama.cpp #15013 |
| RX 7900 XTXROCm | Llama 2 7B | pp512 | 123.0 | 3,874 | 3,610 | -7% | llama.cpp #15021 |
| RX 9070 XT 16GBROCm | Llama 2 7B | pp512 | 195.0 | 5,380 | 5,723 | +6% | llama.cpp #15021 |
| RTX 3090 | Llama 3.1 8B | pp2048 | 142.0 | 5,264 | 5,009 | -5% | llama.cpp PR #25319 |
| RTX 4090 | Llama 3.1 8B | pp2048 | 330.3 | 12,945 | 11,651 | -10% | llama.cpp PR #25319 |
| RTX 3090 | gpt-oss-20b | pp2048 | 142.0 | 5,842 | 5,845 | +0% | llama.cpp PR #25319 |
| RTX 4090 | gpt-oss-20b | pp2048 | 330.3 | 13,144 | 13,595 | +3% | llama.cpp PR #25319 |
| RTX 5090 | gpt-oss-20b | pp2048 | 419.0 | 21,072 | 17,246 | -18% | llama.cpp PR #25319 |
FP16 tensor throughput used
Dense FP16 tensor throughput with FP16 accumulate where NVIDIA lists both; AI TOPS are divided by the ratio each whitepaper shows for cards of the same architecture. Cards not listed here get no prompt estimate.
| GPU | FP16 tensor TFLOPS | Read as | Source |
|---|---|---|---|
| RTX 4060 8GB | 60.5 | AI TOPS (FP8, sparse) ÷ 4, the ratio the Ada whitepaper shows for the RTX 4090, 4080 and 4070 | nvidia.com |
| RTX 4070 12GB | 116.6 | Table 6, Peak FP16 Tensor TFLOPS with FP16 Accumulate | images.nvidia.com |
| RTX 5070 12GB | 123.5 | Table 6, Peak FP16 Tensor TFLOPS with FP16 Accumulate | images.nvidia.com |
| RTX 4060 Ti 16GB | 88.3 | AI TOPS (FP8, sparse) ÷ 4, the ratio the Ada whitepaper shows for the RTX 4090, 4080 and 4070 | nvidia.com |
| RTX 5060 Ti 16GB | 94.9 | AI TOPS (FP4, sparse) ÷ 8, the ratio the RTX Blackwell whitepaper shows for the RTX 5090 to 5070 | nvidia.com |
| RX 9070 XT 16GB | 195.0 | Peak Half Precision (FP16 Matrix) Performance | amd.com |
| RTX 4070 Ti Super 16GB | 176.5 | AI TOPS (FP8, sparse) ÷ 4, the ratio the Ada whitepaper shows for the RTX 4090, 4080 and 4070 | nvidia.com |
| RTX 4080 Super 16GB | 209.0 | AI TOPS (FP8, sparse) ÷ 4, the ratio the Ada whitepaper shows for the RTX 4090, 4080 and 4070 | nvidia.com |
| RTX 5070 Ti 16GB | 175.8 | Table 5, Peak FP16 Tensor TFLOPS with FP16 Accumulate | images.nvidia.com |
| RTX 5080 16GB | 225.1 | Table 4, Peak FP16 Tensor TFLOPS with FP16 Accumulate | images.nvidia.com |
| RTX 3090 | 142.0 | RTX 3090 FE, Peak FP16 Tensor TFLOPS with FP16 Accumulate | nvidia.com |
| RTX 4090 | 330.3 | Peak FP16 Tensor TFLOPS with FP16 Accumulate | images.nvidia.com |
| RX 7900 XTX | 123.0 | Peak Half Precision (FP16 Matrix) Performance | amd.com |
| RTX 5090 | 419.0 | Table 3, Peak FP16 Tensor TFLOPS with FP16 Accumulate | images.nvidia.com |
| A100 80GB | 312.0 | FP16 Tensor Core, dense | nvidia.com |
| H100 SXM | 989.5 | FP16 Tensor Core 1,979 with sparsity ÷ 2 | nvidia.com |
| H200 | 989.5 | FP16 Tensor Core 1,979 with sparsity ÷ 2 | nvidia.com |
Measured prompt speed on Macs
Apple publishes no FP16 tensor throughput, so these are measurements rather than estimates: Llama 2 7B Q4_0, pp512, from llama.cpp’s Apple Silicon thread (the chip’s largest GPU configuration). For a model with P billion active parameters, divide by about P ÷ 6.7; longer prompts are slower still. The M5 generation reads prompts 3.3–3.7 times faster than M4 with the same number of GPU cores.
| Chip | GPU cores | pp512, tokens/s | 8K prompt, 7B model (at least) |
|---|---|---|---|
| M1 | 8 | 117.96 | 69 s |
| M1 Pro | 16 | 266.25 | 31 s |
| M1 Max | 32 | 530.06 | 15 s |
| M1 Ultra | 64 | 1,030.04 | 8.0 s |
| M2 | 10 | 179.57 | 46 s |
| M2 Pro | 19 | 341.19 | 24 s |
| M2 Max | 38 | 671.31 | 12 s |
| M2 Ultra | 76 | 1,238.48 | 6.6 s |
| M3 | 10 | 186.75 | 44 s |
| M3 Pro | 18 | 341.67 | 24 s |
| M3 Max | 40 | 759.7 | 11 s |
| M3 Ultra | 80 | 1,471.24 | 5.6 s |
| M4 | 10 | 221.29 | 37 s |
| M4 Pro | 20 | 439.78 | 19 s |
| M4 Max | 40 | 885.68 | 9.2 s |
| M5 | 10 | 722.79 | 11 s |
| M5 Pro | 20 | 1,620.64 | 5.1 s |
| M5 Max | 40 | 3,219.99 | 2.5 s |
Run locally or rent a GPU?
Renting an RTX 4090 costs a median of $0.53 an hour on demand and an H100 $3.39, across the providers getdeploying.com tracks (checked ; its H100 figure covers every H100 variant). The table shows how many hours of rent every $1,000 of card price equals, before electricity and resale value, and what Qwen3.6 35B-A3B at Q4_K_M with 4,096 tokens costs per million generated tokens for one request. No card prices are listed because 2026 street prices vary widely between sellers; compare current ones before you decide. Serving several requests at once on a rented card lowers the cost per token.
| GPU | Memory | Median rent per hour | Hours per $1,000 | Tokens/s | Per million tokens |
|---|---|---|---|---|---|
| RTX 3090 | 24 GB | $0.27 | 3,704 | 121–219 | $0.34–0.62 |
| RTX 4090 | 24 GB | $0.53 | 1,887 | 129–234 | $0.63–1.1 |
| RTX 5090 | 32 GB | $0.69 | 1,449 | 199–382 | $0.50–0.96 |
| L40S | 48 GB | $1.57 | 637 | 113–204 | $2.1–3.8 |
| RTX PRO 6000 Blackwell | 96 GB | $2.19 | 457 | 199–382 | $1.6–3.1 |
| A100 80GB | 80 GB | $1.76 | 568 | 217–423 | $1.2–2.3 |
| H100 SXM | 80 GB | $3.39 | 295 | 295–612 | $1.5–3.2 |
| H200 | 141 GB | $4.46 | 224 | 355–774 | $1.6–3.5 |
| B200 | 180 GB | $6.64 | 151 | 436–1,026 | $1.8–4.2 |
How to use
- Choose a model, or type a Hugging Face id such as Qwen/Qwen3.6-35B-A3B and press Load.
- Pick your GPU or Mac and the weight precision you plan to run.
- Set the context length: the longer the conversation, the more cache every token has to read.
- Read the speed range and the table of other GPUs. Open Advanced to change the active parameters or run on several GPUs.
Frequently asked questions
How many tokens per second will an LLM write on my GPU?
About 96–143 tokens per second for Llama 3.1 8B at Q4_K_M on an RTX 4090, by this calculator's estimate. Writing one token means reading the active weights and the whole KV cache from GPU memory once, so the ceiling is the memory bandwidth divided by those bytes: about 4.9 billion bytes per token here, so the RTX 4090's 1,008 GB/s tops out near 205 tokens per second.
What speed do real engines reach?
For one request, llama.cpp and vLLM typically reach 55–75% of that ceiling with dense models and 30–50% with mixture-of-experts models, whose expert routing costs more, and every token also costs about 0.5–1.5 ms for launching the GPU kernels, which caps small models on fast GPUs. Llama 3.1 8B at Q4_K_M runs at about 130 tokens per second on an RTX 4090.
Why are MoE models faster than their size suggests?
Each token reads only the experts it is routed to. Qwen3-30B-A3B reads about 3.3 billion of its 30.5 billion parameters per token, so it writes faster than an 8B dense model even though it needs more memory.
Why does it slow down in long conversations?
The whole KV cache is read for every new token. At 128K tokens the FP16 cache of Llama 3.1 8B is 16 GB, more than three times its Q4_K_M weights, so it writes about four and a half times slower than at the start of a conversation.
Do two GPUs make it twice as fast?
Not quite. With tensor parallelism, as in vLLM or SGLang, each card reads half of every layer, so the bandwidth limit doubles, but the cards exchange results after every layer, which the calculator counts as about 1–2 ms per token. llama.cpp splits whole layers across cards by default, which adds memory but writes at about the speed of one card.
Does reading the prompt follow the same rule?
No. Reading the prompt (prefill) is limited by compute rather than bandwidth, so the calculator estimates it separately, from the card’s FP16 tensor throughput and public llama-bench runs: Llama 3.1 8B at Q4_K_M reads a 32K-token prompt in about 4–5 seconds on an RTX 4090 and 9–13 seconds on an RTX 3090 before it writes the first token. Apple publishes no FP16 figure, so for Macs the page lists measured speeds instead: an M4 Max with 40 GPU cores reads about 890 tokens per second of Llama 2 7B.
What about Macs and other unified-memory machines?
The same rule applies with their memory bandwidth: 546 GB/s for an M4 Max, 819 GB/s for an M3 Ultra and 256 GB/s for a Ryzen AI Max+ 395. They hold bigger models than most GPUs but write more slowly.
Is anything I enter sent anywhere?
The calculation runs in your browser. The only network requests go to Hugging Face, when you load a model.
More calculators
- FLUX 3 Image Klein VRAM Calculator Estimate FLUX 3 Image Klein VRAM by build, CPU offload, prompt upsampler and working-memory budget. Compare INT8, FP8, NVFP4 and BF16 files. Open →
- d1-omni VRAM LiquidAI d1-omni weights: 1.09 GiB in FP16 on GPU, 2.19 GiB in FP32 on CPU. Text, image and audio decisions, input limits, license and official Python usage. Open →
- pplx-decider v1.1 VRAM pplx-decider v1.1 needs 48.6 GiB for its BF16 checkpoint before working memory. GPU fit, decision head, noncausal attention and the official Python loader. Open →
- Speculative Decoding VRAM Calculator (MTP & draft models) Extra VRAM of MTP heads, DFlash drafters and draft models in llama.cpp, for Qwen3.8 27B and Gemma 4 31B. Open →
- Qwen3.8 27B GGUF Quants: Bonsai 2 vs GSQ-RCO vs UD Ternary Bonsai 2, GSQ-RCO and Unsloth UD files of Qwen3.8 27B: VRAM, quality, speed and the engine each needs. Open →
- Bonsai 2 27B VRAM Exact file sizes of Ternary Bonsai 2 27B, the longest context on 8–24 GB GPUs, and why sites say 5.95 GB or 8.60 GB. Open →
Updated