parse_jsonl 当 raw 文件是单个聚合 JSON 对象时返回 [data](整个聚合含 itls/generated_texts 数组),原代码把它当 raw_requests[:100] 塞进 scenario, 导致单次 bench 的 results.json 膨胀到 12.5MB(itls 6.95MB + generated_texts 1.54MB)。 而真正有用的聚合百分位已在 latencies 字段(~0.5KB),逐请求原始数据已在 raw_outputs/*.jsonl,raw_requests 字段纯冗余。 - 移除 scenario dict 的 raw_requests 字段; parse_jsonl 返回值改用 _ 接收 - 符合 BENCHMARK_WORKFLOW.md: 产生大量请求时逐请求数据存 raw_outputs, results.json 只留聚合百分位 - 实测 qwen3_235b results.json: 12.52MB -> ~KB - 同步修改 4 份相同 md5 的 parse_results.py(本提交含 3 份 tracked; qwen3_8b 未跟踪待随实验提交) Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Qwen3-235B-A22B · Kunlun P800 · SGLang TP=8
在 p800.2(8× 昆仑芯 P800 XPU,每卡 96GB)上用 SGLang 以 TP=8 部署
Qwen3-235B-A22B,并用 sglang.bench_serving 跑 输入 2048 / 输出 2048 / 并发 16
的吞吐基准,输出吞吐、TTFT、TPOT、ITL、E2E 等指标。
关键设计
本实验借鉴仓库里已验证可用的 qwen3-8b TP=1 启动命令(同一昆仑 P800 sglang 镜像), 仅做以下适配:
| 项 | qwen3-8b (TP=1) | 本实验 (TP=8) |
|---|---|---|
| 容器 XPU | 仅 /dev/xpu0 |
/dev/xpu0..7(新容器) |
--tp-size |
1 | 8 |
XPU_VISIBLE_DEVICES |
0 | 0,1,2,3,4,5,6,7 |
--model-path |
Qwen3-8B | Qwen3-235B-A22B |
--context-length |
4096 | 8192(8b 用 4096 在 2k+2k 下截断了 2 条输出) |
| 其余启动参数 | — | 完全一致 |
不变的 Qwen3 专用配置(与 DSV4 实验不同):
--attention-backend kunlun(非 DSV4 的nsa)- XPU 环境变量:
XSGL_INTERTYPE_BFP16=1、XSGL_FAST_SWIGLU=1、XMLIR_FORCE_USE_XPU_GRAPH=1、XSGL_FUSE_SPLIT_NORM_ROPE_NEOX=1 --dtype float16、--disable-radix-cache、--chunked-prefill-size -1、--page-size 64、--mem-fraction-static 0.9、--cuda-graph-bs 1..16- 无 DSV4 专用变量(
IS_DSV4/SGLANG_DSV4_MODE等)、无 reasoning/tool-call parser
显存预算:235B FP16 权重 ~470GB,TP=8 每卡 ~59GB;每卡 96GB,0.9 静态占比留 ~27GB/卡 给 KV+激活+cuda graph,2k+2k 上下文 KV 极小,充裕。
注意:框架
scripts/common/server_docker.sh里的docker_server_start是 DeepSeek-V4 硬编码的(NSA attention、IS_DSV4=1、deepseekv4 parser), 不能用于 Qwen3,因此本实验自带独立的start_server.sh。
文件
config.env— 实验参数唯一来源start_server.sh— 起 8-XPU 容器 + 容器内启动 sglang + 健康检查run_bench.sh— 编排入口(写元数据 → 起服务 → warmup+bench → 解析)parse_results.py— 解析sglang.bench_serving输出(复用自 dsv4_p800_sglang)results/<run_id>/— 自动生成:raw_outputs/*.jsonl、logs/、results.json、report.md
用法
cd /data1/yy/sskj/experiments/p800/qwen3_235b_p800_sglang_tp8
# 一键跑(起服务 + 基准 + 解析)
bash run_bench.sh
# 或分步:先起服务(便于排查),再复用服务跑基准
bash start_server.sh
SKIP_MANAGE_SERVER=1 bash run_bench.sh
服务启动加载 235B 权重(~470GB)+ 捕获 16 个 batch size 的 cuda graph 较慢,
健康检查超时设为 1200s。结果在 results/<run_id>/report.md。
输出指标(report.md)
每个 scenario 给出:Success/Failed、Req/s、Input/Output/Total tok/s、 TTFT(mean/p50/p90/p99)、TPOT(mean/p50/p90/p99)、E2E(p99)等。