Speed test matrix
granite-4.2-30b on H200 NVL 141GB
vllm · 0.25.0 · BF165 contexts (8K–123K) × 8 concurrency levels (1–128) · prefill at 8K, 16K, 32K, 64K, 123K, 128K
Hardware
- Type
- Discrete GPU
- GPU
- H200 NVL
- VRAM
- 141 GB
- OS
- linux
Engine
- Engine
- vllm
- Version
- 0.25.0
- Quantization
- BF16
- Backend
- cuda
- Repository
- github.com/vllm-project/vllm
- Build
- cuda-13.2
Run
- Served model
- granite-4.2-30b
- 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-ibm-vllm/bin/vllm" serve ibm-granite/granite-4.2-30b --served-model-name granite-4.2-30b --tensor-parallel-size 1 --reasoning-parser granite_thinking_parser --reasoning-parser-plugin /workspace/compute/recipes/nvidia-h200/ibm-granite/plugin/granite_thinking_parser.py --enable-auto-tool-choice --tool-call-parser qwen3_coder --max-model-len 131072 --gpu-memory-utilization 0.869345 --host 0.0.0.0 --port 8000 --api-key <redacted> --dtype bfloat16
Prefill
prompt tok/s by context length8K context9,269884 ms TTFT
16K context8,4691,914 ms TTFT
32K context7,5264,288 ms TTFT
64K context6,12110,520 ms TTFT
123K context4,51427,377 ms TTFT
128K context4,42629,062 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 | 55.156 ms TTFT | 107.686 ms TTFT | 208.8117 ms TTFT | 387.3166 ms TTFT | 672.0265 ms TTFT | Over capacity | Over capacity | Over capacity |
| 16K | 53.589 ms TTFT | 103.6111 ms TTFT | 195.7165 ms TTFT | 343.9226 ms TTFT | Over capacity | Over capacity | Over capacity | Over capacity |
| 32K | 50.6110 ms TTFT | 96.1140 ms TTFT | 173.1242 ms TTFT | Over capacity | Over capacity | Over capacity | Over capacity | Over capacity |
| 64K | 45.7184 ms TTFT | 84.5240 ms TTFT | Over capacity | Over capacity | Over capacity | Over capacity | Over capacity | Over capacity |
| 123K | 38.9301 ms TTFT | 68.4415 ms TTFT | Over capacity | 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 | 9,269.0 | — | 884 ms | — | — | 1 | — | — |
| Prefill | 16K | 1 | Valid | 8,469.0 | — | 1,914 ms | — | — | 1 | — | — |
| Prefill | 32K | 1 | Valid | 7,526.0 | — | 4,288 ms | — | — | 1 | — | — |
| Prefill | 64K | 1 | Valid | 6,121.0 | — | 10,520 ms | — | — | 1 | — | — |
| Prefill | 123K | 1 | Valid | 4,514.0 | — | 27,377 ms | — | — | 1 | — | — |
| Prefill | 128K | 1 | Valid | 4,426.0 | — | 29,062 ms | — | — | 1 | — | — |
| Sustained decode | 8K | 1 | Valid | 55.1 | 55.1 | 56 ms | 18.1 ms | 1.0 | 0 | 1,652 | 30.0 s |
| Sustained decode | 8K | 2 | Valid | 107.6 | 53.9 | 86 ms | 18.6 ms | 2.0 | 0 | 3,229 | 30.0 s |
| Sustained decode | 8K | 4 | Valid | 208.8 | 52.3 | 117 ms | 19.1 ms | 4.0 | 0 | 6,264 | 30.0 s |
| Sustained decode | 8K | 8 | Valid | 387.3 | 48.5 | 166 ms | 20.6 ms | 8.0 | 0 | 11,616 | 30.0 s |
| Sustained decode | 8K | 16 | Valid | 672.0 | 42.2 | 265 ms | 23.7 ms | 16.0 | 0 | 20,160 | 30.0 s |
| Sustained decode | 8K | 32 | Over capacity | — | — | — | — | — | — | — | — |
| Sustained decode | 8K | 64 | Over capacity | — | — | — | — | — | — | — | — |
| Sustained decode | 8K | 128 | Over capacity | — | — | — | — | — | — | — | — |
| Sustained decode | 16K | 1 | Valid | 53.5 | 53.5 | 89 ms | 18.7 ms | 1.0 | 0 | 1,604 | 30.0 s |
| Sustained decode | 16K | 2 | Valid | 103.6 | 51.9 | 111 ms | 19.3 ms | 2.0 | 0 | 3,108 | 30.0 s |
| Sustained decode | 16K | 4 | Valid | 195.7 | 49.0 | 165 ms | 20.4 ms | 4.0 | 0 | 5,868 | 30.0 s |
| Sustained decode | 16K | 8 | Valid | 343.9 | 43.1 | 226 ms | 23.2 ms | 8.0 | 0 | 10,312 | 30.0 s |
| Sustained decode | 16K | 16 | Over capacity | — | — | — | — | — | — | — | — |
| Sustained decode | 16K | 32 | Over capacity | — | — | — | — | — | — | — | — |
| Sustained decode | 16K | 64 | Over capacity | — | — | — | — | — | — | — | — |
| Sustained decode | 16K | 128 | Over capacity | — | — | — | — | — | — | — | — |
| Sustained decode | 32K | 1 | Valid | 50.6 | 50.6 | 110 ms | 19.8 ms | 1.0 | 0 | 1,517 | 30.0 s |
| Sustained decode | 32K | 2 | Valid | 96.1 | 48.1 | 140 ms | 20.8 ms | 2.0 | 0 | 2,884 | 30.0 s |
| Sustained decode | 32K | 4 | Valid | 173.1 | 43.3 | 242 ms | 23.1 ms | 4.0 | 0 | 5,192 | 30.0 s |
| Sustained decode | 32K | 8 | Over capacity | — | — | — | — | — | — | — | — |
| Sustained decode | 32K | 16 | Over capacity | — | — | — | — | — | — | — | — |
| Sustained decode | 32K | 32 | Over capacity | — | — | — | — | — | — | — | — |
| Sustained decode | 32K | 64 | Over capacity | — | — | — | — | — | — | — | — |
| Sustained decode | 32K | 128 | Over capacity | — | — | — | — | — | — | — | — |
| Sustained decode | 64K | 1 | Valid | 45.7 | 45.8 | 184 ms | 21.8 ms | 1.0 | 0 | 1,371 | 30.0 s |
| Sustained decode | 64K | 2 | Valid | 84.5 | 42.3 | 240 ms | 23.7 ms | 2.0 | 0 | 2,534 | 30.0 s |
| Sustained decode | 64K | 4 | Over capacity | — | — | — | — | — | — | — | — |
| Sustained decode | 64K | 8 | Over capacity | — | — | — | — | — | — | — | — |
| Sustained decode | 64K | 16 | Over capacity | — | — | — | — | — | — | — | — |
| Sustained decode | 64K | 32 | Over capacity | — | — | — | — | — | — | — | — |
| Sustained decode | 64K | 64 | Over capacity | — | — | — | — | — | — | — | — |
| Sustained decode | 64K | 128 | Over capacity | — | — | — | — | — | — | — | — |
| Sustained decode | 123K | 1 | Valid | 38.9 | 39.0 | 301 ms | 25.6 ms | 1.0 | 0 | 1,168 | 30.0 s |
| Sustained decode | 123K | 2 | Valid | 68.4 | 34.3 | 415 ms | 29.2 ms | 2.0 | 0 | 2,052 | 30.0 s |
| Sustained decode | 123K | 4 | Over capacity | — | — | — | — | — | — | — | — |
| Sustained decode | 123K | 8 | Over capacity | — | — | — | — | — | — | — | — |
| Sustained decode | 123K | 16 | Over capacity | — | — | — | — | — | — | — | — |
| Sustained decode | 123K | 32 | Over capacity | — | — | — | — | — | — | — | — |
| Sustained decode | 123K | 64 | Over capacity | — | — | — | — | — | — | — | — |
| Sustained decode | 123K | 128 | Over capacity | — | — | — | — | — | — | — | — |
Over capacity: not run because this many requests at this context would exceed the server's KV cache.
