入門指南排行榜Decode calculator模型OrganizationsReportsMatrix runs硬體基準評測市集租用ProAPI文件
語言
Actual Computer — Every computer, one endpoint

Speed test matrix

gemma-4-26B-A4B-it-FP8-dynamic on CMP 170HX 64GB

vllm · 0.32.0rc1.dev249+g18305948a · FP8 dynamic6 contexts (0–248K) × 8 concurrency levels (1–128) · prefill at 8K, 16K, 32K, 64K, 128K
by @Sandbergllm-inference-bench v0.8.0Measured

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 dynamic
Backend
cuda
Build
ghcr.io/morrowmake/vllm-cmp170hx@sha256:5b45c4d6feafefe2eba962375b0a9a0b64fd22b9e05abb4d1966f14a32a2db79

Run

Served model
bench
Revision
main
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/gemma-4-26B-A4B-it-FP8-dynamic --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 length
8K context7,2651,097 ms TTFT
16K context5,9372,657 ms TTFT
32K context4,5626,882 ms TTFT
64K context3,04920,548 ms TTFT
128K context1,83368,274 ms TTFT

Sustained decode

total tok/s · rows are context length, columns are simultaneous requests
Context1248163264128
0128.572 ms TTFT220.392 ms TTFTLoopedLoopedLooped1,317.2279 ms TTFT1,926.3563 ms TTFT2,919.3839 ms TTFT
16K102.0236 ms TTFT178.9305 ms TTFTLoopedLoopedLoopedLoopedOver capacityOver capacity
32K91.8335 ms TTFTLoopedLoopedLoopedLoopedLoopedOver capacityOver capacity
64K80.9628 ms TTFTLoopedLoopedLoopedLoopedOver capacityOver capacityOver capacity
128KLoopedLoopedLoopedLoopedOver capacityOver capacityOver capacityOver capacity
248KLoopedLoopedLoopedOver capacityOver capacityOver capacityOver capacityOver 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.
PhaseContextRequests at onceStatusTotal tok/sPer request tok/sTTFTTime between tokensAverage active requestsCompleted requestsOutput tokensMeasured for
Prefill8K1Valid7,265.0—1,097 ms——1——
Prefill16K1Valid5,937.0—2,657 ms——1——
Prefill32K1Valid4,562.0—6,882 ms——1——
Prefill64K1Valid3,049.0—20,548 ms——1——
Prefill128K1Valid1,833.0—68,274 ms——1——
Sustained decode01Valid128.5129.772 ms7.7 ms1.003,85630.0 s
Sustained decode02Valid220.3111.392 ms9.0 ms2.006,61030.0 s
Sustained decode04Looped—————00—
Sustained decode08Looped—————00—
Sustained decode016Looped—————00—
Sustained decode032Valid1,317.243.1279 ms23.2 ms32.0039,52030.0 s
Sustained decode064Valid1,926.331.9563 ms31.4 ms64.0057,79230.0 s
Sustained decode0128Valid2,919.324.2839 ms41.3 ms128.0087,68030.0 s
Sustained decode16K1Valid102.0102.6236 ms9.7 ms1.003,06030.0 s
Sustained decode16K2Valid178.990.1305 ms11.1 ms2.005,36630.0 s
Sustained decode16K4Looped—————00—
Sustained decode16K8Looped—————00—
Sustained decode16K16Looped—————00—
Sustained decode16K32Looped—————00—
Sustained decode16K64Over capacity————————
Sustained decode16K128Over capacity————————
Sustained decode32K1Valid91.892.1335 ms10.9 ms1.002,75530.0 s
Sustained decode32K2Looped—————00—
Sustained decode32K4Looped—————00—
Sustained decode32K8Looped—————00—
Sustained decode32K16Looped—————00—
Sustained decode32K32Looped—————00—
Sustained decode32K64Over capacity————————
Sustained decode32K128Over capacity————————
Sustained decode64K1Valid80.93467.8628 ms0.3 ms1.002,42730.0 s
Sustained decode64K2Looped—————00—
Sustained decode64K4Looped—————00—
Sustained decode64K8Looped—————00—
Sustained decode64K16Looped—————00—
Sustained decode64K32Over capacity————————
Sustained decode64K64Over capacity————————
Sustained decode64K128Over capacity————————
Sustained decode128K1Looped—————00—
Sustained decode128K2Looped—————00—
Sustained decode128K4Looped—————00—
Sustained decode128K8Looped—————00—
Sustained decode128K16Over capacity————————
Sustained decode128K32Over capacity————————
Sustained decode128K64Over capacity————————
Sustained decode128K128Over capacity————————
Sustained decode248K1Looped—————00—
Sustained decode248K2Looped—————00—
Sustained decode248K4Looped—————00—
Sustained decode248K8Over capacity————————
Sustained decode248K16Over capacity————————
Sustained decode248K32Over capacity————————
Sustained decode248K64Over capacity————————
Sustained decode248K128Over 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.