Speed test matrix
Qwen3.5-397B-A17B-GPTQ-Int4 on RTX PRO 6000 Blackwell Server Edition 96GB ×4
vllm · 0.30.1rc1.dev452+g73a583112 · INT46 contexts (8K–251K) × 8 concurrency levels (1–128) · prefill at 8K, 16K, 32K, 64K, 128K, 251K, 256K
Hardware
- Type
- Discrete GPU
- GPU
- RTX PRO 6000 Blackwell Server Edition
- GPU count
- 4
- VRAM
- 384 GB (4 × 96 GB)
- OS
- linux
Engine
- Engine
- vllm
- Version
- 0.30.1rc1.dev452+g73a583112
- Quantization
- INT4
- Backend
- cuda
- Repository
- github.com/vllm-project/vllm
- Build
- cuda-13.2
- Commit
73a5831127a9
Run
- Served model
- qwen
- Revision
- main
- Benchmark tool
- llm-inference-bench v0.7.9
- 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_rtxpro6k-qwen-vllm-73a5831127a9/bin/vllm" serve Qwen/Qwen3.5-397B-A17B-GPTQ-Int4 --served-model-name qwen --trust-remote-code --tensor-parallel-size 4 --reasoning-parser qwen3 --enable-auto-tool-choice --tool-call-parser qwen3_coder --max-model-len 262144 --gpu-memory-utilization 0.91 --host 0.0.0.0 --port 8000 --api-key <redacted> --attention-backend FLASH_ATTN --linear-backend marlin --moe-backend triton --quantization moe_wna16
Prefill
prompt tok/s by context length8K context5,1651,586 ms TTFT
16K context5,1803,131 ms TTFT
32K context5,4525,923 ms TTFT
64K context5,51711,676 ms TTFT
128K context5,15824,951 ms TTFT
251K context4,63954,360 ms TTFT
256K context4,59855,939 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 | 64.4336 ms TTFT | 89.5503 ms TTFT | 125.5876 ms TTFT | 183.61,335 ms TTFT | 273.31,736 ms TTFT | 405.13,070 ms TTFT | 631.95,789 ms TTFT | 939.09,913 ms TTFT |
| 16K | 64.1305 ms TTFT | 89.3475 ms TTFT | 124.4682 ms TTFT | 175.9917 ms TTFT | 262.41,421 ms TTFT | 406.91,662 ms TTFT | 616.23,381 ms TTFT | Over capacity |
| 32K | 63.4372 ms TTFT | 87.9545 ms TTFT | 124.1871 ms TTFT | 177.11,301 ms TTFT | 266.11,651 ms TTFT | 365.83,195 ms TTFT | Over capacity | Over capacity |
| 64K | 62.0180 ms TTFT | 85.8235 ms TTFT | 121.2322 ms TTFT | 182.3537 ms TTFT | 245.6979 ms TTFT | Over capacity | Over capacity | Over capacity |
| 128K | 59.4633 ms TTFT | 82.2865 ms TTFT | 116.71,307 ms TTFT | 163.72,360 ms TTFT | Over capacity | Over capacity | Over capacity | Over capacity |
| 251K | 55.21,007 ms TTFT | 76.51,273 ms TTFT | 107.21,786 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 | 5,165.0 | — | 1,586 ms | — | — | 1 | — | — |
| Prefill | 16K | 1 | Valid | 5,180.0 | — | 3,131 ms | — | — | 1 | — | — |
| Prefill | 32K | 1 | Valid | 5,452.0 | — | 5,923 ms | — | — | 1 | — | — |
| Prefill | 64K | 1 | Valid | 5,517.0 | — | 11,676 ms | — | — | 1 | — | — |
| Prefill | 128K | 1 | Valid | 5,158.0 | — | 24,951 ms | — | — | 1 | — | — |
| Prefill | 251K | 1 | Valid | 4,639.0 | — | 54,360 ms | — | — | 1 | — | — |
| Prefill | 256K | 1 | Valid | 4,598.0 | — | 55,939 ms | — | — | 1 | — | — |
| Sustained decode | 8K | 1 | Valid | 64.4 | 64.4 | 336 ms | 15.5 ms | 1.0 | 0 | 1,932 | 30.0 s |
| Sustained decode | 8K | 2 | Valid | 89.5 | 44.6 | 503 ms | 22.4 ms | 2.0 | 0 | 2,686 | 30.0 s |
| Sustained decode | 8K | 4 | Valid | 125.5 | 32.1 | 876 ms | 31.2 ms | 4.0 | 0 | 3,764 | 30.0 s |
| Sustained decode | 8K | 8 | Valid | 183.6 | 24.3 | 1,335 ms | 41.1 ms | 8.0 | 0 | 5,504 | 30.0 s |
| Sustained decode | 8K | 16 | Valid | 273.3 | 18.0 | 1,736 ms | 55.6 ms | 16.0 | 0 | 8,192 | 30.0 s |
| Sustained decode | 8K | 32 | Valid | 405.1 | 13.1 | 3,070 ms | 76.1 ms | 32.0 | 0 | 12,128 | 29.9 s |
| Sustained decode | 8K | 64 | Valid | 631.9 | 9.7 | 5,789 ms | 103.3 ms | 64.0 | 0 | 18,880 | 29.9 s |
| Sustained decode | 8K | 128 | Valid | 939.0 | 6.3 | 9,913 ms | 159.0 ms | 128.0 | 0 | 28,032 | 29.9 s |
| Sustained decode | 16K | 1 | Valid | 64.1 | 64.1 | 305 ms | 15.6 ms | 1.0 | 0 | 1,922 | 30.0 s |
| Sustained decode | 16K | 2 | Valid | 89.3 | 44.5 | 475 ms | 22.5 ms | 2.0 | 0 | 2,678 | 30.0 s |
| Sustained decode | 16K | 4 | Valid | 124.4 | 32.1 | 682 ms | 31.1 ms | 4.0 | 0 | 3,728 | 30.0 s |
| Sustained decode | 16K | 8 | Valid | 175.9 | 23.5 | 917 ms | 42.6 ms | 8.0 | 0 | 5,272 | 30.0 s |
| Sustained decode | 16K | 16 | Valid | 262.4 | 18.2 | 1,421 ms | 55.1 ms | 16.0 | 0 | 7,856 | 29.9 s |
| Sustained decode | 16K | 32 | Valid | 406.9 | 13.4 | 1,662 ms | 74.5 ms | 32.0 | 0 | 12,192 | 30.0 s |
| Sustained decode | 16K | 64 | Valid | 616.2 | 9.8 | 3,381 ms | 102.0 ms | 64.0 | 0 | 18,432 | 29.9 s |
| Sustained decode | 16K | 128 | Over capacity | — | — | — | — | — | — | — | — |
| Sustained decode | 32K | 1 | Valid | 63.4 | 63.4 | 372 ms | 15.8 ms | 1.0 | 0 | 1,902 | 30.0 s |
| Sustained decode | 32K | 2 | Valid | 87.9 | 43.8 | 545 ms | 22.8 ms | 2.0 | 0 | 2,636 | 30.0 s |
| Sustained decode | 32K | 4 | Valid | 124.1 | 32.0 | 871 ms | 31.2 ms | 4.0 | 0 | 3,720 | 30.0 s |
| Sustained decode | 32K | 8 | Valid | 177.1 | 23.8 | 1,301 ms | 42.0 ms | 8.0 | 0 | 5,312 | 30.0 s |
| Sustained decode | 32K | 16 | Valid | 266.1 | 17.7 | 1,651 ms | 56.5 ms | 16.0 | 0 | 7,968 | 29.9 s |
| Sustained decode | 32K | 32 | Valid | 365.8 | 12.3 | 3,195 ms | 81.4 ms | 32.0 | 0 | 10,944 | 29.9 s |
| Sustained decode | 32K | 64 | Over capacity | — | — | — | — | — | — | — | — |
| Sustained decode | 32K | 128 | Over capacity | — | — | — | — | — | — | — | — |
| Sustained decode | 64K | 1 | Valid | 62.0 | 62.0 | 180 ms | 16.1 ms | 1.0 | 0 | 1,860 | 30.0 s |
| Sustained decode | 64K | 2 | Valid | 85.8 | 42.9 | 235 ms | 23.3 ms | 2.0 | 0 | 2,574 | 30.0 s |
| Sustained decode | 64K | 4 | Valid | 121.2 | 30.3 | 322 ms | 33.0 ms | 4.0 | 0 | 3,632 | 30.0 s |
| Sustained decode | 64K | 8 | Valid | 182.3 | 22.8 | 537 ms | 43.9 ms | 8.0 | 0 | 5,464 | 30.0 s |
| Sustained decode | 64K | 16 | Valid | 245.6 | 15.5 | 979 ms | 64.6 ms | 16.0 | 0 | 7,360 | 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 | 59.4 | 59.4 | 633 ms | 16.8 ms | 1.0 | 0 | 1,780 | 30.0 s |
| Sustained decode | 128K | 2 | Valid | 82.2 | 40.9 | 865 ms | 24.4 ms | 2.0 | 0 | 2,466 | 30.0 s |
| Sustained decode | 128K | 4 | Valid | 116.7 | 29.2 | 1,307 ms | 34.2 ms | 4.0 | 0 | 3,500 | 30.0 s |
| Sustained decode | 128K | 8 | Valid | 163.7 | 20.9 | 2,360 ms | 47.8 ms | 8.0 | 0 | 4,904 | 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 | 55.2 | 55.3 | 1,007 ms | 18.1 ms | 1.0 | 0 | 1,655 | 30.0 s |
| Sustained decode | 251K | 2 | Valid | 76.5 | 38.0 | 1,273 ms | 26.3 ms | 2.0 | 0 | 2,294 | 30.0 s |
| Sustained decode | 251K | 4 | Valid | 107.2 | 26.4 | 1,786 ms | 37.9 ms | 4.0 | 0 | 3,212 | 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.
