已关闭
[Requirement|需求建议]: MC2 算子官方测试套件增加 batch-invariance (BI) 测试维度 #2956
bruceligit创建于 6月6日关闭于 9月5日
huang-chuhong
6月6日 评论:
6月6日 评论:
/assign @wang-minbo


6月6日 将 wang-minbo 设为负责人
6月6日 将 macech 设为负责人
6月9日 关联了pull request:test(matmul_reduce_scatter_v2): add BI test suite for issue #2956
bruceligit
6月9日 评论:
6月9日 评论:
更新:参考 PR 已开 — #6593(针对 matmul_reduce_scatter_v2,natively BI-clean 算子用作 positive baseline)。
PR 中包含修正后的方法学(issue 原始描述中没有强调的关键点):
Phase 0 + Phase 1 + Phase 2 三步流程
- Phase 0: HCCL warm-up(
N_WARMUP=2次 dummy 调用)—— 跳过 worker 冷启动时的HcclAllocComResourceByTiling failed+ 非确定 ring 拓扑选择 - Phase 1: Multi-trial determinism baseline(每 variant
N_TRIALS=3次)—— catch trial 非确定性 - Phase 2: Variant A vs B BI 检查 —— 仅在 Phase 1 通过后比较
三态输出(不能混淆)
| 状态 | 含义 |
|---|---|
BI_PASS |
det baseline 通过 + A == B |
BI_FAIL |
真 BI 违例 |
NON_DETERMINISTIC |
同 input 多次跑不一致 → 测试系统问题(HCCL state / 共享 NPU / 硬件),不能简单判 BI fail |
ERROR |
op-plugin shape rejection 或基础设施故障 |
关键教训: 2026-06-06 在 V300 上调研发现,省略 Phase 0+1 的早期版本会在 op-2 (matmul_reduce_scatter_v2) 上产生 10/18 cells "BI fail" 的假阳性(实际是冷启动 HCCL 非确定性),加上 Phase 0+1 后变成 24/24 BI_PASS。这个发现导致 issue 中提议的 standard.bi schema 需要支持 n_warmup + n_trials 参数。
跨 3 ops 验证数据(已在 V300 host 完成)
- op-1 post-PR-#6373: 378 BI_PASS / 0 BI_FAIL / 0 NON_DET
- op-2 (本 PR 对象): 72 BI_PASS / 0 BI_FAIL / 0 NON_DET
- op-3 (WS=8 only): 12 BI_PASS / 0 BI_FAIL / 0 NON_DET
- 合计 462 cells,全部 BI_PASS
ATK 集成方式仍待 maintainer 评估,PR 当前作为 standalone driver 提供方法学可执行规范。


6月10日 将 SuperYuan 设为负责人
wang-minbo
6月10日 评论:
6月10日 评论:
您好,您的问题是基于A2, A3,还是A5版本


6月10日 将 captainmiaow 设为负责人
ZZYuan
6月10日 评论:
6月10日 评论:
您的需求我理解包含两部分:
- 希望MC2算子支持BI
- 希望测试套支持BI测试
其中1.我们希望您能提供更详细的信息,比如您希望在哪些产品形态上支持BI、以及您的使用场景(batch一致性对您的价值)
关于2,我在ATK测试套的仓库中同步了您的需求:https://gitcode.com/Ascend/ATK/issues/5
如果有其他问题欢迎您补充


bruceligit
6月23日 评论:
6月23日 评论:


bruceligit
6月24日 评论:
6月24日 评论:
您的需求我理解包含两部分:
- 希望MC2算子支持BI
- 希望测试套支持BI测试
其中1.我们希望您能提供更详细的信息,比如您希望在哪些产品形态上支持BI、以及您的使用场景(batch一致性对您的价值)
关于2,我在ATK测试套的仓库中同步了您的需求:https://gitcode.com/Ascend/ATK/issues/5
如果有其他问题欢迎您补充
是的,希望支持这两部分。
希望在Qwen3-30B-A3B模型、Qwen3.5-35B-A3B模型推理上实现BI。使用场景来自外部客户需求。此外,BI对训推一致性、训练稳定性有帮助。
谢谢


9月5日 issue状态由 进行中 改变为 已解决
9月5日 关闭了 issue
背景
近期 PR #6373 修复了
AllGatherMatmulV2在 V300 + MXFP8 + 变化 x2_scale 场景下的 batch-invariance (BI) 缺陷(原 issue #2872)。该缺陷的根因是 op_kernel 中存在 LOCAL 与 GATHER 两条独立 cube 路径(MatMulASWKernel+Mc2QuantBatchMatmulASWKernel),二者在 K-loop 累加调度上存在差异,导致同一逻辑输出 slot 在跨 rank 时 byte 不一致。但在排查过程中我们发现:当前官方测试套件(UT + ATK ST)的
standard字段只覆盖acc(数值精度对比 reference)和perf(性能阈值),不包含 batch-invariance 这一性质的测试。这意味着:问题陈述
文献意义上的 batch-invariance 定义(参考 https://thinkingmachines.ai/blog/defeating-nondeterminism-in-llm-inference ):
这与团队内部「跨 rank/trial 一致性」(即 determinism)是 正交且更强 的性质:
AllGatherMatmulV2就是这种情况:跨 rank 给定相同 input 时输出一致(passes determinism),但 row i 的输出会随同 batch 其他 row 内容改变(fails literature-BI)现有官方 UT/ST 只覆盖前者,不覆盖后者。
提议
为 MC2 fused-comm-matmul 系列算子的官方测试套件 新增 BI 测试类别,至少覆盖以下 6 个算子:
mc2/all_gather_matmul_v2/mc2/matmul_reduce_scatter_v2/mc2/allto_allv_quant_grouped_mat_mul/mc2/all_gather_matmul/mc2/matmul_reduce_scatter/mc2/allto_allv_grouped_mat_mul/建议先以 op-1 作为参考实现(最有代表性,PR #6373 的修复对象),其余 op 逐步覆盖。
测试方法学
每个 BI cell 的 contract 定义:
# Variant A:target row i 固定为内容 C,其他 row 用 seed_A 生成 # Variant B:target row i 同样固定为内容 C,其他 row 用 seed_B 生成 # BI 断言:byte(y_A[i]) == byte(y_B[i])建议矩阵参数:
epWorldSize约束)VAR指 K-axis varying scale,是已知的 BI 触发条件ATK 框架集成建议
在 ST case JSON 的
standard字段新增'bi'key:{ "name": "allgather_matmul_v2_bi", "standard": { "acc": "cv_fused_double_benchmark", "perf": [0.95, 0.95], "bi": {"row_positions": [0, "mid", "last"], "n_variants": 2} }, "inputs": [...] }ATK executor 增加
_run_bi_check钩子:variant A + variant B 的输入构造与现有 acc check 同构,仅 target row 固定 + 其他 row 不同 seedCI Pass/Fail:每个 BI cell 输出 byte-diff count;> 0 即 fail
我们已完成的验证数据
为证明方法学可行 + null-result baseline 可达,我们在外部硬件上跑了如下规模的 BI matrix:
如果官方测试套件接入这套方法学,PR #6373 修复前的 op-1 会在
BI = VAR x2_scale + WS=2 + M_per_rank=4这类小 case 上立刻报 fail,从而被 CI 拦截。工作量评估
'bi'standard schema:约 0.5 人日关联
AllGatherMatmulV2BI fix,本 issue 触发来源)期望讨论
standard字段的机制?还是建议作为独立tests/bi/目录单独走?我们愿意在设计方向对齐后,为
mc2/all_gather_matmul_v2/(或mc2/matmul_reduce_scatter_v2/)提交参考 PR。请评审 ATK 集成方式偏好。