Speed test matrix
Muse-Glimmer-30B-FP8-block on CMP 170HX 64GB
vllm · 0.32.0rc1.dev249+g18305948a · FP8 block5 contexts (0–120K) × 8 concurrency levels (1–128) · prefill at 8K, 16K, 32K, 64K, 120K
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
- FP8 block
- 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 RedHatAI/Muse-Glimmer-30B-FP8-block --max-model-len 131072 --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 context2,2883,568 ms TTFT
16K context2,2137,281 ms TTFT
32K context2,12815,053 ms TTFT
64K context1,99132,091 ms TTFT
120K context1,79566,639 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 | 35.093 ms TTFT | 69.0110 ms TTFT | 135.0134 ms TTFT | 253.3166 ms TTFT | 462.2293 ms TTFT | 640.7407 ms TTFT | 955.2612 ms TTFT | 1,279.71,053 ms TTFT |
| 16K | 33.1179 ms TTFT | 65.0223 ms TTFT | 122.7314 ms TTFT | 213.7456 ms TTFT | 348.8779 ms TTFT | 431.41,362 ms TTFT | 538.92,510 ms TTFT | Over capacity |
| 32K | 32.9268 ms TTFT | 64.4383 ms TTFT | 120.5584 ms TTFT | 207.4887 ms TTFT | 333.51,338 ms TTFT | 408.72,451 ms TTFT | Over capacity | Over capacity |
| 64K | 32.4418 ms TTFT | 63.2637 ms TTFT | 116.6888 ms TTFT | 195.71,450 ms TTFT | 304.62,336 ms TTFT | Over capacity | Over capacity | Over capacity |
| 120K | 31.7875 ms TTFT | 61.01,106 ms TTFT | 109.71,498 ms TTFT | 177.42,354 ms TTFT | 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 | 2,288.0 | — | 3,568 ms | — | — | 1 | — | — |
| Prefill | 16K | 1 | Valid | 2,213.0 | — | 7,281 ms | — | — | 1 | — | — |
| Prefill | 32K | 1 | Valid | 2,128.0 | — | 15,053 ms | — | — | 1 | — | — |
| Prefill | 64K | 1 | Valid | 1,991.0 | — | 32,091 ms | — | — | 1 | — | — |
| Prefill | 120K | 1 | Valid | 1,795.0 | — | 66,639 ms | — | — | 1 | — | — |
| Sustained decode | 0 | 1 | Valid | 35.0 | 35.1 | 93 ms | 28.5 ms | 1.0 | 0 | 1,049 | 30.0 s |
| Sustained decode | 0 | 2 | Valid | 69.0 | 34.6 | 110 ms | 28.9 ms | 2.0 | 0 | 2,068 | 30.0 s |
| Sustained decode | 0 | 4 | Valid | 135.0 | 34.0 | 134 ms | 29.4 ms | 4.0 | 0 | 4,048 | 30.0 s |
| Sustained decode | 0 | 8 | Valid | 253.3 | 32.0 | 166 ms | 31.2 ms | 8.0 | 0 | 7,592 | 30.0 s |
| Sustained decode | 0 | 16 | Valid | 462.2 | 29.4 | 293 ms | 34.0 ms | 16.0 | 0 | 13,856 | 30.0 s |
| Sustained decode | 0 | 32 | Valid | 640.7 | 20.4 | 407 ms | 49.1 ms | 32.0 | 0 | 19,200 | 30.0 s |
| Sustained decode | 0 | 64 | Valid | 955.2 | 15.2 | 612 ms | 65.6 ms | 64.0 | 0 | 28,608 | 29.9 s |
| Sustained decode | 0 | 128 | Valid | 1,279.7 | 10.2 | 1,053 ms | 98.4 ms | 128.0 | 0 | 38,400 | 30.0 s |
| Sustained decode | 16K | 1 | Valid | 33.1 | 37.5 | 179 ms | 26.6 ms | 1.0 | 0 | 993 | 30.0 s |
| Sustained decode | 16K | 2 | Valid | 65.0 | 35.1 | 223 ms | 28.7 ms | 2.0 | 0 | 1,948 | 30.0 s |
| Sustained decode | 16K | 4 | Valid | 122.7 | 30.7 | 314 ms | 32.5 ms | 4.0 | 0 | 3,680 | 30.0 s |
| Sustained decode | 16K | 8 | Valid | 213.7 | 26.8 | 456 ms | 37.4 ms | 8.0 | 0 | 6,408 | 30.0 s |
| Sustained decode | 16K | 16 | Valid | 348.8 | 21.9 | 779 ms | 45.7 ms | 16.0 | 0 | 10,464 | 30.0 s |
| Sustained decode | 16K | 32 | Valid | 431.4 | 13.5 | 1,362 ms | 73.9 ms | 32.0 | 0 | 12,928 | 30.0 s |
| Sustained decode | 16K | 64 | Valid | 538.9 | 8.6 | 2,510 ms | 116.9 ms | 64.0 | 0 | 16,128 | 29.9 s |
| Sustained decode | 16K | 128 | Over capacity | — | — | — | — | — | — | — | — |
| Sustained decode | 32K | 1 | Valid | 32.9 | 42.1 | 268 ms | 23.8 ms | 1.0 | 0 | 985 | 30.0 s |
| Sustained decode | 32K | 2 | Valid | 64.4 | 32.3 | 383 ms | 31.0 ms | 2.0 | 0 | 1,932 | 30.0 s |
| Sustained decode | 32K | 4 | Valid | 120.5 | 30.2 | 584 ms | 33.1 ms | 4.0 | 0 | 3,616 | 30.0 s |
| Sustained decode | 32K | 8 | Valid | 207.4 | 25.9 | 887 ms | 38.6 ms | 8.0 | 0 | 6,216 | 30.0 s |
| Sustained decode | 32K | 16 | Valid | 333.5 | 20.7 | 1,338 ms | 48.4 ms | 16.0 | 0 | 10,000 | 30.0 s |
| Sustained decode | 32K | 32 | Valid | 408.7 | 12.6 | 2,451 ms | 79.5 ms | 32.0 | 0 | 12,256 | 30.0 s |
| Sustained decode | 32K | 64 | Over capacity | — | — | — | — | — | — | — | — |
| Sustained decode | 32K | 128 | Over capacity | — | — | — | — | — | — | — | — |
| Sustained decode | 64K | 1 | Valid | 32.4 | 44.9 | 418 ms | 22.3 ms | 1.0 | 0 | 973 | 30.0 s |
| Sustained decode | 64K | 2 | Valid | 63.2 | 37.0 | 637 ms | 27.6 ms | 2.0 | 0 | 1,894 | 30.0 s |
| Sustained decode | 64K | 4 | Valid | 116.6 | 29.2 | 888 ms | 34.2 ms | 4.0 | 0 | 3,496 | 30.0 s |
| Sustained decode | 64K | 8 | Valid | 195.7 | 24.4 | 1,450 ms | 40.9 ms | 8.0 | 0 | 5,864 | 30.0 s |
| Sustained decode | 64K | 16 | Valid | 304.6 | 18.8 | 2,336 ms | 53.1 ms | 16.0 | 0 | 9,136 | 30.0 s |
| Sustained decode | 64K | 32 | Over capacity | — | — | — | — | — | — | — | — |
| Sustained decode | 64K | 64 | Over capacity | — | — | — | — | — | — | — | — |
| Sustained decode | 64K | 128 | Over capacity | — | — | — | — | — | — | — | — |
| Sustained decode | 120K | 1 | Valid | 31.7 | 31.8 | 875 ms | 31.4 ms | 1.0 | 0 | 950 | 30.0 s |
| Sustained decode | 120K | 2 | Valid | 61.0 | 43.7 | 1,106 ms | 23.0 ms | 2.0 | 0 | 1,830 | 30.0 s |
| Sustained decode | 120K | 4 | Valid | 109.7 | 30.6 | 1,498 ms | 33.0 ms | 4.0 | 0 | 3,288 | 30.0 s |
| Sustained decode | 120K | 8 | Valid | 177.4 | 22.1 | 2,354 ms | 45.3 ms | 8.0 | 0 | 5,320 | 30.0 s |
| Sustained decode | 120K | 16 | Over capacity | — | — | — | — | — | — | — | — |
| Sustained decode | 120K | 32 | Over capacity | — | — | — | — | — | — | — | — |
| Sustained decode | 120K | 64 | Over capacity | — | — | — | — | — | — | — | — |
| Sustained decode | 120K | 128 | Over capacity | — | — | — | — | — | — | — | — |
Over capacity: not run because this many requests at this context would exceed the server's KV cache.
