Speed test matrix
Qwen3.5-4B-Base on H200 NVL 141GB
sglang · 0.5.6.post3.dev9160+g1cf2b8c54 · 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
- sglang
- Version
- 0.5.6.post3.dev9160+g1cf2b8c54
- Quantization
- BF16
- Backend
- cuda
- Repository
- github.com/sgl-project/sglang
- Build
- cuda-13.2
- Commit
1cf2b8c54d81
Run
- Served model
- qwen
- 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
env SGLANG_ALLOW_OVERWRITE_LONGER_CONTEXT_LEN=1 "$HOME/env_h200-qwen-sglang/bin/sglang" serve --model-path Qwen/Qwen3.5-4B-Base --served-model-name qwen --trust-remote-code --tp 1 --reasoning-parser qwen3 --tool-call-parser qwen3_coder --context-length 262144 --mem-fraction-static 0.863403 --enable-metrics --host 0.0.0.0 --port 8000 --api-key <redacted>
Prefill
prompt tok/s by context length8K context39.4K207 ms TTFT
16K context44.3K364 ms TTFT
32K context42.9K748 ms TTFT
64K context37.4K1,714 ms TTFT
128K context30K4,267 ms TTFT
251K context21.2K11,858 ms TTFT
256K context21.1K12,126 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 | 261.077 ms TTFT | 459.798 ms TTFT | 950.1115 ms TTFT | 1,556.6191 ms TTFT | 2,827.6353 ms TTFT | 3,884.1663 ms TTFT | 5,995.31,279 ms TTFT | 6,315.62,464 ms TTFT |
| 16K | 255.3102 ms TTFT | 100.4134 ms TTFT | 743.1217 ms TTFT | 1,484.2334 ms TTFT | 2,339.7499 ms TTFT | 2,481.41,298 ms TTFT | 3,661.42,545 ms TTFT | Over capacity |
| 32K | 246.6156 ms TTFT | 114.1244 ms TTFT | 816.1331 ms TTFT | 1,342.8561 ms TTFT | 1,585.31,581 ms TTFT | 2,525.93,088 ms TTFT | Over capacity | Over capacity |
| 64K | 231.7269 ms TTFT | 227.1551 ms TTFT | 706.0751 ms TTFT | 852.71,920 ms TTFT | 1,387.83,911 ms TTFT | Over capacity | Over capacity | Over capacity |
| 128K | 204.7510 ms TTFT | 274.1979 ms TTFT | 412.01,846 ms TTFT | 716.83,744 ms TTFT | Over capacity | Over capacity | Over capacity | Over capacity |
| 251K | 165.8977 ms TTFT | 218.61,904 ms TTFT | 356.93,901 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 | 39.4K | — | 207 ms | — | — | 1 | — | — |
| Prefill | 16K | 1 | Valid | 44.3K | — | 364 ms | — | — | 1 | — | — |
| Prefill | 32K | 1 | Valid | 42.9K | — | 748 ms | — | — | 1 | — | — |
| Prefill | 64K | 1 | Valid | 37.4K | — | 1,714 ms | — | — | 1 | — | — |
| Prefill | 128K | 1 | Valid | 30K | — | 4,267 ms | — | — | 1 | — | — |
| Prefill | 251K | 1 | Valid | 21.2K | — | 11,858 ms | — | — | 1 | — | — |
| Prefill | 256K | 1 | Valid | 21.1K | — | 12,126 ms | — | — | 1 | — | — |
| Sustained decode | 8K | 1 | Valid | 261.0 | 262.9 | 77 ms | 3.8 ms | 1.0 | 2 | 7,828 | 30.0 s |
| Sustained decode | 8K | 2 | Valid | 459.7 | 227.4 | 98 ms | 4.5 ms | 2.3 | 2 | 13,791 | 30.0 s |
| Sustained decode | 8K | 4 | Valid | 950.1 | 239.6 | 115 ms | 4.2 ms | 4.0 | 8 | 28,502 | 30.0 s |
| Sustained decode | 8K | 8 | Valid | 1,556.6 | 199.9 | 191 ms | 5.0 ms | 10.0 | 8 | 46,698 | 30.0 s |
| Sustained decode | 8K | 16 | Valid | 2,827.6 | 177.5 | 353 ms | 5.6 ms | 16.8 | 16 | 84,829 | 30.0 s |
| Sustained decode | 8K | 32 | Valid | 3,884.1 | 120.1 | 663 ms | 8.3 ms | 38.9 | 0 | 116,510 | 30.0 s |
| Sustained decode | 8K | 64 | Valid | 5,995.3 | 95.1 | 1,279 ms | 10.5 ms | 64.0 | 0 | 179,872 | 30.0 s |
| Sustained decode | 8K | 128 | Valid | 6,315.6 | 48.9 | 2,464 ms | 20.5 ms | 157.5 | 0 | 189,470 | 30.0 s |
| Sustained decode | 16K | 1 | Valid | 255.3 | 257.3 | 102 ms | 3.9 ms | 1.0 | 2 | 7,660 | 30.0 s |
| Sustained decode | 16K | 2 | Valid | 100.4 | 50.6 | 134 ms | 19.8 ms | 130.0 | 0 | 3,012 | 30.0 s |
| Sustained decode | 16K | 4 | Valid | 743.1 | 190.8 | 217 ms | 5.5 ms | 30.5 | 4 | 22,290 | 30.0 s |
| Sustained decode | 16K | 8 | Valid | 1,484.2 | 188.0 | 334 ms | 5.3 ms | 9.0 | 8 | 44,524 | 30.0 s |
| Sustained decode | 16K | 16 | Valid | 2,339.7 | 150.7 | 499 ms | 6.6 ms | 18.0 | 16 | 70,186 | 30.0 s |
| Sustained decode | 16K | 32 | Valid | 2,481.4 | 78.9 | 1,298 ms | 12.7 ms | 48.0 | 0 | 74,433 | 30.0 s |
| Sustained decode | 16K | 64 | Valid | 3,661.4 | 57.8 | 2,545 ms | 17.3 ms | 84.8 | 0 | 109,824 | 30.0 s |
| Sustained decode | 16K | 128 | Over capacity | — | — | — | — | — | — | — | — |
| Sustained decode | 32K | 1 | Valid | 246.6 | 249.6 | 156 ms | 4.0 ms | 1.0 | 2 | 7,398 | 30.0 s |
| Sustained decode | 32K | 2 | Valid | 114.1 | 57.3 | 244 ms | 17.5 ms | 65.7 | 0 | 3,422 | 30.0 s |
| Sustained decode | 32K | 4 | Valid | 816.1 | 205.1 | 331 ms | 4.9 ms | 4.2 | 4 | 24,483 | 30.0 s |
| Sustained decode | 32K | 8 | Valid | 1,342.8 | 168.3 | 561 ms | 6.0 ms | 8.2 | 8 | 40,280 | 30.0 s |
| Sustained decode | 32K | 16 | Valid | 1,585.3 | 99.7 | 1,581 ms | 10.0 ms | 21.3 | 0 | 47,552 | 30.0 s |
| Sustained decode | 32K | 32 | Valid | 2,525.9 | 78.2 | 3,088 ms | 12.8 ms | 32.9 | 0 | 75,775 | 30.0 s |
| Sustained decode | 32K | 64 | Over capacity | — | — | — | — | — | — | — | — |
| Sustained decode | 32K | 128 | Over capacity | — | — | — | — | — | — | — | — |
| Sustained decode | 64K | 1 | Valid | 231.7 | 233.8 | 269 ms | 4.3 ms | 1.0 | 1 | 6,951 | 30.0 s |
| Sustained decode | 64K | 2 | Valid | 227.1 | 106.5 | 551 ms | 9.4 ms | 21.9 | 0 | 6,812 | 30.0 s |
| Sustained decode | 64K | 4 | Valid | 706.0 | 182.2 | 751 ms | 5.5 ms | 4.0 | 4 | 21,179 | 30.0 s |
| Sustained decode | 64K | 8 | Valid | 852.7 | 105.9 | 1,920 ms | 9.4 ms | 9.9 | 0 | 25,576 | 30.0 s |
| Sustained decode | 64K | 16 | Valid | 1,387.8 | 91.3 | 3,911 ms | 11.0 ms | 16.0 | 0 | 41,632 | 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 | 204.7 | 208.4 | 510 ms | 4.8 ms | 1.0 | 1 | 6,141 | 30.0 s |
| Sustained decode | 128K | 2 | Valid | 274.1 | 153.2 | 979 ms | 6.7 ms | 6.6 | 2 | 8,222 | 30.0 s |
| Sustained decode | 128K | 4 | Valid | 412.0 | 105.2 | 1,846 ms | 9.5 ms | 5.8 | 0 | 12,360 | 30.0 s |
| Sustained decode | 128K | 8 | Valid | 716.8 | 92.8 | 3,744 ms | 10.8 ms | 8.0 | 0 | 21,504 | 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 | 165.8 | 171.5 | 977 ms | 5.8 ms | 1.0 | 1 | 4,974 | 30.0 s |
| Sustained decode | 251K | 2 | Valid | 218.6 | 103.2 | 1,904 ms | 9.7 ms | 4.1 | 0 | 6,556 | 30.0 s |
| Sustained decode | 251K | 4 | Valid | 356.9 | 94.1 | 3,901 ms | 10.6 ms | 4.0 | 0 | 10,708 | 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.
