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

Speed test matrix

gemma-4-12B-it-FP8-Dynamic on RTX PRO 6000 Blackwell Server Edition 96GB

vllm · 0.30.1rc1.dev452+g73a583112 · FP86 contexts (8K–251K) × 8 concurrency levels (1–128) · prefill at 8K, 16K, 32K, 64K, 128K, 251K, 256K
by @keennaylmx dev importMeasured

Hardware

Type
Discrete GPU
GPU
RTX PRO 6000 Blackwell Server Edition
VRAM
96 GB
OS
linux

Engine

Engine
vllm
Version
0.30.1rc1.dev452+g73a583112
Quantization
FP8
Backend
cuda
Build
cuda-13.2
Commit
73a5831127a9

Run

Served model
gemma
Revision
main
Decode test
Fixed duration
Prefill mode
Measured during decode warm-up
Time per measurement
30 s
Max output
4,096 tokens

Launch command

env MAX_JOBS=2 FLASHINFER_NVCC_THREADS=1 TORCHINDUCTOR_COMPILE_THREADS=1 "$HOME/env_rtxpro6k-redhatai-vllm-73a5831127a9d2b8/bin/vllm" serve RedHatAI/gemma-4-12B-it-FP8-Dynamic --served-model-name gemma --trust-remote-code --tensor-parallel-size 1 --reasoning-parser gemma4 --enable-auto-tool-choice --tool-call-parser gemma4 --max-model-len 262144 --gpu-memory-utilization 0.83 --host 0.0.0.0 --port 8000 --api-key <redacted> --kv-cache-dtype fp8 --async-scheduling

Prefill

prompt tok/s by context length
8K context19K432 ms TTFT
16K context17.7K916 ms TTFT
32K context14.7K2,209 ms TTFT
64K context10.7K6,026 ms TTFT
128K context6,93518,600 ms TTFT
251K context4,12361,314 ms TTFT
256K context4,05763,557 ms TTFT

Sustained decode

total tok/s · rows are context length, columns are simultaneous requests
Context1248163264128
8K80.445 ms TTFTLoopedLoopedLoopedLoopedLoopedLoopedLooped
16K75.863 ms TTFT151.4104 ms TTFT295.3120 ms TTFTLoopedLoopedLoopedLoopedLooped
32K71.3106 ms TTFTLoopedLoopedLoopedLoopedLoopedLoopedOver capacity
64K66.8197 ms TTFT133.7275 ms TTFTLoopedLoopedLooped714.81,990 ms TTFTOver capacityOver capacity
128KLoopedLoopedLoopedLoopedLoopedOver capacityOver capacityOver capacity
251K48.71,052 ms TTFT97.51,431 ms TTFT191.72,177 ms TTFT335.53,646 ms TTFTOver 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
Prefill8K1Valid19K—432 ms——1——
Prefill16K1Valid17.7K—916 ms——1——
Prefill32K1Valid14.7K—2,209 ms——1——
Prefill64K1Valid10.7K—6,026 ms——1——
Prefill128K1Valid6,935.0—18,600 ms——1——
Prefill251K1Valid4,123.0—61,314 ms——1——
Prefill256K1Valid4,057.0—63,557 ms——1——
Sustained decode8K1Valid80.480.645 ms12.4 ms1.002,41330.0 s
Sustained decode8K2Looped—————00—
Sustained decode8K4Looped—————00—
Sustained decode8K8Looped—————00—
Sustained decode8K16Looped—————00—
Sustained decode8K32Looped—————00—
Sustained decode8K64Looped—————00—
Sustained decode8K128Looped—————00—
Sustained decode16K1Valid75.875.963 ms13.2 ms1.002,27430.0 s
Sustained decode16K2Valid151.475.9104 ms13.2 ms2.004,54330.0 s
Sustained decode16K4Valid295.374.0120 ms13.5 ms4.008,85830.0 s
Sustained decode16K8Looped—————00—
Sustained decode16K16Looped—————00—
Sustained decode16K32Looped—————00—
Sustained decode16K64Looped—————00—
Sustained decode16K128Looped—————00—
Sustained decode32K1Valid71.371.4106 ms14.0 ms1.002,14030.0 s
Sustained decode32K2Looped—————00—
Sustained decode32K4Looped—————00—
Sustained decode32K8Looped—————00—
Sustained decode32K16Looped—————00—
Sustained decode32K32Looped—————00—
Sustained decode32K64Looped—————00—
Sustained decode32K128Over capacity————————
Sustained decode64K1Valid66.866.9197 ms15.0 ms1.002,00230.0 s
Sustained decode64K2Valid133.766.9275 ms14.9 ms2.004,01130.0 s
Sustained decode64K4Looped—————00—
Sustained decode64K8Looped—————00—
Sustained decode64K16Looped—————00—
Sustained decode64K32Valid714.822.41,990 ms44.6 ms32.0021,53630.1 s
Sustained decode64K64Over capacity————————
Sustained decode64K128Over capacity————————
Sustained decode128K1Looped—————00—
Sustained decode128K2Looped—————00—
Sustained decode128K4Looped—————00—
Sustained decode128K8Looped—————00—
Sustained decode128K16Looped—————00—
Sustained decode128K32Over capacity————————
Sustained decode128K64Over capacity————————
Sustained decode128K128Over capacity————————
Sustained decode251K1Valid48.748.91,052 ms20.5 ms1.001,46130.0 s
Sustained decode251K2Valid97.548.81,431 ms20.5 ms2.002,92330.0 s
Sustained decode251K4Valid191.747.82,177 ms20.9 ms4.005,74830.0 s
Sustained decode251K8Valid335.541.63,646 ms24.0 ms8.0010,06630.0 s
Sustained decode251K16Over capacity————————
Sustained decode251K32Over capacity————————
Sustained decode251K64Over capacity————————
Sustained decode251K128Over 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.