Get startedLeaderboardDecode calculatorModelsOrganizationsReportsMatrix runsHardwareBenchmarksMarketplaceRentalsProAPI Docs
Language
Actual Computer — Every computer, one endpoint

Speed test matrix

Qwen3.5-9B-FP8-dynamic on RTX 3090 24GB

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

Hardware

Type
Discrete GPU
GPU
RTX 3090
VRAM
24 GB
CPU
Intel Core i7-9700K (8C)
RAM
32 GB
OS
Ubuntu 24.04.5

Engine

Engine
vllm
Version
0.32.0
Quantization
FP8 dynamic
Backend
cuda
Build
vllm/vllm-openai:v0.32.0-x86_64

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 RTX 3090 24GB (Zagitta/gpu-unlock), 420 W limit, PCIe Gen3 x16 | Intel Core i7-9700K 8C | 32 GB DDR4 | Ubuntu 24.04.5, NVIDIA driver 580.178.04
vllm serve RedHatAI/Qwen3.5-9B-FP8-dynamic --max-model-len 245760 --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,1051,153 ms TTFT
16K context6,7892,389 ms TTFT
32K context6,3425,092 ms TTFT
64K context5,64511,412 ms TTFT
128K context4,59528,005 ms TTFT

Sustained decode

total tok/s · rows are context length, columns are simultaneous requests
Context1248163264128
073.437 ms TTFT140.451 ms TTFT274.184 ms TTFT534.7135 ms TTFT961.2248 ms TTFTOver capacityOver capacityOver capacity
16K70.1112 ms TTFT130.3161 ms TTFT250.9270 ms TTFT464.4433 ms TTFTOver capacityOver capacityOver capacityOver capacity
32K67.3111 ms TTFT121.6154 ms TTFT230.7225 ms TTFTOver capacityOver capacityOver capacityOver capacityOver capacity
64K62.4194 ms TTFT107.3261 ms TTFTOver capacityOver capacityOver capacityOver capacityOver capacityOver capacity
128K54.3522 ms TTFTOver capacityOver capacityOver capacityOver capacityOver capacityOver capacityOver capacity
232K44.9778 ms TTFTOver capacityOver capacityOver capacityOver capacityOver capacityOver capacityOver 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.
PhaseContextRequests at onceStatusTotal tok/sPer request tok/sTTFTTime between tokensAverage active requestsCompleted requestsOutput tokensMeasured for
Prefill8K1Valid7,105.0—1,153 ms——1——
Prefill16K1Valid6,789.0—2,389 ms——1——
Prefill32K1Valid6,342.0—5,092 ms——1——
Prefill64K1Valid5,645.0—11,412 ms——1——
Prefill128K1Valid4,595.0—28,005 ms——1——
Sustained decode01Valid73.473.537 ms13.6 ms1.002,20230.0 s
Sustained decode02Valid140.470.351 ms14.2 ms2.004,21230.0 s
Sustained decode04Valid274.168.784 ms14.6 ms4.008,22430.0 s
Sustained decode08Valid534.767.1135 ms14.9 ms8.0016,04030.0 s
Sustained decode016Valid961.260.4248 ms16.5 ms16.0028,83230.0 s
Sustained decode032Over capacity————————
Sustained decode064Over capacity————————
Sustained decode0128Over capacity————————
Sustained decode16K1Valid70.170.2112 ms14.3 ms1.002,10330.0 s
Sustained decode16K2Valid130.365.2161 ms15.3 ms2.003,91030.0 s
Sustained decode16K4Valid250.962.6270 ms16.0 ms4.007,52430.0 s
Sustained decode16K8Valid464.457.7433 ms17.3 ms8.0013,92830.0 s
Sustained decode16K16Over capacity————————
Sustained decode16K32Over capacity————————
Sustained decode16K64Over capacity————————
Sustained decode16K128Over capacity————————
Sustained decode32K1Valid67.367.4111 ms14.8 ms1.002,02030.0 s
Sustained decode32K2Valid121.660.8154 ms16.4 ms2.003,64830.0 s
Sustained decode32K4Valid230.757.7225 ms17.3 ms4.006,92030.0 s
Sustained decode32K8Over capacity————————
Sustained decode32K16Over capacity————————
Sustained decode32K32Over capacity————————
Sustained decode32K64Over capacity————————
Sustained decode32K128Over capacity————————
Sustained decode64K1Valid62.462.4194 ms16.0 ms1.001,87030.0 s
Sustained decode64K2Valid107.353.7261 ms18.6 ms2.003,21830.0 s
Sustained decode64K4Over capacity————————
Sustained decode64K8Over capacity————————
Sustained decode64K16Over capacity————————
Sustained decode64K32Over capacity————————
Sustained decode64K64Over capacity————————
Sustained decode64K128Over capacity————————
Sustained decode128K1Valid54.354.5522 ms18.4 ms1.001,62930.0 s
Sustained decode128K2Over capacity————————
Sustained decode128K4Over capacity————————
Sustained decode128K8Over capacity————————
Sustained decode128K16Over capacity————————
Sustained decode128K32Over capacity————————
Sustained decode128K64Over capacity————————
Sustained decode128K128Over capacity————————
Sustained decode232K1Valid44.945.1778 ms22.2 ms1.001,34830.0 s
Sustained decode232K2Over capacity————————
Sustained decode232K4Over capacity————————
Sustained decode232K8Over capacity————————
Sustained decode232K16Over capacity————————
Sustained decode232K32Over capacity————————
Sustained decode232K64Over capacity————————
Sustained decode232K128Over capacity————————

Over capacity: not run because this many requests at this context would exceed the server's KV cache.