Speed test matrix
Qwen3.6-27B-AWQ on CMP 170HX 64GB
vllm · 0.32.0rc1.dev249+g18305948a · AWQ W4 g1286 contexts (0–248K) × 8 concurrency levels (1–128) · prefill at 8K, 16K, 32K, 64K, 128K
Hardware
- Type
- Discrete GPU
- GPU
- CMP 170HX
- VRAM
- 64 GB
- CPU
- 2x Intel Xeon E5-2630 v3
- RAM
- 64 GB
- OS
- Ubuntu 26.04.1
Engine
- Engine
- vllm
- Version
- 0.32.0rc1.dev249+g18305948a
- Quantization
- AWQ W4 g128
- Backend
- cuda
- Repository
- github.com/vllm-project/vllm
- Build
- ghcr.io/morrowmake/vllm-cmp170hx@sha256:5b45c4d6feafefe2eba962375b0a9a0b64fd22b9e05abb4d1966f14a32a2db79
Run
- Served model
- bench
- Revision
- main
- Benchmark tool
- llm-inference-bench v0.8.0
- Decode test
- Fixed duration
- Prefill mode
- Measured during decode warm-up
- Time per measurement
- 30 s
- Max output
- 8,192 tokens
Launch command
# Untuned out-of-the-box baseline. Spec decode: MTP, 2 tokens lookahead
# 1x NVIDIA CMP 170HX 64GB (cmpunlocker), 180 W limit, PCIe Gen2 x4 | 2x Intel Xeon E5-2630 v3 | 64 GB DDR4 | Ubuntu 26.04.1, NVIDIA driver 610.57.04 | vLLM: Morrowmake vllm-cmp170hx image
vllm serve QuantTrio/Qwen3.6-27B-AWQ --max-model-len 262144 --gpu-memory-utilization 0.94 --max-num-seqs 128 --enable-prefix-caching --trust-remote-code --language-model-only --speculative-config {"method":"mtp","num_speculative_tokens":2}Prefill
prompt tok/s by context length8K context1,9214,239 ms TTFT
16K context1,8218,848 ms TTFT
32K context1,71318,730 ms TTFT
64K context1,50942,419 ms TTFT
128K context1,219104,896 ms TTFT
Sustained decode
total tok/s · rows are context length, columns are simultaneous requests| Context | 1 | 2 | 4 | 8 | 16 | 32 | 64 | 128 |
|---|---|---|---|---|---|---|---|---|
| 0 | 85.1167 ms TTFT | 162.5226 ms TTFT | 274.6379 ms TTFT | 451.4602 ms TTFT | 689.8941 ms TTFT | 792.41,433 ms TTFT | 964.32,869 ms TTFT | Over capacity |
| 16K | 61.1650 ms TTFT | 113.91,104 ms TTFT | 161.02,130 ms TTFT | 238.43,568 ms TTFT | 285.55,873 ms TTFT | Over capacity | Over capacity | Over capacity |
| 32K | 44.5785 ms TTFT | 87.81,285 ms TTFT | 111.82,407 ms TTFT | 158.74,032 ms TTFT | Over capacity | Over capacity | Over capacity | Over capacity |
| 64K | 31.41,116 ms TTFT | 59.11,647 ms TTFT | 70.52,981 ms TTFT | Over capacity | Over capacity | Over capacity | Over capacity | Over capacity |
| 128K | 18.32,375 ms TTFT | 36.13,809 ms TTFT | 40.56,305 ms TTFT | Over capacity | Over capacity | Over capacity | Over capacity | Over capacity |
| 248K | 11.2Requests queued3,525 ms TTFT | 18.3Requests queued5,405 ms TTFT | Over capacity | Over capacity | Over capacity | Over capacity | Over capacity | Over capacity |
Requests queued: the server could not run all requests at once, so some waited in a queue. 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 | 1,921.0 | — | 4,239 ms | — | — | 1 | — | — |
| Prefill | 16K | 1 | Valid | 1,821.0 | — | 8,848 ms | — | — | 1 | — | — |
| Prefill | 32K | 1 | Valid | 1,713.0 | — | 18,730 ms | — | — | 1 | — | — |
| Prefill | 64K | 1 | Valid | 1,509.0 | — | 42,419 ms | — | — | 1 | — | — |
| Prefill | 128K | 1 | Valid | 1,219.0 | — | 104,896 ms | — | — | 1 | — | — |
| Sustained decode | 0 | 1 | Valid | 85.1 | 86.3 | 167 ms | 11.6 ms | 1.0 | 0 | 2,554 | 30.0 s |
| Sustained decode | 0 | 2 | Valid | 162.5 | 82.3 | 226 ms | 12.2 ms | 2.0 | 0 | 4,874 | 30.0 s |
| Sustained decode | 0 | 4 | Valid | 274.6 | 69.5 | 379 ms | 14.4 ms | 4.0 | 0 | 8,233 | 30.0 s |
| Sustained decode | 0 | 8 | Valid | 451.4 | 57.4 | 602 ms | 17.4 ms | 8.0 | 0 | 13,524 | 30.0 s |
| Sustained decode | 0 | 16 | Valid | 689.8 | 44.3 | 941 ms | 22.6 ms | 16.0 | 0 | 20,693 | 30.0 s |
| Sustained decode | 0 | 32 | Valid | 792.4 | 25.4 | 1,433 ms | 39.4 ms | 32.0 | 0 | 23,714 | 29.9 s |
| Sustained decode | 0 | 64 | Valid | 964.3 | 15.3 | 2,869 ms | 65.4 ms | 64.0 | 0 | 28,846 | 29.9 s |
| Sustained decode | 0 | 128 | Over capacity | — | — | — | — | — | — | — | — |
| Sustained decode | 16K | 1 | Valid | 61.1 | 62.1 | 650 ms | 16.1 ms | 1.0 | 0 | 1,832 | 30.0 s |
| Sustained decode | 16K | 2 | Valid | 113.9 | 57.5 | 1,104 ms | 17.4 ms | 2.0 | 0 | 3,414 | 30.0 s |
| Sustained decode | 16K | 4 | Valid | 161.0 | 40.7 | 2,130 ms | 24.6 ms | 4.0 | 0 | 4,828 | 30.0 s |
| Sustained decode | 16K | 8 | Valid | 238.4 | 29.9 | 3,568 ms | 33.4 ms | 8.0 | 0 | 7,139 | 29.9 s |
| Sustained decode | 16K | 16 | Valid | 285.5 | 16.7 | 5,873 ms | 59.9 ms | 16.0 | 0 | 8,540 | 29.9 s |
| Sustained decode | 16K | 32 | Over capacity | — | — | — | — | — | — | — | — |
| Sustained decode | 16K | 64 | Over capacity | — | — | — | — | — | — | — | — |
| Sustained decode | 16K | 128 | Over capacity | — | — | — | — | — | — | — | — |
| Sustained decode | 32K | 1 | Valid | 44.5 | 45.6 | 785 ms | 21.9 ms | 1.0 | 0 | 1,333 | 30.0 s |
| Sustained decode | 32K | 2 | Valid | 87.8 | 44.3 | 1,285 ms | 22.6 ms | 2.0 | 0 | 2,631 | 30.0 s |
| Sustained decode | 32K | 4 | Valid | 111.8 | 28.2 | 2,407 ms | 35.4 ms | 4.0 | 0 | 3,349 | 29.9 s |
| Sustained decode | 32K | 8 | Valid | 158.7 | 19.8 | 4,032 ms | 50.5 ms | 8.0 | 0 | 4,747 | 29.9 s |
| 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 | 31.4 | 31.7 | 1,116 ms | 31.5 ms | 1.0 | 0 | 941 | 30.0 s |
| Sustained decode | 64K | 2 | Valid | 59.1 | 29.8 | 1,647 ms | 33.6 ms | 2.0 | 0 | 1,771 | 30.0 s |
| Sustained decode | 64K | 4 | Valid | 70.5 | 17.9 | 2,981 ms | 55.9 ms | 4.0 | 0 | 2,109 | 29.9 s |
| 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 | 128K | 1 | Valid | 18.3 | 18.6 | 2,375 ms | 53.7 ms | 1.0 | 0 | 546 | 29.9 s |
| Sustained decode | 128K | 2 | Valid | 36.1 | 18.4 | 3,809 ms | 54.4 ms | 2.0 | 0 | 1,081 | 29.9 s |
| Sustained decode | 128K | 4 | Valid | 40.5 | 9.8 | 6,305 ms | 101.6 ms | 4.0 | 0 | 1,212 | 29.9 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 | 248K | 1 | Requests queued | 11.2 | 12.4 | 3,525 ms | 80.4 ms | 0.9 | 0 | 336 | 29.9 s |
| Sustained decode | 248K | 2 | Requests queued | 18.3 | 10.9 | 5,405 ms | 91.7 ms | 1.7 | 0 | 549 | 30.0 s |
| Sustained decode | 248K | 4 | Over capacity | — | — | — | — | — | — | — | — |
| Sustained decode | 248K | 8 | Over capacity | — | — | — | — | — | — | — | — |
| Sustained decode | 248K | 16 | Over capacity | — | — | — | — | — | — | — | — |
| Sustained decode | 248K | 32 | Over capacity | — | — | — | — | — | — | — | — |
| Sustained decode | 248K | 64 | Over capacity | — | — | — | — | — | — | — | — |
| Sustained decode | 248K | 128 | Over capacity | — | — | — | — | — | — | — | — |
Requests queued: the server could not run all requests at once, so some waited in a queue. Over capacity: not run because this many requests at this context would exceed the server's KV cache.
