Aan de slagLeaderboardDecode calculatorModellenOrganizationsReportsMatrix runsHardwareBenchmarksMarktplaatsVerhuurProAPI Docs
Taal
Actual Computer — Every computer, one endpoint

Speed test matrix

DeepSeek-V4.1-Flash-1017 on CMP 170HX 64GB ×4

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

Hardware

Type
Discrete GPU
GPU
CMP 170HX
GPU count
4
VRAM
64 GB (4 × 16 GB)
CPU
Intel Core i7-9800X
RAM
128 GB
OS
Ubuntu 26.04.1

Engine

Engine
vllm
Version
0.32.0rc1.dev586+ga0c57b523
Quantization
EXL3
Backend
cuda
Build
ghcr.io/morrowmake/vllm-cmp170hx@sha256:f67d9be47ffbd4a8b84c77fe76bdb3f842187d9b2786fff573e390ae5361bfb0

Run

Served model
m
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

# x299 recipe as deployed (not an untuned baseline). Spec decode: none. Warm room, SYSTIN 29-30 C; instantaneous power peaks up to 228 W (GA100 reports instantaneous draw); enforced limit 180 W
# 4x NVIDIA CMP 170HX 64GB (cmpunlocker), 180 W limit, PCIe Gen2 x4 per card | i7-9800X | 128 GB DDR4 | Ubuntu 26.04.1, driver 610.57.04 | vLLM: Morrowmake vllm-cmp170hx image
# Checkpoint: hybrid built with Morrowmake's dsv41-flash-cmp170hx recipe: routed experts EXL3 2.9 bpw from LibertAIDAI/DeepSeek-V4.1-Flash-1017-EXL3-2.9bpw, all other weights DeepSeek's own FP8 from deepseek-ai/DeepSeek-V4.1-Flash-1017. Thanks to Morrowmake and LibertAIDAI.
vllm serve /models/DeepSeek-V4.1-Flash-1017-hybrid-exl3-fp8 --host 0.0.0.0 --served-model-name m --max-model-len 262144 --gpu-memory-utilization 0.95 --max-num-seqs 8 --max-num-batched-tokens 2048 --port 8000 --hf-overrides '{"engram_table_dir":"/models/DeepSeek-V4.1-Flash-1017-engram"}' --load-format exl3 --enable-expert-parallel --mm-encoder-tp-mode data --kv-cache-dtype bfloat16 --reasoning-parser deepseek_v41 --enable-auto-tool-choice --tool-call-parser deepseek_v41 --compilation-config '{"cudagraph_mode":"FULL_DECODE_ONLY","cudagraph_capture_sizes":[2,3,4,5,6,8,9,10,12,14,15,16,18,20,21,24,25,28,30,32,35,36,40,42,48]}' --speculative-config '{"method":"dspark","num_speculative_tokens":7,"adaptive_k":{"by_load":[7,5,5,5,5,5,5,5,1,2,3,4,5],"draft_by_load":true},"enable_adaptive_verification":false}' --prefill-chunk-with-decodes 512 --exclude-tools-when-tool-choice-none --tensor-parallel-size 4 --pipeline-parallel-size 1 --speculative-config None

Prefill

prompt tok/s by context length
8K context1,5315,309 ms TTFT
16K context1,47810,876 ms TTFT
32K context1,49521,399 ms TTFT
64K context1,47143,389 ms TTFT
128K context1,42289,665 ms TTFT

Sustained decode

total tok/s · rows are context length, columns are simultaneous requests
Context124816
060.1301 ms TTFT117.5422 ms TTFT180.4841 ms TTFT255.61,531 ms TTFT246.5Requests queued1,520 ms TTFT
16K57.4622 ms TTFT112.7875 ms TTFT176.31,700 ms TTFT248.12,394 ms TTFT240.2Requests queued2,439 ms TTFT
32K57.5736 ms TTFT112.41,004 ms TTFT175.01,970 ms TTFT246.02,838 ms TTFT241.1Requests queued2,850 ms TTFT
64K56.6754 ms TTFT112.1952 ms TTFT172.71,959 ms TTFT237.32,644 ms TTFT229.1Requests queued2,757 ms TTFT
128K55.1979 ms TTFT107.31,193 ms TTFT164.41,615 ms TTFT224.02,743 ms TTFTOver capacity
248K50.3Requests queued1,675 ms TTFT95.3Requests queued1,935 ms TTFT149.52,636 ms TTFT201.04,001 ms TTFTOver 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.
PhaseContextRequests at onceStatusTotal tok/sPer request tok/sTTFTTime between tokensAverage active requestsCompleted requestsOutput tokensMeasured for
Prefill8K1Valid1,531.0—5,309 ms——1——
Prefill16K1Valid1,478.0—10,876 ms——1——
Prefill32K1Valid1,495.0—21,399 ms——1——
Prefill64K1Valid1,471.0—43,389 ms——1——
Prefill128K1Valid1,422.0—89,665 ms——1——
Sustained decode01Valid60.160.5301 ms16.5 ms1.001,80230.0 s
Sustained decode02Valid117.559.0422 ms16.9 ms2.003,52430.0 s
Sustained decode04Valid180.445.5841 ms22.0 ms4.005,41230.0 s
Sustained decode08Valid255.632.21,531 ms31.1 ms8.007,67030.0 s
Sustained decode016Requests queued246.531.41,520 ms31.9 ms8.007,39230.0 s
Sustained decode16K1Valid57.457.6622 ms17.4 ms1.001,72330.0 s
Sustained decode16K2Valid112.756.1875 ms17.8 ms2.003,38130.0 s
Sustained decode16K4Valid176.344.31,700 ms22.6 ms4.005,28830.0 s
Sustained decode16K8Valid248.130.82,394 ms32.4 ms8.007,44030.0 s
Sustained decode16K16Requests queued240.230.42,439 ms32.9 ms8.007,20030.0 s
Sustained decode32K1Valid57.557.5736 ms17.4 ms1.001,72530.0 s
Sustained decode32K2Valid112.455.91,004 ms17.9 ms2.003,37230.0 s
Sustained decode32K4Valid175.044.01,970 ms22.7 ms4.005,24830.0 s
Sustained decode32K8Valid246.030.32,838 ms33.0 ms8.007,37630.0 s
Sustained decode32K16Requests queued241.130.22,850 ms33.1 ms8.007,23230.0 s
Sustained decode64K1Valid56.656.8754 ms17.6 ms1.001,69830.0 s
Sustained decode64K2Valid112.155.9952 ms17.9 ms2.003,36230.0 s
Sustained decode64K4Valid172.743.41,959 ms23.0 ms4.005,18030.0 s
Sustained decode64K8Valid237.329.42,644 ms34.0 ms8.007,12030.0 s
Sustained decode64K16Requests queued229.129.12,757 ms34.4 ms8.006,87230.0 s
Sustained decode128K1Valid55.155.3979 ms18.1 ms1.001,65330.0 s
Sustained decode128K2Valid107.353.61,193 ms18.7 ms2.003,22030.0 s
Sustained decode128K4Valid164.440.51,615 ms24.7 ms4.004,93230.0 s
Sustained decode128K8Valid224.027.32,743 ms36.6 ms8.006,71430.0 s
Sustained decode128K16Over capacity————————
Sustained decode248K1Requests queued50.352.31,675 ms19.1 ms0.901,50830.0 s
Sustained decode248K2Requests queued95.350.01,935 ms20.0 ms1.902,85630.0 s
Sustained decode248K4Valid149.536.62,636 ms27.3 ms4.004,48430.0 s
Sustained decode248K8Valid201.023.84,001 ms42.0 ms8.006,02430.0 s
Sustained decode248K16Over 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.