入门指南排行榜Decode calculator模型OrganizationsReportsMatrix runs硬件基准评测市场租用ProAPI文档
语言
Actual Computer — Every computer, one endpoint

Speed test matrix

Qwen3.5-122B-A10B-NVFP4 on CMP 170HX 64GB ×2

vllm · 0.32.0rc1.dev249+g18305948a · NVFP46 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
GPU count
2
VRAM
64 GB (2 × 32 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
NVFP4
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: MTP, 2 tokens lookahead. Layout: PP2 (stock vLLM flag)
# 2x 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 nvidia/Qwen3.5-122B-A10B-NVFP4 --max-model-len 262144 --gpu-memory-utilization 0.94 --max-num-seqs 128 --enable-prefix-caching --trust-remote-code --pipeline-parallel-size 2 --language-model-only --hf-overrides {"text_config":{"tie_word_embeddings":false}} --speculative-config {"method":"mtp","num_speculative_tokens":2}

Prefill

prompt tok/s by context length
8K context4,4201,842 ms TTFT
16K context4,4083,656 ms TTFT
32K context3,8588,316 ms TTFT
64K context3,10520,622 ms TTFT
128K context2,18758,478 ms TTFT

Sustained decode

total tok/s · rows are context length, columns are simultaneous requests
Context1248163264128
086.2156 ms TTFT166.7151 ms TTFT233.5305 ms TTFT410.0398 ms TTFT650.7574 ms TTFT956.3797 ms TTFT1,066.4Requests queued11,795 ms TTFTFailed
16K88.31,995 ms TTFT164.22,758 ms TTFT268.24,280 ms TTFT394.16,979 ms TTFT636.813,068 ms TTFT961.224,972 ms TTFTLoopedOver capacity
32K86.32,437 ms TTFT161.13,542 ms TTFT225.25,371 ms TTFT379.78,519 ms TTFT595.915,234 ms TTFT879.928,196 ms TTFTOver capacityOver capacity
64K86.62,726 ms TTFT124.54,133 ms TTFT215.96,262 ms TTFT355.89,719 ms TTFT544.116,387 ms TTFTOver capacityOver capacityOver capacity
128K85.04,866 ms TTFT121.87,031 ms TTFT207.310,723 ms TTFT318.216,150 ms TTFTOver capacityOver capacityOver capacityOver capacity
248K81.210,654 ms TTFT123.514,912 ms TTFT178.822,020 ms TTFTOver capacityOver capacityOver capacityOver capacityOver capacity

Requests queued: the server could not run all requests at once, so some waited in a queue. Looped: the model kept repeating the same text, so the benchmark discarded this measurement. Failed: requests to the server failed during 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
Prefill8K1Valid4,420.0—1,842 ms——1——
Prefill16K1Valid4,408.0—3,656 ms——1——
Prefill32K1Valid3,858.0—8,316 ms——1——
Prefill64K1Valid3,105.0—20,622 ms——1——
Prefill128K1Valid2,187.0—58,478 ms——1——
Sustained decode01Valid86.286.4156 ms11.6 ms1.002,58430.0 s
Sustained decode02Valid166.783.2151 ms12.0 ms2.005,00030.0 s
Sustained decode04Valid233.558.5305 ms17.1 ms4.007,00130.0 s
Sustained decode08Valid410.051.8398 ms19.3 ms8.0012,29830.0 s
Sustained decode016Valid650.741.5574 ms24.1 ms16.0019,52130.0 s
Sustained decode032Valid956.330.9797 ms32.4 ms32.0028,64229.9 s
Sustained decode064Requests queued1,066.424.711,795 ms40.4 ms43.847331,97430.0 s
Sustained decode0128Failed—————00—
Sustained decode16K1Valid88.388.61,995 ms11.3 ms1.002,64830.0 s
Sustained decode16K2Valid164.281.22,758 ms12.3 ms2.004,92530.0 s
Sustained decode16K4Valid268.263.34,280 ms15.8 ms4.008,04130.0 s
Sustained decode16K8Valid394.144.26,979 ms22.6 ms8.0011,81830.0 s
Sustained decode16K16Valid636.831.213,068 ms32.1 ms16.0019,08830.0 s
Sustained decode16K32Valid961.219.424,972 ms51.7 ms32.0028,81130.0 s
Sustained decode16K64Looped—————00—
Sustained decode16K128Over capacity————————
Sustained decode32K1Valid86.387.12,437 ms11.5 ms1.002,58630.0 s
Sustained decode32K2Valid161.179.33,542 ms12.6 ms2.004,82730.0 s
Sustained decode32K4Valid225.254.65,371 ms18.3 ms4.006,75330.0 s
Sustained decode32K8Valid379.742.08,519 ms23.8 ms8.0011,38830.0 s
Sustained decode32K16Valid595.928.415,234 ms35.2 ms16.0017,86630.0 s
Sustained decode32K32Valid879.917.028,196 ms58.9 ms32.0026,37630.0 s
Sustained decode32K64Over capacity————————
Sustained decode32K128Over capacity————————
Sustained decode64K1Valid86.687.12,726 ms11.5 ms1.002,59830.0 s
Sustained decode64K2Valid124.561.74,133 ms16.2 ms2.003,73330.0 s
Sustained decode64K4Valid215.951.56,262 ms19.4 ms4.006,47530.0 s
Sustained decode64K8Valid355.839.89,719 ms25.1 ms8.0010,66930.0 s
Sustained decode64K16Valid544.126.116,387 ms38.4 ms16.0016,30730.0 s
Sustained decode64K32Over capacity————————
Sustained decode64K64Over capacity————————
Sustained decode64K128Over capacity————————
Sustained decode128K1Valid85.085.64,866 ms11.7 ms1.002,54830.0 s
Sustained decode128K2Valid121.859.47,031 ms16.9 ms2.003,65230.0 s
Sustained decode128K4Valid207.348.210,723 ms20.8 ms4.006,21730.0 s
Sustained decode128K8Valid318.231.716,150 ms31.5 ms8.009,54330.0 s
Sustained decode128K16Over capacity————————
Sustained decode128K32Over capacity————————
Sustained decode128K64Over capacity————————
Sustained decode128K128Over capacity————————
Sustained decode248K1Valid81.282.210,654 ms12.2 ms1.002,43630.0 s
Sustained decode248K2Valid123.557.914,912 ms17.3 ms2.003,70430.0 s
Sustained decode248K4Valid178.836.222,020 ms27.8 ms4.005,36230.0 s
Sustained decode248K8Over capacity————————
Sustained decode248K16Over capacity————————
Sustained decode248K32Over capacity————————
Sustained decode248K64Over capacity————————
Sustained decode248K128Over capacity————————

Requests queued: the server could not run all requests at once, so some waited in a queue. Looped: the model kept repeating the same text, so the benchmark discarded this measurement. Failed: requests to the server failed during this measurement. Over capacity: not run because this many requests at this context would exceed the server's KV cache.