Speed test matrix
GLM-5.3-NVFP4 on H200 SXM 141GB ×8
vllm · 0.29.0 · NVFP47 contexts (8K–507K) × 8 concurrency levels (1–128) · prefill at 8K, 16K, 32K, 64K, 128K, 256K, 507K, 512K
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
- NVFP4
- Backend
- cuda
- Repository
- github.com/vllm-project/vllm
- Build
- cuda-13.2
Run
- Served model
- glm
- 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
"$HOME/env_h200-glm53-vllm-v0290/bin/vllm" serve Inferact/GLM-5.3-NVFP4 --served-model-name glm --tensor-parallel-size 8 --reasoning-parser glm45 --enable-auto-tool-choice --tool-call-parser glm47 --max-model-len 524288 --gpu-memory-utilization 0.88 --host 0.0.0.0 --port 8000 --api-key <redacted> --dtype bfloat16 --kv-cache-dtype bfloat16 --no-enable-flashinfer-autotune
Prefill
prompt tok/s by context length8K context10.2K803 ms TTFT
16K context10.1K1,605 ms TTFT
32K context9,7903,301 ms TTFT
64K context9,3336,912 ms TTFT
128K context8,51015,146 ms TTFT
256K context7,13136,128 ms TTFT
507K context5,39294,602 ms TTFT
512K context5,36695,987 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 | 101.350 ms TTFT | 188.669 ms TTFT | 335.890 ms TTFT | 587.9129 ms TTFT | 986.1211 ms TTFT | 1,561.6314 ms TTFT | Over capacity | Over capacity |
| 16K | 101.271 ms TTFT | 188.3100 ms TTFT | 333.3142 ms TTFT | 581.9196 ms TTFT | 972.9302 ms TTFT | 1,550.2523 ms TTFT | Over capacity | Over capacity |
| 32K | 100.9103 ms TTFT | 187.9147 ms TTFT | 332.9197 ms TTFT | 579.2286 ms TTFT | 972.8532 ms TTFT | Over capacity | Over capacity | Over capacity |
| 64K | 100.4182 ms TTFT | 186.6243 ms TTFT | 330.9335 ms TTFT | 571.0540 ms TTFT | Over capacity | Over capacity | Over capacity | Over capacity |
| 128K | 99.3376 ms TTFT | 184.2496 ms TTFT | 325.0722 ms TTFT | Over capacity | Over capacity | Over capacity | Over capacity | Over capacity |
| 256K | 97.7751 ms TTFT | 180.01,043 ms TTFT | Over capacity | Over capacity | Over capacity | Over capacity | Over capacity | Over capacity |
| 507K | 94.51,784 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 | 10.2K | — | 803 ms | — | — | 1 | — | — |
| Prefill | 16K | 1 | Valid | 10.1K | — | 1,605 ms | — | — | 1 | — | — |
| Prefill | 32K | 1 | Valid | 9,790.0 | — | 3,301 ms | — | — | 1 | — | — |
| Prefill | 64K | 1 | Valid | 9,333.0 | — | 6,912 ms | — | — | 1 | — | — |
| Prefill | 128K | 1 | Valid | 8,510.0 | — | 15,146 ms | — | — | 1 | — | — |
| Prefill | 256K | 1 | Valid | 7,131.0 | — | 36,128 ms | — | — | 1 | — | — |
| Prefill | 507K | 1 | Valid | 5,392.0 | — | 94,602 ms | — | — | 1 | — | — |
| Prefill | 512K | 1 | Valid | 5,366.0 | — | 95,987 ms | — | — | 1 | — | — |
| Sustained decode | 8K | 1 | Valid | 101.3 | 101.2 | 50 ms | 9.9 ms | 1.0 | 0 | 3,037 | 30.0 s |
| Sustained decode | 8K | 2 | Valid | 188.6 | 94.3 | 69 ms | 10.6 ms | 2.0 | 0 | 5,656 | 30.0 s |
| Sustained decode | 8K | 4 | Valid | 335.8 | 84.0 | 90 ms | 11.9 ms | 4.0 | 0 | 10,074 | 30.0 s |
| Sustained decode | 8K | 8 | Valid | 587.9 | 73.4 | 129 ms | 13.6 ms | 8.0 | 0 | 17,632 | 30.0 s |
| Sustained decode | 8K | 16 | Valid | 986.1 | 61.7 | 211 ms | 16.2 ms | 16.0 | 0 | 29,585 | 30.0 s |
| Sustained decode | 8K | 32 | Valid | 1,561.6 | 48.9 | 314 ms | 20.5 ms | 32.0 | 0 | 46,849 | 30.0 s |
| Sustained decode | 8K | 64 | Over capacity | — | — | — | — | — | — | — | — |
| Sustained decode | 8K | 128 | Over capacity | — | — | — | — | — | — | — | — |
| Sustained decode | 16K | 1 | Valid | 101.2 | 101.2 | 71 ms | 9.9 ms | 1.0 | 0 | 3,034 | 30.0 s |
| Sustained decode | 16K | 2 | Valid | 188.3 | 94.1 | 100 ms | 10.6 ms | 2.0 | 0 | 5,648 | 30.0 s |
| Sustained decode | 16K | 4 | Valid | 333.3 | 83.4 | 142 ms | 12.0 ms | 4.0 | 0 | 9,996 | 30.0 s |
| Sustained decode | 16K | 8 | Valid | 581.9 | 72.8 | 196 ms | 13.7 ms | 8.0 | 0 | 17,459 | 30.0 s |
| Sustained decode | 16K | 16 | Valid | 972.9 | 60.9 | 302 ms | 16.4 ms | 16.0 | 0 | 29,187 | 30.0 s |
| Sustained decode | 16K | 32 | Valid | 1,550.2 | 48.4 | 523 ms | 20.7 ms | 32.0 | 0 | 46,494 | 30.0 s |
| Sustained decode | 16K | 64 | Over capacity | — | — | — | — | — | — | — | — |
| Sustained decode | 16K | 128 | Over capacity | — | — | — | — | — | — | — | — |
| Sustained decode | 32K | 1 | Valid | 100.9 | 100.9 | 103 ms | 9.9 ms | 1.0 | 0 | 3,026 | 30.0 s |
| Sustained decode | 32K | 2 | Valid | 187.9 | 94.0 | 147 ms | 10.6 ms | 2.0 | 0 | 5,636 | 30.0 s |
| Sustained decode | 32K | 4 | Valid | 332.9 | 83.3 | 197 ms | 12.0 ms | 4.0 | 0 | 9,987 | 30.0 s |
| Sustained decode | 32K | 8 | Valid | 579.2 | 72.4 | 286 ms | 13.8 ms | 8.0 | 0 | 17,376 | 30.0 s |
| Sustained decode | 32K | 16 | Valid | 972.8 | 60.8 | 532 ms | 16.4 ms | 16.0 | 0 | 29,186 | 30.0 s |
| Sustained decode | 32K | 32 | Over capacity | — | — | — | — | — | — | — | — |
| Sustained decode | 32K | 64 | Over capacity | — | — | — | — | — | — | — | — |
| Sustained decode | 32K | 128 | Over capacity | — | — | — | — | — | — | — | — |
| Sustained decode | 64K | 1 | Valid | 100.4 | 100.5 | 182 ms | 10.0 ms | 1.0 | 0 | 3,012 | 30.0 s |
| Sustained decode | 64K | 2 | Valid | 186.6 | 93.3 | 243 ms | 10.7 ms | 2.0 | 0 | 5,596 | 30.0 s |
| Sustained decode | 64K | 4 | Valid | 330.9 | 82.8 | 335 ms | 12.1 ms | 4.0 | 0 | 9,924 | 30.0 s |
| Sustained decode | 64K | 8 | Valid | 571.0 | 71.4 | 540 ms | 14.0 ms | 8.0 | 0 | 17,127 | 30.0 s |
| 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 | 99.3 | 99.5 | 376 ms | 10.0 ms | 1.0 | 0 | 2,980 | 30.0 s |
| Sustained decode | 128K | 2 | Valid | 184.2 | 92.2 | 496 ms | 10.8 ms | 2.0 | 0 | 5,526 | 30.0 s |
| Sustained decode | 128K | 4 | Valid | 325.0 | 81.2 | 722 ms | 12.3 ms | 4.0 | 0 | 9,748 | 30.0 s |
| 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 | 256K | 1 | Valid | 97.7 | 98.0 | 751 ms | 10.2 ms | 1.0 | 0 | 2,930 | 30.0 s |
| Sustained decode | 256K | 2 | Valid | 180.0 | 90.2 | 1,043 ms | 11.1 ms | 2.0 | 0 | 5,400 | 30.0 s |
| Sustained decode | 256K | 4 | Over capacity | — | — | — | — | — | — | — | — |
| Sustained decode | 256K | 8 | Over capacity | — | — | — | — | — | — | — | — |
| Sustained decode | 256K | 16 | Over capacity | — | — | — | — | — | — | — | — |
| Sustained decode | 256K | 32 | Over capacity | — | — | — | — | — | — | — | — |
| Sustained decode | 256K | 64 | Over capacity | — | — | — | — | — | — | — | — |
| Sustained decode | 256K | 128 | Over capacity | — | — | — | — | — | — | — | — |
| Sustained decode | 507K | 1 | Valid | 94.5 | 95.1 | 1,784 ms | 10.5 ms | 1.0 | 0 | 2,835 | 30.0 s |
| Sustained decode | 507K | 2 | Over capacity | — | — | — | — | — | — | — | — |
| Sustained decode | 507K | 4 | Over capacity | — | — | — | — | — | — | — | — |
| Sustained decode | 507K | 8 | Over capacity | — | — | — | — | — | — | — | — |
| Sustained decode | 507K | 16 | Over capacity | — | — | — | — | — | — | — | — |
| Sustained decode | 507K | 32 | Over capacity | — | — | — | — | — | — | — | — |
| Sustained decode | 507K | 64 | Over capacity | — | — | — | — | — | — | — | — |
| Sustained decode | 507K | 128 | Over capacity | — | — | — | — | — | — | — | — |
Over capacity: not run because this many requests at this context would exceed the server's KV cache.
