Speed test matrix
gemma-4-26B-A4B-it on H200 NVL 141GB
vllm · 0.26.1rc1.dev638+g52be12cfa · BF166 contexts (8K–251K) × 8 concurrency levels (1–128) · prefill at 8K, 16K, 32K, 64K, 128K, 251K, 256K
Hardware
- Type
- Discrete GPU
- GPU
- H200 NVL
- VRAM
- 141 GB
- OS
- linux
Engine
- Engine
- vllm
- Version
- 0.26.1rc1.dev638+g52be12cfa
- Quantization
- BF16
- Backend
- cuda
- Repository
- github.com/vllm-project/vllm
- Build
- cuda-13.2
- Commit
52be12cfac0c
Run
- Served model
- gemma
- Revision
- main
- Benchmark tool
- llm-inference-bench v0.4.29
- Decode test
- Fixed duration
- Prefill mode
- Measured during decode warm-up
- Time per measurement
- 30 s
- Max output
- 4,096 tokens
Launch command
"$HOME/env_h200-gemma-vllm/bin/vllm" serve google/gemma-4-26B-A4B-it --served-model-name gemma --trust-remote-code --tensor-parallel-size 1 --reasoning-parser gemma4 --enable-auto-tool-choice --tool-call-parser gemma4 --max-model-len 262144 --gpu-memory-utilization 0.878238 --host 0.0.0.0 --port 8000 --api-key <redacted>
Prefill
prompt tok/s by context length8K context35.6K231 ms TTFT
16K context34.9K466 ms TTFT
32K context31.9K1,016 ms TTFT
64K context25.9K2,490 ms TTFT
128K context17.4K7,409 ms TTFT
251K context10.6K23,785 ms TTFT
256K context10.5K24,530 ms TTFT
Sustained decode
total tok/s · rows are context length, columns are simultaneous requests| Context | 1 | 2 | 4 | 8 | 16 | 32 | 64 | 128 |
|---|---|---|---|---|---|---|---|---|
| 8K | 201.778 ms TTFT | 366.283 ms TTFT | 564.6102 ms TTFT | 958.5102 ms TTFT | 1,426.6287 ms TTFT | 2,165.7423 ms TTFT | 3,114.2642 ms TTFT | 4,153.3991 ms TTFT |
| 16K | 199.6105 ms TTFT | 344.4125 ms TTFT | 537.0186 ms TTFT | 1,003.6230 ms TTFT | 1,351.3443 ms TTFT | 1,871.5600 ms TTFT | 2,860.9968 ms TTFT | Over capacity |
| 32K | 196.3141 ms TTFT | 334.3153 ms TTFT | 519.4189 ms TTFT | 872.4447 ms TTFT | 1,374.9622 ms TTFT | 1,843.01,130 ms TTFT | Over capacity | Over capacity |
| 64K | 188.6222 ms TTFT | 315.9262 ms TTFT | 472.7427 ms TTFT | 661.0681 ms TTFT | 1,122.81,150 ms TTFT | Over capacity | Over capacity | Over capacity |
| 128K | 175.6442 ms TTFT | 280.6463 ms TTFT | 411.7848 ms TTFT | 641.01,363 ms TTFT | Over capacity | Over capacity | Over capacity | Over capacity |
| 251K | 154.4969 ms TTFT | 237.91,426 ms TTFT | 282.12,117 ms TTFT | Over capacity | Over capacity | Over capacity | Over capacity | Over capacity |
Over capacity: not run because this many requests at this context would exceed the server's KV cache.
TTFT is measured after the benchmark warms the server's prompt cache, so it mostly excludes prefill.
All measurements
Latencies are medians. Total tok/s is output across all simultaneous requests.| Phase | Context | Requests at once | Status | Total tok/s | Per request tok/s | TTFT | Time between tokens | Average active requests | Completed requests | Output tokens | Measured for |
|---|---|---|---|---|---|---|---|---|---|---|---|
| Prefill | 8K | 1 | Valid | 35.6K | — | 231 ms | — | — | 1 | — | — |
| Prefill | 16K | 1 | Valid | 34.9K | — | 466 ms | — | — | 1 | — | — |
| Prefill | 32K | 1 | Valid | 31.9K | — | 1,016 ms | — | — | 1 | — | — |
| Prefill | 64K | 1 | Valid | 25.9K | — | 2,490 ms | — | — | 1 | — | — |
| Prefill | 128K | 1 | Valid | 17.4K | — | 7,409 ms | — | — | 1 | — | — |
| Prefill | 251K | 1 | Valid | 10.6K | — | 23,785 ms | — | — | 1 | — | — |
| Prefill | 256K | 1 | Valid | 10.5K | — | 24,530 ms | — | — | 1 | — | — |
| Sustained decode | 8K | 1 | Valid | 201.7 | 202.4 | 78 ms | 4.9 ms | 1.0 | 1 | 6,048 | 30.0 s |
| Sustained decode | 8K | 2 | Valid | 366.2 | 339.1 | 83 ms | 3.9 ms | 2.0 | 2 | 10,987 | 30.0 s |
| Sustained decode | 8K | 4 | Valid | 564.6 | 137.2 | 102 ms | 7.3 ms | 4.0 | 4 | 16,936 | 30.0 s |
| Sustained decode | 8K | 8 | Valid | 958.5 | 127.3 | 102 ms | 7.9 ms | 8.0 | 8 | 28,755 | 30.0 s |
| Sustained decode | 8K | 16 | Valid | 1,426.6 | 100.0 | 287 ms | 10.0 ms | 16.0 | 0 | 42,795 | 30.0 s |
| Sustained decode | 8K | 32 | Valid | 2,165.7 | 72.5 | 423 ms | 13.8 ms | 32.0 | 0 | 64,963 | 30.0 s |
| Sustained decode | 8K | 64 | Valid | 3,114.2 | 52.4 | 642 ms | 19.1 ms | 64.0 | 0 | 93,433 | 30.0 s |
| Sustained decode | 8K | 128 | Valid | 4,153.3 | 35.5 | 991 ms | 28.2 ms | 128.0 | 0 | 124,557 | 30.0 s |
| Sustained decode | 16K | 1 | Valid | 199.6 | 200.7 | 105 ms | 5.0 ms | 1.0 | 1 | 5,989 | 30.0 s |
| Sustained decode | 16K | 2 | Valid | 344.4 | 172.9 | 125 ms | 5.8 ms | 2.0 | 2 | 10,331 | 30.0 s |
| Sustained decode | 16K | 4 | Valid | 537.0 | 135.1 | 186 ms | 7.4 ms | 4.0 | 4 | 16,108 | 30.0 s |
| Sustained decode | 16K | 8 | Valid | 1,003.6 | 122.9 | 230 ms | 8.1 ms | 8.0 | 8 | 30,107 | 30.0 s |
| Sustained decode | 16K | 16 | Valid | 1,351.3 | 90.5 | 443 ms | 11.1 ms | 16.0 | 0 | 40,530 | 30.0 s |
| Sustained decode | 16K | 32 | Valid | 1,871.5 | 66.7 | 600 ms | 15.0 ms | 32.0 | 0 | 56,146 | 30.0 s |
| Sustained decode | 16K | 64 | Valid | 2,860.9 | 47.2 | 968 ms | 21.2 ms | 64.0 | 0 | 85,837 | 30.0 s |
| Sustained decode | 16K | 128 | Over capacity | — | — | — | — | — | — | — | — |
| Sustained decode | 32K | 1 | Valid | 196.3 | 197.6 | 141 ms | 5.1 ms | 1.0 | 1 | 5,891 | 30.0 s |
| Sustained decode | 32K | 2 | Valid | 334.3 | 168.3 | 153 ms | 5.9 ms | 2.0 | 2 | 10,028 | 30.0 s |
| Sustained decode | 32K | 4 | Valid | 519.4 | 130.4 | 189 ms | 7.7 ms | 4.0 | 4 | 15,588 | 30.0 s |
| Sustained decode | 32K | 8 | Valid | 872.4 | 109.3 | 447 ms | 9.2 ms | 8.0 | 0 | 26,168 | 30.0 s |
| Sustained decode | 32K | 16 | Valid | 1,374.9 | 85.7 | 622 ms | 11.7 ms | 16.0 | 0 | 41,248 | 30.0 s |
| Sustained decode | 32K | 32 | Valid | 1,843.0 | 59.4 | 1,130 ms | 16.8 ms | 32.0 | 0 | 55,274 | 30.0 s |
| Sustained decode | 32K | 64 | Over capacity | — | — | — | — | — | — | — | — |
| Sustained decode | 32K | 128 | Over capacity | — | — | — | — | — | — | — | — |
| Sustained decode | 64K | 1 | Valid | 188.6 | 190.6 | 222 ms | 5.2 ms | 1.0 | 1 | 5,656 | 30.0 s |
| Sustained decode | 64K | 2 | Valid | 315.9 | 159.8 | 262 ms | 6.3 ms | 2.0 | 2 | 9,476 | 30.0 s |
| Sustained decode | 64K | 4 | Valid | 472.7 | 118.3 | 427 ms | 8.5 ms | 4.0 | 0 | 14,179 | 30.0 s |
| Sustained decode | 64K | 8 | Valid | 661.0 | 96.8 | 681 ms | 10.3 ms | 8.0 | 0 | 19,825 | 30.0 s |
| Sustained decode | 64K | 16 | Valid | 1,122.8 | 70.0 | 1,150 ms | 14.3 ms | 16.0 | 0 | 33,682 | 30.0 s |
| Sustained decode | 64K | 32 | Over capacity | — | — | — | — | — | — | — | — |
| Sustained decode | 64K | 64 | Over capacity | — | — | — | — | — | — | — | — |
| Sustained decode | 64K | 128 | Over capacity | — | — | — | — | — | — | — | — |
| Sustained decode | 128K | 1 | Valid | 175.6 | 179.1 | 442 ms | 5.6 ms | 1.0 | 1 | 5,269 | 30.0 s |
| Sustained decode | 128K | 2 | Valid | 280.6 | 143.6 | 463 ms | 7.0 ms | 2.0 | 2 | 8,418 | 30.0 s |
| Sustained decode | 128K | 4 | Valid | 411.7 | 103.2 | 848 ms | 9.7 ms | 4.0 | 0 | 12,352 | 30.0 s |
| Sustained decode | 128K | 8 | Valid | 641.0 | 79.6 | 1,363 ms | 12.6 ms | 8.0 | 0 | 19,224 | 30.0 s |
| Sustained decode | 128K | 16 | Over capacity | — | — | — | — | — | — | — | — |
| Sustained decode | 128K | 32 | Over capacity | — | — | — | — | — | — | — | — |
| Sustained decode | 128K | 64 | Over capacity | — | — | — | — | — | — | — | — |
| Sustained decode | 128K | 128 | Over capacity | — | — | — | — | — | — | — | — |
| Sustained decode | 251K | 1 | Valid | 154.4 | 592.4 | 969 ms | 3.6 ms | 1.0 | 1 | 4,632 | 30.0 s |
| Sustained decode | 251K | 2 | Valid | 237.9 | 121.2 | 1,426 ms | 8.2 ms | 2.0 | 2 | 7,134 | 30.0 s |
| Sustained decode | 251K | 4 | Valid | 282.1 | 82.0 | 2,117 ms | 12.2 ms | 4.0 | 0 | 8,467 | 30.0 s |
| Sustained decode | 251K | 8 | Over capacity | — | — | — | — | — | — | — | — |
| Sustained decode | 251K | 16 | Over capacity | — | — | — | — | — | — | — | — |
| Sustained decode | 251K | 32 | Over capacity | — | — | — | — | — | — | — | — |
| Sustained decode | 251K | 64 | Over capacity | — | — | — | — | — | — | — | — |
| Sustained decode | 251K | 128 | Over capacity | — | — | — | — | — | — | — | — |
Over capacity: not run because this many requests at this context would exceed the server's KV cache.
