模型压测

7

因为GB10小盒子的显存和内存是共享的,所以在压测前需要将内存损耗降到最低

sysctl -w vm.drop_caches=3

降低之后需要安装虚拟环境进行隔离环境,以前写了很多了就不赘述了

conda activate vllm

在虚拟环境安装 vllm 依赖

pip install vLLM -i https://pypi.tuna.tsinghua.edu.cn/simple

一台机器只部署模型,另外一台机器部署通过vllm bench 命令进行压力测试

压测命令

vllm bench serve --model Qwen3-30B-A3B-FP4 --tokenizer /home/Qwen3-30B-A3B-FP4 --trust-remote-code --request-rate 10 --num-prompts 3000 --host 192.168.8.109 --port 8002 --random_input_lent 512 --random_output_len 512
af7a62bf-6754-459c-aeed-1e919be3f1d3.png

0.19.0版本的压测命令发生了变化,--random_input_lent 和 --random_output_len 参数改为--random-input-len 和 --random-output-len ;

压测的脚本

import subprocess
import os

def main():
    # 配置参数:自定义并发参数序列
    concurrency_params = [10, 30, 50, 80, 100]  # 按需求指定的并发参数
    log_dir = "/home/zero/log"     # 日志保存目录
    # 输入输出长度组合
    io_combinations = [
        (512, 512),    # input=512, output=512
        (512, 1024),   # input=512, output=1024
        (512, 2048),   # input=512, output=2048
        (1024, 1024),  # input=1024, output=1024
        (1024, 2048),  # input=1024, output=2048
        (2048, 2048)   # input=2048, output=2048        
    ]
    
    # 确保日志目录存在
    os.makedirs(log_dir, exist_ok=True)
    
    # 外层循环:遍历输入输出长度组合
    for input_len, output_len in io_combinations:
        print(f"\n===== 开始测试:random_input_len={input_len}, random_output_len={output_len} =====")
        
        # 内层循环:遍历自定义的并发参数
        for param in concurrency_params:
            # 构造命令(已移除 --request-rate 参数)
            cmd = [
                "vllm", "bench", "serve",
                "--model", "Qwen3-30B-A3B-FP4",
                "--tokenizer", "/home/Qwen3-32B-FP4",
                "--trust-remote-code",
                "--num-prompts", str(param),  # 仅保留 num-prompts 参数
                "--host", "192.168.8.125",
                "--port", "8002",
                "--random_input_len", str(input_len),
                "--random_output_len", str(output_len)
            ]
            
            # 日志文件名(去掉了 r{param} 部分,因为已无 request-rate 参数)
            log_filename = f"vllm_bench_n{param}_in{input_len}_out{output_len}.log"
            log_path = os.path.join(log_dir, log_filename)
            
            print(f"\n开始执行: num-prompts={param}")
            print(f"输入长度: {input_len}, 输出长度: {output_len}")
            print(f"日志将保存到: {log_path}")
            
            try:
                # 执行命令并将输出写入日志
                with open(log_path, "w", encoding="utf-8") as log_file:
                    subprocess.run(
                        cmd,
                        stdout=log_file,
                        stderr=subprocess.STDOUT,
                        check=True,
                        text=True
                    )
                print(f"执行完成: num-prompts={param}")
            
            except subprocess.CalledProcessError as e:
                print(f"命令执行失败 (返回码: {e.returncode}),错误日志已保存到 {log_path}")
            except Exception as e:
                print(f"发生意外错误: {str(e)}")
        
        print(f"\n===== 完成测试:random_input_len={input_len}, random_output_len={output_len} =====\n")

if __name__ == "__main__":
    main()

  1. 测试对象与环境

2.1 测试对象

  1. 戴尔 Pro Max with GB10:搭载 NVIDIA Grace/Blackwell 架构 GB10 超级芯片,配备 128GB 统一内存及 2TB/4TB 存储选项,支持双机互联扩展。

  2. 超聚变 GB10 小盒子:未查询到公开的硬件规格、性能参数及产品详情,相关数据待补充。

2.2 测试环境

  1. 硬件环境(戴尔设备):单台 Dell Pro Max with GB10,NVIDIA ConnectX-7 高速网络接口,200G 光口及雷电 4 等扩展接口。

  2. 软件环境(戴尔设备):预装基于 Ubuntu 定制的 DGX OS 7 操作系统,集成 NVIDIA AI Enterprise 套件、TensorRT-LLM 1.1.0rc3、vLLM、SGLang v0.5.3rc0 等推理引擎与开发工具。

  3. 测试工具:vllmbench 压力测试工具,针对不同 AI 模型进行吞吐率与并发能力测算。

2.3 AI 模型推理性能

2.3.1 不同模型适配能力

戴尔 Pro Max with GB10 开源模型部署:FP4 精度 GPT-OSS-120B 及 Qwen3-30B-A3B 模型,使用 TensorRT-LLM 推理引擎。

超聚变 GB10 开源模型部署:FP4 精度 GPT-OSS-120B 及 Qwen3-30B-A3B 模型,使用 TensorRT-LLM 推理引擎。超聚变对这几款模型有做模型调优。

注:由于超聚变有模型加速功能且使用场景较为特殊,以下两款机型的性能对比均为非加速版本!

2.3.2 并发性能测试

2.3.2.1 Qwen3-30B-A3B FP4 模型

2.3.2.1.1 DELL 测试环境

  • 测试硬件设备:1 × Dell Pro Max with GB10

  • 推理引擎:TensorRT-LLM 1.1.0rc2

  • 上下文长度:

    • 1K tokens(Input 512 + Output 512)

    • 2K tokens(Input 1024 + Output 1024)

    • 4K tokens(Input 2048 + Output 2048)

  • 压力测试工具:vllmbench

2.3.2.1.2 DELL 测试结果摘要

  • 1K 上下文场景 100 并发下:

    • 输出吞吐:可达 1021.49 tokens/s

    • 整体吞吐:可达 2043.29 tokens/s

  • 2K 上下文场景 70 并发下:

    • 输出吞吐:可达 755.31 tokens/s

    • 整体吞吐:可达 1507.64 tokens/s

  • 4K 上下文场景 70 并发下:

  • 输出吞吐:可达 735.84 tokens/s

  • 整体吞吐:可达 1476.57 tokens/s

输入长度

输出长度

并发数

Request throughput

(req/s)

Mean TTFT

(ms)

Mean TPOT

(ms)

Mean ITL

(ms)

512

512

100

2.00

408.13

96.34

96.36

512

1024

90

0.97

469.11

90.03

90.05

512

2048

70

0.39

313.95

86.48

86.54

512

4096

60

0.17

231.19

83.81

84.30

1024

1024

70

0.74

1979.83

90.40

90.40

1024

2048

70

0.42

360.26

81.76

81.96

1024

4096

60

0.17

315.27

85.96

86.69

2048

2048

70

0.36

3342.42

92.28

92.33

2048

4096

50

0.15

535.03

82.94

83.52

2.3.2.1.3 超聚变 测试环境

  • 测试硬件设备:1 × 超聚变 GB10

  • 推理引擎:TensorRT-LLM 1.1.0rc2

  • 模型状态:未加速

  • 上下文长度:

    • 1K tokens(Input 512 + Output 512)

    • 2K tokens(Input 1024 + Output 1024)

    • 4K tokens(Input 2048 + Output 2048)

  • 压力测试工具:vllmbench

2.3.2.1.4 超聚变 测试结果摘要

  • 1K 上下文场景 100 并发下:

    • 输出吞吐:可达 1128.29 tokens/s

    • 整体吞吐:可达 2256.59 tokens/s

  • 2K 上下文场景 70 并发下:

    • 输出吞吐:可达 797.54 tokens/s

    • 整体吞吐:可达 1595.08 tokens/s

  • 4K 上下文场景 70 并发下:

  • 输出吞吐:可达 690.85 tokens/s

  • 整体吞吐:可达 1381.71 tokens/s

输入长度

输出长度

并发数

Request throughput

(req/s)

Mean TTFT

(ms)

Mean TPOT

(ms)

Mean ITL

(ms)

512

512

100

2.20

388.61

87.61

87.61

512

512

120

2.54

434.45

91.39

91.39

512

512

150

2.83

616.29

101.88

101.88

512

1024

100

1.07

420.44

90.40

90.40

512

1024

120

1.17

778.55

99.56

99.56

512

2048

70

0.39

239.00

88.42

88.42

512

2048

90

0.45

331.60

98.31

98.31

512

4096

60

0.16

233.25

93.85

93.85

512

4096

80

0.17

348.58

114.31

114.31

1024

1024

70

0.78

365.82

87.22

87.22

1024

2048

70

0.39

354.30

87.14

87.14

1024

4096

60

0.15

363.92

100.05

100.05

2048

2048

70

0.34

856.22

100.60

100.60

2048

4096

50

0.12

534.32

101.67

101.67

2.3.2.1.5 Qwen3-30B-A3B FP4 模型并发测试对比结论

  • 超聚变(未加速状态)优势:1K场景吞吐更高、延迟显著更低,请求吞吐提升10%、输出吞吐和整体吞吐均提升10.5%、1K 场景并发承载能力更强;2K场景超聚变略高于戴尔整体提升幅度变小提升区间在5.6%-5.8%;

  • 戴尔优势:4K 场景吞吐略高于超聚变请求吞吐提升5.6%、输出吞吐和整体吞吐的提升为6.1%和6.4%;

2.3.2.2 GPT-OSS-120B FP4 模型

2.3.2.2.1 DELL 测试环境

  • 测试硬件设备:1 × Dell Pro Max with GB10

  • 推理引擎:TensorRT-LLM 1.1.0rc2

  • 上下文长度:

    • 1K tokens(Input 512 + Output 512)

    • 2K tokens(Input 1024 + Output 1024)

    • 4K tokens(Input 2048 + Output 2048)

  • 压力测试工具:vllmbench

2.3.2.2.2 DELL 测试结果摘要

  • 1K 上下文场景 30 并发下:

    • 输出吞吐:可达 161.55 tokens/s

    • 整体吞吐:可达 322.14 tokens/s

  • 2K 上下文场景 15 并发下:

    • 输出吞吐:可达 143.13 tokens/s

    • 整体吞吐:可达 309.46 tokens/s

  • 4K 上下文场景 15 并发下:

  • 输出吞吐:可达 137.42 tokens/s

  • 整体吞吐:可达 291.82 tokens/s

输入长度

输出长度

并发数

Request throughput

(req/s)

Mean TTFT

(ms)

Mean TPOT

(ms)

Mean ITL

(ms)

512

512

30

0.32

489.83

184.75

184.75

512

1024

10

0.11

128.01

89.01

89.13

1024

1024

15

0.16

593.04

91.42

89.81

2048

2048

15

0.08

762.34

98.92

97.01

2.3.2.2.3 超聚变 测试环境

  • 测试硬件设备:1 × 超聚变 GB10

  • 推理引擎:TensorRT-LLM 1.1.0rc2

  • 模型状态:未加速

  • 上下文长度:

    • 1K tokens(Input 512 + Output 512)

    • 2K tokens(Input 1024 + Output 1024)

    • 4K tokens(Input 2048 + Output 2048)

  • 压力测试工具:vllmbench

2.3.2.2.4 超聚变 测试结果摘要

  • 1K 上下文场景 30 并发下:

    • 输出吞吐:可达 182.70 tokens/s

    • 整体吞吐:可达 365.40 tokens/s

  • 2K 上下文场景 15 并发下:

    • 输出吞吐:可达 140.83 tokens/s

    • 整体吞吐:可达 281.66 tokens/s

  • 4K 上下文场景 15 并发下:

  • 输出吞吐:可达 150.55 tokens/s

  • 整体吞吐:可达 301.10 tokens/s

输入长度

输出长度

并发数

Request throughput

(req/s)

Mean TTFT

(ms)

Mean TPOT

(ms)

Mean ITL

(ms)

512

512

30

0.36

246.17

163.72

163.72

512

1024

10

0.11

148.40

90.95

90.95

1024

1024

15

0.14

190.46

106.31

106.31

2048

2048

15

0.07

342.32

99.36

99.36

2.3.2.2.5 GPT-OSS-120B FP4 模型并发测试对比结论

  • 超聚变(未加速状态)优势:1K 场景吞吐更高、延迟显著更低,请求吞吐相对戴尔提升 12.50%、输出吞吐提升 13.09%、整体吞吐提升 13.43%;2K 场景超聚变 Mean TTFT 延迟相对戴尔降幅达 67.88%,延迟优势突出;4K 场景输出吞吐相对戴尔提升 9.55%、整体吞吐提升 3.18%,Mean TTFT 延迟相对戴尔降幅达 55.10%;

  • 戴尔优势:2K 场景吞吐更优,请求吞吐相对超聚变提升 14.29%、输出吞吐提升 1.62%、整体吞吐提升 9.87%,Mean TPOT 延迟相对超聚变降低 14.02%、Mean ITL 延迟降低 15.52%;4K 场景请求吞吐相对超聚变提升 14.29%,Mean TPOT/ITL 延迟相对超聚变小幅降低 0.44%、2.37%;

2.3.3 稳定性能测试

2.3.3.1 Qwen3-30B-A3B FP4 模型

2.3.3.1.1 DELL 测试环境

  • 测试硬件设备:1 × Dell Pro Max with GB10

  • 推理引擎:TensorRT-LLM 1.1.0rc2

  • 上下文长度:

    • 1K tokens(Input 512 + Output 512)

    • 1.5K tokens(Input 1024 + Output 1024)

  • 压力测试工具:vllmbench

2.3.3.1.2 DELL 测试结果摘要

  • 1K 上下文场景并发下:

    • 输出吞吐:可达 1847.71 tokens/s

    • 整体吞吐:可达 3694.71 tokens/s

  • 1.5K 上下文场景并发下:

    • 输出吞吐:可达 1650.42 tokens/s

    • 整体吞吐:可达 2480.66 tokens/s

测试时间

输入长度

输出长度

总请求数

TTFT(m/s)

TPOT(m/s)

ITL(m/s)

模型运行状态

10分钟

512

512

2000

554.97

151.27

151.27

正常

20分钟

512

1024

2000

626.92

171.35

171.48

正常

2.3.3.1.3 超聚变 测试环境

  • 测试硬件设备:超聚变 GB10

  • 推理引擎:TensorRT-LLM 1.1.0rc2

  • 上下文长度:

    • 1K tokens(Input 512 + Output 512)

    • 1.5K tokens(Input 1024 + Output 1024)

  • 压力测试工具:vllmbench

2.3.3.1.4 超聚变 测试结果摘要

  • 1K 上下文场景并发下:

    • 输出吞吐:可达 1650.46 tokens/s

    • 整体吞吐:可达 3300.93 tokens/s

  • 1.5K 上下文场景并发下:

    • 输出吞吐:可达 1463.39 tokens/s

    • 整体吞吐:可达 2195.09 tokens/s

测试时间

输入长度

输出长度

总请求数

TTFT(m/s)

TPOT(m/s)

ITL(m/s)

模型运行状态

10分钟

512

512

2000

644.24

170.04

170.04

正常

20分钟

512

1024

2000

723.00

195.15

195.15

正常

2.3.3.1.5 Qwen3-30B-A3B FP4 模型稳定性测试对比结论

  • 戴尔优势:1K场景输出吞吐相对超聚变提升约11.95%、整体吞吐提升约11.93%,Mean TTFT延迟降低约13.86%、Mean TPOT/ITL延迟降低约11.04%;1.5K场景输出吞吐相对超聚变提升约12.78%、整体吞吐提升约13.01%,Mean TTFT延迟降低约13.29%、Mean TPOT/ITL延迟降低约12.19%;