测试日期:2026-05-22 ~ 2026-05-24

硬件环境:Intel Arc Pro B60 × 8(单卡48GB GDDR6,16 Tile,总计384GB显存)
软件环境:Ubuntu 22.04 / Docker CE / intel/llm-scaler-vllm:0.14.0-b8.2.1 / Python 3.12
报告版本:V1.6(极限并发压测 + 负载均衡部署版)

结论:大显存支持下的生产力工具,一台同时服务600人,总吞吐 1,345 Tokens/S的生产力工具

一、测试背景与目标

1.1 背景

本次测试基于 Intel Arc Pro B60 GPU(单卡48GB,8卡共384GB,16个Level Zero Tile),针对 Qwen3.5/3.6 系列模型在 vLLM-XPU 后端上的部署可行性进行极限验证。核心目标包括:验证 vLLM-XPU 在 B60 上的实际部署可行性;对比不同 Tensor Parallel(TP)规模及 Pipeline Parallel(PP)组合下的性能表现;探索 2卡/4卡/8卡/16 Tile 全用的极限并发性能;深入分析多卡扩展效率及通信开销对性能的影响;最终确定单台 8卡 B60 服务器的最优部署架构。

1.2 测试目标

完成 Docker + vLLM-XPU 环境搭建与基础功能验证;测试 Qwen3.5-27B-BF16 在 llm-scaler 下游镜像上的多卡部署与 benchmark(TP=2/4/8/16);通过不同并发度、不同输入输出长度的压测,绘制完整性能曲线;分析 2卡 TP=4 反超 4卡/8卡 的反常现象,定位通信瓶颈;确定 8卡服务器在负载均衡架构下的最大客户承载能力。

二、环境搭建过程

2.1 硬件确认(修正版)

原文档 V1.2 将单卡显存误记为 24GB,经本次实测重新确认:B60 采用双 Tile 封装,每 Tile 24GB GDDR6,单卡物理显存 48GB,但 vLLM/IPEX 以 Tile 为最小调度单元,每个 Worker 进程只能看到所属 Tile 的 24GB 独立地址空间。

项目

规格

GPU 型号

Intel Arc Pro B60 Graphics (Dual-Tile)

架构

Xe2-HPG (Battlemage),双 Tile 封装

单 Tile 显存

24GB GDDR6

单卡显存

48GB GDDR6(2 Tile × 24GB)

显存带宽

192 GB/s(每 Tile)/ 384 GB/s(每卡合计)

GPU 数量

8 张物理卡

Level Zero 设备

16 个(每卡 2 个 Tile)

总显存

384GB(16 Tile × 24GB)

互联方式

PCIe 4.0 x16(卡间),EMIB/MDFI(卡内 Tile 间)

服务器

x86 平台,Ubuntu 22.04

单卡算力

FP16: ~60 TFLOPS(2 Tile)

表 2-1:B60 硬件规格(V1.6 修正版)

2.2 软件栈安装

Docker CE 安装、镜像加速器配置、vLLM-XPU 镜像拉取、Ray 安装等步骤同 V1.2 文档,此处不再赘述。

三、关键依赖问题与解决

问题1~3(Docker 未安装、Hub 拉取超时、缺少 benchmark 脚本)同 V1.2,此处记录新增问题。

3.1 新增问题记录

序号

问题描述

发生场景

解决方案

状态

4

单卡 TP=2 驱动资源冲突

1 卡内 2 Tile 做 TP

vLLM MultiprocExecutor 同卡多进程不支持;需至少 2 卡分散进程

❌ 架构限制

5

单卡 TP=1+PP=2 OOM

1 卡部署 Qwen3.5-27B

需至少 2 卡(TP=4 或 TP=2+PP=2)

❌ 物理限制

6

2卡 TP=2+PP=2 并发死锁

并发 ≥ 2

改用纯 TP 架构,禁用 PP

✅ 已解决

7

8卡 TP=16 启动失败

Attention heads (24) 不能被 16 整除

改用 TP=8+PP=2

❌ 架构限制

8

2卡 TP=4 性能反超 4卡

并发 10

属正常架构优势(同卡 EMIB 高速通道)

✅ 已验证

表 3-1:关键问题记录(V1.6 新增)

四、vLLM 选择历程

选型对比同 V1.2:intel/vllm:0.17.0-xpu 对 Qwen3.5/3.6 的 GDN 注意力机制无 XPU 适配;llm-scaler 是 Intel 官方维护的 vLLM 下游优化分支,在 0.14.0-b8.x 版本中已增加对 Qwen3.5 的 XPU 支持。本次极限测试全部基于 llm-scaler-vllm:0.14.0-b8.2.1 镜像。

五、模型测试详情

5.1 测试模型清单

Qwen3.5-27B-BF16(官方,54GB,llm-scaler 可用)为本次极限测试的唯一目标模型。

5.2 单卡 TP=1+PP=2 测试(OOM,显存物理限制)

测试命令:vllm serve ... --tensor-parallel-size 1 --pipeline-parallel-size 2

结果:❌ OOM。报错:torch.OutOfMemoryError: XPU out of memory. GPU 0 total capacity 23.91 GiB, allocated 23.12 GiB。

根因:PP=2 将 54GB BF16 权重切分为 2 个 Stage,每 Stage 27GB。每 Stage 的 Worker 进程只能看到所属 Tile 的 24GB 独立地址空间,27GB > 24GB,物理不可行。

5.3 单卡 TP=2 测试(驱动资源冲突,架构限制)

测试命令:vllm serve ... --tensor-parallel-size 2

结果:❌ 启动失败。报错:RuntimeError: level_zero backend failed with error: 40 (UR_RESULT_ERROR_OUT_OF_RESOURCES)

根因:vLLM 的 MultiprocExecutor 为 TP=2 启动 2 个 Worker 进程,同卡内 2 个 Tile 共享底层 Level Zero 驱动资源,Worker_TP0 占用后 Worker_TP1 申请资源时返回资源耗尽。

5.4 2卡 TP=2+PP=2 测试(废弃配置,并发死锁)

测试命令:Ray + vllm serve ... --tensor-parallel-size 2 --pipeline-parallel-size 2

结果:✅ 可启动,串行吞吐 9.17 tok/s,但并发 ≥ 2 即触发 Ray PP 调度死锁,请求卡死超过 5 分钟。

结论:此配置已废弃,不具备任何生产价值。

5.5 2卡 TP=4 测试(重大发现,最优配置)

测试命令:vllm serve ... --tensor-parallel-size 4(无需 Ray,MultiprocExecutor 直接启动 4 个 Worker 进程分布在 2 张卡上)

结果:✅ 启动成功。每 Tile 13.5GB 权重,同卡内 Tile 间通过 EMIB/MDFI 高速互联,allreduce 开销远低于 PCIe。

显存监控:并发 10 负载态下,Device 0/1 显存利用率 96.45%/94.75%,GPU 利用率 22.22%,功耗 84W/78W,频率 2400MHz。

5.6 4卡 TP=4 测试(历史实测)

结果:✅ 启动成功。并发 10 吞吐 91.35 tok/s,最大并发 48x。

5.7 8卡 TP=8 测试(历史实测)

结果:✅ 启动成功。并发 10 吞吐 88.98 tok/s,最大并发 86x。

5.8 8卡 TP=16 测试(失败,Attention Heads 不整除)

测试命令:vllm serve ... --tensor-parallel-size 16

结果:❌ 启动失败。报错:Value error, Total number of attention heads (24) must be divisible by tensor parallel size (16).

根因:Qwen3.5-27B 的 attention heads = 24,TP=16 时 24/16 = 1.5,非整数。vLLM 的 tensor parallel 切分要求 heads 数必须被 TP 整除。

5.9 8卡 TP=8+PP=2 测试(16 Tile 全用,重新实测)

测试命令:Ray + vllm serve ... --tensor-parallel-size 8 --pipeline-parallel-size 2

结果:✅ 启动成功。world_size=16,每 Tile 仅 3.4GB 权重,KV Cache 容量 475,392 tokens,最大并发 212x。

重新实测:并发 10 吞吐 81.62 tok/s(高于历史 75.87 tok/s,旧数据可能受当时环境波动影响)。

六、多卡 Benchmark 深度测试

6.1 2卡 TP=4 极限并发压测完整曲线

测试方法:基于 urllib + concurrent.futures,输入约 1024 tokens,输出 max_tokens=256,timeout=300~600s。

并发度

请求数

成功/失败

总耗时(s)

平均延迟(s)

P90(s)

P99(s)

QPS

Output tok/s

状态

1

20

20/20

22.473

22.543

0.044

11.39

串行基准

10

50

50/50

29.661

30.388

0.337

86.30

轻度负载

20

50

50/50

32.708

33.862

0.519

132.78

中度负载

50

50

50/50

47.357

48.119

1.038

260.58

接近饱和

100

50

50/50

47.254

48.022

1.041

261.15

饱和平台

100

100

100/100

82.801

81.321

82.568

82.711

1.208

303.14

突破平台

125

125

125/125

100.012

98.608

99.881

99.976

1.250

314.92

继续上升

150

150

150/150

112.164

110.443

112.047

112.056

1.337

336.34

⭐ 吞吐峰值

200

200

200/200

183.715

151.351

163.613

183.565

1.089

274.65

⚠️ 性能拐点

表 6-1:2卡 TP=4 极限并发压测完整曲线(输入 1024 / 输出 256)

关键发现:并发 150 达到吞吐饱和峰值 336.34 tok/s;并发 200 出现性能拐点(QPS 从 1.337 降至 1.089,-18.5%;P90 延迟从 112s 暴增至 164s,+46%;P99 延迟从 112s 暴增至 184s,+64%),但全部 200/200 成功,零失败、零 OOM。

6.2 全配置最终 Benchmark 对比表

配置

卡数

Tile

测试并发

请求数

峰值吞吐

平均延迟

P99 延迟

最大并发

评级

备注

2卡 TP=2+PP=2

2

4

1

10

9.17

27.9s

28.2s

1x

废弃

2卡 TP=4

2

4

150

150

336.34

110.4s

112.1s

200x+

⭐⭐⭐

最优

4卡 TP=4

4

8

10

100

91.35

28.0s

28.7s

48x

次优

8卡 TP=8

8

8

10

100

88.98

28.8s

29.7s

86x

⚠️

第三

8卡 TP=8+PP=2

8

16

10

100

81.62

31.4s

37.6s

212x

⚠️

第四

8卡 TP=16

8

16

不可行

单卡 TP=2

1

2

驱动冲突

单卡TP=1+PP=2

1

2

OOM

表 6-2:全配置最终 Benchmark 对比表(定稿)

七、反常现象深入分析

7.1 2卡 TP=4 为何能反超 4卡/8卡?

实测数据颠覆常规认知:2卡 TP=4(336 tok/s)> 4卡 TP=4(91 tok/s)> 8卡 TP=8(89 tok/s)。核心原因在于 B60 同卡双 Tile 的 EMIB/MDFI 互联架构。

通信路径对比:

• 2卡 TP=4:4 个 Tile 分布在 2 张卡上,50% 的 allreduce 走同卡内 EMIB/MDFI(带宽 ~100+ GB/s),仅 50% 走跨卡 PCIe(~25 GB/s)。ring allreduce 4 步中,2 步为高速通道。

• 4卡 TP=4:8 个 Tile 分布在 4 张卡上,所有 allreduce 都走 PCIe,ring 7 步全部跨卡。

• 8卡 TP=8:8 个 Tile 分布在 8 张卡上,ring allreduce 7 步,每步都跨卡,且每 Tile 仅 6.75GB 权重,GPU 计算单元大部分时间处于等待通信状态(memory-bound + communication-bound)。

核心公式:B60 性能 = 计算能力 / (1 + 通信开销占比)

• 2卡 TP=4:计算 120 TFLOPS,通信开销 ~15%,实际效率 85% → 303-336 tok/s
• 4卡 TP=4:计算 240 TFLOPS,通信开销 ~40%,实际效率 60% → 91 tok/s
• 8卡 TP=8:计算 240 TFLOPS(单 Tile 30 TFLOPS × 8),通信开销 ~55%,实际效率 45% → 89 tok/s

7.2 并发 200 性能拐点的根因

并发 150 → 200 时,吞吐从 336.34 降至 274.65(-18.3%),但零失败。说明瓶颈不在显存(未 OOM),而在 vLLM V1 调度器的 continuous batching 效率:

• 并发 150 时 P99-P90 = 0.01s,调度公平性近乎完美;
• 并发 200 时 P99-P90 = 19.95s,尾部请求出现饥饿;
• QPS 从 1.337 降至 1.089,说明新增请求导致队列堆积,batching 效率下降。

7.3 PP=2 是性能陷阱的验证

2卡 TP=2+PP=2(9.17 tok/s)vs 2卡 TP=4(336.34 tok/s),差距 36.7 倍。PP=2 引入的 Stage 间 PCIe 传输 + Ray 分布式调度开销,在 B60 这类 PCIe-only 互联 GPU 上完全抵消了并行收益。无论 2卡还是 8卡,PP=2 均应避免。

八、关键问题与解决方案

本章汇总 V1.2 历史问题与 V1.6 新增问题,形成完整问题库。

序号

问题描述

发生场景

解决方案

状态

1

Docker 未安装 / 权限不足

宿主机首次操作

安装 Docker CE,执行 newgrp docker

2

Docker Hub 拉取超时

docker pull

换用 DaoCloud 镜像加速器

3

容器内缺少benchmark 脚本

压测阶段

手写 Python urllib 压测脚本

4

Qwen3.6-FP8 上游 vLLM 推理崩溃

vLLM 0.17.0-xpu

GDN 注意力无 XPU 适配,无法解决

5

Qwen3.6-FP8 llm-scaler fuse bug

llm-scaler 0.14.0

权重 fuse 维度不匹配,需等官方修复

6

单卡 TP=2 驱动资源冲突

1 卡内 2 Tile 做 TP

vLLM MultiprocExecutor 同卡多进程不支持

7

单卡 TP=1+PP=2 OOM

1 卡部署 27B

需至少 2 卡(TP=4)

8

2卡 TP=2+PP=2 并发死锁

并发 ≥ 2

改用纯 TP 架构,禁用 PP

9

8卡 TP=16 启动失败

Attention heads 不整除

改用 TP=8+PP=2 或纯 TP=8

10

2卡 TP=4 性能反超 4卡

并发压测

属正常架构优势,非 bug

11

并发 200 性能拐点

极限压测

调度器瓶颈,建议生产环境并发 ≤ 150

⚠️

表 8-1:关键问题与解决方案完整库(V1.6)

九、结论与建议

9.1 核心结论

1. 2卡 TP=4 是 Qwen3.5-27B 在 B60 上的绝对最优配置:峰值吞吐 336.34 tok/s(并发 150),极限并发 200 零失败,硬件成本仅为 8卡的 25%。
2. 同卡双 Tile 的 EMIB/MDFI 互联是 B60 的隐藏王牌:在 2卡 TP=4 中,50% 的 allreduce 走同卡高速通道,通信开销远低于 4卡/8卡的全 PCIe allreduce。
3. PP=2 在任何卡数下都是性能陷阱:2卡 TP=2+PP=2(9.17 tok/s)vs 2卡 TP=4(336.34 tok/s),差距 36.7 倍。
4. 单卡 48GB 无法独立运行 27B:受限于 Level Zero 驱动模型(每 Tile 24GB 独立地址空间)和 MultiprocExecutor 同卡多进程冲突。
5. 并发 200 是性能拐点(非崩溃点):吞吐下降至 274.65 tok/s(-18.3%),P99 延迟暴增至 183s(+64%),但零失败。建议生产环境并发控制在 150 以内。

9.2 硬件配置建议(最终定稿)

目标模型

推荐硬件

最优配置

峰值吞吐

最佳并发

P99 延迟

最大并发

适用场景

Qwen3.5-27B BF16

2×B60

TP=4

336.34 tok/s

150

112.1s

200x+

通用推理、批处理

Qwen3.5-27B BF16

4×B60

TP=4

91.35 tok/s

10

28.7s

48x

低延迟实时场景

Qwen3.5-27B BF16

8×B60

TP=8

88.98 tok/s

10

29.7s

86x

高并发扩展

Qwen3.5-27B BF16

8×B60

TP=8+PP=2

81.62 tok/s

10

37.6s

212x

超高并发、长上下文

Qwen3.5-27B BF16

2×B60

TP=2+PP=2

9.17 tok/s

1

28.2s

1x

❌ 废弃

表 9-1:硬件配置建议(V1.6 最终定稿)

9.3 2卡 TP=4 并发度推荐(生产环境)

业务场景

推荐并发

预期吞吐

P99 延迟

适用业务

实时对话(延迟<30s)

5-10

86 tok/s

<31s

客服机器人、即时问答

在线 API(延迟 <60s)

20-50

130-260 tok/s

<49s

内容生成、代码补全

批处理(延迟<120s)

100-150

303-336 tok/s

<113s

文档生成、批量翻译

后台任务(延迟<200s)

150-200

275-336 tok/s

<184s

离线分析、数据标注

表 9-2:2卡 TP=4 并发度推荐(生产环境)

9.4 单台 8卡服务器负载均衡部署架构

基于 2卡 TP=4 的极限实测数据,推荐在单台 8卡 B60 服务器上部署 4 个独立的 2卡 TP=4 实例,通过负载均衡对外提供统一 API 服务。

理论承载能力:

• 单实例峰值吞吐:336.34 tok/s @ 并发 150
• 4 实例合计峰值吞吐:1,345 tok/s
• 单实例极限并发(零失败):200
• 4 实例合计极限并发:800
• 在可接受 <120s 延迟的批处理场景下,推荐并发 150/实例,合计可同时服务 600 个客户。

实例隔离方式:

在单台 8卡服务器上跑 4 个 vLLM 实例,需通过环境变量绑定 Tile 设备,避免驱动资源冲突。注意:vLLM 的 MultiprocExecutor 可能自动探测所有 Tile,需验证 ZESYCL_DEVICE_FILTER 或 ONEAPI_DEVICE_SELECTOR 能否正确隔离。

# 实例 1(卡 0,1 = Tile 0,1,2,3)
export ZESYCL_DEVICE_FILTER=level_zero:0,1,2,3
vllm serve /llm/models/Qwen3.5-27B \
  --served-model-name qwen3.5-27b-b60-tp4-inst1 \
  --tensor-parallel-size 4 --port 8000 ...

# 实例 2(卡 2,3 = Tile 4,5,6,7)
export ZESYCL_DEVICE_FILTER=level_zero:4,5,6,7
vllm serve ... --port 8001 ...

# 实例 3(卡 4,5 = Tile 8,9,10,11)
export ZESYCL_DEVICE_FILTER=level_zero:8,9,10,11
vllm serve ... --port 8002 ...

# 实例 4(卡 6,7 = Tile 12,13,14,15)
export ZESYCL_DEVICE_FILTER=level_zero:12,13,14,15
vllm serve ... --port 8003 ...

负载均衡策略建议:

策略

推荐度

说明

Round Robin

⭐⭐⭐

简单均匀分发,适合请求长度相近

Least Connections

⭐⭐⭐

根据实例当前并发数分配,避免单实例过载

Token-based

⭐⭐

按实例当前吞吐动态权重,需自定义健康检查

表 9-3:负载均衡策略建议

关键前提条件:

以上计算基于以下测试条件,生产环境需对齐:输入长度 ≈ 1024 tokens,输出 256 tokens;模型为 Qwen3.5-27B-BF16;使用 llm-scaler-vllm:0.14.0-b8.2.1 镜像;客户请求为独立无状态(无长上下文会话累积)。如果客户输入更长(如 4096+)或输出更长(如 512+),KV Cache 占用翻倍,单实例最大并发从 150 降至 75-100,4 实例总客户数从 600 降至 300-400。

9.5 最终结论

采用 4 个 2卡 TP=4 实例 + 负载均衡,在可接受 <120s 延迟的业务场景下,单台 8卡 B60 服务器可同时服务 600 个客户,总吞吐 1,345 tok/s。这是目前验证过的最高性价比部署方案。对于延迟敏感场景(<30s),推荐 4卡 TP=4(40 客户)或 8卡 TP=8(86 客户)。对于超高并发场景(>200 并发/实例),建议评估 8卡 TP=8+PP=2(212x 并发,81 tok/s)或扩展至多台服务器。

附录 A:vLLM 启动命令汇总

A.1 2卡 TP=4(强烈推荐,336 tok/s,200+ 并发)

vllm serve /llm/models/Qwen3.5-27B \
  --served-model-name qwen3.5-27b-b60-tp4-2card \
  --dtype bfloat16 --enforce-eager \
  --port 8000 --host 0.0.0.0 --trust-remote-code \
  --disable-sliding-window \
  --gpu-memory-utilization 0.85 \
  --max-num-batched-tokens 8192 \
  --max-model-len 8192 --block-size 64 \
  --tensor-parallel-size 4 \
  --language-model-only

A.2 4卡 TP=4(次选,91 tok/s)

vllm serve /llm/models/Qwen3.5-27B \
  --served-model-name qwen3.5-27b-b60-tp4-4card \
  --dtype bfloat16 --enforce-eager \
  --port 8000 --host 0.0.0.0 --trust-remote-code \
  --disable-sliding-window \
  --gpu-memory-utilization 0.85 \
  --max-num-batched-tokens 8192 \
  --max-model-len 8192 --block-size 64 \
  --tensor-parallel-size 4 \
  --language-model-only

A.3 8卡 TP=8(第三,89 tok/s)

vllm serve /llm/models/Qwen3.5-27B \
  --served-model-name qwen3.5-27b-b60-tp8-8card \
  --dtype bfloat16 --enforce-eager \
  --port 8000 --host 0.0.0.0 --trust-remote-code \
  --disable-sliding-window \
  --gpu-memory-utilization 0.85 \
  --max-num-batched-tokens 8192 \
  --max-model-len 8192 --block-size 64 \
  --tensor-parallel-size 8 \
  --language-model-only

A.4 8卡 TP=8+PP=2(第四,82 tok/s,212x 并发)

ray start --head --num-gpus=16 --disable-usage-stats

vllm serve /llm/models/Qwen3.5-27B \
  --served-model-name qwen3.5-27b-b60-tp8pp2-8card \
  --dtype bfloat16 --enforce-eager \
  --port 8000 --host 0.0.0.0 --trust-remote-code \
  --disable-sliding-window \
  --gpu-memory-utilization 0.85 \
  --max-num-batched-tokens 8192 \
  --max-model-len 8192 --block-size 64 \
  --tensor-parallel-size 8 \
  --pipeline-parallel-size 2 \
  --distributed-executor-backend ray \
  --language-model-only

A.5 2卡 TP=2+PP=2(废弃,9 tok/s)

已废弃,不建议使用。

附录 B:GPU 监控命令

B.1 xpu-smi 实时监控

# 监控 2 张卡(2卡 TP=4 场景)
watch -n 2 'xpu-smi dump -d 0,1 -m 0,1,2,3,4,5'

# 监控 8 张卡(8卡场景)
watch -n 2 'xpu-smi dump -d 0,1,2,3,4,5,6,7 -m 0,1,2,3,4,5'

B.2 PyTorch 显存详情

python3 -c "
import torch
for i in range(torch.xpu.device_count()):
    alloc = torch.xpu.memory_allocated(i) / 1024**3
    resv = torch.xpu.memory_reserved(i) / 1024**3
    print(f'Tile {i}: Allocated={alloc:.2f}GB  Reserved={resv:.2f}GB')
"

B.3 进程监控

watch -n 3 'ps aux | grep -E "vllm serve|RayWorker|EngineCore" | grep -v grep'

附录 C:进程清理脚本

#!/bin/bash
# clean_vllm.sh
pkill -9 -f "vllm serve"
pkill -9 -f "EngineCore"
pkill -9 -f "Worker"
pkill -9 -f "RayWorkerWrapper"
ray stop 2>/dev/null
sleep 2
xpu-smi dump -d 0,1,2,3,4,5,6,7 -m 0,1,2 | head -10

附录 D:极限压测脚本(2卡 TP=4)

cat > /tmp/bench_tp4_2card_extreme.py << 'PYEOF'
import urllib.request, json, time, concurrent.futures, statistics

URL = "http://localhost:8000/v1/chat/completions"
HEADERS = {"Content-Type": "application/json"}
LONG_PROMPT = ("请详细解释量子计算的基本原理..." * 12)
PAYLOAD = {
    "model": "qwen3.5-27b-b60-tp4-2card",
    "messages": [{"role": "user", "content": LONG_PROMPT}],
    "max_tokens": 256,
    "temperature": 0.7,
    "stream": False
}

def send_one(i):
    try:
        t0 = time.time()
        req = urllib.request.Request(URL, json.dumps(PAYLOAD).encode(), HEADERS, method="POST")
        resp = urllib.request.urlopen(req, timeout=600)
        body = json.loads(resp.read())
        t1 = time.time()
        usage = body.get("usage", {})
        return {"ok": True, "latency": t1-t0, "completion_tokens": usage.get("completion_tokens", 0)}
    except Exception as e:
        return {"ok": False, "error": str(e)}

for concurrency in [10, 50, 100, 150, 200]:
    ...
PYEOF
/usr/bin/python3 /tmp/bench_tp4_2card_extreme.py

— 报告结束 —


审核日期:2026-05-24
版本:V1.6(极限并发压测 + 负载均衡部署版)

Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐