Speed test matrix
Fara1.5-4B-AutoRound-W4A16-RTN on CMP 170HX 64GB
vllm · 0.32.0rc1.dev249+g18305948a · AutoRound W4A166 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
- AutoRound W4A16
- 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: none # 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 LeaderboardModel1/Fara1.5-4B-AutoRound-W4A16-RTN --max-model-len 262144 --gpu-memory-utilization 0.94 --max-num-seqs 128 --enable-prefix-caching --trust-remote-code --language-model-only
Prefill
prompt tok/s by context length8K context9,791832 ms TTFT
16K context9,5261,692 ms TTFT
32K context8,6993,688 ms TTFT
64K context7,1988,894 ms TTFT
128K context5,32024,041 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 | 191.9106 ms TTFT | 363.1185 ms TTFT | 676.6196 ms TTFT | 1,199.1262 ms TTFT | 1,933.1300 ms TTFT | 2,928.0447 ms TTFT | Looped | 4,682.71,003 ms TTFT |
| 16K | 175.2203 ms TTFT | 314.5276 ms TTFT | 534.6401 ms TTFT | 828.0608 ms TTFT | 1,133.4996 ms TTFT | 1,433.71,855 ms TTFT | 1,571.73,404 ms TTFT | Over capacity |
| 32K | 161.9281 ms TTFT | 276.4382 ms TTFT | 437.6515 ms TTFT | 625.4800 ms TTFT | 791.41,259 ms TTFT | 931.12,241 ms TTFT | Over capacity | Over capacity |
| 64K | 140.8481 ms TTFT | 220.7643 ms TTFT | 320.6860 ms TTFT | 416.61,385 ms TTFT | 489.52,381 ms TTFT | Over capacity | Over capacity | Over capacity |
| 128K | 111.2786 ms TTFT | 156.21,111 ms TTFT | 207.31,500 ms TTFT | 249.32,330 ms TTFT | Over capacity | Over capacity | Over capacity | Over capacity |
| 248K | 79.21,557 ms TTFT | 100.62,034 ms TTFT | 124.53,016 ms TTFT | Over capacity | Over capacity | Over capacity | Over capacity | Over capacity |
Looped: the model kept repeating the same text, so the benchmark discarded this measurement. 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,791.0 | — | 832 ms | — | — | 1 | — | — |
| Prefill | 16K | 1 | Valid | 9,526.0 | — | 1,692 ms | — | — | 1 | — | — |
| Prefill | 32K | 1 | Valid | 8,699.0 | — | 3,688 ms | — | — | 1 | — | — |
| Prefill | 64K | 1 | Valid | 7,198.0 | — | 8,894 ms | — | — | 1 | — | — |
| Prefill | 128K | 1 | Valid | 5,320.0 | — | 24,041 ms | — | — | 1 | — | — |
| Sustained decode | 0 | 1 | Valid | 191.9 | 192.6 | 106 ms | 5.2 ms | 1.0 | 0 | 5,756 | 30.0 s |
| Sustained decode | 0 | 2 | Valid | 363.1 | 182.6 | 185 ms | 5.5 ms | 2.0 | 0 | 10,892 | 30.0 s |
| Sustained decode | 0 | 4 | Valid | 676.6 | 171.0 | 196 ms | 5.8 ms | 4.0 | 0 | 20,296 | 30.0 s |
| Sustained decode | 0 | 8 | Valid | 1,199.1 | 152.3 | 262 ms | 6.6 ms | 8.0 | 0 | 35,976 | 30.0 s |
| Sustained decode | 0 | 16 | Valid | 1,933.1 | 123.6 | 300 ms | 8.1 ms | 16.0 | 0 | 58,000 | 30.0 s |
| Sustained decode | 0 | 32 | Valid | 2,928.0 | 93.9 | 447 ms | 10.7 ms | 32.0 | 0 | 87,840 | 30.0 s |
| Sustained decode | 0 | 64 | Looped | — | — | — | — | — | 0 | 0 | — |
| Sustained decode | 0 | 128 | Valid | 4,682.7 | 36.7 | 1,003 ms | 27.2 ms | 128.0 | 0 | 140,544 | 30.0 s |
| Sustained decode | 16K | 1 | Valid | 175.2 | 175.7 | 203 ms | 5.7 ms | 1.0 | 0 | 5,256 | 30.0 s |
| Sustained decode | 16K | 2 | Valid | 314.5 | 157.7 | 276 ms | 6.3 ms | 2.0 | 0 | 9,434 | 30.0 s |
| Sustained decode | 16K | 4 | Valid | 534.6 | 134.0 | 401 ms | 7.5 ms | 4.0 | 0 | 16,038 | 30.0 s |
| Sustained decode | 16K | 8 | Valid | 828.0 | 103.4 | 608 ms | 9.7 ms | 8.0 | 0 | 24,860 | 30.0 s |
| Sustained decode | 16K | 16 | Valid | 1,133.4 | 70.3 | 996 ms | 14.2 ms | 16.0 | 0 | 34,000 | 30.0 s |
| Sustained decode | 16K | 32 | Valid | 1,433.7 | 43.9 | 1,855 ms | 22.8 ms | 32.0 | 0 | 43,008 | 30.0 s |
| Sustained decode | 16K | 64 | Valid | 1,571.7 | 23.3 | 3,404 ms | 43.0 ms | 64.0 | 0 | 47,168 | 30.0 s |
| Sustained decode | 16K | 128 | Over capacity | — | — | — | — | — | — | — | — |
| Sustained decode | 32K | 1 | Valid | 161.9 | 162.4 | 281 ms | 6.2 ms | 1.0 | 0 | 4,857 | 30.0 s |
| Sustained decode | 32K | 2 | Valid | 276.4 | 138.7 | 382 ms | 7.2 ms | 2.0 | 0 | 8,292 | 30.0 s |
| Sustained decode | 32K | 4 | Valid | 437.6 | 109.5 | 515 ms | 9.1 ms | 4.0 | 0 | 13,128 | 30.0 s |
| Sustained decode | 32K | 8 | Valid | 625.4 | 77.9 | 800 ms | 12.8 ms | 8.0 | 0 | 18,776 | 30.0 s |
| Sustained decode | 32K | 16 | Valid | 791.4 | 48.8 | 1,259 ms | 20.5 ms | 16.0 | 0 | 23,744 | 30.0 s |
| Sustained decode | 32K | 32 | Valid | 931.1 | 27.9 | 2,241 ms | 35.8 ms | 32.0 | 0 | 27,968 | 30.0 s |
| Sustained decode | 32K | 64 | Over capacity | — | — | — | — | — | — | — | — |
| Sustained decode | 32K | 128 | Over capacity | — | — | — | — | — | — | — | — |
| Sustained decode | 64K | 1 | Valid | 140.8 | 141.4 | 481 ms | 7.1 ms | 1.0 | 0 | 4,224 | 30.0 s |
| Sustained decode | 64K | 2 | Valid | 220.7 | 110.8 | 643 ms | 9.0 ms | 2.0 | 0 | 6,620 | 30.0 s |
| Sustained decode | 64K | 4 | Valid | 320.6 | 80.2 | 860 ms | 12.5 ms | 4.0 | 0 | 9,619 | 30.0 s |
| Sustained decode | 64K | 8 | Valid | 416.6 | 51.9 | 1,385 ms | 19.3 ms | 8.0 | 0 | 12,496 | 30.0 s |
| Sustained decode | 64K | 16 | Valid | 489.5 | 30.3 | 2,381 ms | 33.0 ms | 16.0 | 0 | 14,672 | 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 | 111.2 | 111.8 | 786 ms | 8.9 ms | 1.0 | 0 | 3,337 | 30.0 s |
| Sustained decode | 128K | 2 | Valid | 156.2 | 78.5 | 1,111 ms | 12.7 ms | 2.0 | 0 | 4,686 | 30.0 s |
| Sustained decode | 128K | 4 | Valid | 207.3 | 52.0 | 1,500 ms | 19.2 ms | 4.0 | 0 | 6,216 | 30.0 s |
| Sustained decode | 128K | 8 | Valid | 249.3 | 31.1 | 2,330 ms | 32.1 ms | 8.0 | 0 | 7,472 | 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 | 248K | 1 | Valid | 79.2 | 79.8 | 1,557 ms | 12.5 ms | 1.0 | 0 | 2,376 | 30.0 s |
| Sustained decode | 248K | 2 | Valid | 100.6 | 50.8 | 2,034 ms | 19.7 ms | 2.0 | 0 | 3,018 | 30.0 s |
| Sustained decode | 248K | 4 | Valid | 124.5 | 31.4 | 3,016 ms | 31.9 ms | 4.0 | 0 | 3,732 | 30.0 s |
| 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 | — | — | — | — | — | — | — | — |
Looped: the model kept repeating the same text, so the benchmark discarded this measurement. Over capacity: not run because this many requests at this context would exceed the server's KV cache.
