NVIDIA A100 GPUs 上的 Qwen3-235B-A22B 吞吐量优化 结论
Qwen3-235B-A22B-Instruct-2507 在 A100 GPUs 上的吞吐量优化推荐配置:
推理服务命令 vllm serve Qwen/Qwen3-235B-A22B-Instruct-2507-FP8 -tp 4
优化前后的基准测试结果对比:
基准测试用例 基准配置(未做任何优化的 vLLM) 优化后 ShareGPT Total TPS: 3792.50 Mean TPOT(ms): 123.36 Total TPS: 3019.19x2 (+59.2%) Mean TPOT(ms): 150.72 短提示词 Total TPS: 7449.43 Mean TPOT(ms): 155.16 Total TPS: 4961.66x2 (+33.2%) Mean TPOT(ms): 265.87 中等长度提示词 Total TPS: 9342.67 Mean TPOT(ms): 190.79 Total TPS: 5333.91x2 (+14.2%) Mean TPOT(ms): 342.39 长提示词 Total TPS: 8170.72 Mean TPOT(ms): 205.64 Total TPS: 4633.41x2 (+13.4%) Mean TPOT(ms): 347.13 超长提示词 Total TPS: 6657.49 Mean TPOT(ms): 298.86 Total TPS: 4132.51x2 (+24.1%) Mean TPOT(ms): 481.71
说明
基准测试未覆盖所有可能的优化组合。例如,我们会选择默认配置下表现最好的推理引擎作为后续调优的起点。这种剪枝方式得到的是局部最优解,未必是全局最优解。 其他优化方法取决于具体使用场景,包括最大批大小、调度配置、扩展 KV cache、CUDA graph、Torch Compile 等。本文结论可作为进一步针对性优化的起点。 测试基于特定的硬件和软件环境。推理引擎的改进可能带来新的结论。 量化可能影响准确率,但对于大多数模型,FP8 量化的准确率下降可控制在 1% 以内。详情参见评估结果 。因此,强烈建议在高吞吐量推理服务场景中使用 FP8 量化。 如有遗漏或需要根据最新变化更新的内容,请告诉我们 。
优化目标 在高并发请求场景下实现高吞吐量。
实验环境 模型 Qwen3-235B-A22B-Instruct-2507
硬件 单节点配备 8 × NVIDIA A100 SXM 80GB GPU。
引擎版本 vLLM: v0.11.0 SGLang: v0.5.5.post1 基准测试数据集 ShareGPT 不同序列长度的随机数据集: 超长提示词:32000 输入 tokens,100 输出 tokens 长提示词:4000 输入 tokens,200 输出 tokens 中等长度提示词:2000 输入 tokens,100 输出 tokens 短提示词:128 输入 tokens,4 输出 tokens 基准测试脚本 使用 vLLM bench CLI 工具对模型性能进行基准测试。运行基准测试的命令如下:
# Prepare the ShareGPT dataset
wget https://huggingface.co/datasets/anon8231489123/ShareGPT_Vicuna_unfiltered/resolve/main/ShareGPT_V3_unfiltered_cleaned_split.json
# Benchmark on ShareGPT dataset
vllm bench serve --model Qwen/Qwen3-235B-A22B-Instruct-2507 --backend openai-chat --endpoint /v1/chat/completions --dataset-name sharegpt --dataset-path ShareGPT_V3_unfiltered_cleaned_split.json --num-prompts 1000
# Benchmark on random dataset (fixed seed for reproducibility)
vllm bench serve --model Qwen/Qwen3-235B-A22B-Instruct-2507 --backend openai-chat --endpoint /v1/chat/completions --dataset-name random --random-input-len 4000 --random-output-len 200 --num-prompts 500 --seed 42
实验结果 1. 选择推理引擎 vLLM
推理服务脚本 vllm serve Qwen/Qwen3-235B-A22B-Instruct-2507 -tp 8
基准测试结果 ============ Serving Benchmark Result ============
Successful requests: 1000
Benchmark duration (s): 109.00
Total input tokens: 217393
Total generated tokens: 196004
Request throughput (req/s): 9.17
Output token throughput (tok/s): 1798.14
Peak output token throughput (tok/s): 3297.00
Peak concurrent requests: 1000.00
Total Token throughput (tok/s): 3792.50
---------------Time to First Token----------------
Mean TTFT (ms): 38065.91
Median TTFT (ms): 37597.63
P99 TTFT (ms): 77082.58
-----Time per Output Token (excl. 1st token)------
Mean TPOT (ms): 123.36
Median TPOT (ms): 103.68
P99 TPOT (ms): 448.36
---------------Inter-token Latency----------------
Mean ITL (ms): 100.76
Median ITL (ms): 86.83
P99 ITL (ms): 185.41
==================================================
SGLang
推理服务脚本 python3 -m sglang.launch_server --model-path Qwen/Qwen3-235B-A22B-Instruct-2507 --tp-size 8
基准测试结果 ============ Serving Benchmark Result ============
Successful requests: 1000
Benchmark duration (s): 89.35
Total input tokens: 217393
Total generated tokens: 196763
Request throughput (req/s): 11.19
Output token throughput (tok/s): 2202.21
Peak output token throughput (tok/s): 4926.00
Peak concurrent requests: 1000.00
Total Token throughput (tok/s): 4635.31
---------------Time to First Token----------------
Mean TTFT (ms): 21130.67
Median TTFT (ms): 15483.85
P99 TTFT (ms): 51960.77
-----Time per Output Token (excl. 1st token)------
Mean TPOT (ms): 235.10
Median TPOT (ms): 163.74
P99 TPOT (ms): 1171.03
---------------Inter-token Latency----------------
Mean ITL (ms): 136.35
Median ITL (ms): 86.55
P99 ITL (ms): 500.15
==================================================
结果:SGLang(4635.31 tok/s) > vLLM (3792.50 tok/s)
2. vLLM 中的 量化 SGLang 无法在 A100 GPU 上运行 FP8 量化模型。vLLM 通过 Marlin 内核支持在 A100 GPU 上以 w8a16 量化方式运行。
vLLM FP8
推理服务脚本 # TP8 only is not compatible for the model weight. Use EP as well.
vllm serve Qwen/Qwen3-235B-A22B-Instruct-2507-FP8 -tp 8 --enable-expert-parallel
基准测试结果 ============ Serving Benchmark Result ============
Successful requests: 1000
Benchmark duration (s): 110.68
Total input tokens: 217393
Total generated tokens: 196648
Request throughput (req/s): 9.04
Output token throughput (tok/s): 1776.73
Peak output token throughput (tok/s): 3106.00
Peak concurrent requests: 1000.00
Total Token throughput (tok/s): 3740.89
---------------Time to First Token----------------
Mean TTFT (ms): 37366.87
Median TTFT (ms): 35525.98
P99 TTFT (ms): 78616.18
-----Time per Output Token (excl. 1st token)------
Mean TPOT (ms): 115.74
Median TPOT (ms): 109.21
P99 TPOT (ms): 228.96
---------------Inter-token Latency----------------
Mean ITL (ms): 101.28
Median ITL (ms): 91.72
P99 ITL (ms): 235.47
==================================================
3. vLLM 中的 并行策略 TP4
推理服务脚本 vllm serve Qwen/Qwen3-235B-A22B-Instruct-2507-FP8 -tp 4
基准测试结果 ============ Serving Benchmark Result ============
Successful requests: 1000
Benchmark duration (s): 136.64
Total input tokens: 217393
Total generated tokens: 195140
Request throughput (req/s): 7.32
Output token throughput (tok/s): 1428.16
Peak output token throughput (tok/s): 2852.00
Peak concurrent requests: 1000.00
Total Token throughput (tok/s): 3019.19
---------------Time to First Token----------------
Mean TTFT (ms): 45879.29
Median TTFT (ms): 43216.75
P99 TTFT (ms): 99903.30
-----Time per Output Token (excl. 1st token)------
Mean TPOT (ms): 150.72
Median TPOT (ms): 143.39
P99 TPOT (ms): 297.17
---------------Inter-token Latency----------------
Mean ITL (ms): 131.17
Median ITL (ms): 119.69
P99 ITL (ms): 311.46
==================================================
TP4 EP4
推理服务脚本 vllm serve Qwen/Qwen3-235B-A22B-Instruct-2507-FP8 -tp 4 --enable-expert-parallel
基准测试结果 ============ Serving Benchmark Result ============
Successful requests: 1000
Benchmark duration (s): 146.74
Total input tokens: 217393
Total generated tokens: 195590
Request throughput (req/s): 6.81
Output token throughput (tok/s): 1332.94
Peak output token throughput (tok/s): 2501.00
Peak concurrent requests: 1000.00
Total Token throughput (tok/s): 2814.47
---------------Time to First Token----------------
Mean TTFT (ms): 48930.06
Median TTFT (ms): 45498.27
P99 TTFT (ms): 106740.39
-----Time per Output Token (excl. 1st token)------
Mean TPOT (ms): 161.49
Median TPOT (ms): 154.84
P99 TPOT (ms): 329.32
---------------Inter-token Latency----------------
Mean ITL (ms): 140.35
Median ITL (ms): 128.38
P99 ITL (ms): 340.60
==================================================
4. vLLM 中的 最大批处理 Token 数 推理服务脚本 vllm serve Qwen/Qwen3-235B-A22B-Instruct-2507-FP8 -tp 4 --max-num-batched-tokens 4096
基准测试结果 # --max-num-batched-tokens 4096
============ Serving Benchmark Result ============
Successful requests: 1000
Benchmark duration (s): 136.64
Total input tokens: 217393
Total generated tokens: 195953
Request throughput (req/s): 7.32
Output token throughput (tok/s): 1434.07
Peak output token throughput (tok/s): 2784.00
Peak concurrent requests: 1000.00
Total Token throughput (tok/s): 3025.05
---------------Time to First Token----------------
Mean TTFT (ms): 45389.84
Median TTFT (ms): 41651.71
P99 TTFT (ms): 98975.37
-----Time per Output Token (excl. 1st token)------
Mean TPOT (ms): 155.37
Median TPOT (ms): 142.48
P99 TPOT (ms): 509.56
---------------Inter-token Latency----------------
Mean ITL (ms): 131.19
Median ITL (ms): 114.03
P99 ITL (ms): 395.26
==================================================
# --max-num-batched-tokens 8192
============ Serving Benchmark Result ============
Successful requests: 1000
Benchmark duration (s): 137.59
Total input tokens: 217393
Total generated tokens: 195781
Request throughput (req/s): 7.27
Output token throughput (tok/s): 1422.97
Peak output token throughput (tok/s): 2724.00
Peak concurrent requests: 1000.00
Total Token throughput (tok/s): 3003.01
---------------Time to First Token----------------
Mean TTFT (ms): 45405.05
Median TTFT (ms): 41603.31
P99 TTFT (ms): 99900.26
-----Time per Output Token (excl. 1st token)------
Mean TPOT (ms): 157.10
Median TPOT (ms): 143.37
P99 TPOT (ms): 561.98
---------------Inter-token Latency----------------
Mean ITL (ms): 132.24
Median ITL (ms): 120.38
P99 ITL (ms): 306.32
==================================================
优化选项汇总 优化选项 吞吐量提升 引擎选择 +22.2% 量化 - 并行策略 +59.2% 注意力后端 - 最大批处理 Token 数 -
其他基准测试用例 我们进一步对优化后的配置进行了基准测试,评估其在不同工作负载下的泛化表现。
基准配置的推理服务脚本 vllm serve Qwen/Qwen3-235B-A22B-Instruct-2507 -tp 8
基准配置的测试结果 # random 32K input
============ Serving Benchmark Result ============
Successful requests: 100
Benchmark duration ( s) : 481 .89
Total input tokens: 3200000
Total generated tokens: 8191
Request throughput ( req/s) : 0 .21
Output token throughput ( tok/s) : 17 .00
Peak output token throughput ( tok/s) : 140 .00
Peak concurrent requests: 100 .00
Total Token throughput ( tok/s) : 6657 .49
---------------Time to First Token----------------
Mean TTFT ( ms) : 240229 .05
Median TTFT ( ms) : 240137 .10
P99 TTFT ( ms) : 475251 .39
-----Time per Output Token ( excl. 1st token) ------
Mean TPOT ( ms) : 298 .86
Median TPOT ( ms) : 307 .94
P99 TPOT ( ms) : 311 .82
---------------Inter-token Latency----------------
Mean ITL ( ms) : 295 .13
Median ITL ( ms) : 303 .36
P99 ITL ( ms) : 370 .10
==================================================
# random 4K input
============ Serving Benchmark Result ============
Successful requests: 500
Benchmark duration ( s) : 255 .70
Total input tokens: 1997942
Total generated tokens: 91352
Request throughput ( req/s) : 1 .96
Output token throughput ( tok/s) : 357 .26
Peak output token throughput ( tok/s) : 1403 .00
Peak concurrent requests: 500 .00
Total Token throughput ( tok/s) : 8170 .72
---------------Time to First Token----------------
Mean TTFT ( ms) : 122190 .64
Median TTFT ( ms) : 121615 .01
P99 TTFT ( ms) : 244882 .42
-----Time per Output Token ( excl. 1st token) ------
Mean TPOT ( ms) : 205 .64
Median TPOT ( ms) : 220 .33
P99 TPOT ( ms) : 237 .80
---------------Inter-token Latency----------------
Mean ITL ( ms) : 204 .69
Median ITL ( ms) : 239 .57
P99 ITL ( ms) : 246 .21
==================================================
# random 2K input
============ Serving Benchmark Result ============
Successful requests: 500
Benchmark duration ( s) : 112 .15
Total input tokens: 998175
Total generated tokens: 49632
Request throughput ( req/s) : 4 .46
Output token throughput ( tok/s) : 442 .54
Peak output token throughput ( tok/s) : 1691 .00
Peak concurrent requests: 500 .00
Total Token throughput ( tok/s) : 9342 .67
---------------Time to First Token----------------
Mean TTFT ( ms) : 54722 .50
Median TTFT ( ms) : 54532 .60
P99 TTFT ( ms) : 106756 .03
-----Time per Output Token ( excl. 1st token) ------
Mean TPOT ( ms) : 190 .79
Median TPOT ( ms) : 208 .61
P99 TPOT ( ms) : 209 .09
---------------Inter-token Latency----------------
Mean ITL ( ms) : 189 .23
Median ITL ( ms) : 208 .52
P99 ITL ( ms) : 211 .58
==================================================
# random 128 input
============ Serving Benchmark Result ============
Successful requests: 1000
Benchmark duration ( s) : 17 .68
Total input tokens: 127698
Total generated tokens: 4000
Request throughput ( req/s) : 56 .56
Output token throughput ( tok/s) : 226 .26
Peak output token throughput ( tok/s) : 948 .00
Peak concurrent requests: 1000 .00
Total Token throughput ( tok/s) : 7449 .43
---------------Time to First Token----------------
Mean TTFT ( ms) : 12767 .63
Median TTFT ( ms) : 12409 .68
P99 TTFT ( ms) : 17339 .37
-----Time per Output Token ( excl. 1st token) ------
Mean TPOT ( ms) : 155 .16
Median TPOT ( ms) : 158 .22
P99 TPOT ( ms) : 168 .04
---------------Inter-token Latency----------------
Mean ITL ( ms) : 116 .37
Median ITL ( ms) : 157 .64
P99 ITL ( ms) : 179 .04
==================================================
优化后的推理服务脚本 vllm serve Qwen/Qwen3-235B-A22B-Instruct-2507-FP8 -tp 4
优化后的测试结果 # random 32K input
============ Serving Benchmark Result ============
Successful requests: 100
Benchmark duration ( s) : 776 .36
Total input tokens: 3200000
Total generated tokens: 8300
Request throughput ( req/s) : 0 .13
Output token throughput ( tok/s) : 10 .69
Peak output token throughput ( tok/s) : 152 .00
Peak concurrent requests: 100 .00
Total Token throughput ( tok/s) : 4132 .51
---------------Time to First Token----------------
Mean TTFT ( ms) : 387908 .55
Median TTFT ( ms) : 387968 .52
P99 TTFT ( ms) : 766523 .82
-----Time per Output Token ( excl. 1st token) ------
Mean TPOT ( ms) : 481 .71
Median TPOT ( ms) : 496 .29
P99 TPOT ( ms) : 513 .27
---------------Inter-token Latency----------------
Mean ITL ( ms) : 476 .10
Median ITL ( ms) : 490 .85
P99 ITL ( ms) : 612 .03
==================================================
# random 4K input
============ Serving Benchmark Result ============
Successful requests: 500
Benchmark duration ( s) : 450 .71
Total input tokens: 1997942
Total generated tokens: 90389
Request throughput ( req/s) : 1 .11
Output token throughput ( tok/s) : 200 .55
Peak output token throughput ( tok/s) : 1066 .00
Peak concurrent requests: 500 .00
Total Token throughput ( tok/s) : 4633 .41
---------------Time to First Token----------------
Mean TTFT ( ms) : 216485 .01
Median TTFT ( ms) : 215365 .76
P99 TTFT ( ms) : 436587 .02
-----Time per Output Token ( excl. 1st token) ------
Mean TPOT ( ms) : 347 .13
Median TPOT ( ms) : 371 .93
P99 TPOT ( ms) : 412 .29
---------------Inter-token Latency----------------
Mean ITL ( ms) : 344 .46
Median ITL ( ms) : 425 .81
P99 ITL ( ms) : 436 .76
==================================================
# random 2K input
============ Serving Benchmark Result ============
Successful requests: 500
Benchmark duration ( s) : 196 .42
Total input tokens: 998175
Total generated tokens: 49495
Request throughput ( req/s) : 2 .55
Output token throughput ( tok/s) : 251 .99
Peak output token throughput ( tok/s) : 1116 .00
Peak concurrent requests: 500 .00
Total Token throughput ( tok/s) : 5333 .91
---------------Time to First Token----------------
Mean TTFT ( ms) : 95261 .76
Median TTFT ( ms) : 94982 .78
P99 TTFT ( ms) : 189238 .63
-----Time per Output Token ( excl. 1st token) ------
Mean TPOT ( ms) : 342 .39
Median TPOT ( ms) : 376 .64
P99 TPOT ( ms) : 377 .99
---------------Inter-token Latency----------------
Mean ITL ( ms) : 339 .59
Median ITL ( ms) : 376 .62
P99 ITL ( ms) : 380 .69
==================================================
# random 128 input
============ Serving Benchmark Result ============
Successful requests: 1000
Benchmark duration ( s) : 26 .54
Total input tokens: 127698
Total generated tokens: 4000
Request throughput ( req/s) : 37 .67
Output token throughput ( tok/s) : 150 .70
Peak output token throughput ( tok/s) : 311 .00
Peak concurrent requests: 1000 .00
Total Token throughput ( tok/s) : 4961 .66
---------------Time to First Token----------------
Mean TTFT ( ms) : 17260 .17
Median TTFT ( ms) : 17240 .71
P99 TTFT ( ms) : 26154 .32
-----Time per Output Token ( excl. 1st token) ------
Mean TPOT ( ms) : 265 .87
Median TPOT ( ms) : 272 .95
P99 TPOT ( ms) : 278 .77
---------------Inter-token Latency----------------
Mean ITL ( ms) : 199 .40
Median ITL ( ms) : 272 .50
P99 ITL ( ms) : 288 .23
==================================================