66 lines
7.7 KiB
Markdown
66 lines
7.7 KiB
Markdown
# 实验 EXP-SIMFID-Q235-CC-TP8:真实 TP4/TP8 collective profile 消融
|
||
|
||
> **状态:** review 通过,执行中
|
||
>
|
||
> 本 card 是 SHA、command、config、log 等 provenance 的唯一归宿;本轮只重跑 simulator,不重跑已经冻结的 48 个真机 trial。
|
||
|
||
## Claim 与决策
|
||
|
||
- **Parent claim:** Qwen235 Fixed-PD 的 30%+ TPOT/E2E selection regret,是否主要由 TP8 collective profile 缺失及 TP4 profile 与真实 serving backend 不匹配造成。
|
||
- **目的:** 支持或反驳 mechanism hypothesis;不是用同一 workload 的 E2E calibration 修正 simulator。
|
||
- **Competing hypotheses:**
|
||
- H1:collective profile coverage/backend mismatch 是排序反转的必要主因。换成与真机 serving 一致的 TP4/TP8 实测 profile 后,Frontier 的 Fixed-PD TPOT winner 从 TP8 翻到 TP4,mean/p90 TPOT 与 E2E selection regret 降到 10% 以内。
|
||
- H2:collective mismatch 只解释部分误差。换 profile 后 TP8 仍是 Frontier winner,Fixed-PD TPOT/E2E regret 仍超过 10%;下一主因应定位 decode batch/state-conditioned MoE composition。
|
||
- **事前预测:** 当前 Frontier 在 Fixed-PD 上预测 TP4/TP8 mean TPOT 为 87.77/61.59 ms,TP8 有 26.19 ms 优势;真实 TP4/TP8 为 21.04/27.99 ms。若新的 TP4/TP8 collective profile 使这个 26.19 ms 的 simulator margin 反转,则支持 H1;若不能,则支持 H2。
|
||
- **判定规则:** 只以 frozen simulator rerun 的 winner 与真实 frozen surface 计算 selection regret。绝对 latency ratio 作为 secondary metric,不用它替代 selection verdict。
|
||
|
||
## Setup
|
||
|
||
- **自变量:**
|
||
- A0:当前 `measured-allreduce.csv`;TP4 是 Qwen30 hidden=2048 的旧实测,且 profiler 只检查 FlashInfer 可用、没有证明每个 payload 的实际 dispatch;TP8 无行并静默 analytical fallback。
|
||
- A1:Qwen235 serving-matched piecewise collective profile;TP4/TP8 都在 dash0 H20、vLLM 0.20.0 commit `88d34c640...` 上实测。Frozen server logs 证明真机同时使用 `disable_custom_all_reduce=true` 与 FlashInfer-TRTLLM `allreduce_rms` fusion;profile 对 fusion-eligible payload 测同一 FlashInfer communicator,对阈值外 payload 测真实 PyNCCL/symmetric fallback。
|
||
- **控制变量:** Frontier commit、Qwen235 operator profiles、runtime contract、四类 frozen traces、候选配置、MNS/MBT、prefix policy、real results 与分析脚本全部不变。
|
||
- **System context:** Qwen3-235B-A22B-FP8;vLLM 0.20.0+cu129;dash0 8×H20;`{TP4/EP1, TP8/EP8} × MNS{64,128}`;MBT=8192;Frontier piecewise graph path。
|
||
- **Workload 或 trace:** 重跑四类 simulator surface:Fixed-PD 4096→256 @ 0.2 req/s/GPU、Fixed-PO 4096→1、Trace-PD、Trace-PO;每 cell 沿用原 129-request trace。Fixed-PD 是 primary,另外三类检查 profile 替换是否引入新的 selection regression。
|
||
- **Profile protocol:** payload 覆盖所有 Qwen235 decode graph buckets(1--256,含真实 capture sizes)、fusion 阈值两侧 `{63,64,65}` / `{255,256,257}`,以及 512--8192 prefill sizes;每个 TP 与 payload 先 warmup,再保留 3×20 个 per-rank CUDA-event samples。raw JSON 记录实际 backend dispatch、fusion byte limit、world size、dtype、payload bytes、GPU/runtime/commit 与 source hashes。TP4/TP8 使用相同 payload grid;不把 microbenchmark 直接当作 E2E 结论。
|
||
- **Profile contract:** H20/SM90 上 vLLM 0.20 的 fusion limit 是 TP4 2 MiB、TP8 0.5 MiB,即 Q235 BF16 hidden=4096 时分别为 256/64 tokens。simulator runner 启动前解析 CSV,要求所选 configs 的每个 `TP>1` 都有有限、正值的 measured rows;缺覆盖立即失败。结果 manifest 写入 CSV SHA-256、TP coverage、row counts 与 piecewise backend 集合。决策实验禁止 analytical fallback。
|
||
- **Baselines:** A0 current Frontier、A1 measured-profile Frontier、frozen real hardware surface。
|
||
- **Metrics:** profile latency median/p90 与跨 rank spread;simulated mean/p90 TTFT/TPOT/E2E;winner、selection regret、tau-b(可定义时);每个 TP 的 measured-profile hit/fallback counters。
|
||
|
||
## 预期产物与 review
|
||
|
||
- **预期数据:** TP4/TP8 raw collective JSON;materialized Frontier CSV + manifest;四类 A1 simulator surface;A0/A1/real comparison JSON/Markdown;profile cost ledger。
|
||
- **Figure prototype:** `../../runs/frontier-fidelity-envelope-v1/qwen235-collective-ablation-mock.png`;左图固定真实与 A0 TPOT,并为 A1 留待测 series;右图明确“winner flip→0% regret / unchanged→33% regret”的判定。它回答 profile 修复是否足以改变配置选择。
|
||
- **人工 review:** 通过(2026-07-19,用户明确要求“推进实验”)。
|
||
- **Review 意见:** 保留 frozen real surface,只补真实 TP4/TP8 profile 后重跑 simulator;每个 simulator 实验必须使用真实 profile,缺失 coverage 或运行时 analytical fallback 立即失败。
|
||
|
||
## Benchmark design audit(experiment-design-review)
|
||
|
||
| Crime | Verdict | Severity | Evidence | Fix / gate |
|
||
|---|---|---|---|---|
|
||
| 用 microbenchmark 代替 E2E | PASS | — | collective profile 只作为自变量;结论来自完整 simulator surface 对 frozen real surface 的 selection regret | 保留 A0/A1/real 三方结果 |
|
||
| calibration set 等于 evaluation set | PASS | — | A1 只测 collective operator,不使用 real E2E latency 拟合参数 | 禁止 E2E scale/calibration |
|
||
| selective benchmarking | PASS | — | primary Fixed-PD 外,同时重跑另外三类 workload | 报告所有 16 个 simulator cells |
|
||
| 缺失平台/版本 | PASS | — | raw/manifest 绑定 H20、vLLM commit、model、backend 与 hashes | 任一 provenance 缺失则 profile 不可采纳 |
|
||
| 缺失方差 | NEEDS EVIDENCE | Major | 尚未执行 profile repeats | raw artifact 必须保留 per-rank repeated samples并报告 spread |
|
||
| profile 覆盖静默降级 | FAIL(A0) | Blocking | TP8 无 measured rows,Frontier 使用 analytical fallback | A1 runner fail-fast;fallback count 必须为 0 |
|
||
| backend/fusion 阈值未对齐 | FAIL(A0) | Blocking | 真机日志启用 FlashInfer `allreduce_rms`;vLLM 源码规定 H20 TP4/TP8 fusion limit 为 2/0.5 MiB,旧 CSV 未记录这条 piecewise contract | A1 在阈值两侧实测并记录每行 dispatch |
|
||
|
||
**总体建议:** 已批准执行;coverage gate、backend match 与 provenance gate 任一不通过则 Block。
|
||
|
||
## 复现信息
|
||
|
||
- **Code:** AITuner branch `feature/sim`;本 card 创建时 HEAD `f4a75aa8e400ead4eb6d305178192e85940c6de6`,后续运行 commit 待填。vLLM source commit `88d34c6409e9fb3c7b8ca0c04756f061d2099eb1`。
|
||
- **Environment:** dash0 8×H20;`/tmp/wjh/venvs/vllm-0.20.0-cu129-profiler-v1`;model `/home/admin/cpfs/wjh/models/Qwen/Qwen3-235B-A22B-FP8`。
|
||
- **产物路径:** 待 review 后冻结;不得覆盖旧 campaign `/home/admin/cpfs/wjh/aituner/qwen235-v020-fourcase-20260719-r1`。
|
||
- **已知 deviation:** `--disable-custom-all-reduce` 只关闭 vLLM custom AR,不关闭编译器的 FlashInfer `allreduce_rms` fusion。真机 TP4/TP8 日志都显示自动选择 `trtllm` workspace;旧 TP4 profiler 没有记录/执行真实 fusion-limit piecewise dispatch。A1 因此必须同时重测 TP4 与 TP8,不能只追加 TP8 行。
|
||
- **执行异常:** 首次 simulator launch 误把 frozen operator profile root 写成 r1;原 A0 campaign 实际使用 r2。四个 Fixed-PD cells 因缺少 `attn_decode_in_mixed` predictor 均 fail-fast,未产生可用 metric。command diff 确认后停止后续运行,恢复 r2 并从 failed cells 重新执行;这些失败不计入 A1 surface。
|
||
|
||
## 结果
|
||
|
||
- **观察事实:** 待运行。
|
||
- **异常:** 待运行。
|
||
- **含义:** 待运行。
|
||
- **Claim update:** unchanged
|
||
- **下一步:** 依次完成 collective profiling、profile materialization、CPU simulator rerun 与 analysis。
|