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

Speed test matrix

Ornith-1.5-9B-NVFP4 on RTX 3090 24GB

vllm · 0.32.0 · 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
RTX 3090
VRAM
24 GB
CPU
AMD Ryzen 9 7900X (12C)
RAM
32 GB
OS
Ubuntu 24.04.5

Engine

Engine
vllm
Version
0.32.0
Quantization
NVFP4
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. KV cache: int4_per_token_head
# 1x RTX 3090 24GB (Zagitta/gpu-unlock), 350 W limit (VBIOS max), PCIe Gen4 x16 | AMD Ryzen 9 7900X 12C | 32 GB DDR5 | Ubuntu 24.04.5, NVIDIA driver 595.99.02
vllm serve ornith-ai/Ornith-1.5-9B-NVFP4 --max-model-len 262144 --gpu-memory-utilization 0.94 --max-num-seqs 128 --enable-prefix-caching --trust-remote-code --language-model-only --kv-cache-dtype int4_per_token_head --attention-backend TRITON_ATTN

Prefill

prompt tok/s by context length
8K context5,3901,520 ms TTFT
16K context4,7203,437 ms TTFT
32K context3,7368,644 ms TTFT
64K context2,63324,467 ms TTFT
128K context1,66977,094 ms TTFT

Sustained decode

total tok/s · rows are context length, columns are simultaneous requests
Context1248163264128
0115.531 ms TTFT214.649 ms TTFT412.776 ms TTFT789.1144 ms TTFT1,346.2227 ms TTFT2,078.3386 ms TTFT2,711.1767 ms TTFT3,075.41,149 ms TTFT
16KLooped182.2772 ms TTFT309.01,284 ms TTFT525.52,310 ms TTFT775.54,360 ms TTFT999.18,512 ms TTFTOver capacityOver capacity
32K87.7644 ms TTFT158.7950 ms TTFT245.11,561 ms TTFT389.72,786 ms TTFT539.65,235 ms TTFT650.410,241 ms TTFTOver capacityOver capacity
64K71.0662 ms TTFT126.0953 ms TTFT175.71,536 ms TTFT258.72,716 ms TTFT336.65,093 ms TTFTOver capacityOver capacityOver capacity
128K51.41,970 ms TTFT89.12,906 ms TTFT111.44,781 ms TTFT154.38,517 ms TTFTOver capacityOver capacityOver capacityOver capacity
248K31.1Requests queued3,051 ms TTFT57.54,421 ms TTFT66.77,086 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. 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
Prefill8K1Valid5,390.0—1,520 ms——1——
Prefill16K1Valid4,720.0—3,437 ms——1——
Prefill32K1Valid3,736.0—8,644 ms——1——
Prefill64K1Valid2,633.0—24,467 ms——1——
Prefill128K1Valid1,669.0—77,094 ms——1——
Sustained decode01Valid115.5115.931 ms8.6 ms1.003,46530.0 s
Sustained decode02Valid214.6107.749 ms9.3 ms2.006,43730.0 s
Sustained decode04Valid412.7103.776 ms9.6 ms4.0012,38030.0 s
Sustained decode08Valid789.199.6144 ms10.0 ms8.0023,67330.0 s
Sustained decode016Valid1,346.285.2227 ms11.7 ms16.0040,38430.0 s
Sustained decode032Valid2,078.365.9386 ms15.2 ms32.0062,33630.0 s
Sustained decode064Valid2,711.142.7767 ms23.4 ms64.0081,28030.0 s
Sustained decode0128Valid3,075.423.81,149 ms42.0 ms128.0092,16030.0 s
Sustained decode16K1Looped—————00—
Sustained decode16K2Valid182.290.6772 ms11.0 ms2.005,46430.0 s
Sustained decode16K4Valid309.075.81,284 ms13.2 ms4.009,26830.0 s
Sustained decode16K8Valid525.562.72,310 ms15.9 ms8.0015,76730.0 s
Sustained decode16K16Valid775.543.94,360 ms22.8 ms16.0023,26430.0 s
Sustained decode16K32Valid999.125.88,512 ms38.8 ms32.0029,95230.0 s
Sustained decode16K64Over capacity————————
Sustained decode16K128Over capacity————————
Sustained decode32K1Valid87.787.9644 ms11.4 ms1.002,63130.0 s
Sustained decode32K2Valid158.778.8950 ms12.7 ms2.004,76030.0 s
Sustained decode32K4Valid245.159.81,561 ms16.7 ms4.007,35330.0 s
Sustained decode32K8Valid389.746.12,786 ms21.7 ms8.0011,68830.0 s
Sustained decode32K16Valid539.630.05,235 ms33.3 ms16.0016,17630.0 s
Sustained decode32K32Valid650.416.210,241 ms61.7 ms32.0019,48830.0 s
Sustained decode32K64Over capacity————————
Sustained decode32K128Over capacity————————
Sustained decode64K1Valid71.071.0662 ms14.1 ms1.002,12930.0 s
Sustained decode64K2Valid126.062.5953 ms16.0 ms2.003,77830.0 s
Sustained decode64K4Valid175.743.01,536 ms23.3 ms4.005,26830.0 s
Sustained decode64K8Valid258.730.72,716 ms32.6 ms8.007,76030.0 s
Sustained decode64K16Valid336.618.85,093 ms53.1 ms16.0010,09630.0 s
Sustained decode64K32Over capacity————————
Sustained decode64K64Over capacity————————
Sustained decode64K128Over capacity————————
Sustained decode128K1Valid51.451.41,970 ms19.4 ms1.001,54130.0 s
Sustained decode128K2Valid89.143.52,906 ms23.0 ms2.002,67030.0 s
Sustained decode128K4Valid111.425.84,781 ms38.8 ms4.003,34030.0 s
Sustained decode128K8Valid154.316.38,517 ms61.4 ms8.004,62430.0 s
Sustained decode128K16Over capacity————————
Sustained decode128K32Over capacity————————
Sustained decode128K64Over capacity————————
Sustained decode128K128Over capacity————————
Sustained decode248K1Requests queued31.133.93,051 ms29.5 ms0.9093230.0 s
Sustained decode248K2Valid57.527.84,421 ms36.1 ms2.001,72630.0 s
Sustained decode248K4Valid66.715.07,086 ms66.9 ms4.002,00030.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. Over capacity: not run because this many requests at this context would exceed the server's KV cache.