GLM-5.3 Day-1 Benchmark: SGLang vs. vLLM Baseline on 8×H20¶
On 2026-08-30, I deployed GLM-5.3 native FP8 weights on the same single node of 8×141GB NVIDIA H20-3e using SGLang and vLLM respectively, and completed 9 Target-only baseline cases. Both engines were load-tested by the same vllm bench serve client, with each case run 3 times; this article uses the median of the three runs.
GLM-5.3 is a MoE text model with approximately 743B total parameters and 39B activated parameters, using DSA, 256 routed experts (8 activated per token), one native MTP layer, and a declared 1,048,576-token context. The default zai-org/GLM-5.3 is the native FP8 checkpoint; BF16 weights are in a separate repository.
Key Findings¶
- Both engines each produced 27 complete result files, 54 JSON files in total, with 7,680 completed requests and 0 failed requests;
- SGLang achieved higher output throughput in all 9 cases, 7.3%–57.4% higher than vLLM;
- For 128/64 short requests, SGLang's P50 TTFT was 46.0%–75.4% lower;
- For 4K/16K prefill, vLLM had lower P50 TTFT, but SGLang had better output throughput and P50 E2E;
- These results only represent the 128K Target-only baseline with MTP, Prefix Cache, HiCache, and Context Parallelism disabled, and do not represent the final ranking with each engine's best optimizations enabled.
Test Environment and Methodology¶
| Item | Configuration |
|---|---|
| Model | zai-org/GLM-5.3, Native FP8, 141 Safetensors shards |
| GPU | Single node 8×NVIDIA H20-3e, 141GB per card, TP8 |
| Context | 131,072 tokens |
| SGLang | Pinned linux/amd64 image Digest sha256:bde16a…fd74bf; archived version file is empty, so no semantic version is declared |
| vLLM | 0.28.0, pinned linux/amd64 image Digest sha256:2286e8…b06635 |
| KV Cache | SGLang uses Hopper default BF16; vLLM uses auto |
| Optimization switches | MTP, Prefix Cache, HiCache, Context Parallelism all disabled |
| Client | Both sides uniformly use vllm bench serve, identical random request set and parameters |
| Statistics | 3 rounds per case, table takes per-metric median; fastest round is not selected |
Baseline Benchmark Results¶
Throughput is Output Token Throughput. TTFT delta is computed per (SGLang / vLLM - 1) × 100%; negative values mean SGLang produces the first token faster.
| Case | SGLang output tok/s | vLLM output tok/s | Throughput delta | SGLang P50 TTFT | vLLM P50 TTFT | TTFT delta |
|---|---|---|---|---|---|---|
| 128/64, C1 | 90.41 | 69.27 | +30.5% | 54.29ms | 210.45ms | -74.2% |
| 128/64, C4 | 288.50 | 183.33 | +57.4% | 98.30ms | 400.31ms | -75.4% |
| 128/64, C8 | 459.47 | 330.82 | +38.9% | 142.10ms | 392.56ms | -63.8% |
| 128/64, C16 | 656.41 | 601.02 | +9.2% | 210.48ms | 439.92ms | -52.2% |
| 128/64, C32 | 964.25 | 814.68 | +18.4% | 443.91ms | 821.37ms | -46.0% |
| 4K/128, C4 | 100.07 | 93.31 | +7.3% | 3,446.90ms | 2,752.07ms | +25.2% |
| 4K/128, C8 | 115.40 | 103.63 | +11.4% | 5,913.69ms | 1,902.32ms | +210.9% |
| 16K/256, C4 | 53.57 | 49.76 | +7.6% | 12,429.06ms | 10,464.75ms | +18.8% |
| 16K/256, C8 | 57.67 | 53.24 | +8.3% | 20,281.42ms | 12,540.84ms | +61.7% |
Short Requests: SGLang Wins Both Throughput and First Token¶

In the 128/64 cases, SGLang maintained higher throughput and lower TTFT from C1 to C32. At C32, output throughput reached 964.25 tok/s versus vLLM's 814.68 tok/s; P50 TTFT was 443.91ms and 821.37ms respectively. For chat and short agent calls, SGLang's advantage is clearest under this configuration.

4K/16K Prefill: vLLM Produces the First Token Earlier, SGLang Finishes Earlier¶

With 4K and 16K inputs, vLLM's P50 TTFT is lower, especially 4K/C8 at 1.90s versus 5.91s. However, at fixed output length, SGLang's decode is faster, and P50 E2E across the four RAG cases remains about 6.2%–10.6% lower than vLLM. Therefore, first-token-sensitive RAG interactions and batch processing that prioritizes total completion time/throughput may lead to different engine choices.
Data Quality and Conclusion Boundaries¶
- All 54 result files are parseable; every case has 3 rounds,
failed=0, and the error string is empty; - SGLang's
short-128-64-c4third round overlapped with an OpenWebUI request, and throughput was lower than the other two rounds; this article still takes the three-round median as pre-agreed, with the first two rounds at 288.93 and 288.50 tok/s respectively; - SGLang's batch run was interrupted on first execution and resumed from the remaining cases; aggregation only includes the 27 rounds that wrote complete JSON, excluding unfinished rounds;
- Both services passed
/v1/models, streaming/non-streaming Chat Completion, three reasoning levels, Tool Call, multi-turn dialogue, and error-input acceptance, and were connected to OpenWebUI during testing; functional responses are retained only in the internal audit archive, and a single smoke test does not substitute for production stability conclusions; - After benchmarking, both workloads were scaled down to 0 and all 8 H20 GPUs were released; the OpenWebUI connection configuration is retained and can be reused for future scaling;
- MTP, FP8 KV, Prefix Cache, 32K–1M Needle, power consumption, and GPU memory curves are not yet included in this comparison.
Per-request raw JSON contains random prompts and generated text and is not publicly released. The repository provides a desensitized per-case aggregated CSV with throughput, P50/P95/P99 TTFT, TPOT, E2E, and request counts, so the tables in this article can be recomputed.
Official Support Boundaries¶
| Route | Boundaries currently stated in official materials | Positioning in this round |
|---|---|---|
| vLLM 0.28.0+ | Recipe explicitly lists single-node 8×H20/H200 141GB for FP8; full 1M context points to 8×B200 | Primary H20 validation route |
SGLang latest/pre-release |
Cookbook already supports GLM-5.3, DSA, MTP, Reasoning, Tool Call, HiCache, and Context Parallelism; hardware matrix lists H200 but does not name H20 | Hopper compatibility hands-on route; not documented as official H20 validation until Ready |
This differs from the Hy4-preview MXFP8/SM100 limitation. GLM-5.3's default FP8 weights can start from a single node of 8×141GB H20 without first preparing a BF16 dual-node setup.
Reproduction Materials¶
This round of testing used a single node of 8×H20, TP8, and a 128K serving window, with MTP, Prefix Cache, HiCache, and Context Parallelism disabled. Both engines serially reused the same node, completing 27 baseline rounds each through the same client and case set; per-item configuration, sample counts, and statistical methodology are described above.
The reproduction directory provides pinned images, model pre-checks, functional acceptance, and benchmark scripts, with the results directory retaining public aggregated data. Unfinished optimization and long-context experiments are not included in this article's conclusions.
Public Artifacts¶
Executable materials are in examples/glm53-day1/: image baselines, case matrix, weight pre-checks, functional smoke tests, benchmarks, Prefix Cache, and Needle. results/ provides desensitized aggregated CSV; per-request raw results containing random prompts and generated text are retained only in the internal audit archive. The three figures in this article were generated by scripts/generate_glm53_day1_assets.py reading the public aggregated CSV directly.
Further Reading: GLM-5.3-Flash Hands-on on 4×H20¶
This article tested the GLM-5.3 text model with approximately 743B total parameters and 39B activated parameters, establishing a 128K Target-only baseline on 8×H20 with TP8. A lighter GLM-5.3-Flash was also tested previously: approximately 320B total parameters and 18B activated parameters, on 4×H20 with TP4, natively supporting multimodal and 1M context.
In the Flash tests, both SGLang and vLLM completed near-1M-token cold prefill and Needle retrieval; vLLM was faster at high concurrency and 1K decode, while SGLang had a more complete functional loop for Reasoning, Tool Call, images, Prefix Cache, and OpenWebUI. Both engines exhibited tail latency from first-time JIT compilation on new shapes, so the same per-round archiving and three-round median approach was used rather than publishing only the best result.
Full results are available at: GLM-5.3-Flash Day 1 Hands-on: 4×H20 Deployment, 1M Context, and SGLang/vLLM Comparison.