はじめにリーダーボードDecode calculatorモデルOrganizationsReportsMatrix runsハードウェアベンチマークマーケットプレイスレンタルProAPIドキュメント
言語
Actual Computer — Every computer, one endpoint

Speed test matrix

gpt-oss-20b on RTX 3090 24GB

vllm · 0.32.0 · MXFP45 contexts (0–120K) × 8 concurrency levels (1–128) · prefill at 8K, 16K, 32K, 64K, 120K
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
MXFP4
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), 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 openai/gpt-oss-20b --max-model-len 131072 --gpu-memory-utilization 0.94 --max-num-seqs 128 --enable-prefix-caching --trust-remote-code

Prefill

prompt tok/s by context length
8K context9,483860 ms TTFT
16K context7,5862,122 ms TTFT
32K context5,3955,931 ms TTFT
64K context3,38018,871 ms TTFT
120K context2,07757,490 ms TTFT

Sustained decode

total tok/s · rows are context length, columns are simultaneous requests
Context1248163264128
0165.640 ms TTFTLooped423.850 ms TTFT609.656 ms TTFT909.973 ms TTFT1,766.593 ms TTFTOver capacityOver capacity
16K145.153 ms TTFT182.881 ms TTFT342.7114 ms TTFT296.7167 ms TTFTOver capacityOver capacityOver capacityOver capacity
32K137.075 ms TTFT212.0120 ms TTFT297.2181 ms TTFTOver capacityOver capacityOver capacityOver capacityOver capacity
64K106.9111 ms TTFT164.5194 ms TTFTOver capacityOver capacityOver capacityOver capacityOver capacityOver capacity
120K81.9184 ms TTFT125.9266 ms TTFTOver capacityOver 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
Prefill8K1Valid9,483.0—860 ms——1——
Prefill16K1Valid7,586.0—2,122 ms——1——
Prefill32K1Valid5,395.0—5,931 ms——1——
Prefill64K1Valid3,380.0—18,871 ms——1——
Prefill120K1Valid2,077.0—57,490 ms——1——
Sustained decode01Valid165.6166.840 ms6.0 ms1.004,96830.0 s
Sustained decode02Looped—————00—
Sustained decode04Valid423.8106.450 ms9.4 ms4.0012,71330.0 s
Sustained decode08Valid609.683.556 ms12.0 ms8.0018,28730.0 s
Sustained decode016Valid909.967.173 ms14.9 ms16.0027,28730.0 s
Sustained decode032Valid1,766.560.293 ms16.6 ms32.0052,98230.0 s
Sustained decode064Over capacity————————
Sustained decode0128Over capacity————————
Sustained decode16K1Valid145.1145.553 ms6.9 ms1.004,35330.0 s
Sustained decode16K2Valid182.8114.681 ms8.7 ms2.005,47730.0 s
Sustained decode16K4Valid342.786.3114 ms11.6 ms4.0010,27930.0 s
Sustained decode16K8Valid296.766.5167 ms15.0 ms8.008,89930.0 s
Sustained decode16K16Over capacity————————
Sustained decode16K32Over capacity————————
Sustained decode16K64Over capacity————————
Sustained decode16K128Over capacity————————
Sustained decode32K1Valid137.0130.175 ms7.7 ms1.004,09429.9 s
Sustained decode32K2Valid212.0101.3120 ms9.9 ms2.006,36130.0 s
Sustained decode32K4Valid297.274.3181 ms13.5 ms4.008,91530.0 s
Sustained decode32K8Over capacity————————
Sustained decode32K16Over capacity————————
Sustained decode32K32Over capacity————————
Sustained decode32K64Over capacity————————
Sustained decode32K128Over capacity————————
Sustained decode64K1Valid106.9107.0111 ms9.3 ms1.003,20630.0 s
Sustained decode64K2Valid164.584.1194 ms11.9 ms2.004,93330.0 s
Sustained decode64K4Over capacity————————
Sustained decode64K8Over capacity————————
Sustained decode64K16Over capacity————————
Sustained decode64K32Over capacity————————
Sustained decode64K64Over capacity————————
Sustained decode64K128Over capacity————————
Sustained decode120K1Valid81.982.1184 ms12.2 ms1.002,45830.0 s
Sustained decode120K2Valid125.964.3266 ms15.5 ms2.003,77630.0 s
Sustained decode120K4Over capacity————————
Sustained decode120K8Over capacity————————
Sustained decode120K16Over capacity————————
Sustained decode120K32Over capacity————————
Sustained decode120K64Over capacity————————
Sustained decode120K128Over 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.