Speed test matrix
MiniMax-M3 on H200 SXM 141GB ×8
vllm · 0.29.0 · BF166 contexts (8K–251K) × 8 concurrency levels (1–128) · prefill at 8K, 16K, 32K, 64K, 128K, 251K, 256K
Hardware
- Type
- Discrete GPU
- GPU
- H200 SXM
- GPU count
- 8
- VRAM
- 1128 GB (8 × 141 GB)
- OS
- linux
Engine
- Engine
- vllm
- Version
- 0.29.0
- Quantization
- BF16
- Backend
- cuda
- Repository
- github.com/vllm-project/vllm
- Build
- cuda-13.2
Run
- Served model
- MiniMaxAI/MiniMax-M3
- Revision
- main
- Benchmark tool
- llm-inference-bench v0.6.2
- Decode test
- Fixed duration
- Prefill mode
- Measured during decode warm-up
- Time per measurement
- 30 s
- Max output
- 4,096 tokens
Launch command
env FLASH_ATTENTION_CUTE_DSL_CACHE_ENABLED=1 VLLM_ENGINE_READY_TIMEOUT_S=3600 "$HOME/env_h200-glm53-vllm-v0290/bin/vllm" serve MiniMaxAI/MiniMax-M3 --served-model-name MiniMaxAI/MiniMax-M3 --trust-remote-code --tensor-parallel-size 8 --reasoning-parser minimax_m3 --enable-auto-tool-choice --tool-call-parser minimax_m3 --max-model-len 262144 --gpu-memory-utilization 0.84 --host 0.0.0.0 --port 8000 --api-key <redacted> --enforce-eager --block-size 128 --limit-mm-per-prompt '{"image":1,"video":0}'Prefill
prompt tok/s by context length8K context26.9K304 ms TTFT
16K context26.9K598 ms TTFT
32K context26.2K1,212 ms TTFT
64K context25.2K2,514 ms TTFT
128K context22.9K5,513 ms TTFT
251K context19.7K12,575 ms TTFT
256K context19.4K13,007 ms TTFT
Sustained decode
total tok/s · rows are context length, columns are simultaneous requests| Context | 1 | 2 | 4 | 8 | 16 | 32 | 64 | 128 |
|---|---|---|---|---|---|---|---|---|
| 8K | 11.7129 ms TTFT | 23.5231 ms TTFT | 46.8334 ms TTFT | 93.6365 ms TTFT | 181.2425 ms TTFT | Over capacity | Over capacity | Over capacity |
| 16K | 11.7153 ms TTFT | 23.3245 ms TTFT | 46.5375 ms TTFT | 93.3438 ms TTFT | 180.8574 ms TTFT | Over capacity | Over capacity | Over capacity |
| 32K | 11.7198 ms TTFT | 23.1291 ms TTFT | 46.3428 ms TTFT | 92.6606 ms TTFT | Over capacity | Over capacity | Over capacity | Over capacity |
| 64K | 11.7287 ms TTFT | 23.2432 ms TTFT | 46.3643 ms TTFT | Over capacity | Over capacity | Over capacity | Over capacity | Over capacity |
| 128K | 11.7508 ms TTFT | 23.2686 ms TTFT | Over capacity | Over capacity | Over capacity | Over capacity | Over capacity | Over capacity |
| 251K | 11.71,085 ms TTFT | Over capacity | Over capacity | Over capacity | Over capacity | Over capacity | Over capacity | Over 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.| Phase | Context | Requests at once | Status | Total tok/s | Per request tok/s | TTFT | Time between tokens | Average active requests | Completed requests | Output tokens | Measured for |
|---|---|---|---|---|---|---|---|---|---|---|---|
| Prefill | 8K | 1 | Valid | 26.9K | — | 304 ms | — | — | 1 | — | — |
| Prefill | 16K | 1 | Valid | 26.9K | — | 598 ms | — | — | 1 | — | — |
| Prefill | 32K | 1 | Valid | 26.2K | — | 1,212 ms | — | — | 1 | — | — |
| Prefill | 64K | 1 | Valid | 25.2K | — | 2,514 ms | — | — | 1 | — | — |
| Prefill | 128K | 1 | Valid | 22.9K | — | 5,513 ms | — | — | 1 | — | — |
| Prefill | 251K | 1 | Valid | 19.7K | — | 12,575 ms | — | — | 1 | — | — |
| Prefill | 256K | 1 | Valid | 19.4K | — | 13,007 ms | — | — | 1 | — | — |
| Sustained decode | 8K | 1 | Valid | 11.7 | 11.7 | 129 ms | 85.6 ms | 1.0 | 0 | 351 | 30.0 s |
| Sustained decode | 8K | 2 | Valid | 23.5 | 11.7 | 231 ms | 85.3 ms | 2.0 | 0 | 704 | 30.0 s |
| Sustained decode | 8K | 4 | Valid | 46.8 | 11.7 | 334 ms | 85.5 ms | 4.0 | 0 | 1,404 | 30.0 s |
| Sustained decode | 8K | 8 | Valid | 93.6 | 11.7 | 365 ms | 85.4 ms | 8.0 | 0 | 2,808 | 30.0 s |
| Sustained decode | 8K | 16 | Valid | 181.2 | 11.0 | 425 ms | 90.9 ms | 16.0 | 0 | 5,424 | 29.9 s |
| Sustained decode | 8K | 32 | Over capacity | — | — | — | — | — | — | — | — |
| Sustained decode | 8K | 64 | Over capacity | — | — | — | — | — | — | — | — |
| Sustained decode | 8K | 128 | Over capacity | — | — | — | — | — | — | — | — |
| Sustained decode | 16K | 1 | Valid | 11.7 | 11.7 | 153 ms | 85.4 ms | 1.0 | 0 | 351 | 29.9 s |
| Sustained decode | 16K | 2 | Valid | 23.3 | 11.7 | 245 ms | 85.7 ms | 2.0 | 0 | 700 | 30.0 s |
| Sustained decode | 16K | 4 | Valid | 46.5 | 11.6 | 375 ms | 86.2 ms | 4.0 | 0 | 1,392 | 29.9 s |
| Sustained decode | 16K | 8 | Valid | 93.3 | 11.6 | 438 ms | 85.8 ms | 8.0 | 0 | 2,792 | 29.9 s |
| Sustained decode | 16K | 16 | Valid | 180.8 | 11.3 | 574 ms | 88.6 ms | 16.0 | 0 | 5,424 | 30.0 s |
| Sustained decode | 16K | 32 | Over capacity | — | — | — | — | — | — | — | — |
| Sustained decode | 16K | 64 | Over capacity | — | — | — | — | — | — | — | — |
| Sustained decode | 16K | 128 | Over capacity | — | — | — | — | — | — | — | — |
| Sustained decode | 32K | 1 | Valid | 11.7 | 11.7 | 198 ms | 85.5 ms | 1.0 | 0 | 350 | 29.9 s |
| Sustained decode | 32K | 2 | Valid | 23.1 | 11.5 | 291 ms | 86.6 ms | 2.0 | 0 | 692 | 29.9 s |
| Sustained decode | 32K | 4 | Valid | 46.3 | 11.6 | 428 ms | 86.4 ms | 4.0 | 0 | 1,388 | 30.0 s |
| Sustained decode | 32K | 8 | Valid | 92.6 | 11.5 | 606 ms | 86.6 ms | 8.0 | 0 | 2,776 | 30.0 s |
| Sustained decode | 32K | 16 | Over capacity | — | — | — | — | — | — | — | — |
| Sustained decode | 32K | 32 | Over capacity | — | — | — | — | — | — | — | — |
| Sustained decode | 32K | 64 | Over capacity | — | — | — | — | — | — | — | — |
| Sustained decode | 32K | 128 | Over capacity | — | — | — | — | — | — | — | — |
| Sustained decode | 64K | 1 | Valid | 11.7 | 11.7 | 287 ms | 85.5 ms | 1.0 | 0 | 351 | 30.0 s |
| Sustained decode | 64K | 2 | Valid | 23.2 | 11.6 | 432 ms | 86.2 ms | 2.0 | 0 | 696 | 30.0 s |
| Sustained decode | 64K | 4 | Valid | 46.3 | 11.6 | 643 ms | 86.5 ms | 4.0 | 0 | 1,388 | 30.0 s |
| Sustained decode | 64K | 8 | Over capacity | — | — | — | — | — | — | — | — |
| Sustained decode | 64K | 16 | Over capacity | — | — | — | — | — | — | — | — |
| Sustained decode | 64K | 32 | Over capacity | — | — | — | — | — | — | — | — |
| Sustained decode | 64K | 64 | Over capacity | — | — | — | — | — | — | — | — |
| Sustained decode | 64K | 128 | Over capacity | — | — | — | — | — | — | — | — |
| Sustained decode | 128K | 1 | Valid | 11.7 | 11.7 | 508 ms | 85.3 ms | 1.0 | 0 | 351 | 30.0 s |
| Sustained decode | 128K | 2 | Valid | 23.2 | 11.6 | 686 ms | 86.2 ms | 2.0 | 0 | 696 | 30.0 s |
| Sustained decode | 128K | 4 | Over capacity | — | — | — | — | — | — | — | — |
| Sustained decode | 128K | 8 | Over capacity | — | — | — | — | — | — | — | — |
| Sustained decode | 128K | 16 | Over capacity | — | — | — | — | — | — | — | — |
| Sustained decode | 128K | 32 | Over capacity | — | — | — | — | — | — | — | — |
| Sustained decode | 128K | 64 | Over capacity | — | — | — | — | — | — | — | — |
| Sustained decode | 128K | 128 | Over capacity | — | — | — | — | — | — | — | — |
| Sustained decode | 251K | 1 | Valid | 11.7 | 11.8 | 1,085 ms | 85.0 ms | 1.0 | 0 | 350 | 29.9 s |
| Sustained decode | 251K | 2 | Over capacity | — | — | — | — | — | — | — | — |
| Sustained decode | 251K | 4 | Over capacity | — | — | — | — | — | — | — | — |
| Sustained decode | 251K | 8 | Over capacity | — | — | — | — | — | — | — | — |
| Sustained decode | 251K | 16 | Over capacity | — | — | — | — | — | — | — | — |
| Sustained decode | 251K | 32 | Over capacity | — | — | — | — | — | — | — | — |
| Sustained decode | 251K | 64 | Over capacity | — | — | — | — | — | — | — | — |
| Sustained decode | 251K | 128 | Over capacity | — | — | — | — | — | — | — | — |
Over capacity: not run because this many requests at this context would exceed the server's KV cache.
