Speed test matrix
Qwen3.5-27B-FP8 on RTX PRO 6000 Blackwell Server Edition 96GB
vllm · 0.30.1rc1.dev452+g73a583112 · FP86 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
- VRAM
- 96 GB
- OS
- linux
Engine
- Engine
- vllm
- Version
- 0.30.1rc1.dev452+g73a583112
- Quantization
- FP8
- 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-27B-FP8 --served-model-name qwen --trust-remote-code --tensor-parallel-size 1 --reasoning-parser qwen3 --enable-auto-tool-choice --tool-call-parser qwen3_coder --max-model-len 262144 --gpu-memory-utilization 0.92 --host 0.0.0.0 --port 8000 --api-key <redacted> --attention-backend FLASH_ATTN --linear-backend cutlass
Prefill
prompt tok/s by context length8K context9,958822 ms TTFT
16K context9,5841,692 ms TTFT
32K context8,7443,693 ms TTFT
64K context7,4558,641 ms TTFT
128K context5,72222,490 ms TTFT
251K context3,94163,988 ms TTFT
256K context3,90165,938 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 | 45.475 ms TTFT | 83.8112 ms TTFT | 162.4195 ms TTFT | 322.2310 ms TTFT | 578.9620 ms TTFT | 965.61,256 ms TTFT | 1,446.91,872 ms TTFT | Over capacity |
| 16K | 44.6127 ms TTFT | 82.1204 ms TTFT | 158.6308 ms TTFT | 310.3585 ms TTFT | 542.4925 ms TTFT | 866.21,918 ms TTFT | Over capacity | Over capacity |
| 32K | 43.4113 ms TTFT | 79.1153 ms TTFT | 151.9239 ms TTFT | 289.2331 ms TTFT | 480.6517 ms TTFT | Over capacity | Over capacity | Over capacity |
| 64K | 40.9195 ms TTFT | 70.7243 ms TTFT | 135.6346 ms TTFT | 253.9521 ms TTFT | Over capacity | Over capacity | Over capacity | Over capacity |
| 128K | 36.8354 ms TTFT | 60.0450 ms TTFT | 114.3656 ms TTFT | Over capacity | Over capacity | Over capacity | Over capacity | Over capacity |
| 251K | 30.5926 ms TTFT | 46.31,130 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,958.0 | — | 822 ms | — | — | 1 | — | — |
| Prefill | 16K | 1 | Valid | 9,584.0 | — | 1,692 ms | — | — | 1 | — | — |
| Prefill | 32K | 1 | Valid | 8,744.0 | — | 3,693 ms | — | — | 1 | — | — |
| Prefill | 64K | 1 | Valid | 7,455.0 | — | 8,641 ms | — | — | 1 | — | — |
| Prefill | 128K | 1 | Valid | 5,722.0 | — | 22,490 ms | — | — | 1 | — | — |
| Prefill | 251K | 1 | Valid | 3,941.0 | — | 63,988 ms | — | — | 1 | — | — |
| Prefill | 256K | 1 | Valid | 3,901.0 | — | 65,938 ms | — | — | 1 | — | — |
| Sustained decode | 8K | 1 | Valid | 45.4 | 45.4 | 75 ms | 22.0 ms | 1.0 | 0 | 1,361 | 30.0 s |
| Sustained decode | 8K | 2 | Valid | 83.8 | 41.9 | 112 ms | 23.9 ms | 2.0 | 0 | 2,514 | 30.0 s |
| Sustained decode | 8K | 4 | Valid | 162.4 | 40.6 | 195 ms | 24.6 ms | 4.0 | 0 | 4,872 | 30.0 s |
| Sustained decode | 8K | 8 | Valid | 322.2 | 40.3 | 310 ms | 24.8 ms | 8.0 | 0 | 9,664 | 30.0 s |
| Sustained decode | 8K | 16 | Valid | 578.9 | 36.2 | 620 ms | 27.6 ms | 16.0 | 0 | 17,360 | 30.0 s |
| Sustained decode | 8K | 32 | Valid | 965.6 | 30.2 | 1,256 ms | 33.1 ms | 32.0 | 0 | 28,960 | 30.0 s |
| Sustained decode | 8K | 64 | Valid | 1,446.9 | 22.3 | 1,872 ms | 44.9 ms | 64.0 | 0 | 43,392 | 30.0 s |
| Sustained decode | 8K | 128 | Over capacity | — | — | — | — | — | — | — | — |
| Sustained decode | 16K | 1 | Valid | 44.6 | 44.6 | 127 ms | 22.4 ms | 1.0 | 0 | 1,338 | 30.0 s |
| Sustained decode | 16K | 2 | Valid | 82.1 | 41.0 | 204 ms | 24.4 ms | 2.0 | 0 | 2,462 | 30.0 s |
| Sustained decode | 16K | 4 | Valid | 158.6 | 39.6 | 308 ms | 25.2 ms | 4.0 | 0 | 4,756 | 30.0 s |
| Sustained decode | 16K | 8 | Valid | 310.3 | 38.8 | 585 ms | 25.8 ms | 8.0 | 0 | 9,304 | 30.0 s |
| Sustained decode | 16K | 16 | Valid | 542.4 | 33.8 | 925 ms | 29.6 ms | 16.0 | 0 | 16,272 | 30.0 s |
| Sustained decode | 16K | 32 | Valid | 866.2 | 27.0 | 1,918 ms | 37.1 ms | 32.0 | 0 | 25,985 | 30.0 s |
| Sustained decode | 16K | 64 | Over capacity | — | — | — | — | — | — | — | — |
| Sustained decode | 16K | 128 | Over capacity | — | — | — | — | — | — | — | — |
| Sustained decode | 32K | 1 | Valid | 43.4 | 43.4 | 113 ms | 23.1 ms | 1.0 | 0 | 1,300 | 30.0 s |
| Sustained decode | 32K | 2 | Valid | 79.1 | 39.6 | 153 ms | 25.3 ms | 2.0 | 0 | 2,374 | 30.0 s |
| Sustained decode | 32K | 4 | Valid | 151.9 | 37.9 | 239 ms | 26.4 ms | 4.0 | 0 | 4,552 | 30.0 s |
| Sustained decode | 32K | 8 | Valid | 289.2 | 36.1 | 331 ms | 27.7 ms | 8.0 | 0 | 8,672 | 30.0 s |
| Sustained decode | 32K | 16 | Valid | 480.6 | 29.9 | 517 ms | 33.4 ms | 16.0 | 0 | 14,416 | 30.0 s |
| Sustained decode | 32K | 32 | Over capacity | — | — | — | — | — | — | — | — |
| Sustained decode | 32K | 64 | Over capacity | — | — | — | — | — | — | — | — |
| Sustained decode | 32K | 128 | Over capacity | — | — | — | — | — | — | — | — |
| Sustained decode | 64K | 1 | Valid | 40.9 | 40.9 | 195 ms | 24.4 ms | 1.0 | 0 | 1,227 | 30.0 s |
| Sustained decode | 64K | 2 | Valid | 70.7 | 35.3 | 243 ms | 28.3 ms | 2.0 | 0 | 2,120 | 30.0 s |
| Sustained decode | 64K | 4 | Valid | 135.6 | 33.9 | 346 ms | 29.5 ms | 4.0 | 0 | 4,064 | 30.0 s |
| Sustained decode | 64K | 8 | Valid | 253.9 | 31.5 | 521 ms | 31.7 ms | 8.0 | 0 | 7,616 | 30.0 s |
| 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 | 128K | 1 | Valid | 36.8 | 36.8 | 354 ms | 27.1 ms | 1.0 | 0 | 1,104 | 30.0 s |
| Sustained decode | 128K | 2 | Valid | 60.0 | 30.0 | 450 ms | 33.4 ms | 2.0 | 0 | 1,798 | 30.0 s |
| Sustained decode | 128K | 4 | Valid | 114.3 | 28.5 | 656 ms | 35.1 ms | 4.0 | 0 | 3,428 | 30.0 s |
| Sustained decode | 128K | 8 | Over capacity | — | — | — | — | — | — | — | — |
| 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 | 30.5 | 30.5 | 926 ms | 32.8 ms | 1.0 | 0 | 913 | 30.0 s |
| Sustained decode | 251K | 2 | Valid | 46.3 | 23.1 | 1,130 ms | 43.3 ms | 2.0 | 0 | 1,388 | 30.0 s |
| Sustained decode | 251K | 4 | Over capacity | — | — | — | — | — | — | — | — |
| 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.
