| Files | Last commit | Last update |
|---|---|---|
fix(mhc_pre_sinkhorn): 修复c对齐校验缺失/needBackward=false空指针561103/B=0梯度输出未写 Co-authored-by: renruhai<renruhai1@huawei.com> # message auto-generated for no-merge-commit merge: !14770 merge fix/issue-6619-6654-6694-mhc-pre-sinkhorn into master fix(mhc_pre_sinkhorn): 修复c对齐校验缺失/needBackward=false空指针561103/B=0梯度输出未写 Created-by: renruhai Commit-by: renruhai Merged-by: cann-robot Description: ## 描述 针对 #6619、#6654、#6694 三个缺陷的修复(mhc_pre_sinkhorn 算子族)。 **#6654**:文档规格约束(Atlas A2/A3系列产品)要求尾轴 c 为 128 的倍数,但 CheckShape 未校验,c=130 被静默接受。补充 c % 128 == 0 校验(返回 161002 并带实际 c 值),门控于非 TND 平台(!IsPlatformSupportTnd(),即 A2/A3),950/960DT 的 TND 路径不受影响。 **#6694**:needBackward=false 时 hPre/hcBeforeNorm/invRms/sumOut/normOut 传 nullptr 会流经参数校验进入组图阶段,框架 SelectBin 因空指针无法匹配算子原型定义而选核失败,最终以内部错误码 561103 返回(上报点 mhc_pre_sinkhorn.cpp:47 ADD_TO_LAUNCHER_LIST_AICORE)。内核侧不读 needBackward、无条件写全部 8 个输出,这 5 个输出必须为合法张量。修复:CheckNotNull 对这 5 个输出无条件做非空校验,传 nullptr 返回 ACLNN_ERR_PARAM_NULLPTR(161001),替代 561103。(曾评估过占位张量方案让 nullptr 走通,因会给推理路径增加 Fill 开销且内核本就要写全部输出、显存并无真实节省,未采用。) **#6619 缺陷2(B=0 输出未写)**:backward 空 tensor 早退分支不写任何输出,而 gradPhi/gradAlpha/gradBias 是参数梯度(shape 与 B 无关,B=0 时仍非空),调用方读到未初始化内存。早退路径对非空的 gradX/gradPhi/gradAlpha/gradBias 通过 l0op::Fill + ViewCopy 写零后再返回。 #6619 缺陷1(大 shape 梯度漂移)与缺陷3(并发输出污染)需要报告者提供的 FD 脚本 / 并发 harness / mssanitizer 原始日志复现定位,本 PR 暂不涉及。 ## 关联的Issue - https://gitcode.com/cann/ops-transformer/issues/6654 - https://gitcode.com/cann/ops-transformer/issues/6694 - https://gitcode.com/cann/ops-transformer/issues/6619 **附加修复:op_api UT 编译阻塞(非本 PR 业务代码问题,随 PR 一并合入以解除全仓阻塞)** CI 的 op_api UT 失败根因:UT 框架 stub(tests/ut/framework_normal/op_api/stub/opdev/platform.h)内嵌的 NpuArch/Ops::Base::DAV_* 常量快照缺少 DAV_5162,且该 stub 通过定义 OP_COMMON_OP_HOST_UTIL_OP_CONST_DEF_H guard 宏短路了 third_party 真头文件——导致 aclnn_platform.h(IsRegbase 引用 DAV_5162,!14033 引入)在 op_api UT 构建中编译失败('DAV_5162' is not a member of 'Ops::Base'),阻塞全仓所有 PR。stub 枚举与 constexpr 区各补一行 DAV_5162 对齐真头文件。实机验证:补丁后无任何临时改动情况下 scoped op_api UT 编译通过、mhc 全部 4 用例 PASSED。 ## 测试 Atlas 910B3(A2/DAV_2201),cann/master 未修复版与本分支分别构建(9.3.0 weekly 20261014 toolkit),LD_PRELOAD A/B,issue 原样场景探针(两轮稳定): | 场景 | 未修复 master | 本 PR | 预期 | |---|---|---|---| | #6654 前向 c=130 | 0(放行) | **161002** | 161002 | | #6654 前向 c=128 回归 | 0 | 0 | 0 | | #6694 needBackward=false + 5 出参 nullptr | 561103 | **161001** | 161001 | | #6694 needBackward=false + 5 出参分配(回归) | 0 | 0 | 0 | | #6619 backward B=0(gradPhi 预填 0xAB 金丝雀 49152B) | 全残留 | **全 0** | 全 0 | | #6619 backward 有效路径回归(bs=2,pattern 填充输入) | sync=0 | sync=0,gradPhi checksum 与修复前**逐位一致** | 行为不变 | ## 文档更新 NA(#6694 的"输出无效"措辞与可空规则、#6619 附带的 P3 头文件约束缺口,建议由资料模块随本 PR 合入后单独跟进) ## 类型标签 - [x] 🐛 Bug修复 See merge request: cann/ops-transformer!14770 | 9 days ago | |
fix(pre-commit): 全仓代码规范整改——公共 Co-authored-by: gitcode_lijd<lijiandong20@huawei.com> # message auto-generated for no-merge-commit merge: !13532 merge common into master fix(pre-commit): 全仓代码规范整改——公共 Created-by: gitcode_lijd Commit-by: gitcode_lijd Merged-by: cann-robot Description: 关联Issue https://gitcode.com/cann/ops-transformer/issues/5939 ## 描述 全仓代码规范整改系列——公共目录(common/、examples/、tests/、scripts/ 等)。基于仓库 pre-commit 门禁对存量代码做一次性规范收敛: - clang-format 按 .clang-format 统一格式(列宽 120、指针左对齐等),ruff 格式化 Python - 行尾空白、文件末尾换行修复,少量文档笔误修正 - 规模:280 个文件,+4708/-5785 行,纯格式化改动语义等价,无逻辑变更 ## 关联的Issue https://gitcode.com/cann/ops-transformer/issues/5939(全仓整改总跟踪) ## 测试 - pre-commit 全部钩子本地通过 - CI 流水线(compile/UT)验证 See merge request: cann/ops-transformer!13532 | 30 days ago | |
fix: 修复 moe_token_permute_with_ep_grad/moe_token_unpermute_grad UT脚本 Co-authored-by: fazhenyao<fazhenyao@h-partners.com> # message auto-generated for no-merge-commit merge: !13952 merge fix-issue-5796-moe-grad-ut into master fix: 修复 moe_token_permute_with_ep_grad/moe_token_unpermute_grad UT脚本 Created-by: fazhenyao123 Commit-by: fazhenyao Merged-by: cann-robot Description: ## 描述 修复 moe_token_permute_with_ep_grad 与 moe_token_unpermute_grad 的 kernel UT:原造数脚本存在类型转换和参数处理错误,部分 UT 未加载有效输入,也未比较输出,导致无法发现精度回归。 - 重写 CPU golden 造数,严格解析布尔参数,正确保存 FP32、FP16、BF16 二进制数据,并使用非恒等排列。 - UT 加载真实输入、初始化 tiling,并校验 token/probs 两路梯度;覆盖无 probs、多 top-k、局部 token 范围和 hidden size 尾块。 - 修正 unpermute UT 的编译类型配置,新增基于独立 autograd 参考的 Python 回归测试。 目标分支:master;基线提交:a4a986c76e2f8cbe6c8b1612d81bf6c288106389。改动仅涉及 6 个测试及测试配置文件。 ## 关联的Issue Fixes #5796 https://gitcode.com/cann/ops-transformer/issues/5796 ## 测试 - Python 回归测试:4 组全部通过,包含 FP32/FP16/BF16、参数校验和输出文件处理。 - A5_ci 上使用 Ascend910B1 tikicpulib 的独立 CPU 仿真构建:最终代码 7/7 个 kernel UT 通过(permute 3 个、unpermute 4 个)。此验证使用实际 kernel 源码与 UT,未执行完整仓库构建或 NPU 硬件测试。 - 4 项负向验证:分别破坏两个算子的 token/probs golden,UT 均能检测并失败;验证后已恢复原始 golden 生成脚本。 - clang-format 18.1.8、ruff 0.14.14 检查及 git diff --check 通过。 ## 文档更新 无文档更新。 ## 类型标签 - [x] 🐛 Bug修复 - [x] 🧪 测试 See merge request: cann/ops-transformer!13952 | 21 days ago |
| Files | Last commit | Last update |
|---|---|---|
| 9 days ago | ||
| 30 days ago | ||
| 21 days ago |