| Files | Last commit | Last update |
|---|---|---|
A6回合修复matmulallreduce伪量化场景适配 Co-authored-by: zhengshaonan<zhengshaonan@huawei.com> # message auto-generated for no-merge-commit merge: !14516 merge master into master A6回合修复matmulallreduce伪量化场景适配 Created-by: zhengshaonan Commit-by: zhengshaonan Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] 🐛 Bug修复 - [ ] ✨ 新特性 - [ ] ⚡ 性能优化 - [ ] ♻️ 重构 - [ ] 🧪 测试 - [ ] 📦 构建/CI - [ ] 🔧 配置变更 - [ ] 📝 文档更新 - [ ] ⬆️ 依赖升级 - [ ] 🔒 安全修复 - [ ] 🧹 代码清理 - [ ] ❓ 其他,请描述: See merge request: cann/ops-transformer!14516 | 20 days ago | |
修复 aclnnAllGatherMatmul算子错误码表并统一 Full Mesh 组网表述 Co-authored-by: w00951525<wangfuhao7@huawei.com> # message auto-generated for no-merge-commit merge: !15461 merge agmm_doc_fix into master 修复 aclnnAllGatherMatmul算子错误码表并统一 Full Mesh 组网表述 Created-by: w00951525 Commit-by: w00951525 Merged-by: cann-robot Description: ## 描述 本次提交针对社区 issue #6788/#6789(共性问题)修复了 all_gather_matmul 与 all_gather_matmul_v2 两个算子的中英文 API 文档及 README 共 5 个文件:为 aclnnAllGatherMatmul 错误码表补齐"x1的k轴为0"的 161002 场景并修正 rowspan 与描述行数不匹配问题;将 aclnnAllGatherMatmulV2 错误码表由 1 行精简补齐为 3 行(数据类型和 shape 维度/尺寸、streamMode/commMode 取值、format 约束及量化/fp16/bf16 场景下 scale 与 amaxOut 空指针约束),rowspan 同步对齐;经源码裁决 quantScale 以 tiling 层端到端口径为准,维持"仅支持空指针"表述不变;并将"all mesh组网"统一改为"Full Mesh(全互连)组网"(英文 full mesh networking),与代码侧 full_mesh 实现命名一致。 ## 关联的Issue https://gitcode.com/cann/ops-transformer/issues/6788 aclnnAllGatherMatmul 错误码表格式错误且缺"k轴=0"场景(2处) https://gitcode.com/cann/ops-transformer/issues/6789 aclnnAllGatherMatmulV2 错误码表不完整、quantScale 支持口径与源码冲突(3处) ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] 🐛 Bug修复 - [ ] ✨ 新特性 - [ ] ⚡ 性能优化 - [ ] ♻️ 重构 - [ ] 🧪 测试 - [ ] 📦 构建/CI - [ ] 🔧 配置变更 - [ ] 📝 文档更新 - [ ] ⬆️ 依赖升级 - [ ] 🔒 安全修复 - [ ] 🧹 代码清理 - [ ] ❓ 其他,请描述: See merge request: cann/ops-transformer!15461 | 9 days ago | |
[cleancode]整仓替换OP_LOGE_WITH_INVALID_ATTR、OP_LOGE_WITH_INVALID_ATTR_SIZE等废弃宏 Co-authored-by: mutex_lock<chenyifan66@h-partners.com> # message auto-generated for no-merge-commit merge: !15263 merge replace_obs_api into master [cleancode]整仓替换OP_LOGE_WITH_INVALID_ATTR、OP_LOGE_WITH_INVALID_ATTR_SIZE等废弃宏 Created-by: mutex_lock Commit-by: mutex_lock Merged-by: cann-robot Description: ## 描述 整仓替换 op_common/log/log.h 中已废弃的日志宏,迁移到文档推荐的新宏,避免后续日落删除导致编译失败。 ### 背景与原因 OP_LOGE_WITH_INVALID_ATTR / ATTR_SIZE / INPUT_FORMAT / INPUT_DTYPE 等接口已在 opbase 文档中标记废弃,并给出替代宏。仓内(含 mc2、moe、ffn、experimental)仍有大量调用,需统一切换。 ### 改动方法 仅做宏名替换,调用参数签名一致,不改校验逻辑: | 废弃宏 | 替代宏 | 约计次数 | |--------|--------|----------| | OP_LOGE_WITH_INVALID_ATTR | OP_LOGE_FOR_INVALID_VALUE | 230 | | OP_LOGE_WITH_INVALID_ATTR_SIZE | OP_LOGE_FOR_INVALID_LISTSIZE | 8 | | OP_LOGE_WITH_INVALID_INPUT_FORMAT | OP_LOGE_FOR_INVALID_FORMAT | 13 | | OP_LOGE_WITH_INVALID_INPUT_DTYPE | OP_LOGE_FOR_INVALID_DTYPE | 1 | 共修改 60 个文件,252 处;错误码/日志文案随新宏切换(如 ATTR→VALUE:EZ0002→EZ0024),属预期行为。 ### 涉及范围 - mc2/、moe/、ffn/、experimental/ 等 Host / OPAPI 侧调用点 - 均依赖同一 log/log.h(third_party/opbase/include/op_common/log/log.h) ## 关联的Issue https://gitcode.com/cann/ops-transformer/issues/7092 ## 测试 - [x] 相关算子 Host / OPAPI UT(按需抽测) - [x] 二级冒烟 / 算子泛化(如有流水要求再补) - [x] 静态核对:旧宏在业务源码中无残留;新宏均在 log.h 中有定义;参数个数未变 ## 文档更新 无业务文档更新;依据 third_party/opbase 既有废弃说明完成迁移。 ## 类型标签 <!-- [x] 表示选中 --> - [ ] 🐛 Bug修复 - [ ] ✨ 新特性 - [ ] ⚡ 性能优化 - [ ] ♻️ 重构 - [ ] 🧪 测试 - [ ] 📦 构建/CI - [ ] 🔧 配置变更 - [ ] 📝 文档更新 - [ ] ⬆️ 依赖升级 - [ ] 🔒 安全修复 - [x] 🧹 代码清理 - [ ] ❓ 其他,请描述: See merge request: cann/ops-transformer!15263 | 5 days ago | |
[cleancode]整仓替换OP_LOGE_WITH_INVALID_ATTR、OP_LOGE_WITH_INVALID_ATTR_SIZE等废弃宏 Co-authored-by: mutex_lock<chenyifan66@h-partners.com> # message auto-generated for no-merge-commit merge: !15263 merge replace_obs_api into master [cleancode]整仓替换OP_LOGE_WITH_INVALID_ATTR、OP_LOGE_WITH_INVALID_ATTR_SIZE等废弃宏 Created-by: mutex_lock Commit-by: mutex_lock Merged-by: cann-robot Description: ## 描述 整仓替换 op_common/log/log.h 中已废弃的日志宏,迁移到文档推荐的新宏,避免后续日落删除导致编译失败。 ### 背景与原因 OP_LOGE_WITH_INVALID_ATTR / ATTR_SIZE / INPUT_FORMAT / INPUT_DTYPE 等接口已在 opbase 文档中标记废弃,并给出替代宏。仓内(含 mc2、moe、ffn、experimental)仍有大量调用,需统一切换。 ### 改动方法 仅做宏名替换,调用参数签名一致,不改校验逻辑: | 废弃宏 | 替代宏 | 约计次数 | |--------|--------|----------| | OP_LOGE_WITH_INVALID_ATTR | OP_LOGE_FOR_INVALID_VALUE | 230 | | OP_LOGE_WITH_INVALID_ATTR_SIZE | OP_LOGE_FOR_INVALID_LISTSIZE | 8 | | OP_LOGE_WITH_INVALID_INPUT_FORMAT | OP_LOGE_FOR_INVALID_FORMAT | 13 | | OP_LOGE_WITH_INVALID_INPUT_DTYPE | OP_LOGE_FOR_INVALID_DTYPE | 1 | 共修改 60 个文件,252 处;错误码/日志文案随新宏切换(如 ATTR→VALUE:EZ0002→EZ0024),属预期行为。 ### 涉及范围 - mc2/、moe/、ffn/、experimental/ 等 Host / OPAPI 侧调用点 - 均依赖同一 log/log.h(third_party/opbase/include/op_common/log/log.h) ## 关联的Issue https://gitcode.com/cann/ops-transformer/issues/7092 ## 测试 - [x] 相关算子 Host / OPAPI UT(按需抽测) - [x] 二级冒烟 / 算子泛化(如有流水要求再补) - [x] 静态核对:旧宏在业务源码中无残留;新宏均在 log.h 中有定义;参数个数未变 ## 文档更新 无业务文档更新;依据 third_party/opbase 既有废弃说明完成迁移。 ## 类型标签 <!-- [x] 表示选中 --> - [ ] 🐛 Bug修复 - [ ] ✨ 新特性 - [ ] ⚡ 性能优化 - [ ] ♻️ 重构 - [ ] 🧪 测试 - [ ] 📦 构建/CI - [ ] 🔧 配置变更 - [ ] 📝 文档更新 - [ ] ⬆️ 依赖升级 - [ ] 🔒 安全修复 - [x] 🧹 代码清理 - [ ] ❓ 其他,请描述: See merge request: cann/ops-transformer!15263 | 5 days ago | |
docs: add English translations for markdown files Co-authored-by: jenny_xiang<jenny.xiang@huawei.com> # message auto-generated for no-merge-commit merge: !15372 merge docs/add-english-translations into master docs: add English translations for markdown files Created-by: jenny_xiang Commit-by: jenny_xiang Merged-by: cann-robot Description: ## 描述 新增仓库Markdown文档英文译稿(第二批,共275个文件),为第一批(已合入)之外的其余全部译稿: - 新增263个英文译稿文件(含上游新增算子 attention/flash_kda_grad 的README与测试说明2篇,及14篇基于最新源文档的增量更新) - 重命名12个中文设计文档为英文名(Xxx算子设计介绍.md → Xxx_design.md,与第一批FFN_design.md策略一致) - 更新7个README中的设计文档引用链接 - 更新.pre-commit-config.yaml中codespell忽略词表 本批内全部仓内链接均指向master已有文件(含第一批已合入的42篇译稿),合入后本仓英文文档全部就位、链接完整生效。 ## 关联的Issue 无 ## 测试 文档类变更,无需算子测试;已通过链接有效性校验、残留中文/全角标点扫描、EOF换行规范检查,并完成逐篇翻译规范自查与独立语义审查(含支持状态表、限定词、术语、数值符号核对)。 ## 文档更新 新增263个英文译稿文件、重命名12个中文设计文档、更新8个现有文件,不修改算子源码。 ## 类型标签 - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-transformer!15372 | 9 days ago | |
[cleancode]整仓替换OP_LOGE_WITH_INVALID_ATTR、OP_LOGE_WITH_INVALID_ATTR_SIZE等废弃宏 Co-authored-by: mutex_lock<chenyifan66@h-partners.com> # message auto-generated for no-merge-commit merge: !15263 merge replace_obs_api into master [cleancode]整仓替换OP_LOGE_WITH_INVALID_ATTR、OP_LOGE_WITH_INVALID_ATTR_SIZE等废弃宏 Created-by: mutex_lock Commit-by: mutex_lock Merged-by: cann-robot Description: ## 描述 整仓替换 op_common/log/log.h 中已废弃的日志宏,迁移到文档推荐的新宏,避免后续日落删除导致编译失败。 ### 背景与原因 OP_LOGE_WITH_INVALID_ATTR / ATTR_SIZE / INPUT_FORMAT / INPUT_DTYPE 等接口已在 opbase 文档中标记废弃,并给出替代宏。仓内(含 mc2、moe、ffn、experimental)仍有大量调用,需统一切换。 ### 改动方法 仅做宏名替换,调用参数签名一致,不改校验逻辑: | 废弃宏 | 替代宏 | 约计次数 | |--------|--------|----------| | OP_LOGE_WITH_INVALID_ATTR | OP_LOGE_FOR_INVALID_VALUE | 230 | | OP_LOGE_WITH_INVALID_ATTR_SIZE | OP_LOGE_FOR_INVALID_LISTSIZE | 8 | | OP_LOGE_WITH_INVALID_INPUT_FORMAT | OP_LOGE_FOR_INVALID_FORMAT | 13 | | OP_LOGE_WITH_INVALID_INPUT_DTYPE | OP_LOGE_FOR_INVALID_DTYPE | 1 | 共修改 60 个文件,252 处;错误码/日志文案随新宏切换(如 ATTR→VALUE:EZ0002→EZ0024),属预期行为。 ### 涉及范围 - mc2/、moe/、ffn/、experimental/ 等 Host / OPAPI 侧调用点 - 均依赖同一 log/log.h(third_party/opbase/include/op_common/log/log.h) ## 关联的Issue https://gitcode.com/cann/ops-transformer/issues/7092 ## 测试 - [x] 相关算子 Host / OPAPI UT(按需抽测) - [x] 二级冒烟 / 算子泛化(如有流水要求再补) - [x] 静态核对:旧宏在业务源码中无残留;新宏均在 log.h 中有定义;参数个数未变 ## 文档更新 无业务文档更新;依据 third_party/opbase 既有废弃说明完成迁移。 ## 类型标签 <!-- [x] 表示选中 --> - [ ] 🐛 Bug修复 - [ ] ✨ 新特性 - [ ] ⚡ 性能优化 - [ ] ♻️ 重构 - [ ] 🧪 测试 - [ ] 📦 构建/CI - [ ] 🔧 配置变更 - [ ] 📝 文档更新 - [ ] ⬆️ 依赖升级 - [ ] 🔒 安全修复 - [x] 🧹 代码清理 - [ ] ❓ 其他,请描述: See merge request: cann/ops-transformer!15263 | 5 days ago | |
[cleancode]整仓替换OP_LOGE_WITH_INVALID_ATTR、OP_LOGE_WITH_INVALID_ATTR_SIZE等废弃宏 Co-authored-by: mutex_lock<chenyifan66@h-partners.com> # message auto-generated for no-merge-commit merge: !15263 merge replace_obs_api into master [cleancode]整仓替换OP_LOGE_WITH_INVALID_ATTR、OP_LOGE_WITH_INVALID_ATTR_SIZE等废弃宏 Created-by: mutex_lock Commit-by: mutex_lock Merged-by: cann-robot Description: ## 描述 整仓替换 op_common/log/log.h 中已废弃的日志宏,迁移到文档推荐的新宏,避免后续日落删除导致编译失败。 ### 背景与原因 OP_LOGE_WITH_INVALID_ATTR / ATTR_SIZE / INPUT_FORMAT / INPUT_DTYPE 等接口已在 opbase 文档中标记废弃,并给出替代宏。仓内(含 mc2、moe、ffn、experimental)仍有大量调用,需统一切换。 ### 改动方法 仅做宏名替换,调用参数签名一致,不改校验逻辑: | 废弃宏 | 替代宏 | 约计次数 | |--------|--------|----------| | OP_LOGE_WITH_INVALID_ATTR | OP_LOGE_FOR_INVALID_VALUE | 230 | | OP_LOGE_WITH_INVALID_ATTR_SIZE | OP_LOGE_FOR_INVALID_LISTSIZE | 8 | | OP_LOGE_WITH_INVALID_INPUT_FORMAT | OP_LOGE_FOR_INVALID_FORMAT | 13 | | OP_LOGE_WITH_INVALID_INPUT_DTYPE | OP_LOGE_FOR_INVALID_DTYPE | 1 | 共修改 60 个文件,252 处;错误码/日志文案随新宏切换(如 ATTR→VALUE:EZ0002→EZ0024),属预期行为。 ### 涉及范围 - mc2/、moe/、ffn/、experimental/ 等 Host / OPAPI 侧调用点 - 均依赖同一 log/log.h(third_party/opbase/include/op_common/log/log.h) ## 关联的Issue https://gitcode.com/cann/ops-transformer/issues/7092 ## 测试 - [x] 相关算子 Host / OPAPI UT(按需抽测) - [x] 二级冒烟 / 算子泛化(如有流水要求再补) - [x] 静态核对:旧宏在业务源码中无残留;新宏均在 log.h 中有定义;参数个数未变 ## 文档更新 无业务文档更新;依据 third_party/opbase 既有废弃说明完成迁移。 ## 类型标签 <!-- [x] 表示选中 --> - [ ] 🐛 Bug修复 - [ ] ✨ 新特性 - [ ] ⚡ 性能优化 - [ ] ♻️ 重构 - [ ] 🧪 测试 - [ ] 📦 构建/CI - [ ] 🔧 配置变更 - [ ] 📝 文档更新 - [ ] ⬆️ 依赖升级 - [ ] 🔒 安全修复 - [x] 🧹 代码清理 - [ ] ❓ 其他,请描述: See merge request: cann/ops-transformer!15263 | 5 days ago | |
修复 ops-transformer 接口文档扫描问题(错别字/术语及MD格式,214处) Co-authored-by: liujing987913<liujing407@h-partners.com> # message auto-generated for no-merge-commit merge: !15468 merge master into master 修复 ops-transformer 接口文档扫描问题(错别字/术语及MD格式,214处) Created-by: liujing987913 Commit-by: liujing987913 Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> - 背景:大模型扫描发现 ops-transformer 接口文档问题 214 处 - 修改分类: - 文本替换 145 处:多字/中文多字 101、同音字 25、术语拼写 19、形近字 1、字母顺序 1、代码括号 3 - MD 结构修复 69 处:MD012 连续空行 / MD022 标题 / MD031 代码围栏 / MD032 列表 / MD058 表格 / MD028 引用 / MD010 tab→空格 - 涉及文件:docs 目录下 146 个接口文档 md(含 torchapi 接口文档) - 验证:git diff 确认为纯文本替换 + 纯结构操作,无内容/代码误改;已人工复核 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> https://gitcode.com/cann/ops-transformer/issues/7211 <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> 本次 PR 更新了 ops-transformer 接口文档 146 个 md 文件,修正错别字/多字/术语 145 处、MD 结构 69 处,详见 diff。 ## 类型标签 <!-- [x] 表示选中 --> - [ ] 🐛 Bug修复 - [ ] ✨ 新特性 - [ ] ⚡ 性能优化 - [ ] ♻️ 重构 - [ ] 🧪 测试 - [ ] 📦 构建/CI - [ ] 🔧 配置变更 - [x] 📝 文档更新 - [ ] ⬆️ 依赖升级 - [ ] 🔒 安全修复 - [ ] 🧹 代码清理 - [ ] ❓ 其他,请描述: See merge request: cann/ops-transformer!15468 | 6 days ago | |
docs: add English translations for markdown files Co-authored-by: jenny_xiang<jenny.xiang@huawei.com> # message auto-generated for no-merge-commit merge: !15372 merge docs/add-english-translations into master docs: add English translations for markdown files Created-by: jenny_xiang Commit-by: jenny_xiang Merged-by: cann-robot Description: ## 描述 新增仓库Markdown文档英文译稿(第二批,共275个文件),为第一批(已合入)之外的其余全部译稿: - 新增263个英文译稿文件(含上游新增算子 attention/flash_kda_grad 的README与测试说明2篇,及14篇基于最新源文档的增量更新) - 重命名12个中文设计文档为英文名(Xxx算子设计介绍.md → Xxx_design.md,与第一批FFN_design.md策略一致) - 更新7个README中的设计文档引用链接 - 更新.pre-commit-config.yaml中codespell忽略词表 本批内全部仓内链接均指向master已有文件(含第一批已合入的42篇译稿),合入后本仓英文文档全部就位、链接完整生效。 ## 关联的Issue 无 ## 测试 文档类变更,无需算子测试;已通过链接有效性校验、残留中文/全角标点扫描、EOF换行规范检查,并完成逐篇翻译规范自查与独立语义审查(含支持状态表、限定词、术语、数值符号核对)。 ## 文档更新 新增263个英文译稿文件、重命名12个中文设计文档、更新8个现有文件,不修改算子源码。 ## 类型标签 - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-transformer!15372 | 9 days ago | |
[cleancode]整仓替换OP_LOGE_WITH_INVALID_ATTR、OP_LOGE_WITH_INVALID_ATTR_SIZE等废弃宏 Co-authored-by: mutex_lock<chenyifan66@h-partners.com> # message auto-generated for no-merge-commit merge: !15263 merge replace_obs_api into master [cleancode]整仓替换OP_LOGE_WITH_INVALID_ATTR、OP_LOGE_WITH_INVALID_ATTR_SIZE等废弃宏 Created-by: mutex_lock Commit-by: mutex_lock Merged-by: cann-robot Description: ## 描述 整仓替换 op_common/log/log.h 中已废弃的日志宏,迁移到文档推荐的新宏,避免后续日落删除导致编译失败。 ### 背景与原因 OP_LOGE_WITH_INVALID_ATTR / ATTR_SIZE / INPUT_FORMAT / INPUT_DTYPE 等接口已在 opbase 文档中标记废弃,并给出替代宏。仓内(含 mc2、moe、ffn、experimental)仍有大量调用,需统一切换。 ### 改动方法 仅做宏名替换,调用参数签名一致,不改校验逻辑: | 废弃宏 | 替代宏 | 约计次数 | |--------|--------|----------| | OP_LOGE_WITH_INVALID_ATTR | OP_LOGE_FOR_INVALID_VALUE | 230 | | OP_LOGE_WITH_INVALID_ATTR_SIZE | OP_LOGE_FOR_INVALID_LISTSIZE | 8 | | OP_LOGE_WITH_INVALID_INPUT_FORMAT | OP_LOGE_FOR_INVALID_FORMAT | 13 | | OP_LOGE_WITH_INVALID_INPUT_DTYPE | OP_LOGE_FOR_INVALID_DTYPE | 1 | 共修改 60 个文件,252 处;错误码/日志文案随新宏切换(如 ATTR→VALUE:EZ0002→EZ0024),属预期行为。 ### 涉及范围 - mc2/、moe/、ffn/、experimental/ 等 Host / OPAPI 侧调用点 - 均依赖同一 log/log.h(third_party/opbase/include/op_common/log/log.h) ## 关联的Issue https://gitcode.com/cann/ops-transformer/issues/7092 ## 测试 - [x] 相关算子 Host / OPAPI UT(按需抽测) - [x] 二级冒烟 / 算子泛化(如有流水要求再补) - [x] 静态核对:旧宏在业务源码中无残留;新宏均在 log.h 中有定义;参数个数未变 ## 文档更新 无业务文档更新;依据 third_party/opbase 既有废弃说明完成迁移。 ## 类型标签 <!-- [x] 表示选中 --> - [ ] 🐛 Bug修复 - [ ] ✨ 新特性 - [ ] ⚡ 性能优化 - [ ] ♻️ 重构 - [ ] 🧪 测试 - [ ] 📦 构建/CI - [ ] 🔧 配置变更 - [ ] 📝 文档更新 - [ ] ⬆️ 依赖升级 - [ ] 🔒 安全修复 - [x] 🧹 代码清理 - [ ] ❓ 其他,请描述: See merge request: cann/ops-transformer!15263 | 5 days ago | |
AF算子,combineARN算子资料标签修改 Co-authored-by: jiangxiuhan1<jiangxiuhan@huawei.com> # message auto-generated for no-merge-commit merge: !15450 merge issue into master AF算子,combineARN算子资料标签修改 Created-by: jiangxiuhan1 Commit-by: jiangxiuhan1 Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] 🐛 Bug修复 - [ ] ✨ 新特性 - [ ] ⚡ 性能优化 - [ ] ♻️ 重构 - [ ] 🧪 测试 - [ ] 📦 构建/CI - [ ] 🔧 配置变更 - [x] 📝 文档更新 - [ ] ⬆️ 依赖升级 - [ ] 🔒 安全修复 - [ ] 🧹 代码清理 - [ ] ❓ 其他,请描述: See merge request: cann/ops-transformer!15450 | 6 days ago | |
[cleancode]整仓替换OP_LOGE_WITH_INVALID_ATTR、OP_LOGE_WITH_INVALID_ATTR_SIZE等废弃宏 Co-authored-by: mutex_lock<chenyifan66@h-partners.com> # message auto-generated for no-merge-commit merge: !15263 merge replace_obs_api into master [cleancode]整仓替换OP_LOGE_WITH_INVALID_ATTR、OP_LOGE_WITH_INVALID_ATTR_SIZE等废弃宏 Created-by: mutex_lock Commit-by: mutex_lock Merged-by: cann-robot Description: ## 描述 整仓替换 op_common/log/log.h 中已废弃的日志宏,迁移到文档推荐的新宏,避免后续日落删除导致编译失败。 ### 背景与原因 OP_LOGE_WITH_INVALID_ATTR / ATTR_SIZE / INPUT_FORMAT / INPUT_DTYPE 等接口已在 opbase 文档中标记废弃,并给出替代宏。仓内(含 mc2、moe、ffn、experimental)仍有大量调用,需统一切换。 ### 改动方法 仅做宏名替换,调用参数签名一致,不改校验逻辑: | 废弃宏 | 替代宏 | 约计次数 | |--------|--------|----------| | OP_LOGE_WITH_INVALID_ATTR | OP_LOGE_FOR_INVALID_VALUE | 230 | | OP_LOGE_WITH_INVALID_ATTR_SIZE | OP_LOGE_FOR_INVALID_LISTSIZE | 8 | | OP_LOGE_WITH_INVALID_INPUT_FORMAT | OP_LOGE_FOR_INVALID_FORMAT | 13 | | OP_LOGE_WITH_INVALID_INPUT_DTYPE | OP_LOGE_FOR_INVALID_DTYPE | 1 | 共修改 60 个文件,252 处;错误码/日志文案随新宏切换(如 ATTR→VALUE:EZ0002→EZ0024),属预期行为。 ### 涉及范围 - mc2/、moe/、ffn/、experimental/ 等 Host / OPAPI 侧调用点 - 均依赖同一 log/log.h(third_party/opbase/include/op_common/log/log.h) ## 关联的Issue https://gitcode.com/cann/ops-transformer/issues/7092 ## 测试 - [x] 相关算子 Host / OPAPI UT(按需抽测) - [x] 二级冒烟 / 算子泛化(如有流水要求再补) - [x] 静态核对:旧宏在业务源码中无残留;新宏均在 log.h 中有定义;参数个数未变 ## 文档更新 无业务文档更新;依据 third_party/opbase 既有废弃说明完成迁移。 ## 类型标签 <!-- [x] 表示选中 --> - [ ] 🐛 Bug修复 - [ ] ✨ 新特性 - [ ] ⚡ 性能优化 - [ ] ♻️ 重构 - [ ] 🧪 测试 - [ ] 📦 构建/CI - [ ] 🔧 配置变更 - [ ] 📝 文档更新 - [ ] ⬆️ 依赖升级 - [ ] 🔒 安全修复 - [x] 🧹 代码清理 - [ ] ❓ 其他,请描述: See merge request: cann/ops-transformer!15263 | 5 days ago | |
[cleancode]整仓替换OP_LOGE_WITH_INVALID_ATTR、OP_LOGE_WITH_INVALID_ATTR_SIZE等废弃宏 Co-authored-by: mutex_lock<chenyifan66@h-partners.com> # message auto-generated for no-merge-commit merge: !15263 merge replace_obs_api into master [cleancode]整仓替换OP_LOGE_WITH_INVALID_ATTR、OP_LOGE_WITH_INVALID_ATTR_SIZE等废弃宏 Created-by: mutex_lock Commit-by: mutex_lock Merged-by: cann-robot Description: ## 描述 整仓替换 op_common/log/log.h 中已废弃的日志宏,迁移到文档推荐的新宏,避免后续日落删除导致编译失败。 ### 背景与原因 OP_LOGE_WITH_INVALID_ATTR / ATTR_SIZE / INPUT_FORMAT / INPUT_DTYPE 等接口已在 opbase 文档中标记废弃,并给出替代宏。仓内(含 mc2、moe、ffn、experimental)仍有大量调用,需统一切换。 ### 改动方法 仅做宏名替换,调用参数签名一致,不改校验逻辑: | 废弃宏 | 替代宏 | 约计次数 | |--------|--------|----------| | OP_LOGE_WITH_INVALID_ATTR | OP_LOGE_FOR_INVALID_VALUE | 230 | | OP_LOGE_WITH_INVALID_ATTR_SIZE | OP_LOGE_FOR_INVALID_LISTSIZE | 8 | | OP_LOGE_WITH_INVALID_INPUT_FORMAT | OP_LOGE_FOR_INVALID_FORMAT | 13 | | OP_LOGE_WITH_INVALID_INPUT_DTYPE | OP_LOGE_FOR_INVALID_DTYPE | 1 | 共修改 60 个文件,252 处;错误码/日志文案随新宏切换(如 ATTR→VALUE:EZ0002→EZ0024),属预期行为。 ### 涉及范围 - mc2/、moe/、ffn/、experimental/ 等 Host / OPAPI 侧调用点 - 均依赖同一 log/log.h(third_party/opbase/include/op_common/log/log.h) ## 关联的Issue https://gitcode.com/cann/ops-transformer/issues/7092 ## 测试 - [x] 相关算子 Host / OPAPI UT(按需抽测) - [x] 二级冒烟 / 算子泛化(如有流水要求再补) - [x] 静态核对:旧宏在业务源码中无残留;新宏均在 log.h 中有定义;参数个数未变 ## 文档更新 无业务文档更新;依据 third_party/opbase 既有废弃说明完成迁移。 ## 类型标签 <!-- [x] 表示选中 --> - [ ] 🐛 Bug修复 - [ ] ✨ 新特性 - [ ] ⚡ 性能优化 - [ ] ♻️ 重构 - [ ] 🧪 测试 - [ ] 📦 构建/CI - [ ] 🔧 配置变更 - [ ] 📝 文档更新 - [ ] ⬆️ 依赖升级 - [ ] 🔒 安全修复 - [x] 🧹 代码清理 - [ ] ❓ 其他,请描述: See merge request: cann/ops-transformer!15263 | 5 days ago | |
docs: add English translations for markdown files Co-authored-by: jenny_xiang<jenny.xiang@huawei.com> # message auto-generated for no-merge-commit merge: !15372 merge docs/add-english-translations into master docs: add English translations for markdown files Created-by: jenny_xiang Commit-by: jenny_xiang Merged-by: cann-robot Description: ## 描述 新增仓库Markdown文档英文译稿(第二批,共275个文件),为第一批(已合入)之外的其余全部译稿: - 新增263个英文译稿文件(含上游新增算子 attention/flash_kda_grad 的README与测试说明2篇,及14篇基于最新源文档的增量更新) - 重命名12个中文设计文档为英文名(Xxx算子设计介绍.md → Xxx_design.md,与第一批FFN_design.md策略一致) - 更新7个README中的设计文档引用链接 - 更新.pre-commit-config.yaml中codespell忽略词表 本批内全部仓内链接均指向master已有文件(含第一批已合入的42篇译稿),合入后本仓英文文档全部就位、链接完整生效。 ## 关联的Issue 无 ## 测试 文档类变更,无需算子测试;已通过链接有效性校验、残留中文/全角标点扫描、EOF换行规范检查,并完成逐篇翻译规范自查与独立语义审查(含支持状态表、限定词、术语、数值符号核对)。 ## 文档更新 新增263个英文译稿文件、重命名12个中文设计文档、更新8个现有文件,不修改算子源码。 ## 类型标签 - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-transformer!15372 | 9 days ago | |
docs: add English translations for markdown files Co-authored-by: jenny_xiang<jenny.xiang@huawei.com> # message auto-generated for no-merge-commit merge: !15372 merge docs/add-english-translations into master docs: add English translations for markdown files Created-by: jenny_xiang Commit-by: jenny_xiang Merged-by: cann-robot Description: ## 描述 新增仓库Markdown文档英文译稿(第二批,共275个文件),为第一批(已合入)之外的其余全部译稿: - 新增263个英文译稿文件(含上游新增算子 attention/flash_kda_grad 的README与测试说明2篇,及14篇基于最新源文档的增量更新) - 重命名12个中文设计文档为英文名(Xxx算子设计介绍.md → Xxx_design.md,与第一批FFN_design.md策略一致) - 更新7个README中的设计文档引用链接 - 更新.pre-commit-config.yaml中codespell忽略词表 本批内全部仓内链接均指向master已有文件(含第一批已合入的42篇译稿),合入后本仓英文文档全部就位、链接完整生效。 ## 关联的Issue 无 ## 测试 文档类变更,无需算子测试;已通过链接有效性校验、残留中文/全角标点扫描、EOF换行规范检查,并完成逐篇翻译规范自查与独立语义审查(含支持状态表、限定词、术语、数值符号核对)。 ## 文档更新 新增263个英文译稿文件、重命名12个中文设计文档、更新8个现有文件,不修改算子源码。 ## 类型标签 - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-transformer!15372 | 9 days ago | |
engram训练sf性能优化 Co-authored-by: wuchenhao<wuchenhao6@huawei.com> # message auto-generated for no-merge-commit merge: !15208 merge train_yh into master engram训练sf性能优化 Created-by: wuchenhao123 Commit-by: wuchenhao Merged-by: cann-robot Description: ## 描述 训练正向量化场景行宽非32B对齐,staging聚合/接收散射/本地直取三处搬运退化为逐行同步,性能劣化,本次修改取消32B非对齐时候退化逐行拷贝, 改为批量搬运(一次申请UB tile、连续排队DMA、每批只等一次),同步次数从O(行数)降为O(批数),地址与布局不变、输出逐字节一致; ## 关联的Issue https://gitcode.com/cann/ops-transformer/issues/7069 ## 测试 本地验证 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] 🐛 Bug修复 - [ ] ✨ 新特性 - [X] ⚡ 性能优化 - [ ] ♻️ 重构 - [ ] 🧪 测试 - [ ] 📦 构建/CI - [ ] 🔧 配置变更 - [ ] 📝 文档更新 - [ ] ⬆️ 依赖升级 - [ ] 🔒 安全修复 - [ ] 🧹 代码清理 - [ ] ❓ 其他,请描述: - [ ] # 代码检视报告 **项目名称**:NPU算子检视报告 **检视模块**:/mnt/workspace/gitCode/cann/0803/ops-transformer_backward/mc2/engram_fetch/op_kernel/arch35/engram_fetch_train_arch35.h(PR 15208,commit 49dfce2fc「训练sf优化」,+122/-72) **检视人**:Turing Team **检视日期**:2026-11-03 **检视范围**:PR 相对父提交 d00268a7d 的全部改动(ScatterRowsBatched / ScatterSlotToOutput / LocalReadTablePerToken(Pipe) / GatherRowsToStaging,Kernel 侧 AIV 代码) **适用规范**:cpp-secure.md(含红线)、ascendc-api.md、ascendc-perf.md、ascendc-topk.md;API 用法依据 ascendc-docs-search 检索(本地 asc-devkit 文档缺失,以规范文档收录的 8.5.0 官方原文及仓内既有惯用法为佐证) ## 🔍 检视概览 | 统计项 | 数值 | | ---- | ---- | | 发现问题总数 | 3 个 | | 严重级(CRITICAL)问题 | 0 个 | | 中等级(MEDIUM)问题 | 0 个 | | 轻微级(LOW)问题 | 3 个 | | 正向行为变更(需 PR 描述注明) | 1 项 | | 误报排除 | 1 项 | **核心结论**:未发现阻塞性缺陷。改动核心(UB tile 分区布局 + bulkLoad 同构判据 + 非对齐行宽 DataCopyPad 化)经验证无越界、无重叠、无除零、同步配对完整,且顺带修复旧代码两处潜在死循环。3 个 LOW 问题均为边界防御/性能细节,可选修复。 ## ✅ 重点验证通过项(假设检验 H0 未被推翻) | 检视类别(规范来源) | 验证内容 | 证据 | | ---- | ---- | ---- | | API-10 单位差异(ascendc-api.md) | DataCopyPad + DataCopyExtParams 的 blockLen 全部为字节单位(如 :1101 tileRows * srcStride、:1466 hiddenBytesU32) | 规范收录官方原文"blockLen 单位为字节";MTE3 方向 DataCopyPad(dstGm, srcLocal, DataCopyExtParams) 为仓内既有惯用法(attention_worker_combine.h:239、attention_update_with_lse_regbase.h:346) | | API-6 配对(ascendc-api.md) | 三个改动函数内 AllocTensor/FreeTensor 均配对;慢路径 return 均发生在 Alloc 之前(:1451、:1302) | 逐路径核对 | | PREC-1 同步(ascendc-perf.md) | 载入后经 EnQue→DeQue 同步再 MTE3 写出,无跨 Pipe 裸依赖 | :1093/:1127(batched)、:1489-1491(gather);relayQue_ 为 TQueBind<VECIN,VECOUT,2>(:243),队列语义管理 MTE2→MTE3 缓冲复用 | | TIL-2 UB 预算(ascendc-perf.md) | tile 路径用量 ≤ rowsPerTile×rowTileBytes ≤ tileBytes_(32KB),等于 relayQue_ 单 buffer 容量(:455 InitBuffer(relayQue_,2,tileBytes_));bulkLoad 载入量 tileRows*srcStride ≤ tileBytes_(srcStride==rowTileBytes 前提下) | 数学推导,见 ISSUE 证据链 | | PERF-7 尾块(ascendc-perf.md) | tileRows = min(batchLen-j, rowsPerTile) 动态计算,无满块写死 | :1092-1095 | | 2.2/2.3 数值安全(cpp-secure.md) | 除法均有零守护(:1087、:1300、:1450 三元或调用方保证分母 ≥ dataTileStride ≥ 32);uint32 乘积均有 ≤32KB 上界 | 逐表达式核算 | | TOPK-8 int64 偏移(ascendc-topk.md) | GM 偏移乘法均先转 uint64(static_cast<uint64_t>(j + i) * srcStride 等) | :1094/:1100/:1110 | | 3.1/红线5 初始化(cpp-secure.md) | 新增局部变量均声明即初始化 | 逐变量核对 | | data/sf 独立性 | UB tile 内 data 区 [i*rowTileBytes, +dataTileStride) 与 sf 区 [+dataTileStride, +sfTileStride) 不重叠;GM 写区 data/sf 分离;!HasSf 实例化经 if constexpr 整段裁剪 | :1111/:1119/:1129-1134 | ## ❌ 问题详情及修改建议 ### 问题ID:ISSUE-001 | 严重级别:LOW(性能) #### 🔬 假设检验过程 **代码段**:ScatterRowsBatched() MTE3 写出侧 / GatherRowsToStaging() 写出侧 **假设**:H0: 该代码段性能不劣于原版 | 证据序号 | 证据类型 | 规范ID | 证据描述 | 分值增量 | 累计自信值 | |---------|---------|--------|---------|---------|-----------| | 1 | 规范违反 | PERF-5 | !HasSf 对齐场景下,写出由原版单条块 DataCopy(dstGm, tileBuf, batchLen*rowBytes) 变为逐行 DataCopyPad(每 tile 最多 rowsPerTile 条 MTE3 任务),DMA 任务下发开销增加 | +40% | 40% | | 2 | 上下文缓解 | PERF-5 | 非量化路径实测总量 437K cycles 量级,rowsPerTile ≤ 4~8,增量在噪声级;且载入侧 bulkLoad 已恢复单任务,抵消大部分损失 | -30% | 10% | **结论**:自信值 **10%** ≤ 60%,**维持原假设 H0**,不构成缺陷,仅作优化建议记录。 --- **代码路径**:mc2/engram_fetch/op_kernel/arch35/engram_fetch_train_arch35.h:1129-1134(batched 写出)、:1493-1500(gather 写出) **问题类型**:单次搬运量(MTE3 任务数) **问题描述**:bulkLoad 成立(srcStride==rowTileBytes,典型为 !HasSf 对齐 hidden)时,tile 与窗口/表行同构,写出行距也是密排的,可整块单任务写回,进一步减少 MTE 任务数。 #### 修改建议(可选) **修改前代码**: cpp for (uint32_t k = 0; k < tileRows; k++) { ... DataCopyPad(dstGm, batchBuf[rowOff], mte3Params); ... } **修改后代码**(示意,仅 bulkLoad && dataDst 密排时): cpp if (bulkLoad && srcStride == dataRowBytes) { // !HasSf 对齐: 目的密排可整块 DataCopyExtParams outParams{1U, tileRows * dataRowBytes, 0U, 0U, 0U}; DataCopyPad(dataDstGm, batchBuf, outParams); } else { ... // 逐行原逻辑 } **修改说明**:影响仅限非量化对齐路径的任务下发次数,属锦上添花;不改不影响正确性。 ### 问题ID:ISSUE-002 | 严重级别:LOW(防御性) #### 🔬 假设检验过程 **代码段**:ScatterRowsBatched() 主循环 **假设**:H0: 循环必然终止 | 证据序号 | 证据类型 | 规范ID | 证据描述 | 分值增量 | 累计自信值 | |---------|---------|--------|---------|---------|-----------| | 1 | 数据流追踪 | cpp-secure 1.3/循环终止 | 若 rowsPerTile==0(rowTileBytes>tileBytes_ 或 ==0),则 tileRows=min(batchLen-j,0)=0,j += tileRows 恒 0 → while 死循环 | +40% | 40% | | 2 | 上下文防御 | - | 唯一调用点 ScatterSlotToOutput:1175 已保证 rowTileBytes != 0 && rowTileBytes <= tileBytes_ → rowsPerTile ≥ 1,当前不可达 | -30% | 10% | **结论**:自信值 **10%** ≤ 60%,**维持原假设 H0**(当前不可达),记录为防御性建议。 --- **代码路径**:mc2/engram_fetch/op_kernel/arch35/engram_fetch_train_arch35.h:1087、:1091-1095 **问题类型**:循环终止性依赖调用方契约 **问题描述**:循环终止完全依赖调用点保证 rowsPerTile ≥ 1,函数自身无防御。未来新增调用点若未先做 rowTileBytes 校验,将引入挂死。 #### 修改建议(可选) **修改前代码**: cpp uint32_t rowsPerTile = (rowTileBytes == 0U) ? 0U : (tileBytes_ / rowTileBytes); **修改后代码**: cpp uint32_t rowsPerTile = (rowTileBytes == 0U || rowTileBytes > tileBytes_) ? 0U : (tileBytes_ / rowTileBytes); if (rowsPerTile == 0U) { // 或 ascendc_assert(rowsPerTile != 0U, ...) return; // 交由调用方兜底路径处理 } **修改说明**:将调用契约内聚到函数内,杜绝新增调用点引入死循环的可能。 ### 问题ID:ISSUE-003 | 严重级别:LOW(存疑,边界场景) #### 🔬 假设检验过程 **代码段**:ScatterSlotToOutput() 分发 + ScatterRowsBatched() data 侧载入 **假设**:H0: hiddenBytesU32==0 且 HasSf 时行为与原版一致 | 证据序号 | 证据类型 | 规范ID | 证据描述 | 分值增量 | 累计自信值 | |---------|---------|--------|---------|---------|-----------| | 1 | 数据流追踪 | - | hidden==0 && HasSf 时 rowTileBytes=sfTileStride>0 → 走 Batched,data 侧执行 DataCopyPad(batchBuf[...], srcGm, {1, 0})(blockLen=0);原版走 ScatterRowsPerToken → LocalCopySlice(len=0) 直接跳过 | +40% | 40% | | 2 | 上下文校验 | API-3 | DataCopyPad blockLen=0 的行为未在本地 API 文档中确认(本地 asc-devkit 缺失,在线检索不可用),无法证明为安全 no-op | +25% | 65% | | 3 | 业务约束 | 4.1 排除规则 | hiddenBytes==0 且携带 sf 输出的组合在现实配置中不出现(hidden 由真实张量推导),触发需人为构造非法输入 | -40% | 25% | **结论**:自信值 **25%** ≤ 60%,**维持原假设 H0**,列为存疑项供用户判断。 --- **代码路径**:mc2/engram_fetch/op_kernel/arch35/engram_fetch_train_arch35.h:1175、:1108-1112 **问题类型**:边界值处理(TOPK-6 特殊值/边界值) **问题描述**:hiddenBytes 为 0 且 HasSf 的组合下,data 侧会发起 blockLen=0 的 DataCopyPad;若该 API 对 blockLen=0 非安全 no-op,则存在未定义行为风险。触发条件:非法/退化输入配置。 #### 修改建议(可选) **修改前代码**: cpp if (rowTileBytes == 0U || rowTileBytes > tileBytes_) { **修改后代码**: cpp if (rowTileBytes == 0U || hiddenBytesU32 == 0U || rowTileBytes > tileBytes_) { **修改说明**:hidden==0 时强制走原 PerToken 路径(LocalCopySlice len=0 已验证安全),行为与原版完全一致;代价为零。 ## 🔁 正向行为变更(建议在 PR 描述注明) 本次改动顺带修复了**旧代码两处潜在死循环**(大 hidden+sf 场景): 1. **GatherRowsToStaging(:1450-1451)**:旧代码 HasSf 时 rowsPerTile = tileBytes_/rowStride_,当 hidden+sf > 32KB 时为 0 → batchLen 恒 0 → while 死循环;新代码 rowsPerTile==0 走逐行慢路径。 2. **LocalReadTablePerTokenPipe(:1300-1305)**:旧代码对齐 hidden 但 hidden+sfUbStride > 32KB 时 rowsPerBuf=0 → depth=0 → 外层 chunkStart 不前进 → 死循环;新代码 rowsPerBuf==0 兜底 LocalReadTablePerTokenSlow。 建议:PR 描述补充说明;ST 补充大 hidden(+sf)总行宽跨过 32KB 边界的用例覆盖(该路径属首次启用)。 ## ⚠️ 误报排除记录 | 存疑点 | 排除理由 | | ---- | ---- | | DeQue 后立即 MTE3 写出、随后 FreeTensor,MTE3 在途时缓冲被复用是否竞争 | relayQue_ 为 TQueBind<VECIN,VECOUT,RELAY_BUFFER_NUM=2>(:243),队列语义管理 MTE2→MTE3 的缓冲交接;该模式为上游既有代码原样保留(旧 !HasSf 分支同构),非本次引入 | | GatherRowsToStaging 中 sfBaseOff(:1470)在 !HasSf 实例化时未使用 | 仅可能产生 -Wunused-variable 警告;本仓构建警告不作为错误(构建日志证实),无阻塞 | | uint16_t blockLen(:1130 static_cast<uint16_t>(dataRowBytes))截断 | 调用方保证 dataRowBytes/sfRowBytes < rowTileBytes ≤ tileBytes_=32768 < 65535,无截断 | ## 📌 其他说明 - 本地整包编译受**既有环境问题**阻塞:master 于 f4af70f23 引入 Ops::Base::DAV_5162,本地 CANN 9.2.0 枚举止于 DAV_5161,common/op_host 编译失败(与本次改动无关,改动仅 kernel 头文件);kernel 目标依赖 common 亦被卡。合入前请在 CI(新工具链)完成编译验证。 - 发送/接收寻址、单次 URMA 写、窗口交错布局均与上游一致,本次改动未触碰通信路径。 ## 报告生成时间 2026-11-03 13:55:00 ## 报告状态 已完成检视,无阻塞问题;3 项 LOW 建议供作者自主决策 See merge request: cann/ops-transformer!15208 | 12 days ago | |
fix(engram): 反向排序radix裁轮值域改用全局索引域 Co-authored-by: luozhonglin222<luozhonglin1@huawei.com> # message auto-generated for no-merge-commit merge: !15243 merge engram_new into master fix(engram): 反向排序radix裁轮值域改用全局索引域 Created-by: luozhonglin222 Commit-by: luozhonglin222 Merged-by: cann-robot Description: ## 描述 反向排序radix裁轮值域改用全局索引域 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [x] 🐛 Bug修复 - [ ] ✨ 新特性 - [ ] ⚡ 性能优化 - [ ] ♻️ 重构 - [ ] 🧪 测试 - [ ] 📦 构建/CI - [ ] 🔧 配置变更 - [ ] 📝 文档更新 - [ ] ⬆️ 依赖升级 - [ ] 🔒 安全修复 - [ ] 🧹 代码清理 - [ ] ❓ 其他,请描述: See merge request: cann/ops-transformer!15243 | 10 days ago | |
提升mc2算子ut覆盖率 Co-authored-by: mutex_lock<chenyifan66@h-partners.com> # message auto-generated for no-merge-commit merge: !14693 merge ut_cov2 into master 提升mc2算子ut覆盖率 Created-by: mutex_lock Commit-by: mutex_lock Merged-by: cann-robot Description: ## 描述 提升部分 mc2 算子 UT 行覆盖率(分支 ut_cov2):补齐 engram_fetch_wait 脚手架,并为 matmul / allto_all / barrier / engram 等低覆盖算子增补 api、infershape、tiling 用例与 CSV。 主要改动: 1. **新建 UT**:为 engram_fetch_wait 新增完整 tests/ut(op_api / op_host / arch35 tiling、infershape、CMake)。 2. **增补用例**:allto_all_matmul、allto_allv_quant_grouped_mat_mul、distribute_barrier_extend、engram_fetch_grad、grouped_mat_mul_all_reduce、inplace_matmul_all_reduce_add_rms_norm(含 arch22 tiling)、matmul_all_reduce_add_rms_norm、matmul_allto_all、matmul_reduce_scatter_v2(api / infershape / tiling CSV)。 ### 覆盖率提升算子列表 | 算子 | 变更前 LINE% | 变更后 LINE% | 变更前 STATUS | 变更后 STATUS | |------|-------------:|-------------:|:-------------:|:-------------:| | engram_fetch_grad | 13.0% | 94.2% | BELOW | OK | | matmul_reduce_scatter_v2 | 82.6% | 90.9% | BELOW | OK | | grouped_mat_mul_all_reduce | 82.8% | 91.1% | BELOW | OK | | allto_allv_quant_grouped_mat_mul | 83.6% | 91.4% | BELOW | OK | | distribute_barrier_extend | 84.6% | 98.7% | BELOW | OK | | allto_all_matmul | 85.7% | 91.8% | BELOW | OK | | inplace_matmul_all_reduce_add_rms_norm | 87.5% | 93.2% | BELOW | OK | | matmul_all_reduce_add_rms_norm | 89.1% | 90.9% | BELOW | OK | | matmul_allto_all | 89.1% | 91.5% | BELOW | OK | | engram_fetch_wait | N/A | 95.3% | NO_DATA | OK | ## 关联的Issue 无 ## 测试 - bash scripts/ci/ut_make.sh "$(pwd)"(本分支涉及算子 host 多 SoC + api)全绿 ## 文档更新 无 ## 类型标签 <!-- [x] 表示选中 --> - [ ] 🐛 Bug修复 - [ ] ✨ 新特性 - [ ] ⚡ 性能优化 - [ ] ♻️ 重构 - [x] 🧪 测试 - [ ] 📦 构建/CI - [ ] 🔧 配置变更 - [ ] 📝 文档更新 - [ ] ⬆️ 依赖升级 - [ ] 🔒 安全修复 - [ ] 🧹 代码清理 - [ ] ❓ 其他,请描述: See merge request: cann/ops-transformer!14693 | 16 days ago | |
[cleancode]整仓替换OP_LOGE_WITH_INVALID_ATTR、OP_LOGE_WITH_INVALID_ATTR_SIZE等废弃宏 Co-authored-by: mutex_lock<chenyifan66@h-partners.com> # message auto-generated for no-merge-commit merge: !15263 merge replace_obs_api into master [cleancode]整仓替换OP_LOGE_WITH_INVALID_ATTR、OP_LOGE_WITH_INVALID_ATTR_SIZE等废弃宏 Created-by: mutex_lock Commit-by: mutex_lock Merged-by: cann-robot Description: ## 描述 整仓替换 op_common/log/log.h 中已废弃的日志宏,迁移到文档推荐的新宏,避免后续日落删除导致编译失败。 ### 背景与原因 OP_LOGE_WITH_INVALID_ATTR / ATTR_SIZE / INPUT_FORMAT / INPUT_DTYPE 等接口已在 opbase 文档中标记废弃,并给出替代宏。仓内(含 mc2、moe、ffn、experimental)仍有大量调用,需统一切换。 ### 改动方法 仅做宏名替换,调用参数签名一致,不改校验逻辑: | 废弃宏 | 替代宏 | 约计次数 | |--------|--------|----------| | OP_LOGE_WITH_INVALID_ATTR | OP_LOGE_FOR_INVALID_VALUE | 230 | | OP_LOGE_WITH_INVALID_ATTR_SIZE | OP_LOGE_FOR_INVALID_LISTSIZE | 8 | | OP_LOGE_WITH_INVALID_INPUT_FORMAT | OP_LOGE_FOR_INVALID_FORMAT | 13 | | OP_LOGE_WITH_INVALID_INPUT_DTYPE | OP_LOGE_FOR_INVALID_DTYPE | 1 | 共修改 60 个文件,252 处;错误码/日志文案随新宏切换(如 ATTR→VALUE:EZ0002→EZ0024),属预期行为。 ### 涉及范围 - mc2/、moe/、ffn/、experimental/ 等 Host / OPAPI 侧调用点 - 均依赖同一 log/log.h(third_party/opbase/include/op_common/log/log.h) ## 关联的Issue https://gitcode.com/cann/ops-transformer/issues/7092 ## 测试 - [x] 相关算子 Host / OPAPI UT(按需抽测) - [x] 二级冒烟 / 算子泛化(如有流水要求再补) - [x] 静态核对:旧宏在业务源码中无残留;新宏均在 log.h 中有定义;参数个数未变 ## 文档更新 无业务文档更新;依据 third_party/opbase 既有废弃说明完成迁移。 ## 类型标签 <!-- [x] 表示选中 --> - [ ] 🐛 Bug修复 - [ ] ✨ 新特性 - [ ] ⚡ 性能优化 - [ ] ♻️ 重构 - [ ] 🧪 测试 - [ ] 📦 构建/CI - [ ] 🔧 配置变更 - [ ] 📝 文档更新 - [ ] ⬆️ 依赖升级 - [ ] 🔒 安全修复 - [x] 🧹 代码清理 - [ ] ❓ 其他,请描述: See merge request: cann/ops-transformer!15263 | 5 days ago | |
AF算子,combineARN算子资料标签修改 Co-authored-by: jiangxiuhan1<jiangxiuhan@huawei.com> # message auto-generated for no-merge-commit merge: !15450 merge issue into master AF算子,combineARN算子资料标签修改 Created-by: jiangxiuhan1 Commit-by: jiangxiuhan1 Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] 🐛 Bug修复 - [ ] ✨ 新特性 - [ ] ⚡ 性能优化 - [ ] ♻️ 重构 - [ ] 🧪 测试 - [ ] 📦 构建/CI - [ ] 🔧 配置变更 - [x] 📝 文档更新 - [ ] ⬆️ 依赖升级 - [ ] 🔒 安全修复 - [ ] 🧹 代码清理 - [ ] ❓ 其他,请描述: See merge request: cann/ops-transformer!15450 | 6 days ago | |
[cleancode]整仓替换OP_LOGE_WITH_INVALID_ATTR、OP_LOGE_WITH_INVALID_ATTR_SIZE等废弃宏 Co-authored-by: mutex_lock<chenyifan66@h-partners.com> # message auto-generated for no-merge-commit merge: !15263 merge replace_obs_api into master [cleancode]整仓替换OP_LOGE_WITH_INVALID_ATTR、OP_LOGE_WITH_INVALID_ATTR_SIZE等废弃宏 Created-by: mutex_lock Commit-by: mutex_lock Merged-by: cann-robot Description: ## 描述 整仓替换 op_common/log/log.h 中已废弃的日志宏,迁移到文档推荐的新宏,避免后续日落删除导致编译失败。 ### 背景与原因 OP_LOGE_WITH_INVALID_ATTR / ATTR_SIZE / INPUT_FORMAT / INPUT_DTYPE 等接口已在 opbase 文档中标记废弃,并给出替代宏。仓内(含 mc2、moe、ffn、experimental)仍有大量调用,需统一切换。 ### 改动方法 仅做宏名替换,调用参数签名一致,不改校验逻辑: | 废弃宏 | 替代宏 | 约计次数 | |--------|--------|----------| | OP_LOGE_WITH_INVALID_ATTR | OP_LOGE_FOR_INVALID_VALUE | 230 | | OP_LOGE_WITH_INVALID_ATTR_SIZE | OP_LOGE_FOR_INVALID_LISTSIZE | 8 | | OP_LOGE_WITH_INVALID_INPUT_FORMAT | OP_LOGE_FOR_INVALID_FORMAT | 13 | | OP_LOGE_WITH_INVALID_INPUT_DTYPE | OP_LOGE_FOR_INVALID_DTYPE | 1 | 共修改 60 个文件,252 处;错误码/日志文案随新宏切换(如 ATTR→VALUE:EZ0002→EZ0024),属预期行为。 ### 涉及范围 - mc2/、moe/、ffn/、experimental/ 等 Host / OPAPI 侧调用点 - 均依赖同一 log/log.h(third_party/opbase/include/op_common/log/log.h) ## 关联的Issue https://gitcode.com/cann/ops-transformer/issues/7092 ## 测试 - [x] 相关算子 Host / OPAPI UT(按需抽测) - [x] 二级冒烟 / 算子泛化(如有流水要求再补) - [x] 静态核对:旧宏在业务源码中无残留;新宏均在 log.h 中有定义;参数个数未变 ## 文档更新 无业务文档更新;依据 third_party/opbase 既有废弃说明完成迁移。 ## 类型标签 <!-- [x] 表示选中 --> - [ ] 🐛 Bug修复 - [ ] ✨ 新特性 - [ ] ⚡ 性能优化 - [ ] ♻️ 重构 - [ ] 🧪 测试 - [ ] 📦 构建/CI - [ ] 🔧 配置变更 - [ ] 📝 文档更新 - [ ] ⬆️ 依赖升级 - [ ] 🔒 安全修复 - [x] 🧹 代码清理 - [ ] ❓ 其他,请描述: See merge request: cann/ops-transformer!15263 | 5 days ago | |
docs: add English translations for markdown files Co-authored-by: jenny_xiang<jenny.xiang@huawei.com> # message auto-generated for no-merge-commit merge: !15372 merge docs/add-english-translations into master docs: add English translations for markdown files Created-by: jenny_xiang Commit-by: jenny_xiang Merged-by: cann-robot Description: ## 描述 新增仓库Markdown文档英文译稿(第二批,共275个文件),为第一批(已合入)之外的其余全部译稿: - 新增263个英文译稿文件(含上游新增算子 attention/flash_kda_grad 的README与测试说明2篇,及14篇基于最新源文档的增量更新) - 重命名12个中文设计文档为英文名(Xxx算子设计介绍.md → Xxx_design.md,与第一批FFN_design.md策略一致) - 更新7个README中的设计文档引用链接 - 更新.pre-commit-config.yaml中codespell忽略词表 本批内全部仓内链接均指向master已有文件(含第一批已合入的42篇译稿),合入后本仓英文文档全部就位、链接完整生效。 ## 关联的Issue 无 ## 测试 文档类变更,无需算子测试;已通过链接有效性校验、残留中文/全角标点扫描、EOF换行规范检查,并完成逐篇翻译规范自查与独立语义审查(含支持状态表、限定词、术语、数值符号核对)。 ## 文档更新 新增263个英文译稿文件、重命名12个中文设计文档、更新8个现有文件,不修改算子源码。 ## 类型标签 - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-transformer!15372 | 9 days ago | |
[cleancode]整仓替换OP_LOGE_WITH_INVALID_ATTR、OP_LOGE_WITH_INVALID_ATTR_SIZE等废弃宏 Co-authored-by: mutex_lock<chenyifan66@h-partners.com> # message auto-generated for no-merge-commit merge: !15263 merge replace_obs_api into master [cleancode]整仓替换OP_LOGE_WITH_INVALID_ATTR、OP_LOGE_WITH_INVALID_ATTR_SIZE等废弃宏 Created-by: mutex_lock Commit-by: mutex_lock Merged-by: cann-robot Description: ## 描述 整仓替换 op_common/log/log.h 中已废弃的日志宏,迁移到文档推荐的新宏,避免后续日落删除导致编译失败。 ### 背景与原因 OP_LOGE_WITH_INVALID_ATTR / ATTR_SIZE / INPUT_FORMAT / INPUT_DTYPE 等接口已在 opbase 文档中标记废弃,并给出替代宏。仓内(含 mc2、moe、ffn、experimental)仍有大量调用,需统一切换。 ### 改动方法 仅做宏名替换,调用参数签名一致,不改校验逻辑: | 废弃宏 | 替代宏 | 约计次数 | |--------|--------|----------| | OP_LOGE_WITH_INVALID_ATTR | OP_LOGE_FOR_INVALID_VALUE | 230 | | OP_LOGE_WITH_INVALID_ATTR_SIZE | OP_LOGE_FOR_INVALID_LISTSIZE | 8 | | OP_LOGE_WITH_INVALID_INPUT_FORMAT | OP_LOGE_FOR_INVALID_FORMAT | 13 | | OP_LOGE_WITH_INVALID_INPUT_DTYPE | OP_LOGE_FOR_INVALID_DTYPE | 1 | 共修改 60 个文件,252 处;错误码/日志文案随新宏切换(如 ATTR→VALUE:EZ0002→EZ0024),属预期行为。 ### 涉及范围 - mc2/、moe/、ffn/、experimental/ 等 Host / OPAPI 侧调用点 - 均依赖同一 log/log.h(third_party/opbase/include/op_common/log/log.h) ## 关联的Issue https://gitcode.com/cann/ops-transformer/issues/7092 ## 测试 - [x] 相关算子 Host / OPAPI UT(按需抽测) - [x] 二级冒烟 / 算子泛化(如有流水要求再补) - [x] 静态核对:旧宏在业务源码中无残留;新宏均在 log.h 中有定义;参数个数未变 ## 文档更新 无业务文档更新;依据 third_party/opbase 既有废弃说明完成迁移。 ## 类型标签 <!-- [x] 表示选中 --> - [ ] 🐛 Bug修复 - [ ] ✨ 新特性 - [ ] ⚡ 性能优化 - [ ] ♻️ 重构 - [ ] 🧪 测试 - [ ] 📦 构建/CI - [ ] 🔧 配置变更 - [ ] 📝 文档更新 - [ ] ⬆️ 依赖升级 - [ ] 🔒 安全修复 - [x] 🧹 代码清理 - [ ] ❓ 其他,请描述: See merge request: cann/ops-transformer!15263 | 5 days ago | |
[cleancode]整仓替换OP_LOGE_WITH_INVALID_ATTR、OP_LOGE_WITH_INVALID_ATTR_SIZE等废弃宏 Co-authored-by: mutex_lock<chenyifan66@h-partners.com> # message auto-generated for no-merge-commit merge: !15263 merge replace_obs_api into master [cleancode]整仓替换OP_LOGE_WITH_INVALID_ATTR、OP_LOGE_WITH_INVALID_ATTR_SIZE等废弃宏 Created-by: mutex_lock Commit-by: mutex_lock Merged-by: cann-robot Description: ## 描述 整仓替换 op_common/log/log.h 中已废弃的日志宏,迁移到文档推荐的新宏,避免后续日落删除导致编译失败。 ### 背景与原因 OP_LOGE_WITH_INVALID_ATTR / ATTR_SIZE / INPUT_FORMAT / INPUT_DTYPE 等接口已在 opbase 文档中标记废弃,并给出替代宏。仓内(含 mc2、moe、ffn、experimental)仍有大量调用,需统一切换。 ### 改动方法 仅做宏名替换,调用参数签名一致,不改校验逻辑: | 废弃宏 | 替代宏 | 约计次数 | |--------|--------|----------| | OP_LOGE_WITH_INVALID_ATTR | OP_LOGE_FOR_INVALID_VALUE | 230 | | OP_LOGE_WITH_INVALID_ATTR_SIZE | OP_LOGE_FOR_INVALID_LISTSIZE | 8 | | OP_LOGE_WITH_INVALID_INPUT_FORMAT | OP_LOGE_FOR_INVALID_FORMAT | 13 | | OP_LOGE_WITH_INVALID_INPUT_DTYPE | OP_LOGE_FOR_INVALID_DTYPE | 1 | 共修改 60 个文件,252 处;错误码/日志文案随新宏切换(如 ATTR→VALUE:EZ0002→EZ0024),属预期行为。 ### 涉及范围 - mc2/、moe/、ffn/、experimental/ 等 Host / OPAPI 侧调用点 - 均依赖同一 log/log.h(third_party/opbase/include/op_common/log/log.h) ## 关联的Issue https://gitcode.com/cann/ops-transformer/issues/7092 ## 测试 - [x] 相关算子 Host / OPAPI UT(按需抽测) - [x] 二级冒烟 / 算子泛化(如有流水要求再补) - [x] 静态核对:旧宏在业务源码中无残留;新宏均在 log.h 中有定义;参数个数未变 ## 文档更新 无业务文档更新;依据 third_party/opbase 既有废弃说明完成迁移。 ## 类型标签 <!-- [x] 表示选中 --> - [ ] 🐛 Bug修复 - [ ] ✨ 新特性 - [ ] ⚡ 性能优化 - [ ] ♻️ 重构 - [ ] 🧪 测试 - [ ] 📦 构建/CI - [ ] 🔧 配置变更 - [ ] 📝 文档更新 - [ ] ⬆️ 依赖升级 - [ ] 🔒 安全修复 - [x] 🧹 代码清理 - [ ] ❓ 其他,请描述: See merge request: cann/ops-transformer!15263 | 5 days ago | |
[cleancode]整仓替换OP_LOGE_WITH_INVALID_ATTR、OP_LOGE_WITH_INVALID_ATTR_SIZE等废弃宏 Co-authored-by: mutex_lock<chenyifan66@h-partners.com> # message auto-generated for no-merge-commit merge: !15263 merge replace_obs_api into master [cleancode]整仓替换OP_LOGE_WITH_INVALID_ATTR、OP_LOGE_WITH_INVALID_ATTR_SIZE等废弃宏 Created-by: mutex_lock Commit-by: mutex_lock Merged-by: cann-robot Description: ## 描述 整仓替换 op_common/log/log.h 中已废弃的日志宏,迁移到文档推荐的新宏,避免后续日落删除导致编译失败。 ### 背景与原因 OP_LOGE_WITH_INVALID_ATTR / ATTR_SIZE / INPUT_FORMAT / INPUT_DTYPE 等接口已在 opbase 文档中标记废弃,并给出替代宏。仓内(含 mc2、moe、ffn、experimental)仍有大量调用,需统一切换。 ### 改动方法 仅做宏名替换,调用参数签名一致,不改校验逻辑: | 废弃宏 | 替代宏 | 约计次数 | |--------|--------|----------| | OP_LOGE_WITH_INVALID_ATTR | OP_LOGE_FOR_INVALID_VALUE | 230 | | OP_LOGE_WITH_INVALID_ATTR_SIZE | OP_LOGE_FOR_INVALID_LISTSIZE | 8 | | OP_LOGE_WITH_INVALID_INPUT_FORMAT | OP_LOGE_FOR_INVALID_FORMAT | 13 | | OP_LOGE_WITH_INVALID_INPUT_DTYPE | OP_LOGE_FOR_INVALID_DTYPE | 1 | 共修改 60 个文件,252 处;错误码/日志文案随新宏切换(如 ATTR→VALUE:EZ0002→EZ0024),属预期行为。 ### 涉及范围 - mc2/、moe/、ffn/、experimental/ 等 Host / OPAPI 侧调用点 - 均依赖同一 log/log.h(third_party/opbase/include/op_common/log/log.h) ## 关联的Issue https://gitcode.com/cann/ops-transformer/issues/7092 ## 测试 - [x] 相关算子 Host / OPAPI UT(按需抽测) - [x] 二级冒烟 / 算子泛化(如有流水要求再补) - [x] 静态核对:旧宏在业务源码中无残留;新宏均在 log.h 中有定义;参数个数未变 ## 文档更新 无业务文档更新;依据 third_party/opbase 既有废弃说明完成迁移。 ## 类型标签 <!-- [x] 表示选中 --> - [ ] 🐛 Bug修复 - [ ] ✨ 新特性 - [ ] ⚡ 性能优化 - [ ] ♻️ 重构 - [ ] 🧪 测试 - [ ] 📦 构建/CI - [ ] 🔧 配置变更 - [ ] 📝 文档更新 - [ ] ⬆️ 依赖升级 - [ ] 🔒 安全修复 - [x] 🧹 代码清理 - [ ] ❓ 其他,请描述: See merge request: cann/ops-transformer!15263 | 5 days ago | |
[cleancode]整仓替换OP_LOGE_WITH_INVALID_ATTR、OP_LOGE_WITH_INVALID_ATTR_SIZE等废弃宏 Co-authored-by: mutex_lock<chenyifan66@h-partners.com> # message auto-generated for no-merge-commit merge: !15263 merge replace_obs_api into master [cleancode]整仓替换OP_LOGE_WITH_INVALID_ATTR、OP_LOGE_WITH_INVALID_ATTR_SIZE等废弃宏 Created-by: mutex_lock Commit-by: mutex_lock Merged-by: cann-robot Description: ## 描述 整仓替换 op_common/log/log.h 中已废弃的日志宏,迁移到文档推荐的新宏,避免后续日落删除导致编译失败。 ### 背景与原因 OP_LOGE_WITH_INVALID_ATTR / ATTR_SIZE / INPUT_FORMAT / INPUT_DTYPE 等接口已在 opbase 文档中标记废弃,并给出替代宏。仓内(含 mc2、moe、ffn、experimental)仍有大量调用,需统一切换。 ### 改动方法 仅做宏名替换,调用参数签名一致,不改校验逻辑: | 废弃宏 | 替代宏 | 约计次数 | |--------|--------|----------| | OP_LOGE_WITH_INVALID_ATTR | OP_LOGE_FOR_INVALID_VALUE | 230 | | OP_LOGE_WITH_INVALID_ATTR_SIZE | OP_LOGE_FOR_INVALID_LISTSIZE | 8 | | OP_LOGE_WITH_INVALID_INPUT_FORMAT | OP_LOGE_FOR_INVALID_FORMAT | 13 | | OP_LOGE_WITH_INVALID_INPUT_DTYPE | OP_LOGE_FOR_INVALID_DTYPE | 1 | 共修改 60 个文件,252 处;错误码/日志文案随新宏切换(如 ATTR→VALUE:EZ0002→EZ0024),属预期行为。 ### 涉及范围 - mc2/、moe/、ffn/、experimental/ 等 Host / OPAPI 侧调用点 - 均依赖同一 log/log.h(third_party/opbase/include/op_common/log/log.h) ## 关联的Issue https://gitcode.com/cann/ops-transformer/issues/7092 ## 测试 - [x] 相关算子 Host / OPAPI UT(按需抽测) - [x] 二级冒烟 / 算子泛化(如有流水要求再补) - [x] 静态核对:旧宏在业务源码中无残留;新宏均在 log.h 中有定义;参数个数未变 ## 文档更新 无业务文档更新;依据 third_party/opbase 既有废弃说明完成迁移。 ## 类型标签 <!-- [x] 表示选中 --> - [ ] 🐛 Bug修复 - [ ] ✨ 新特性 - [ ] ⚡ 性能优化 - [ ] ♻️ 重构 - [ ] 🧪 测试 - [ ] 📦 构建/CI - [ ] 🔧 配置变更 - [ ] 📝 文档更新 - [ ] ⬆️ 依赖升级 - [ ] 🔒 安全修复 - [x] 🧹 代码清理 - [ ] ❓ 其他,请描述: See merge request: cann/ops-transformer!15263 | 5 days ago | |
[docs][mc2]MatmulReduceScatter移除通信约束 Co-authored-by: chenjiale56<chenjiale56@huawei.com> # message auto-generated for no-merge-commit merge: !15291 merge docs into master [docs][mc2]MatmulReduceScatter移除通信约束 Created-by: chenjiale56 Commit-by: chenjiale56 Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> MatmulReduceScatter aclnn资料移除冗余约束 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] 🐛 Bug修复 - [ ] ✨ 新特性 - [ ] ⚡ 性能优化 - [ ] ♻️ 重构 - [ ] 🧪 测试 - [ ] 📦 构建/CI - [ ] 🔧 配置变更 - [x] 📝 文档更新 - [ ] ⬆️ 依赖升级 - [ ] 🔒 安全修复 - [ ] 🧹 代码清理 - [ ] ❓ 其他,请描述: See merge request: cann/ops-transformer!15291 | 9 days ago | |
[cleancode]整仓替换OP_LOGE_WITH_INVALID_ATTR、OP_LOGE_WITH_INVALID_ATTR_SIZE等废弃宏 Co-authored-by: mutex_lock<chenyifan66@h-partners.com> # message auto-generated for no-merge-commit merge: !15263 merge replace_obs_api into master [cleancode]整仓替换OP_LOGE_WITH_INVALID_ATTR、OP_LOGE_WITH_INVALID_ATTR_SIZE等废弃宏 Created-by: mutex_lock Commit-by: mutex_lock Merged-by: cann-robot Description: ## 描述 整仓替换 op_common/log/log.h 中已废弃的日志宏,迁移到文档推荐的新宏,避免后续日落删除导致编译失败。 ### 背景与原因 OP_LOGE_WITH_INVALID_ATTR / ATTR_SIZE / INPUT_FORMAT / INPUT_DTYPE 等接口已在 opbase 文档中标记废弃,并给出替代宏。仓内(含 mc2、moe、ffn、experimental)仍有大量调用,需统一切换。 ### 改动方法 仅做宏名替换,调用参数签名一致,不改校验逻辑: | 废弃宏 | 替代宏 | 约计次数 | |--------|--------|----------| | OP_LOGE_WITH_INVALID_ATTR | OP_LOGE_FOR_INVALID_VALUE | 230 | | OP_LOGE_WITH_INVALID_ATTR_SIZE | OP_LOGE_FOR_INVALID_LISTSIZE | 8 | | OP_LOGE_WITH_INVALID_INPUT_FORMAT | OP_LOGE_FOR_INVALID_FORMAT | 13 | | OP_LOGE_WITH_INVALID_INPUT_DTYPE | OP_LOGE_FOR_INVALID_DTYPE | 1 | 共修改 60 个文件,252 处;错误码/日志文案随新宏切换(如 ATTR→VALUE:EZ0002→EZ0024),属预期行为。 ### 涉及范围 - mc2/、moe/、ffn/、experimental/ 等 Host / OPAPI 侧调用点 - 均依赖同一 log/log.h(third_party/opbase/include/op_common/log/log.h) ## 关联的Issue https://gitcode.com/cann/ops-transformer/issues/7092 ## 测试 - [x] 相关算子 Host / OPAPI UT(按需抽测) - [x] 二级冒烟 / 算子泛化(如有流水要求再补) - [x] 静态核对:旧宏在业务源码中无残留;新宏均在 log.h 中有定义;参数个数未变 ## 文档更新 无业务文档更新;依据 third_party/opbase 既有废弃说明完成迁移。 ## 类型标签 <!-- [x] 表示选中 --> - [ ] 🐛 Bug修复 - [ ] ✨ 新特性 - [ ] ⚡ 性能优化 - [ ] ♻️ 重构 - [ ] 🧪 测试 - [ ] 📦 构建/CI - [ ] 🔧 配置变更 - [ ] 📝 文档更新 - [ ] ⬆️ 依赖升级 - [ ] 🔒 安全修复 - [x] 🧹 代码清理 - [ ] ❓ 其他,请描述: See merge request: cann/ops-transformer!15263 | 5 days ago | |
[cleancode]整仓替换OP_LOGE_WITH_INVALID_ATTR、OP_LOGE_WITH_INVALID_ATTR_SIZE等废弃宏 Co-authored-by: mutex_lock<chenyifan66@h-partners.com> # message auto-generated for no-merge-commit merge: !15263 merge replace_obs_api into master [cleancode]整仓替换OP_LOGE_WITH_INVALID_ATTR、OP_LOGE_WITH_INVALID_ATTR_SIZE等废弃宏 Created-by: mutex_lock Commit-by: mutex_lock Merged-by: cann-robot Description: ## 描述 整仓替换 op_common/log/log.h 中已废弃的日志宏,迁移到文档推荐的新宏,避免后续日落删除导致编译失败。 ### 背景与原因 OP_LOGE_WITH_INVALID_ATTR / ATTR_SIZE / INPUT_FORMAT / INPUT_DTYPE 等接口已在 opbase 文档中标记废弃,并给出替代宏。仓内(含 mc2、moe、ffn、experimental)仍有大量调用,需统一切换。 ### 改动方法 仅做宏名替换,调用参数签名一致,不改校验逻辑: | 废弃宏 | 替代宏 | 约计次数 | |--------|--------|----------| | OP_LOGE_WITH_INVALID_ATTR | OP_LOGE_FOR_INVALID_VALUE | 230 | | OP_LOGE_WITH_INVALID_ATTR_SIZE | OP_LOGE_FOR_INVALID_LISTSIZE | 8 | | OP_LOGE_WITH_INVALID_INPUT_FORMAT | OP_LOGE_FOR_INVALID_FORMAT | 13 | | OP_LOGE_WITH_INVALID_INPUT_DTYPE | OP_LOGE_FOR_INVALID_DTYPE | 1 | 共修改 60 个文件,252 处;错误码/日志文案随新宏切换(如 ATTR→VALUE:EZ0002→EZ0024),属预期行为。 ### 涉及范围 - mc2/、moe/、ffn/、experimental/ 等 Host / OPAPI 侧调用点 - 均依赖同一 log/log.h(third_party/opbase/include/op_common/log/log.h) ## 关联的Issue https://gitcode.com/cann/ops-transformer/issues/7092 ## 测试 - [x] 相关算子 Host / OPAPI UT(按需抽测) - [x] 二级冒烟 / 算子泛化(如有流水要求再补) - [x] 静态核对:旧宏在业务源码中无残留;新宏均在 log.h 中有定义;参数个数未变 ## 文档更新 无业务文档更新;依据 third_party/opbase 既有废弃说明完成迁移。 ## 类型标签 <!-- [x] 表示选中 --> - [ ] 🐛 Bug修复 - [ ] ✨ 新特性 - [ ] ⚡ 性能优化 - [ ] ♻️ 重构 - [ ] 🧪 测试 - [ ] 📦 构建/CI - [ ] 🔧 配置变更 - [ ] 📝 文档更新 - [ ] ⬆️ 依赖升级 - [ ] 🔒 安全修复 - [x] 🧹 代码清理 - [ ] ❓ 其他,请描述: See merge request: cann/ops-transformer!15263 | 5 days ago | |
[cleancode]整仓替换OP_LOGE_WITH_INVALID_ATTR、OP_LOGE_WITH_INVALID_ATTR_SIZE等废弃宏 Co-authored-by: mutex_lock<chenyifan66@h-partners.com> # message auto-generated for no-merge-commit merge: !15263 merge replace_obs_api into master [cleancode]整仓替换OP_LOGE_WITH_INVALID_ATTR、OP_LOGE_WITH_INVALID_ATTR_SIZE等废弃宏 Created-by: mutex_lock Commit-by: mutex_lock Merged-by: cann-robot Description: ## 描述 整仓替换 op_common/log/log.h 中已废弃的日志宏,迁移到文档推荐的新宏,避免后续日落删除导致编译失败。 ### 背景与原因 OP_LOGE_WITH_INVALID_ATTR / ATTR_SIZE / INPUT_FORMAT / INPUT_DTYPE 等接口已在 opbase 文档中标记废弃,并给出替代宏。仓内(含 mc2、moe、ffn、experimental)仍有大量调用,需统一切换。 ### 改动方法 仅做宏名替换,调用参数签名一致,不改校验逻辑: | 废弃宏 | 替代宏 | 约计次数 | |--------|--------|----------| | OP_LOGE_WITH_INVALID_ATTR | OP_LOGE_FOR_INVALID_VALUE | 230 | | OP_LOGE_WITH_INVALID_ATTR_SIZE | OP_LOGE_FOR_INVALID_LISTSIZE | 8 | | OP_LOGE_WITH_INVALID_INPUT_FORMAT | OP_LOGE_FOR_INVALID_FORMAT | 13 | | OP_LOGE_WITH_INVALID_INPUT_DTYPE | OP_LOGE_FOR_INVALID_DTYPE | 1 | 共修改 60 个文件,252 处;错误码/日志文案随新宏切换(如 ATTR→VALUE:EZ0002→EZ0024),属预期行为。 ### 涉及范围 - mc2/、moe/、ffn/、experimental/ 等 Host / OPAPI 侧调用点 - 均依赖同一 log/log.h(third_party/opbase/include/op_common/log/log.h) ## 关联的Issue https://gitcode.com/cann/ops-transformer/issues/7092 ## 测试 - [x] 相关算子 Host / OPAPI UT(按需抽测) - [x] 二级冒烟 / 算子泛化(如有流水要求再补) - [x] 静态核对:旧宏在业务源码中无残留;新宏均在 log.h 中有定义;参数个数未变 ## 文档更新 无业务文档更新;依据 third_party/opbase 既有废弃说明完成迁移。 ## 类型标签 <!-- [x] 表示选中 --> - [ ] 🐛 Bug修复 - [ ] ✨ 新特性 - [ ] ⚡ 性能优化 - [ ] ♻️ 重构 - [ ] 🧪 测试 - [ ] 📦 构建/CI - [ ] 🔧 配置变更 - [ ] 📝 文档更新 - [ ] ⬆️ 依赖升级 - [ ] 🔒 安全修复 - [x] 🧹 代码清理 - [ ] ❓ 其他,请描述: See merge request: cann/ops-transformer!15263 | 5 days ago | |
AF算子,combineARN算子资料标签修改 Co-authored-by: jiangxiuhan1<jiangxiuhan@huawei.com> # message auto-generated for no-merge-commit merge: !15450 merge issue into master AF算子,combineARN算子资料标签修改 Created-by: jiangxiuhan1 Commit-by: jiangxiuhan1 Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] 🐛 Bug修复 - [ ] ✨ 新特性 - [ ] ⚡ 性能优化 - [ ] ♻️ 重构 - [ ] 🧪 测试 - [ ] 📦 构建/CI - [ ] 🔧 配置变更 - [x] 📝 文档更新 - [ ] ⬆️ 依赖升级 - [ ] 🔒 安全修复 - [ ] 🧹 代码清理 - [ ] ❓ 其他,请描述: See merge request: cann/ops-transformer!15450 | 6 days ago | |
[cleancode]整仓替换OP_LOGE_WITH_INVALID_ATTR、OP_LOGE_WITH_INVALID_ATTR_SIZE等废弃宏 Co-authored-by: mutex_lock<chenyifan66@h-partners.com> # message auto-generated for no-merge-commit merge: !15263 merge replace_obs_api into master [cleancode]整仓替换OP_LOGE_WITH_INVALID_ATTR、OP_LOGE_WITH_INVALID_ATTR_SIZE等废弃宏 Created-by: mutex_lock Commit-by: mutex_lock Merged-by: cann-robot Description: ## 描述 整仓替换 op_common/log/log.h 中已废弃的日志宏,迁移到文档推荐的新宏,避免后续日落删除导致编译失败。 ### 背景与原因 OP_LOGE_WITH_INVALID_ATTR / ATTR_SIZE / INPUT_FORMAT / INPUT_DTYPE 等接口已在 opbase 文档中标记废弃,并给出替代宏。仓内(含 mc2、moe、ffn、experimental)仍有大量调用,需统一切换。 ### 改动方法 仅做宏名替换,调用参数签名一致,不改校验逻辑: | 废弃宏 | 替代宏 | 约计次数 | |--------|--------|----------| | OP_LOGE_WITH_INVALID_ATTR | OP_LOGE_FOR_INVALID_VALUE | 230 | | OP_LOGE_WITH_INVALID_ATTR_SIZE | OP_LOGE_FOR_INVALID_LISTSIZE | 8 | | OP_LOGE_WITH_INVALID_INPUT_FORMAT | OP_LOGE_FOR_INVALID_FORMAT | 13 | | OP_LOGE_WITH_INVALID_INPUT_DTYPE | OP_LOGE_FOR_INVALID_DTYPE | 1 | 共修改 60 个文件,252 处;错误码/日志文案随新宏切换(如 ATTR→VALUE:EZ0002→EZ0024),属预期行为。 ### 涉及范围 - mc2/、moe/、ffn/、experimental/ 等 Host / OPAPI 侧调用点 - 均依赖同一 log/log.h(third_party/opbase/include/op_common/log/log.h) ## 关联的Issue https://gitcode.com/cann/ops-transformer/issues/7092 ## 测试 - [x] 相关算子 Host / OPAPI UT(按需抽测) - [x] 二级冒烟 / 算子泛化(如有流水要求再补) - [x] 静态核对:旧宏在业务源码中无残留;新宏均在 log.h 中有定义;参数个数未变 ## 文档更新 无业务文档更新;依据 third_party/opbase 既有废弃说明完成迁移。 ## 类型标签 <!-- [x] 表示选中 --> - [ ] 🐛 Bug修复 - [ ] ✨ 新特性 - [ ] ⚡ 性能优化 - [ ] ♻️ 重构 - [ ] 🧪 测试 - [ ] 📦 构建/CI - [ ] 🔧 配置变更 - [ ] 📝 文档更新 - [ ] ⬆️ 依赖升级 - [ ] 🔒 安全修复 - [x] 🧹 代码清理 - [ ] ❓ 其他,请描述: See merge request: cann/ops-transformer!15263 | 5 days ago | |
[cleancode]整仓替换OP_LOGE_WITH_INVALID_ATTR、OP_LOGE_WITH_INVALID_ATTR_SIZE等废弃宏 Co-authored-by: mutex_lock<chenyifan66@h-partners.com> # message auto-generated for no-merge-commit merge: !15263 merge replace_obs_api into master [cleancode]整仓替换OP_LOGE_WITH_INVALID_ATTR、OP_LOGE_WITH_INVALID_ATTR_SIZE等废弃宏 Created-by: mutex_lock Commit-by: mutex_lock Merged-by: cann-robot Description: ## 描述 整仓替换 op_common/log/log.h 中已废弃的日志宏,迁移到文档推荐的新宏,避免后续日落删除导致编译失败。 ### 背景与原因 OP_LOGE_WITH_INVALID_ATTR / ATTR_SIZE / INPUT_FORMAT / INPUT_DTYPE 等接口已在 opbase 文档中标记废弃,并给出替代宏。仓内(含 mc2、moe、ffn、experimental)仍有大量调用,需统一切换。 ### 改动方法 仅做宏名替换,调用参数签名一致,不改校验逻辑: | 废弃宏 | 替代宏 | 约计次数 | |--------|--------|----------| | OP_LOGE_WITH_INVALID_ATTR | OP_LOGE_FOR_INVALID_VALUE | 230 | | OP_LOGE_WITH_INVALID_ATTR_SIZE | OP_LOGE_FOR_INVALID_LISTSIZE | 8 | | OP_LOGE_WITH_INVALID_INPUT_FORMAT | OP_LOGE_FOR_INVALID_FORMAT | 13 | | OP_LOGE_WITH_INVALID_INPUT_DTYPE | OP_LOGE_FOR_INVALID_DTYPE | 1 | 共修改 60 个文件,252 处;错误码/日志文案随新宏切换(如 ATTR→VALUE:EZ0002→EZ0024),属预期行为。 ### 涉及范围 - mc2/、moe/、ffn/、experimental/ 等 Host / OPAPI 侧调用点 - 均依赖同一 log/log.h(third_party/opbase/include/op_common/log/log.h) ## 关联的Issue https://gitcode.com/cann/ops-transformer/issues/7092 ## 测试 - [x] 相关算子 Host / OPAPI UT(按需抽测) - [x] 二级冒烟 / 算子泛化(如有流水要求再补) - [x] 静态核对:旧宏在业务源码中无残留;新宏均在 log.h 中有定义;参数个数未变 ## 文档更新 无业务文档更新;依据 third_party/opbase 既有废弃说明完成迁移。 ## 类型标签 <!-- [x] 表示选中 --> - [ ] 🐛 Bug修复 - [ ] ✨ 新特性 - [ ] ⚡ 性能优化 - [ ] ♻️ 重构 - [ ] 🧪 测试 - [ ] 📦 构建/CI - [ ] 🔧 配置变更 - [ ] 📝 文档更新 - [ ] ⬆️ 依赖升级 - [ ] 🔒 安全修复 - [x] 🧹 代码清理 - [ ] ❓ 其他,请描述: See merge request: cann/ops-transformer!15263 | 5 days ago | |
[cleancode]整仓替换OP_LOGE_WITH_INVALID_ATTR、OP_LOGE_WITH_INVALID_ATTR_SIZE等废弃宏 Co-authored-by: mutex_lock<chenyifan66@h-partners.com> # message auto-generated for no-merge-commit merge: !15263 merge replace_obs_api into master [cleancode]整仓替换OP_LOGE_WITH_INVALID_ATTR、OP_LOGE_WITH_INVALID_ATTR_SIZE等废弃宏 Created-by: mutex_lock Commit-by: mutex_lock Merged-by: cann-robot Description: ## 描述 整仓替换 op_common/log/log.h 中已废弃的日志宏,迁移到文档推荐的新宏,避免后续日落删除导致编译失败。 ### 背景与原因 OP_LOGE_WITH_INVALID_ATTR / ATTR_SIZE / INPUT_FORMAT / INPUT_DTYPE 等接口已在 opbase 文档中标记废弃,并给出替代宏。仓内(含 mc2、moe、ffn、experimental)仍有大量调用,需统一切换。 ### 改动方法 仅做宏名替换,调用参数签名一致,不改校验逻辑: | 废弃宏 | 替代宏 | 约计次数 | |--------|--------|----------| | OP_LOGE_WITH_INVALID_ATTR | OP_LOGE_FOR_INVALID_VALUE | 230 | | OP_LOGE_WITH_INVALID_ATTR_SIZE | OP_LOGE_FOR_INVALID_LISTSIZE | 8 | | OP_LOGE_WITH_INVALID_INPUT_FORMAT | OP_LOGE_FOR_INVALID_FORMAT | 13 | | OP_LOGE_WITH_INVALID_INPUT_DTYPE | OP_LOGE_FOR_INVALID_DTYPE | 1 | 共修改 60 个文件,252 处;错误码/日志文案随新宏切换(如 ATTR→VALUE:EZ0002→EZ0024),属预期行为。 ### 涉及范围 - mc2/、moe/、ffn/、experimental/ 等 Host / OPAPI 侧调用点 - 均依赖同一 log/log.h(third_party/opbase/include/op_common/log/log.h) ## 关联的Issue https://gitcode.com/cann/ops-transformer/issues/7092 ## 测试 - [x] 相关算子 Host / OPAPI UT(按需抽测) - [x] 二级冒烟 / 算子泛化(如有流水要求再补) - [x] 静态核对:旧宏在业务源码中无残留;新宏均在 log.h 中有定义;参数个数未变 ## 文档更新 无业务文档更新;依据 third_party/opbase 既有废弃说明完成迁移。 ## 类型标签 <!-- [x] 表示选中 --> - [ ] 🐛 Bug修复 - [ ] ✨ 新特性 - [ ] ⚡ 性能优化 - [ ] ♻️ 重构 - [ ] 🧪 测试 - [ ] 📦 构建/CI - [ ] 🔧 配置变更 - [ ] 📝 文档更新 - [ ] ⬆️ 依赖升级 - [ ] 🔒 安全修复 - [x] 🧹 代码清理 - [ ] ❓ 其他,请描述: See merge request: cann/ops-transformer!15263 | 5 days ago | |
docs: add English translations for markdown files Co-authored-by: jenny_xiang<jenny.xiang@huawei.com> # message auto-generated for no-merge-commit merge: !15372 merge docs/add-english-translations into master docs: add English translations for markdown files Created-by: jenny_xiang Commit-by: jenny_xiang Merged-by: cann-robot Description: ## 描述 新增仓库Markdown文档英文译稿(第二批,共275个文件),为第一批(已合入)之外的其余全部译稿: - 新增263个英文译稿文件(含上游新增算子 attention/flash_kda_grad 的README与测试说明2篇,及14篇基于最新源文档的增量更新) - 重命名12个中文设计文档为英文名(Xxx算子设计介绍.md → Xxx_design.md,与第一批FFN_design.md策略一致) - 更新7个README中的设计文档引用链接 - 更新.pre-commit-config.yaml中codespell忽略词表 本批内全部仓内链接均指向master已有文件(含第一批已合入的42篇译稿),合入后本仓英文文档全部就位、链接完整生效。 ## 关联的Issue 无 ## 测试 文档类变更,无需算子测试;已通过链接有效性校验、残留中文/全角标点扫描、EOF换行规范检查,并完成逐篇翻译规范自查与独立语义审查(含支持状态表、限定词、术语、数值符号核对)。 ## 文档更新 新增263个英文译稿文件、重命名12个中文设计文档、更新8个现有文件,不修改算子源码。 ## 类型标签 - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-transformer!15372 | 9 days ago | |
[cleancode]整仓替换OP_LOGE_WITH_INVALID_ATTR、OP_LOGE_WITH_INVALID_ATTR_SIZE等废弃宏 Co-authored-by: mutex_lock<chenyifan66@h-partners.com> # message auto-generated for no-merge-commit merge: !15263 merge replace_obs_api into master [cleancode]整仓替换OP_LOGE_WITH_INVALID_ATTR、OP_LOGE_WITH_INVALID_ATTR_SIZE等废弃宏 Created-by: mutex_lock Commit-by: mutex_lock Merged-by: cann-robot Description: ## 描述 整仓替换 op_common/log/log.h 中已废弃的日志宏,迁移到文档推荐的新宏,避免后续日落删除导致编译失败。 ### 背景与原因 OP_LOGE_WITH_INVALID_ATTR / ATTR_SIZE / INPUT_FORMAT / INPUT_DTYPE 等接口已在 opbase 文档中标记废弃,并给出替代宏。仓内(含 mc2、moe、ffn、experimental)仍有大量调用,需统一切换。 ### 改动方法 仅做宏名替换,调用参数签名一致,不改校验逻辑: | 废弃宏 | 替代宏 | 约计次数 | |--------|--------|----------| | OP_LOGE_WITH_INVALID_ATTR | OP_LOGE_FOR_INVALID_VALUE | 230 | | OP_LOGE_WITH_INVALID_ATTR_SIZE | OP_LOGE_FOR_INVALID_LISTSIZE | 8 | | OP_LOGE_WITH_INVALID_INPUT_FORMAT | OP_LOGE_FOR_INVALID_FORMAT | 13 | | OP_LOGE_WITH_INVALID_INPUT_DTYPE | OP_LOGE_FOR_INVALID_DTYPE | 1 | 共修改 60 个文件,252 处;错误码/日志文案随新宏切换(如 ATTR→VALUE:EZ0002→EZ0024),属预期行为。 ### 涉及范围 - mc2/、moe/、ffn/、experimental/ 等 Host / OPAPI 侧调用点 - 均依赖同一 log/log.h(third_party/opbase/include/op_common/log/log.h) ## 关联的Issue https://gitcode.com/cann/ops-transformer/issues/7092 ## 测试 - [x] 相关算子 Host / OPAPI UT(按需抽测) - [x] 二级冒烟 / 算子泛化(如有流水要求再补) - [x] 静态核对:旧宏在业务源码中无残留;新宏均在 log.h 中有定义;参数个数未变 ## 文档更新 无业务文档更新;依据 third_party/opbase 既有废弃说明完成迁移。 ## 类型标签 <!-- [x] 表示选中 --> - [ ] 🐛 Bug修复 - [ ] ✨ 新特性 - [ ] ⚡ 性能优化 - [ ] ♻️ 重构 - [ ] 🧪 测试 - [ ] 📦 构建/CI - [ ] 🔧 配置变更 - [ ] 📝 文档更新 - [ ] ⬆️ 依赖升级 - [ ] 🔒 安全修复 - [x] 🧹 代码清理 - [ ] ❓ 其他,请描述: See merge request: cann/ops-transformer!15263 | 5 days ago | |
[cleancode]整仓替换OP_LOGE_WITH_INVALID_ATTR、OP_LOGE_WITH_INVALID_ATTR_SIZE等废弃宏 Co-authored-by: mutex_lock<chenyifan66@h-partners.com> # message auto-generated for no-merge-commit merge: !15263 merge replace_obs_api into master [cleancode]整仓替换OP_LOGE_WITH_INVALID_ATTR、OP_LOGE_WITH_INVALID_ATTR_SIZE等废弃宏 Created-by: mutex_lock Commit-by: mutex_lock Merged-by: cann-robot Description: ## 描述 整仓替换 op_common/log/log.h 中已废弃的日志宏,迁移到文档推荐的新宏,避免后续日落删除导致编译失败。 ### 背景与原因 OP_LOGE_WITH_INVALID_ATTR / ATTR_SIZE / INPUT_FORMAT / INPUT_DTYPE 等接口已在 opbase 文档中标记废弃,并给出替代宏。仓内(含 mc2、moe、ffn、experimental)仍有大量调用,需统一切换。 ### 改动方法 仅做宏名替换,调用参数签名一致,不改校验逻辑: | 废弃宏 | 替代宏 | 约计次数 | |--------|--------|----------| | OP_LOGE_WITH_INVALID_ATTR | OP_LOGE_FOR_INVALID_VALUE | 230 | | OP_LOGE_WITH_INVALID_ATTR_SIZE | OP_LOGE_FOR_INVALID_LISTSIZE | 8 | | OP_LOGE_WITH_INVALID_INPUT_FORMAT | OP_LOGE_FOR_INVALID_FORMAT | 13 | | OP_LOGE_WITH_INVALID_INPUT_DTYPE | OP_LOGE_FOR_INVALID_DTYPE | 1 | 共修改 60 个文件,252 处;错误码/日志文案随新宏切换(如 ATTR→VALUE:EZ0002→EZ0024),属预期行为。 ### 涉及范围 - mc2/、moe/、ffn/、experimental/ 等 Host / OPAPI 侧调用点 - 均依赖同一 log/log.h(third_party/opbase/include/op_common/log/log.h) ## 关联的Issue https://gitcode.com/cann/ops-transformer/issues/7092 ## 测试 - [x] 相关算子 Host / OPAPI UT(按需抽测) - [x] 二级冒烟 / 算子泛化(如有流水要求再补) - [x] 静态核对:旧宏在业务源码中无残留;新宏均在 log.h 中有定义;参数个数未变 ## 文档更新 无业务文档更新;依据 third_party/opbase 既有废弃说明完成迁移。 ## 类型标签 <!-- [x] 表示选中 --> - [ ] 🐛 Bug修复 - [ ] ✨ 新特性 - [ ] ⚡ 性能优化 - [ ] ♻️ 重构 - [ ] 🧪 测试 - [ ] 📦 构建/CI - [ ] 🔧 配置变更 - [ ] 📝 文档更新 - [ ] ⬆️ 依赖升级 - [ ] 🔒 安全修复 - [x] 🧹 代码清理 - [ ] ❓ 其他,请描述: See merge request: cann/ops-transformer!15263 | 5 days ago | |
[cleancode]整仓替换OP_LOGE_WITH_INVALID_ATTR、OP_LOGE_WITH_INVALID_ATTR_SIZE等废弃宏 Co-authored-by: mutex_lock<chenyifan66@h-partners.com> # message auto-generated for no-merge-commit merge: !15263 merge replace_obs_api into master [cleancode]整仓替换OP_LOGE_WITH_INVALID_ATTR、OP_LOGE_WITH_INVALID_ATTR_SIZE等废弃宏 Created-by: mutex_lock Commit-by: mutex_lock Merged-by: cann-robot Description: ## 描述 整仓替换 op_common/log/log.h 中已废弃的日志宏,迁移到文档推荐的新宏,避免后续日落删除导致编译失败。 ### 背景与原因 OP_LOGE_WITH_INVALID_ATTR / ATTR_SIZE / INPUT_FORMAT / INPUT_DTYPE 等接口已在 opbase 文档中标记废弃,并给出替代宏。仓内(含 mc2、moe、ffn、experimental)仍有大量调用,需统一切换。 ### 改动方法 仅做宏名替换,调用参数签名一致,不改校验逻辑: | 废弃宏 | 替代宏 | 约计次数 | |--------|--------|----------| | OP_LOGE_WITH_INVALID_ATTR | OP_LOGE_FOR_INVALID_VALUE | 230 | | OP_LOGE_WITH_INVALID_ATTR_SIZE | OP_LOGE_FOR_INVALID_LISTSIZE | 8 | | OP_LOGE_WITH_INVALID_INPUT_FORMAT | OP_LOGE_FOR_INVALID_FORMAT | 13 | | OP_LOGE_WITH_INVALID_INPUT_DTYPE | OP_LOGE_FOR_INVALID_DTYPE | 1 | 共修改 60 个文件,252 处;错误码/日志文案随新宏切换(如 ATTR→VALUE:EZ0002→EZ0024),属预期行为。 ### 涉及范围 - mc2/、moe/、ffn/、experimental/ 等 Host / OPAPI 侧调用点 - 均依赖同一 log/log.h(third_party/opbase/include/op_common/log/log.h) ## 关联的Issue https://gitcode.com/cann/ops-transformer/issues/7092 ## 测试 - [x] 相关算子 Host / OPAPI UT(按需抽测) - [x] 二级冒烟 / 算子泛化(如有流水要求再补) - [x] 静态核对:旧宏在业务源码中无残留;新宏均在 log.h 中有定义;参数个数未变 ## 文档更新 无业务文档更新;依据 third_party/opbase 既有废弃说明完成迁移。 ## 类型标签 <!-- [x] 表示选中 --> - [ ] 🐛 Bug修复 - [ ] ✨ 新特性 - [ ] ⚡ 性能优化 - [ ] ♻️ 重构 - [ ] 🧪 测试 - [ ] 📦 构建/CI - [ ] 🔧 配置变更 - [ ] 📝 文档更新 - [ ] ⬆️ 依赖升级 - [ ] 🔒 安全修复 - [x] 🧹 代码清理 - [ ] ❓ 其他,请描述: See merge request: cann/ops-transformer!15263 | 5 days ago | |
fullmeshv2 flag轮询与搬出优化 Co-authored-by: zhong-zixin<zhongzixin@huawei.com> # message auto-generated for no-merge-commit merge: !15481 merge fullmeshv2_ready_batch into master fullmeshv2 flag轮询与搬出优化 Created-by: zhong-zixin Commit-by: zhong-zixin Merged-by: cann-robot Description: ## 描述 - 批量搬入 A5 fullmesh_v2 接收 flag 并生成位图,复用片段就绪判断,减少逐片段检查与重复判定 - 将多个已就绪片段的 payload 集中搬入后统一等待,通过双缓冲衔接输出,减少逐片段搬运同步;串行和非串行接收路径共用此实现 串行专家计数同时改为连续块搬运,保留 Scalar 消费所需的 MTE2_S,删除无 Vector 消费者的 MTE2_V。 ## 关联的Issue 关联 Issue [#7275](https://gitcode.com/cann/ops-transformer/issues/7275) ## 测试 本地验证、二级冒烟 ## 文档更新 不涉及 ## 类型标签 - [ ] 🐛 Bug修复 - [ ] ✨ 新特性 - [x] ⚡ 性能优化 - [ ] ♻️ 重构 - [ ] 🧪 测试 - [ ] 📦 构建/CI - [ ] 🔧 配置变更 - [ ] 📝 文档更新 - [ ] ⬆️ 依赖升级 - [ ] 🔒 安全修复 - [ ] 🧹 代码清理 - [ ] ❓ 其他,请描述: --- 以下为 2026-11-07 独立源码检视报告。源码链接已绑定固定提交,报告引用的辅助检查记录仅保留文件名,未作为附件发布。 # fullmeshv2_ready_batch 独立源码检视报告 检视日期:2026-11-07。 **结论:完整差异中未发现已证实的新增功能缺陷,也未发现新增风格违反。** 在文档支持的 Ascend 950 / DAV_3510 普通与串行路径中,批量就绪判断、数据搬入/搬出、双缓冲复用及最终清理的依赖链能够闭合;新的 UB 布局可由容量和对齐公式证明。此结论来自源码、API 实现和数学检查,不是编译或设备验收结论。 实际部署 SDK 的 CompareScalar 实现、保留 UB 编译选项及硬件行为尚未验证,详见后文。 ## 1. 版本、范围与证据 | 项目 | 冻结值 | |---|---| | Worktree | /tmp/ops-fullmesh-ready-batch-rebase-20261106 | | 分支 | fullmeshv2_ready_batch | | HEAD | 2e66dd201b80abaaee0b08398620a450d8f619e5 | | 基线 | e66f7133131527427832bffd6be296087ed8c8cd | | 完整差异 | 1 个 Kernel 头文件,157 行新增、99 行删除 | | 差异文件 | mc2/moe_distribute_dispatch_v2/op_kernel/arch35/moe_distribute_dispatch_v2_a5_full_mesh.h | | 可读 API 实现 | /home/zerozill/.openclaw/projects/asc-devkit,版本 672a659aa82d72c4b843a21d714e73fa28e143ed | 检视覆盖完整 Git diff,并追踪 Host 约束、公共量化与通信实现、公开 API V2/V3/V4 到内部 Kernel 的调用关系。同步脚本对 HEAD 和基线各扫描 13 个相关文件。工作树检查为干净,git diff --check 通过。 以下简称用于精确定位,行号均为上述 HEAD: | 简称 | 源码 | |---|---| | K | [A5 full mesh Kernel](https://gitcode.com/zhong-zixin/ops-transformer/blob/2e66dd201b80abaaee0b08398620a450d8f619e5/mc2/moe_distribute_dispatch_v2/op_kernel/arch35/moe_distribute_dispatch_v2_a5_full_mesh.h) | | H | [Host tiling](https://gitcode.com/zhong-zixin/ops-transformer/blob/2e66dd201b80abaaee0b08398620a450d8f619e5/mc2/moe_distribute_dispatch_v2/op_host/op_tiling/moe_distribute_dispatch_v2_tiling.cpp) | | Q | [公共量化实现](https://gitcode.com/zhong-zixin/ops-transformer/blob/2e66dd201b80abaaee0b08398620a450d8f619e5/mc2/moe_distribute_dispatch_v2/op_kernel/moe_distribute_dispatch_v2_quant.h) | | D | [可读 asc-devkit 实现](https://gitcode.com/cann/asc-devkit/tree/672a659aa82d72c4b843a21d714e73fa28e143ed) | 主要改动是:批量收集 flag 并生成位图,按位图搬入多个已就绪片段,再统一搬出;将原逐片段接收函数拆成 LoadDataFlags、CheckDataArriveWithFlag、LoadReadyData、CopyOut;减少接收工作区;串行计数搬运改为等价连续块,并删除无 Vector 消费者的同步。 ## 2. 发现分类 | 分类 | 数量/结论 | |---|---| | 已证实的新增功能缺陷 | 0 | | 已证实的新增风格违反 | 0 | | 既有风格项 | 2 处同行声明多个变量,P3,不影响功能 | | 未完成的运行验证 | 实际 SDK/编译选项、设备精度、并发与性能,见第 8 节 | 71 条适用功能/通用条款与 19 条风格条款的结果见 条款汇总(clause_report.md)。其中 PASS 仅表示本次差异未违反相应条款,包含内容筛查后的不适用分支;不能解读为整个仓库通过完整产品验收。 ### 2.1 既有风格项 **P3,已证实,非新增。** K:2294 的 uint32_t srcExpertId, dstPosition, copyCnt; 来自基线的五变量声明,本次仅删去两个变量;K:2191 的两个 GlobalTensor<float> 同行声明从原接收函数保留。均不符合“一行声明一个变量”的风格规则,可在后续整理时拆开。未发现由本次拆分产生的死函数、只写不读字段或重复完整计算链。 ## 3. 流水同步与 buffer 生命周期 令 b=blockCntPerToken_,P=480b 为一个 token 的紧凑 payload 字节数。每批最多处理 64 个源片段;未就绪片段保留其 UB 槽位。 | 数据/资源 | Producer → Consumer/复用者 | 同步与依据 | 判定 | |---|---|---|---| | flagRecvTensor_ | MTE2 收 flag → V 比较 | K:2106 → 2116 MTE2_V → 2118 CompareScalar | RAW 闭合 | | flagReadyTensor_ | V 比较 → S 读位图 | K:2122 V_S → 2140 GetValue | RAW 闭合 | | 下一批 flag 工作区 | 前批比较读写 → 下批覆盖 | V_S 等待 V 的读写完成;其后 Scalar 读取/控制流再发起下一批 DMA/比较 | 未见 flag 工作区循环复用缺边 | | ping/pong payload | 上次 MTE3 输出读取 → 新 MTE2 覆盖 | K:2164–2167,先消费同 ID 的 MTE3_V,再 V_MTE2 Set/Wait | WAR 闭合 | | 本批 payload | 全部已就绪 MTE2 搬入 → MTE3 输出 | K:2324–2325 一次 MTE2_MTE3;之后 K:2337 CopyOut | RAW 闭合 | | 可选 expertScales 暂存 | token/scales/索引 MTE3 读取 → MTE2 写权重 → MTE3 输出权重 | K:2224–2228 MTE3_MTE2、MTE2_MTE3 | 复用前后均有完成依赖 | | 两个 payload buffer 最后一次使用 | 最后 MTE3 输出 → V 清理工作区 | K:2348 发布 MTE3_V,K:2353–2356 drain;K:2263 才 Duplicate | 清理不会提前覆盖 | | 清零 flag 数据 | V Duplicate → MTE3 清 GM flag | K:2264 V_MTE3 → 2280 DataCopy | RAW 闭合 | | 串行专家计数 | MTE2 计数搬入 → S 累加 → MTE3 写输出 | K:2518 MTE2_S;K:2536 S_MTE3 | 删除的 MTE2_V 无对应 V 消费者 | GetValue 与 LocalTensor::operator() 的此处访问属于 Scalar。V_S 不能代替 MTE3 完成,因此 payload 复用和结束清理分别保留了明确的 MTE3 完成依赖。固定事件 ID 为 0/1;事件资源按方向区分,接收循环内的 SyncFunc<MTE2_V/V_S> 不与持有中的 MTE3_V release 冲突。发送阶段的事件已在其尾部排空后进入接收阶段。 设实际成功接收批次数为 B: - MTE3_V 发布次数为 B。 - 第三批起复用等待次数为 max(B−2,0)。 - 退出 drain 次数为 min(B,2),两项之和恰为 B。 - 没有就绪片段的轮询既不消费 release,也不增加 copyBatchId;首次等待只发生在即将搬入第一个已就绪片段时。 因此“1 处 Set、2 处 Wait”这一静态调用点计数不是事件不平衡的证据。未见新增跨核同步或通信协议发布顺序的变化。 ## 4. UB 容量、对齐与 Host 配置 ### 4.1 新布局的通用证明 K:2295–2309 取 T=tBufRealSize_、m=floor(T/(993b))、F=bm: | 区域 | 字节数 | 起始偏移 | |---|---:|---:| | ping | 480F | 0 | | pong | 480F | 480F | | ready 位图 | align32(F) | 960F | | 收到的 flag | 32F | 960F+align32(F) | 总量为 992F+align32(F)=align32(993F)。当 T 为 32B 对齐且非负时,由 993F≤T 得总量 ≤T。所有区域起点均 32B 对齐,GetWithOffset 的 size 已按对应元素大小换算。该证明不依赖 token 恰好填满 64/128/256B,也不依赖固定 AIV 核数。 布局不越界与 m>0 是两个条件,后者分别沿非串行和串行入口证明如下。 ### 4.2 普通 Host 域与非串行路径 Host 校验包括 2≤P_ep≤1024(H:608–628)、专家数 E≤2048(H:751–780)、S<P_ep、L=E/(P_ep−S)>0 且 P_ep×L≤4096(H:977–993)、1024≤H≤8192(H:1093–1096)、每源最多 512 token(H:940–960、1003)。还需满足其 dtype、量化、输出 shape、窗口及其他 UB 检查;这些范围并非可以任意笛卡尔积组合。 K:2373–2421 在 Reset 后只分配本阶段对象。令 C=aivUsedCumSum_≤8,s=sendNum_≤4096。无需假定典型 56/64 核,即可保守放大: - 前缀区 ≤align32(4×(s+8))≤16416B。 - 三个 expert 元数据区合计 ≤3×16384=49152B。 - scalar 与两个状态区合计 ≤32+2×8×32=544B。 - 核 0 额外计数区 ≤align32(4×2048)+align32(8×2048)=24576B。 所以 T≥U−64−90688=U−90752。对 950 资料中的每 AIV 可用 U=253952B,有 **T≥163200B**,不存在减法下溢。 类型可达性不能只按全局注册表判断:op_host/moe_distribute_dispatch_v2_def.cpp:100/123 的 INT32 列属于 A6 配置,默认注册第 166/184 行也包含 INT32;但 A5 的 op_host/op_tiling/arch35/moe_distribute_dispatch_v2_tiling_arch35.cpp:1255–1279 查询 moe_distribute_dispatch_tiling_helper.h:72–95 的 QUANT_MODE_MAP,其中没有 INT32 输出,查无即拒绝。另一 tiling 入口第 379–390、1036–1038 行检查同一表;两个 arch35 Kernel 入口的 dtype 分支也均未实例化 INT32。因此该注册列不属于本次 A5 full mesh 的有效配置,以下 2H 上界有对应的 Host 可达性限制。详细证据见 dtype 适用域核对(dtype_scope.md)。 Q:63–117 与 K:477–486 给出 token 打包尺寸。对支持类型,输出至多 2H 字节,输入附带 scale 至多 4H;其余 per-token/per-group/MX 对齐及元数据也受 6H+64 的放大界覆盖。因此 b≤ceil((6×8192+64)/480)=103,单 token 原始预算 993b≤102279B<T。即使再放大为输出与 scale 各 4H,得到 b≤137,仍有 993b≤136041B<T。故该路径 m≥1。 平台值来自 Host 的 GetCoreMemSize(UB)(H:2531–2535);上述 248KiB 数值由架构资料支持,未读取本次设备返回值。对其他平台描述,应重新代入 U,不能把证明变成代码中的硬编码容量。 ### 4.3 串行路径 串行选择条件为 axisMaxBS≤32、原始 EP 小于 16、且非 scaling-down(K:417–418)。BufferInitSerial 在 K:2427–2441 保留既有固定区,再形成剩余接收区。 H:1973–2018 的 CheckSerialReceiveUbSizeA5 按实际平台 UB,累加固定区、保留区及至少一 token 的旧接收需求,超过预算则拒绝。旧需求包含 960b+align256(4b)+32b;新需求为 960b+align32(b)+32b,前者不小于后者。Host 固定区计算对共享专家路径也使用保守状态数。因此既有 Host 检查仍足以保证新路径至少容纳一 token。 ### 4.4 其他边界 在上述合法域内,F=bm≤floor(253952/993)=255。因此新 flag/payload DMA 的 blockCount=b×copyCnt≤255,输出 copyCnt≤255,均未接近 uint16 窄化边界或普通 DataCopy 的 4095 上限。串行计数连续块的 statusNum≤4096,放在 uint16 blockLen 中合法。 最大累计 token 数受 4096×512=2097152 约束,三元组元素偏移不超过 6291456。一个来源段内 finish×hCommuSize 的保守上界为 512×103×512=27000832。大窗口 section 及 expandX 总偏移使用 64 位计算。与此次改动相关的窄化、位移及乘法未发现溢出条件。 ## 5. 位图 API、尾部与有效位 K:2116–2122 调用的是带 mask/repeat 参数的 CompareScalar 重载,前置 SetMaskCount、随后 SetMaskNorm;不能套用另一个 count 重载要求 count 字节数为 256B 整倍数的限制。 可读 DAV_3510 实现 [kernel_operator_vec_cmp_impl.h:478](https://gitcode.com/cann/asc-devkit/blob/672a659aa82d72c4b843a21d714e73fa28e143ed/impl/basic_api/dav_3510/kernel_operator_vec_cmp_impl.h#L478) 在 CounterMode 中按 ceil(mask/64) 迭代,使用 UpdateMask<float> 和带 mask 的 LoadAlign<DATA_BLOCK_COPY>。对应 API 说明全无效的 32B 块不读取。这里 mask 为 N×8 个 float,恰好覆盖 N 个完整 32B flag 块,尾部不会无条件多读一个 256B 向量。 比较将 8 个 float 的判断压成 1 字节。实现按每轮 8B 写位图,尾部实际存储量 8ceil(N/8)≤align32(F);Scalar 的最后一次 uint64 读取也落在该预留区内。K:2130–2145 用 0x0101010101010101 只检查每个 flag 块首 float 的比较位;尾字通过 flagNum 和 offset 限制,未把无效高位参与就绪判断。 片段 mask 的移位范围为 0..63,字节检查移位范围为 0..56。没有移位 64 位、误读尾部位或把 flag 的其他七个 float 当成协议必要条件的情况。 上述结论绑定可读 D 版本。实际部署头文件及 --cce-disable-asc-reserved-ubuf 等编译选项未确认,不能从可读兼容实现推断所有 SDK 组合都可编译。 ## 6. 数据搬运、索引与输出语义 ### 6.1 三轮片段遍历的一致性 LoadDataFlags、LoadReadyData、输出循环均以同一片段范围、同一 min(left,m−tokenNum) 递进。未就绪片段仍累计 tokenNum,后面的已就绪片段使用原槽位;left 为零的片段三处都跳过。最多 64 个片段包括中间零项,位索引使用 index−beginIndex,没有把位图序号与非零片段序号混用。 源 section 都由 GetLocalWindowSrcDataBlockIdx 计算,payload 与 flag 使用相同的 expertFinishNumTensor_×hCommuSize_。目的位置仍为对应源片段的接收前缀加已完成数量,和谁先 ready 无关。每片段输出完成指令提交后才更新 finish/left。入口只将有 token 的片段加入有效表,validNum 为零时调用者退出,不会因最初的全零片段使 finishNum 永远不足。 ### 6.2 DataCopy/DataCopyPad 的单位 - flag 普通 DataCopy 的 {copyCnt×b,1,15,0} 以 32B 为长度/stride 单位,每次取 32B flag、跨过 480B payload。 - payload DataCopyPad 的 {copyCnt×b,480,32,0} 中 blockLen 和 GM stride 为字节,每块读 480B、跳过 32B flag,在 UB 紧排。 - 输出 DataCopyPad 的 UB stride 为 32B 单位,Normal 模式将每个 blockLen 向 32B 取整。 令输出字段有效长度为 L,token 步距为 P=480b。K:2194–2204 使用的 UB 步距为: 32×ceil(L/32)+32×floor((P−L)/32)=P。 该等式覆盖非 32B 对齐的 h、FP4 打包、MX scales、单 float scale 和 12B 三元组。Q:342–373 按量化模式选择字段起始偏移,与此步距一致。没有因尾部向下取整 stride 而逐 token 累积错位。 ### 6.3 可选 expertScales 的覆盖范围 K:2220–2229 每个 4B 专家权重搬入 UB 后占一个 32B 槽,覆盖当前片段开头 32×copyCnt 字节。当前片段长度为 480b×copyCnt,所以覆盖范围始终包含在本片段中,不会破坏后续已预取片段。覆盖前等待本片段 token/scales/索引的 MTE3 读取完成,覆盖后等待 MTE2 完成才输出。下一片段有自己的 UB 起点。 ### 6.4 串行计数与公开接口 K:2514–2518 从 {statusNum,1,0,0} 改成 {1,statusNum,0,0},覆盖的连续字节均为 statusNum×32。后续消费者均为 Scalar GetValue,保留 MTE2_S 足够;数量或前缀和输出逻辑未变。 公开 V2/V3/V4 经共享 base 路由,内部 V3 的 A5 Kernel 也包含本头文件。逐项核对 expandX、dynamicScales、assistInfo、expertTokenNums、epRecvCounts、expandScales 及确定性语义,未发现新输出契约偏差。详细对照及调用位置见 设计与精简性核查(style_design_results/design_notes.md)。A2 设计说明没有用于推断 A5 的 packet 或 UB 约束。 ## 7. 脚本候选与静态检查 同步扫描 HEAD 产生 6 个红线、6 个高等级、25 个性能及 1 个信息候选;基线分别为 6、7、25、1。HEAD 的 12 个红线/高等级候选均有基线同类模式。已逐项区分模板参数、调用点计数、跨迭代配对、分支对称及不同数据区访问,未把脚本候选直接当作缺陷。完整原文与人工判断见 同步候选附录(sync_candidates.md)。 两个版本的图分析器均返回 findings=[];它是正则前端,无法据此证明跨函数、模板和循环回边完整正确。第 3 节的人工数据流追踪是必要补充。 纯 Python 数学检查结果: | 检查 | 规模 | 结果 | |---|---:|---| | UB 分区/对齐/位图尾存储 | 817408 组,T 为 32..253952 的 32B 步长,b 为 1..103 | 通过;m>0 另由 Host 证明 | | 64 位就绪字的有效 byte/bit 与尾部 See merge request: cann/ops-transformer!15481 | 5 days ago | |
[cleancode]整仓替换OP_LOGE_WITH_INVALID_ATTR、OP_LOGE_WITH_INVALID_ATTR_SIZE等废弃宏 Co-authored-by: mutex_lock<chenyifan66@h-partners.com> # message auto-generated for no-merge-commit merge: !15263 merge replace_obs_api into master [cleancode]整仓替换OP_LOGE_WITH_INVALID_ATTR、OP_LOGE_WITH_INVALID_ATTR_SIZE等废弃宏 Created-by: mutex_lock Commit-by: mutex_lock Merged-by: cann-robot Description: ## 描述 整仓替换 op_common/log/log.h 中已废弃的日志宏,迁移到文档推荐的新宏,避免后续日落删除导致编译失败。 ### 背景与原因 OP_LOGE_WITH_INVALID_ATTR / ATTR_SIZE / INPUT_FORMAT / INPUT_DTYPE 等接口已在 opbase 文档中标记废弃,并给出替代宏。仓内(含 mc2、moe、ffn、experimental)仍有大量调用,需统一切换。 ### 改动方法 仅做宏名替换,调用参数签名一致,不改校验逻辑: | 废弃宏 | 替代宏 | 约计次数 | |--------|--------|----------| | OP_LOGE_WITH_INVALID_ATTR | OP_LOGE_FOR_INVALID_VALUE | 230 | | OP_LOGE_WITH_INVALID_ATTR_SIZE | OP_LOGE_FOR_INVALID_LISTSIZE | 8 | | OP_LOGE_WITH_INVALID_INPUT_FORMAT | OP_LOGE_FOR_INVALID_FORMAT | 13 | | OP_LOGE_WITH_INVALID_INPUT_DTYPE | OP_LOGE_FOR_INVALID_DTYPE | 1 | 共修改 60 个文件,252 处;错误码/日志文案随新宏切换(如 ATTR→VALUE:EZ0002→EZ0024),属预期行为。 ### 涉及范围 - mc2/、moe/、ffn/、experimental/ 等 Host / OPAPI 侧调用点 - 均依赖同一 log/log.h(third_party/opbase/include/op_common/log/log.h) ## 关联的Issue https://gitcode.com/cann/ops-transformer/issues/7092 ## 测试 - [x] 相关算子 Host / OPAPI UT(按需抽测) - [x] 二级冒烟 / 算子泛化(如有流水要求再补) - [x] 静态核对:旧宏在业务源码中无残留;新宏均在 log.h 中有定义;参数个数未变 ## 文档更新 无业务文档更新;依据 third_party/opbase 既有废弃说明完成迁移。 ## 类型标签 <!-- [x] 表示选中 --> - [ ] 🐛 Bug修复 - [ ] ✨ 新特性 - [ ] ⚡ 性能优化 - [ ] ♻️ 重构 - [ ] 🧪 测试 - [ ] 📦 构建/CI - [ ] 🔧 配置变更 - [ ] 📝 文档更新 - [ ] ⬆️ 依赖升级 - [ ] 🔒 安全修复 - [x] 🧹 代码清理 - [ ] ❓ 其他,请描述: See merge request: cann/ops-transformer!15263 | 5 days ago | |
单jetty多对端 Co-authored-by: Yuyu-Li<liyuyu6@huawei.com> # message auto-generated for no-merge-commit merge: !13422 merge single_jetty into master 单jetty多对端 Created-by: Yuyu-Li Commit-by: Yuyu-Li Merged-by: cann-robot Description: ## 描述 训练DC算子支持单jetty多对端 > **检视对象**:git commit e56f8c20fb22ddcd72c57db1dcbb0e1d5cc7c723(单jetty多对端) > **提交说明**:为 MoE EP dispatch/combine 引入第二种通信算法 shared_jetty——32 个物理 Jetty(SQ=4096/CQ=64)经 multi-channel handle 服务所有对端 rank;ElasticBuffer 增加 comm_alg 参数;4 个 aclnn 算子签名插参 commAlg 并按 TilingKey 分流到全新 shared-jetty kernel 实现;torch extension 新增 1GiB 大页 context builder。变更 44 文件(+3091/-144,有效变更 2782 行)。 > **检视方式**:ascendc-code-review skill PR 检视流程(标准模式),阶段:代码概要 → API 预研(Ascend 950/A5 代际)→ 设计文档探测 → 检视计划 → 12 组逐条检视(红线/TOPK/安全/API/MC2 领域/风格/RegBase/性能/算子约定/通用规范/Python)+ 设计一致性 S1-S7/D8 → 行号校对(含 diff 范围红线校验,0 范围外)→ 报告组装。 # 代码检视报告 ## 检视概览 - 代码文件:commit e56f8c20fb22ddcd72c57db1dcbb0e1d5cc7c723「单jetty多对端」的 44 个变更文件(mc2/common 共享组件、mc2/moe_ep_combine(+epilogue)、mc2/moe_ep_dispatch(+epilogue)、torch_extension/、tests/) - 代码侧别:混合(Kernel + Tiling + Host/API + Python) - 检视文档:ascendc-api、ascendc-op-conventions、ascendc-perf、ascendc-red-line、ascendc-topk、cpp-general、cpp-secure、cpp-style、mc2-specific、python-secure、regbase-review-checks(共 11 个规则文档) - 总条例数:134(另含 cpp-style 19 条风格条款,不计入统计) - 设计文档来源:mc2/common/docs(torchapi_ElasticBuffer.md) - 检视时间:2026-10-20 22:41 ## 检视统计 | 状态 | 条例数 | 占比 | |------|------|------| | PASS | 132 | 98.5% | | FAIL(发现问题)| 1 | 0.7% | | SUSPICIOUS(需关注)| 1 | 0.7% | ## 设计一致性检查 - 文档来源:mc2/common/docs(torchapi_ElasticBuffer.md) - 总体评级:不一致 | 策略 | 维度 | 设计期望 | 实现实际 | 判定 | |------|------|---------|---------|------| | S1 | 架构匹配 | ElasticBuffer 作为分布式通信 buffer 管理器,内部按算子参数自动计算并申请 CCL buffer,向 aclnn MoE EP 算子提供 context | 实现延续该架构,shared_jetty 路径由 MoeSharedJettyContextBuilder 分配 1GiB 大页并注册 HCCL,from_blob 包装为 context tensor 传入 4 个 aclnn 算子 | ✅ | | S2 | 分支覆盖 | torchapi_ElasticBuffer.md 功能说明仅描述单一通信路径,无 comm_alg/通信算法分支描述 | 实现新增 fullmesh/shared_jetty 双算法分支(构造参数、窗口布局、kernel 实现全套分叉),文档未同步描述 shared_jetty 分支及其约束(至少 64 rank、仅 direct 拓扑) | ❌ | | S3 | API清单 | 文档 dispatch/combine 等接口原型与约束 | 既有接口签名语义不变,新增 comm_alg 为可选参数(默认 fullmesh 向后兼容),kernel API 未使用黑名单接口 | ✅ | | S4 | 数据流追踪 | dispatch 将 token 分发到对应专家卡,combine 将专家输出按原路由聚合回原序列 | shared_jetty 路径数据流与之一致(dispatch 路由统计、count 通知、payload URMA 写、notify;combine metadata 读取、按槽位回写、flag 通知),窗口布局由 host/kernel/Python 三侧同公式保证一致 | ✅ | | S5 | 参数语义 | 文档 __init__ 原型为 group/num_cpu_bytes/num_max_tokens_per_rank/hidden/num_topk/with_grad/explicitly_destroy 七参数,无 comm_alg | 实现在 Python/C++/pybind 三层新增 comm_alg 参数(fullmesh/shared_jetty),产品文档 __init__ 原型未包含该参数 | ❌ | | S6 | 伪代码映射 | 文档无伪代码章节 | 无伪代码可映射 | N/A | | S7 | 约束合规 | 所需 CCL 通信 buffer 由 ElasticBuffer 内部按算子参数自动计算并申请,无需手动配置 | shared_jetty 路径同样由内部按窗口布局公式自动计算并以 2MB 对齐 1GiB 大页申请,满足文档约束 | ✅ | | D8 | 文档格式 | | | ✅ | ### 设计一致性偏差(❌ 项详情) **S5**:__init__ 新增 comm_alg 参数未同步至产品文档函数原型 - 代码位置(校对后行号):mc2/common/torch_extension/elastic_buffer.py:660 - 设计依据:torchapi_ElasticBuffer.md 函数原型(36-46 行)__init__ 原型无 comm_alg **S2**:shared_jetty 通信算法分支(含至少 64 rank、仅 direct 拓扑、32 jetty 资源约束)未在产品文档功能说明中描述 - 代码位置(校对后行号):mc2/common/torch_extension/elastic_buffer.py:923 - 设计依据:torchapi_ElasticBuffer.md 功能说明(28-30 行)仅描述单一通信路径 ## 需关注(MED 置信度) ### [SEC-7.4] 对外结构体接口新增字段时必须在结构体最后添加 - **状态**:FAIL | **置信度**:MED - **问题描述**:本次 commit 在 4 个 TilingData Info 结构体(MoeEpDispatchEpilogueInfo/MoeEpDispatchInfo/ MoeEpCombineInfo/MoeEpCombineEpilogueInfo)的中间位置插入 commAlg 字段而非追加到结构体末尾。 其中 moe_ep_dispatch_epilogue_tiling.h 自身的注释明确记载该结构体是 host tiling 与 kernel 共用的裸内存 ABI,且 rankExpertHitCountOffsetReserved 占位字段存在的唯一目的就是保持 metadataRankOffsetsOffset 等字段在新旧 host/kernel 混用(非同一次构建)时偏移不变; 本次将 commAlg 插入到该占位字段之前,使 metadataRankOffsetsOffset/localRecvIndexOffset/ slotEndsOffset/slotRowIdsOffset 等字段整体后移 8 字节,破坏了注释所记载的混用兼容保证。 混用场景下 kernel 会按旧偏移读取新布局(或反之),metadataRankOffsetsOffset 被错读为 错误值,复现注释中描述的 recv_rank_offsets 错乱类问题。 - **代码文件**:mc2/moe_ep_dispatch_epilogue/op_kernel/moe_ep_dispatch_epilogue_tiling.h - **起始行号**:41 - **中止行号**:51 - **代码片段**: cpp // 占位,勿删:这个字段曾经死在 metadataRankOffsetsOffset 前面,删掉会把后者前移 8 字节。 // tiling 结构体是 host tiling 与 kernel 共用的裸内存 ABI,偏移一变,两侧只要不是同一次构建, // kernel 就会把 metadataRankOffsetsOffset 读成 0,offsets 被写到 recvSrcMetadata + 0, // 随后又被 metadata 行覆盖,表现为 recv_rank_offsets 恒为 torch.empty 的 [0, 0, 0]。 // 保留占位即可让新旧 host/kernel 混用时字段偏移不变。 uint32_t commAlg = 0; uint64_t rankExpertHitCountOffsetReserved = 0; uint64_t metadataRankOffsetsOffset = 0; // byte offset of the aligned tail in packed metadata uint64_t localRecvIndexOffset = 0; // byte offset of [num_tokens, top_k] local recv_x reverse index uint64_t slotEndsOffset = 0; // compact slot list ends, capacity entries uint64_t slotRowIdsOffset = 0; // metadata row ids grouped by slot, capacity entries - **假设检验证据**: 正向证据: | 证据类型 | 分值 | 证据描述 | |---------|------|---------| | 规范违反 | +40% | 4 个 TilingData 结构体均在中间插入新字段,违反"新增字段必须在结构体最后添加" | | 上下文防御缺失 | +30% | 结构体注释明确记载混用 ABI 兼容保证(保留占位使偏移不变),本次插入破坏该保证且无任何版本隔离/偏移校验机制 | | PR 归属 | +20% | commAlg 插入在本次 diff 变更范围内 | | 数据流风险 | +15% | 混用构建下 metadataRankOffsetsOffset 等字段错读 8 字节偏移,接收侧 metadata 布局错乱 | 负向证据: | 证据类型 | 分值 | 证据描述 | |---------|------|---------| | 防御存在 | -20% | mc2/moe_ep_dispatch_epilogue_tiling.h 同一头文件被 host tiling 与 kernel 同时包含,同仓同版本构建时偏移必然一致 | 自信值 = Σ正向 + Σ负向 = 85% ≥ 70% → 判定违规 - **修复建议**:将 commAlg 字段移到各 TilingData Info 结构体末尾(最后一个字段之后)追加, 保持既有字段偏移不变;或复用已有的 reserved/占位字段空间。若确需中间插入, 应同步更新结构体注释并确认部署上不存在新旧 host/kernel 混用场景。 ## 疑似(LOW 置信度) ### [MC2-17] HCCL API 参数动态查阅验证 - **状态**:SUSPICIOUS | **置信度**:LOW - **问题描述**:本次 commit 大量使用新 HCCL/HCOMM 扩展 API(HcclChannelAcquireWithConfig、 HcclChannelConfigSetInt/SetStr、HcclEngineCtxDestroy、MakeMultiChannelHandle、 Hcomm::MakeBatchHandle/WriteNbi/WriteWithNotifyNbi/BatchCommit/Drain/GetHandleRef), 本规则要求检视时必须通过 /ascendc-docs-search 动态查阅官方文档验证参数与生命周期。 本次检视环境中无本地 ASC_DEVKIT 文档,在线文档站点(hiascend.com)对脚本抓取返回 JS/Cookie 拦截页,无法完成权威文档比对。参数一致性只能通过与仓内既有 fullmesh 生产实现(moe_ep_dispatch.h/moe_ep_combine.h 同族调用模式)对照佐证,属于未经 动态查询确认的潜在风险,需人工在具备文档环境时复核。 - **代码文件**:mc2/common/torch_extension/csrc/moe_shared_jetty_context.cpp - **起始行号**:288 - **中止行号**:304 - **代码片段**: cpp std::vector<ChannelHandle> channels(channelDescs_.size()); HcclChannelConfig config = nullptr; CheckHccl(HcclChannelConfigCreateFunc(&config), "HcclChannelConfigCreate"); const char* operation = "HcclChannelConfigSetInt"; auto ret = HcclChannelConfigSetIntFunc(config, HCCL_CHANNEL_CONFIG_TYPE_IS_SHARED_QUEUE, 1); if (ret == HCCL_SUCCESS) { operation = "HcclChannelConfigSetStr"; ret = HcclChannelConfigSetStrFunc(config, HCCL_CHANNEL_CONFIG_TYPE_SHARED_QUEUE_TAG, queueTag.c_str()); } if (ret == HCCL_SUCCESS) { operation = "HcclChannelAcquireWithConfig"; ret = HcclChannelAcquireWithConfigFunc(comm_, COMM_ENGINE, channelDescs_.data(), static_cast<uint32_t>(channelDescs_.size()), config, channels.data()); } auto destroyRet = HcclChannelConfigDestroyFunc(config); TORCH_CHECK(ret == HCCL_SUCCESS, operation, " failed, ret=", ret, ", config cleanup ret=", destroyRet); - **假设检验证据**: 正向证据: | 证据类型 | 分值 | 证据描述 | |---------|------|---------| | 领域关联 | +10% | 代码命中 HCCL 通信 API 领域触发特征,规则要求动态查阅验证 | | PR 归属 | +20% | 全部新增 HCCL 调用在 diff 变更范围内 | 负向证据: | 证据类型 | 分值 | 证据描述 | |---------|------|---------| | 防御存在 | -20% | 所有 HCCL 函数指针经 InitHcclSharedJettyFunctions 全量判空加载,调用返回值全部 CheckHccl/TORCH_CHECK 校验 | | 上游校验 | -15% | Hcomm kernel 侧调用模式与仓内 fullmesh 生产实现(moe_ep_dispatch.h:1165-1210、moe_ep_combine.h:281-317)逐模式一致 | 自信值 = Σ正向 + Σ负向 = -5% ≥ 70% → 未达违规阈值 - **修复建议**:在具备 CANN 文档环境处复核 HcclChannelAcquireWithConfig/MakeMultiChannelHandle 等 新 API 的参数约束与生命周期语义(特别是 AcquireSharedChannels 返回的 ChannelHandle 是否需要显式释放),确认与仓内既有用法一致。 ## 代码风格 > 来自 cpp-style 检视,不走假设检验,违反即 FAIL。不并入上方统计表。 | 条例 | 严重级别 | 问题描述 | 代码位置(校对后行号) | 修复建议 | |------|---------|---------|----------------------|---------| | STYLE-3.1 文件头注释包含版权声明(年份正确) | 中 | 新增文件 moe_ep_combine_shared_jetty.h 的版权年份为 2025,而同一次 commit 新增的其余 7 个文件均为 2026(该文件首次进入仓库于本 commit 2026-10),疑为复制旧文件头注释时未改年份,与同批新文件不一致。 | mc2/moe_ep_combine/op_kernel/moe_ep_combine_shared_jetty.h:1-14 | 将版权年份修正为 2026,与同批新增文件保持一致。 | ## 关联的Issue https://gitcode.com/cann/ops-transformer/issues/5359 ## 测试 二级冒烟,线下测试 ## 文档更新 NA ## 类型标签 <!-- [x] 表示选中 --> - [ ] 🐛 Bug修复 - [ ] ✨ 新特性 - [x] ⚡ 性能优化 - [ ] ♻️ 重构 - [ ] 🧪 测试 - [ ] 📦 构建/CI - [ ] 🔧 配置变更 - [ ] 📝 文档更新 - [ ] ⬆️ 依赖升级 - [ ] 🔒 安全修复 - [ ] 🧹 代码清理 - [ ] ❓ 其他,请描述: See merge request: cann/ops-transformer!13422 | 9 days ago | |
单jetty多对端 Co-authored-by: Yuyu-Li<liyuyu6@huawei.com> # message auto-generated for no-merge-commit merge: !13422 merge single_jetty into master 单jetty多对端 Created-by: Yuyu-Li Commit-by: Yuyu-Li Merged-by: cann-robot Description: ## 描述 训练DC算子支持单jetty多对端 > **检视对象**:git commit e56f8c20fb22ddcd72c57db1dcbb0e1d5cc7c723(单jetty多对端) > **提交说明**:为 MoE EP dispatch/combine 引入第二种通信算法 shared_jetty——32 个物理 Jetty(SQ=4096/CQ=64)经 multi-channel handle 服务所有对端 rank;ElasticBuffer 增加 comm_alg 参数;4 个 aclnn 算子签名插参 commAlg 并按 TilingKey 分流到全新 shared-jetty kernel 实现;torch extension 新增 1GiB 大页 context builder。变更 44 文件(+3091/-144,有效变更 2782 行)。 > **检视方式**:ascendc-code-review skill PR 检视流程(标准模式),阶段:代码概要 → API 预研(Ascend 950/A5 代际)→ 设计文档探测 → 检视计划 → 12 组逐条检视(红线/TOPK/安全/API/MC2 领域/风格/RegBase/性能/算子约定/通用规范/Python)+ 设计一致性 S1-S7/D8 → 行号校对(含 diff 范围红线校验,0 范围外)→ 报告组装。 # 代码检视报告 ## 检视概览 - 代码文件:commit e56f8c20fb22ddcd72c57db1dcbb0e1d5cc7c723「单jetty多对端」的 44 个变更文件(mc2/common 共享组件、mc2/moe_ep_combine(+epilogue)、mc2/moe_ep_dispatch(+epilogue)、torch_extension/、tests/) - 代码侧别:混合(Kernel + Tiling + Host/API + Python) - 检视文档:ascendc-api、ascendc-op-conventions、ascendc-perf、ascendc-red-line、ascendc-topk、cpp-general、cpp-secure、cpp-style、mc2-specific、python-secure、regbase-review-checks(共 11 个规则文档) - 总条例数:134(另含 cpp-style 19 条风格条款,不计入统计) - 设计文档来源:mc2/common/docs(torchapi_ElasticBuffer.md) - 检视时间:2026-10-20 22:41 ## 检视统计 | 状态 | 条例数 | 占比 | |------|------|------| | PASS | 132 | 98.5% | | FAIL(发现问题)| 1 | 0.7% | | SUSPICIOUS(需关注)| 1 | 0.7% | ## 设计一致性检查 - 文档来源:mc2/common/docs(torchapi_ElasticBuffer.md) - 总体评级:不一致 | 策略 | 维度 | 设计期望 | 实现实际 | 判定 | |------|------|---------|---------|------| | S1 | 架构匹配 | ElasticBuffer 作为分布式通信 buffer 管理器,内部按算子参数自动计算并申请 CCL buffer,向 aclnn MoE EP 算子提供 context | 实现延续该架构,shared_jetty 路径由 MoeSharedJettyContextBuilder 分配 1GiB 大页并注册 HCCL,from_blob 包装为 context tensor 传入 4 个 aclnn 算子 | ✅ | | S2 | 分支覆盖 | torchapi_ElasticBuffer.md 功能说明仅描述单一通信路径,无 comm_alg/通信算法分支描述 | 实现新增 fullmesh/shared_jetty 双算法分支(构造参数、窗口布局、kernel 实现全套分叉),文档未同步描述 shared_jetty 分支及其约束(至少 64 rank、仅 direct 拓扑) | ❌ | | S3 | API清单 | 文档 dispatch/combine 等接口原型与约束 | 既有接口签名语义不变,新增 comm_alg 为可选参数(默认 fullmesh 向后兼容),kernel API 未使用黑名单接口 | ✅ | | S4 | 数据流追踪 | dispatch 将 token 分发到对应专家卡,combine 将专家输出按原路由聚合回原序列 | shared_jetty 路径数据流与之一致(dispatch 路由统计、count 通知、payload URMA 写、notify;combine metadata 读取、按槽位回写、flag 通知),窗口布局由 host/kernel/Python 三侧同公式保证一致 | ✅ | | S5 | 参数语义 | 文档 __init__ 原型为 group/num_cpu_bytes/num_max_tokens_per_rank/hidden/num_topk/with_grad/explicitly_destroy 七参数,无 comm_alg | 实现在 Python/C++/pybind 三层新增 comm_alg 参数(fullmesh/shared_jetty),产品文档 __init__ 原型未包含该参数 | ❌ | | S6 | 伪代码映射 | 文档无伪代码章节 | 无伪代码可映射 | N/A | | S7 | 约束合规 | 所需 CCL 通信 buffer 由 ElasticBuffer 内部按算子参数自动计算并申请,无需手动配置 | shared_jetty 路径同样由内部按窗口布局公式自动计算并以 2MB 对齐 1GiB 大页申请,满足文档约束 | ✅ | | D8 | 文档格式 | | | ✅ | ### 设计一致性偏差(❌ 项详情) **S5**:__init__ 新增 comm_alg 参数未同步至产品文档函数原型 - 代码位置(校对后行号):mc2/common/torch_extension/elastic_buffer.py:660 - 设计依据:torchapi_ElasticBuffer.md 函数原型(36-46 行)__init__ 原型无 comm_alg **S2**:shared_jetty 通信算法分支(含至少 64 rank、仅 direct 拓扑、32 jetty 资源约束)未在产品文档功能说明中描述 - 代码位置(校对后行号):mc2/common/torch_extension/elastic_buffer.py:923 - 设计依据:torchapi_ElasticBuffer.md 功能说明(28-30 行)仅描述单一通信路径 ## 需关注(MED 置信度) ### [SEC-7.4] 对外结构体接口新增字段时必须在结构体最后添加 - **状态**:FAIL | **置信度**:MED - **问题描述**:本次 commit 在 4 个 TilingData Info 结构体(MoeEpDispatchEpilogueInfo/MoeEpDispatchInfo/ MoeEpCombineInfo/MoeEpCombineEpilogueInfo)的中间位置插入 commAlg 字段而非追加到结构体末尾。 其中 moe_ep_dispatch_epilogue_tiling.h 自身的注释明确记载该结构体是 host tiling 与 kernel 共用的裸内存 ABI,且 rankExpertHitCountOffsetReserved 占位字段存在的唯一目的就是保持 metadataRankOffsetsOffset 等字段在新旧 host/kernel 混用(非同一次构建)时偏移不变; 本次将 commAlg 插入到该占位字段之前,使 metadataRankOffsetsOffset/localRecvIndexOffset/ slotEndsOffset/slotRowIdsOffset 等字段整体后移 8 字节,破坏了注释所记载的混用兼容保证。 混用场景下 kernel 会按旧偏移读取新布局(或反之),metadataRankOffsetsOffset 被错读为 错误值,复现注释中描述的 recv_rank_offsets 错乱类问题。 - **代码文件**:mc2/moe_ep_dispatch_epilogue/op_kernel/moe_ep_dispatch_epilogue_tiling.h - **起始行号**:41 - **中止行号**:51 - **代码片段**: cpp // 占位,勿删:这个字段曾经死在 metadataRankOffsetsOffset 前面,删掉会把后者前移 8 字节。 // tiling 结构体是 host tiling 与 kernel 共用的裸内存 ABI,偏移一变,两侧只要不是同一次构建, // kernel 就会把 metadataRankOffsetsOffset 读成 0,offsets 被写到 recvSrcMetadata + 0, // 随后又被 metadata 行覆盖,表现为 recv_rank_offsets 恒为 torch.empty 的 [0, 0, 0]。 // 保留占位即可让新旧 host/kernel 混用时字段偏移不变。 uint32_t commAlg = 0; uint64_t rankExpertHitCountOffsetReserved = 0; uint64_t metadataRankOffsetsOffset = 0; // byte offset of the aligned tail in packed metadata uint64_t localRecvIndexOffset = 0; // byte offset of [num_tokens, top_k] local recv_x reverse index uint64_t slotEndsOffset = 0; // compact slot list ends, capacity entries uint64_t slotRowIdsOffset = 0; // metadata row ids grouped by slot, capacity entries - **假设检验证据**: 正向证据: | 证据类型 | 分值 | 证据描述 | |---------|------|---------| | 规范违反 | +40% | 4 个 TilingData 结构体均在中间插入新字段,违反"新增字段必须在结构体最后添加" | | 上下文防御缺失 | +30% | 结构体注释明确记载混用 ABI 兼容保证(保留占位使偏移不变),本次插入破坏该保证且无任何版本隔离/偏移校验机制 | | PR 归属 | +20% | commAlg 插入在本次 diff 变更范围内 | | 数据流风险 | +15% | 混用构建下 metadataRankOffsetsOffset 等字段错读 8 字节偏移,接收侧 metadata 布局错乱 | 负向证据: | 证据类型 | 分值 | 证据描述 | |---------|------|---------| | 防御存在 | -20% | mc2/moe_ep_dispatch_epilogue_tiling.h 同一头文件被 host tiling 与 kernel 同时包含,同仓同版本构建时偏移必然一致 | 自信值 = Σ正向 + Σ负向 = 85% ≥ 70% → 判定违规 - **修复建议**:将 commAlg 字段移到各 TilingData Info 结构体末尾(最后一个字段之后)追加, 保持既有字段偏移不变;或复用已有的 reserved/占位字段空间。若确需中间插入, 应同步更新结构体注释并确认部署上不存在新旧 host/kernel 混用场景。 ## 疑似(LOW 置信度) ### [MC2-17] HCCL API 参数动态查阅验证 - **状态**:SUSPICIOUS | **置信度**:LOW - **问题描述**:本次 commit 大量使用新 HCCL/HCOMM 扩展 API(HcclChannelAcquireWithConfig、 HcclChannelConfigSetInt/SetStr、HcclEngineCtxDestroy、MakeMultiChannelHandle、 Hcomm::MakeBatchHandle/WriteNbi/WriteWithNotifyNbi/BatchCommit/Drain/GetHandleRef), 本规则要求检视时必须通过 /ascendc-docs-search 动态查阅官方文档验证参数与生命周期。 本次检视环境中无本地 ASC_DEVKIT 文档,在线文档站点(hiascend.com)对脚本抓取返回 JS/Cookie 拦截页,无法完成权威文档比对。参数一致性只能通过与仓内既有 fullmesh 生产实现(moe_ep_dispatch.h/moe_ep_combine.h 同族调用模式)对照佐证,属于未经 动态查询确认的潜在风险,需人工在具备文档环境时复核。 - **代码文件**:mc2/common/torch_extension/csrc/moe_shared_jetty_context.cpp - **起始行号**:288 - **中止行号**:304 - **代码片段**: cpp std::vector<ChannelHandle> channels(channelDescs_.size()); HcclChannelConfig config = nullptr; CheckHccl(HcclChannelConfigCreateFunc(&config), "HcclChannelConfigCreate"); const char* operation = "HcclChannelConfigSetInt"; auto ret = HcclChannelConfigSetIntFunc(config, HCCL_CHANNEL_CONFIG_TYPE_IS_SHARED_QUEUE, 1); if (ret == HCCL_SUCCESS) { operation = "HcclChannelConfigSetStr"; ret = HcclChannelConfigSetStrFunc(config, HCCL_CHANNEL_CONFIG_TYPE_SHARED_QUEUE_TAG, queueTag.c_str()); } if (ret == HCCL_SUCCESS) { operation = "HcclChannelAcquireWithConfig"; ret = HcclChannelAcquireWithConfigFunc(comm_, COMM_ENGINE, channelDescs_.data(), static_cast<uint32_t>(channelDescs_.size()), config, channels.data()); } auto destroyRet = HcclChannelConfigDestroyFunc(config); TORCH_CHECK(ret == HCCL_SUCCESS, operation, " failed, ret=", ret, ", config cleanup ret=", destroyRet); - **假设检验证据**: 正向证据: | 证据类型 | 分值 | 证据描述 | |---------|------|---------| | 领域关联 | +10% | 代码命中 HCCL 通信 API 领域触发特征,规则要求动态查阅验证 | | PR 归属 | +20% | 全部新增 HCCL 调用在 diff 变更范围内 | 负向证据: | 证据类型 | 分值 | 证据描述 | |---------|------|---------| | 防御存在 | -20% | 所有 HCCL 函数指针经 InitHcclSharedJettyFunctions 全量判空加载,调用返回值全部 CheckHccl/TORCH_CHECK 校验 | | 上游校验 | -15% | Hcomm kernel 侧调用模式与仓内 fullmesh 生产实现(moe_ep_dispatch.h:1165-1210、moe_ep_combine.h:281-317)逐模式一致 | 自信值 = Σ正向 + Σ负向 = -5% ≥ 70% → 未达违规阈值 - **修复建议**:在具备 CANN 文档环境处复核 HcclChannelAcquireWithConfig/MakeMultiChannelHandle 等 新 API 的参数约束与生命周期语义(特别是 AcquireSharedChannels 返回的 ChannelHandle 是否需要显式释放),确认与仓内既有用法一致。 ## 代码风格 > 来自 cpp-style 检视,不走假设检验,违反即 FAIL。不并入上方统计表。 | 条例 | 严重级别 | 问题描述 | 代码位置(校对后行号) | 修复建议 | |------|---------|---------|----------------------|---------| | STYLE-3.1 文件头注释包含版权声明(年份正确) | 中 | 新增文件 moe_ep_combine_shared_jetty.h 的版权年份为 2025,而同一次 commit 新增的其余 7 个文件均为 2026(该文件首次进入仓库于本 commit 2026-10),疑为复制旧文件头注释时未改年份,与同批新文件不一致。 | mc2/moe_ep_combine/op_kernel/moe_ep_combine_shared_jetty.h:1-14 | 将版权年份修正为 2026,与同批新增文件保持一致。 | ## 关联的Issue https://gitcode.com/cann/ops-transformer/issues/5359 ## 测试 二级冒烟,线下测试 ## 文档更新 NA ## 类型标签 <!-- [x] 表示选中 --> - [ ] 🐛 Bug修复 - [ ] ✨ 新特性 - [x] ⚡ 性能优化 - [ ] ♻️ 重构 - [ ] 🧪 测试 - [ ] 📦 构建/CI - [ ] 🔧 配置变更 - [ ] 📝 文档更新 - [ ] ⬆️ 依赖升级 - [ ] 🔒 安全修复 - [ ] 🧹 代码清理 - [ ] ❓ 其他,请描述: See merge request: cann/ops-transformer!13422 | 9 days ago | |
单jetty多对端 Co-authored-by: Yuyu-Li<liyuyu6@huawei.com> # message auto-generated for no-merge-commit merge: !13422 merge single_jetty into master 单jetty多对端 Created-by: Yuyu-Li Commit-by: Yuyu-Li Merged-by: cann-robot Description: ## 描述 训练DC算子支持单jetty多对端 > **检视对象**:git commit e56f8c20fb22ddcd72c57db1dcbb0e1d5cc7c723(单jetty多对端) > **提交说明**:为 MoE EP dispatch/combine 引入第二种通信算法 shared_jetty——32 个物理 Jetty(SQ=4096/CQ=64)经 multi-channel handle 服务所有对端 rank;ElasticBuffer 增加 comm_alg 参数;4 个 aclnn 算子签名插参 commAlg 并按 TilingKey 分流到全新 shared-jetty kernel 实现;torch extension 新增 1GiB 大页 context builder。变更 44 文件(+3091/-144,有效变更 2782 行)。 > **检视方式**:ascendc-code-review skill PR 检视流程(标准模式),阶段:代码概要 → API 预研(Ascend 950/A5 代际)→ 设计文档探测 → 检视计划 → 12 组逐条检视(红线/TOPK/安全/API/MC2 领域/风格/RegBase/性能/算子约定/通用规范/Python)+ 设计一致性 S1-S7/D8 → 行号校对(含 diff 范围红线校验,0 范围外)→ 报告组装。 # 代码检视报告 ## 检视概览 - 代码文件:commit e56f8c20fb22ddcd72c57db1dcbb0e1d5cc7c723「单jetty多对端」的 44 个变更文件(mc2/common 共享组件、mc2/moe_ep_combine(+epilogue)、mc2/moe_ep_dispatch(+epilogue)、torch_extension/、tests/) - 代码侧别:混合(Kernel + Tiling + Host/API + Python) - 检视文档:ascendc-api、ascendc-op-conventions、ascendc-perf、ascendc-red-line、ascendc-topk、cpp-general、cpp-secure、cpp-style、mc2-specific、python-secure、regbase-review-checks(共 11 个规则文档) - 总条例数:134(另含 cpp-style 19 条风格条款,不计入统计) - 设计文档来源:mc2/common/docs(torchapi_ElasticBuffer.md) - 检视时间:2026-10-20 22:41 ## 检视统计 | 状态 | 条例数 | 占比 | |------|------|------| | PASS | 132 | 98.5% | | FAIL(发现问题)| 1 | 0.7% | | SUSPICIOUS(需关注)| 1 | 0.7% | ## 设计一致性检查 - 文档来源:mc2/common/docs(torchapi_ElasticBuffer.md) - 总体评级:不一致 | 策略 | 维度 | 设计期望 | 实现实际 | 判定 | |------|------|---------|---------|------| | S1 | 架构匹配 | ElasticBuffer 作为分布式通信 buffer 管理器,内部按算子参数自动计算并申请 CCL buffer,向 aclnn MoE EP 算子提供 context | 实现延续该架构,shared_jetty 路径由 MoeSharedJettyContextBuilder 分配 1GiB 大页并注册 HCCL,from_blob 包装为 context tensor 传入 4 个 aclnn 算子 | ✅ | | S2 | 分支覆盖 | torchapi_ElasticBuffer.md 功能说明仅描述单一通信路径,无 comm_alg/通信算法分支描述 | 实现新增 fullmesh/shared_jetty 双算法分支(构造参数、窗口布局、kernel 实现全套分叉),文档未同步描述 shared_jetty 分支及其约束(至少 64 rank、仅 direct 拓扑) | ❌ | | S3 | API清单 | 文档 dispatch/combine 等接口原型与约束 | 既有接口签名语义不变,新增 comm_alg 为可选参数(默认 fullmesh 向后兼容),kernel API 未使用黑名单接口 | ✅ | | S4 | 数据流追踪 | dispatch 将 token 分发到对应专家卡,combine 将专家输出按原路由聚合回原序列 | shared_jetty 路径数据流与之一致(dispatch 路由统计、count 通知、payload URMA 写、notify;combine metadata 读取、按槽位回写、flag 通知),窗口布局由 host/kernel/Python 三侧同公式保证一致 | ✅ | | S5 | 参数语义 | 文档 __init__ 原型为 group/num_cpu_bytes/num_max_tokens_per_rank/hidden/num_topk/with_grad/explicitly_destroy 七参数,无 comm_alg | 实现在 Python/C++/pybind 三层新增 comm_alg 参数(fullmesh/shared_jetty),产品文档 __init__ 原型未包含该参数 | ❌ | | S6 | 伪代码映射 | 文档无伪代码章节 | 无伪代码可映射 | N/A | | S7 | 约束合规 | 所需 CCL 通信 buffer 由 ElasticBuffer 内部按算子参数自动计算并申请,无需手动配置 | shared_jetty 路径同样由内部按窗口布局公式自动计算并以 2MB 对齐 1GiB 大页申请,满足文档约束 | ✅ | | D8 | 文档格式 | | | ✅ | ### 设计一致性偏差(❌ 项详情) **S5**:__init__ 新增 comm_alg 参数未同步至产品文档函数原型 - 代码位置(校对后行号):mc2/common/torch_extension/elastic_buffer.py:660 - 设计依据:torchapi_ElasticBuffer.md 函数原型(36-46 行)__init__ 原型无 comm_alg **S2**:shared_jetty 通信算法分支(含至少 64 rank、仅 direct 拓扑、32 jetty 资源约束)未在产品文档功能说明中描述 - 代码位置(校对后行号):mc2/common/torch_extension/elastic_buffer.py:923 - 设计依据:torchapi_ElasticBuffer.md 功能说明(28-30 行)仅描述单一通信路径 ## 需关注(MED 置信度) ### [SEC-7.4] 对外结构体接口新增字段时必须在结构体最后添加 - **状态**:FAIL | **置信度**:MED - **问题描述**:本次 commit 在 4 个 TilingData Info 结构体(MoeEpDispatchEpilogueInfo/MoeEpDispatchInfo/ MoeEpCombineInfo/MoeEpCombineEpilogueInfo)的中间位置插入 commAlg 字段而非追加到结构体末尾。 其中 moe_ep_dispatch_epilogue_tiling.h 自身的注释明确记载该结构体是 host tiling 与 kernel 共用的裸内存 ABI,且 rankExpertHitCountOffsetReserved 占位字段存在的唯一目的就是保持 metadataRankOffsetsOffset 等字段在新旧 host/kernel 混用(非同一次构建)时偏移不变; 本次将 commAlg 插入到该占位字段之前,使 metadataRankOffsetsOffset/localRecvIndexOffset/ slotEndsOffset/slotRowIdsOffset 等字段整体后移 8 字节,破坏了注释所记载的混用兼容保证。 混用场景下 kernel 会按旧偏移读取新布局(或反之),metadataRankOffsetsOffset 被错读为 错误值,复现注释中描述的 recv_rank_offsets 错乱类问题。 - **代码文件**:mc2/moe_ep_dispatch_epilogue/op_kernel/moe_ep_dispatch_epilogue_tiling.h - **起始行号**:41 - **中止行号**:51 - **代码片段**: cpp // 占位,勿删:这个字段曾经死在 metadataRankOffsetsOffset 前面,删掉会把后者前移 8 字节。 // tiling 结构体是 host tiling 与 kernel 共用的裸内存 ABI,偏移一变,两侧只要不是同一次构建, // kernel 就会把 metadataRankOffsetsOffset 读成 0,offsets 被写到 recvSrcMetadata + 0, // 随后又被 metadata 行覆盖,表现为 recv_rank_offsets 恒为 torch.empty 的 [0, 0, 0]。 // 保留占位即可让新旧 host/kernel 混用时字段偏移不变。 uint32_t commAlg = 0; uint64_t rankExpertHitCountOffsetReserved = 0; uint64_t metadataRankOffsetsOffset = 0; // byte offset of the aligned tail in packed metadata uint64_t localRecvIndexOffset = 0; // byte offset of [num_tokens, top_k] local recv_x reverse index uint64_t slotEndsOffset = 0; // compact slot list ends, capacity entries uint64_t slotRowIdsOffset = 0; // metadata row ids grouped by slot, capacity entries - **假设检验证据**: 正向证据: | 证据类型 | 分值 | 证据描述 | |---------|------|---------| | 规范违反 | +40% | 4 个 TilingData 结构体均在中间插入新字段,违反"新增字段必须在结构体最后添加" | | 上下文防御缺失 | +30% | 结构体注释明确记载混用 ABI 兼容保证(保留占位使偏移不变),本次插入破坏该保证且无任何版本隔离/偏移校验机制 | | PR 归属 | +20% | commAlg 插入在本次 diff 变更范围内 | | 数据流风险 | +15% | 混用构建下 metadataRankOffsetsOffset 等字段错读 8 字节偏移,接收侧 metadata 布局错乱 | 负向证据: | 证据类型 | 分值 | 证据描述 | |---------|------|---------| | 防御存在 | -20% | mc2/moe_ep_dispatch_epilogue_tiling.h 同一头文件被 host tiling 与 kernel 同时包含,同仓同版本构建时偏移必然一致 | 自信值 = Σ正向 + Σ负向 = 85% ≥ 70% → 判定违规 - **修复建议**:将 commAlg 字段移到各 TilingData Info 结构体末尾(最后一个字段之后)追加, 保持既有字段偏移不变;或复用已有的 reserved/占位字段空间。若确需中间插入, 应同步更新结构体注释并确认部署上不存在新旧 host/kernel 混用场景。 ## 疑似(LOW 置信度) ### [MC2-17] HCCL API 参数动态查阅验证 - **状态**:SUSPICIOUS | **置信度**:LOW - **问题描述**:本次 commit 大量使用新 HCCL/HCOMM 扩展 API(HcclChannelAcquireWithConfig、 HcclChannelConfigSetInt/SetStr、HcclEngineCtxDestroy、MakeMultiChannelHandle、 Hcomm::MakeBatchHandle/WriteNbi/WriteWithNotifyNbi/BatchCommit/Drain/GetHandleRef), 本规则要求检视时必须通过 /ascendc-docs-search 动态查阅官方文档验证参数与生命周期。 本次检视环境中无本地 ASC_DEVKIT 文档,在线文档站点(hiascend.com)对脚本抓取返回 JS/Cookie 拦截页,无法完成权威文档比对。参数一致性只能通过与仓内既有 fullmesh 生产实现(moe_ep_dispatch.h/moe_ep_combine.h 同族调用模式)对照佐证,属于未经 动态查询确认的潜在风险,需人工在具备文档环境时复核。 - **代码文件**:mc2/common/torch_extension/csrc/moe_shared_jetty_context.cpp - **起始行号**:288 - **中止行号**:304 - **代码片段**: cpp std::vector<ChannelHandle> channels(channelDescs_.size()); HcclChannelConfig config = nullptr; CheckHccl(HcclChannelConfigCreateFunc(&config), "HcclChannelConfigCreate"); const char* operation = "HcclChannelConfigSetInt"; auto ret = HcclChannelConfigSetIntFunc(config, HCCL_CHANNEL_CONFIG_TYPE_IS_SHARED_QUEUE, 1); if (ret == HCCL_SUCCESS) { operation = "HcclChannelConfigSetStr"; ret = HcclChannelConfigSetStrFunc(config, HCCL_CHANNEL_CONFIG_TYPE_SHARED_QUEUE_TAG, queueTag.c_str()); } if (ret == HCCL_SUCCESS) { operation = "HcclChannelAcquireWithConfig"; ret = HcclChannelAcquireWithConfigFunc(comm_, COMM_ENGINE, channelDescs_.data(), static_cast<uint32_t>(channelDescs_.size()), config, channels.data()); } auto destroyRet = HcclChannelConfigDestroyFunc(config); TORCH_CHECK(ret == HCCL_SUCCESS, operation, " failed, ret=", ret, ", config cleanup ret=", destroyRet); - **假设检验证据**: 正向证据: | 证据类型 | 分值 | 证据描述 | |---------|------|---------| | 领域关联 | +10% | 代码命中 HCCL 通信 API 领域触发特征,规则要求动态查阅验证 | | PR 归属 | +20% | 全部新增 HCCL 调用在 diff 变更范围内 | 负向证据: | 证据类型 | 分值 | 证据描述 | |---------|------|---------| | 防御存在 | -20% | 所有 HCCL 函数指针经 InitHcclSharedJettyFunctions 全量判空加载,调用返回值全部 CheckHccl/TORCH_CHECK 校验 | | 上游校验 | -15% | Hcomm kernel 侧调用模式与仓内 fullmesh 生产实现(moe_ep_dispatch.h:1165-1210、moe_ep_combine.h:281-317)逐模式一致 | 自信值 = Σ正向 + Σ负向 = -5% ≥ 70% → 未达违规阈值 - **修复建议**:在具备 CANN 文档环境处复核 HcclChannelAcquireWithConfig/MakeMultiChannelHandle 等 新 API 的参数约束与生命周期语义(特别是 AcquireSharedChannels 返回的 ChannelHandle 是否需要显式释放),确认与仓内既有用法一致。 ## 代码风格 > 来自 cpp-style 检视,不走假设检验,违反即 FAIL。不并入上方统计表。 | 条例 | 严重级别 | 问题描述 | 代码位置(校对后行号) | 修复建议 | |------|---------|---------|----------------------|---------| | STYLE-3.1 文件头注释包含版权声明(年份正确) | 中 | 新增文件 moe_ep_combine_shared_jetty.h 的版权年份为 2025,而同一次 commit 新增的其余 7 个文件均为 2026(该文件首次进入仓库于本 commit 2026-10),疑为复制旧文件头注释时未改年份,与同批新文件不一致。 | mc2/moe_ep_combine/op_kernel/moe_ep_combine_shared_jetty.h:1-14 | 将版权年份修正为 2026,与同批新增文件保持一致。 | ## 关联的Issue https://gitcode.com/cann/ops-transformer/issues/5359 ## 测试 二级冒烟,线下测试 ## 文档更新 NA ## 类型标签 <!-- [x] 表示选中 --> - [ ] 🐛 Bug修复 - [ ] ✨ 新特性 - [x] ⚡ 性能优化 - [ ] ♻️ 重构 - [ ] 🧪 测试 - [ ] 📦 构建/CI - [ ] 🔧 配置变更 - [ ] 📝 文档更新 - [ ] ⬆️ 依赖升级 - [ ] 🔒 安全修复 - [ ] 🧹 代码清理 - [ ] ❓ 其他,请描述: See merge request: cann/ops-transformer!13422 | 9 days ago | |
单jetty多对端 Co-authored-by: Yuyu-Li<liyuyu6@huawei.com> # message auto-generated for no-merge-commit merge: !13422 merge single_jetty into master 单jetty多对端 Created-by: Yuyu-Li Commit-by: Yuyu-Li Merged-by: cann-robot Description: ## 描述 训练DC算子支持单jetty多对端 > **检视对象**:git commit e56f8c20fb22ddcd72c57db1dcbb0e1d5cc7c723(单jetty多对端) > **提交说明**:为 MoE EP dispatch/combine 引入第二种通信算法 shared_jetty——32 个物理 Jetty(SQ=4096/CQ=64)经 multi-channel handle 服务所有对端 rank;ElasticBuffer 增加 comm_alg 参数;4 个 aclnn 算子签名插参 commAlg 并按 TilingKey 分流到全新 shared-jetty kernel 实现;torch extension 新增 1GiB 大页 context builder。变更 44 文件(+3091/-144,有效变更 2782 行)。 > **检视方式**:ascendc-code-review skill PR 检视流程(标准模式),阶段:代码概要 → API 预研(Ascend 950/A5 代际)→ 设计文档探测 → 检视计划 → 12 组逐条检视(红线/TOPK/安全/API/MC2 领域/风格/RegBase/性能/算子约定/通用规范/Python)+ 设计一致性 S1-S7/D8 → 行号校对(含 diff 范围红线校验,0 范围外)→ 报告组装。 # 代码检视报告 ## 检视概览 - 代码文件:commit e56f8c20fb22ddcd72c57db1dcbb0e1d5cc7c723「单jetty多对端」的 44 个变更文件(mc2/common 共享组件、mc2/moe_ep_combine(+epilogue)、mc2/moe_ep_dispatch(+epilogue)、torch_extension/、tests/) - 代码侧别:混合(Kernel + Tiling + Host/API + Python) - 检视文档:ascendc-api、ascendc-op-conventions、ascendc-perf、ascendc-red-line、ascendc-topk、cpp-general、cpp-secure、cpp-style、mc2-specific、python-secure、regbase-review-checks(共 11 个规则文档) - 总条例数:134(另含 cpp-style 19 条风格条款,不计入统计) - 设计文档来源:mc2/common/docs(torchapi_ElasticBuffer.md) - 检视时间:2026-10-20 22:41 ## 检视统计 | 状态 | 条例数 | 占比 | |------|------|------| | PASS | 132 | 98.5% | | FAIL(发现问题)| 1 | 0.7% | | SUSPICIOUS(需关注)| 1 | 0.7% | ## 设计一致性检查 - 文档来源:mc2/common/docs(torchapi_ElasticBuffer.md) - 总体评级:不一致 | 策略 | 维度 | 设计期望 | 实现实际 | 判定 | |------|------|---------|---------|------| | S1 | 架构匹配 | ElasticBuffer 作为分布式通信 buffer 管理器,内部按算子参数自动计算并申请 CCL buffer,向 aclnn MoE EP 算子提供 context | 实现延续该架构,shared_jetty 路径由 MoeSharedJettyContextBuilder 分配 1GiB 大页并注册 HCCL,from_blob 包装为 context tensor 传入 4 个 aclnn 算子 | ✅ | | S2 | 分支覆盖 | torchapi_ElasticBuffer.md 功能说明仅描述单一通信路径,无 comm_alg/通信算法分支描述 | 实现新增 fullmesh/shared_jetty 双算法分支(构造参数、窗口布局、kernel 实现全套分叉),文档未同步描述 shared_jetty 分支及其约束(至少 64 rank、仅 direct 拓扑) | ❌ | | S3 | API清单 | 文档 dispatch/combine 等接口原型与约束 | 既有接口签名语义不变,新增 comm_alg 为可选参数(默认 fullmesh 向后兼容),kernel API 未使用黑名单接口 | ✅ | | S4 | 数据流追踪 | dispatch 将 token 分发到对应专家卡,combine 将专家输出按原路由聚合回原序列 | shared_jetty 路径数据流与之一致(dispatch 路由统计、count 通知、payload URMA 写、notify;combine metadata 读取、按槽位回写、flag 通知),窗口布局由 host/kernel/Python 三侧同公式保证一致 | ✅ | | S5 | 参数语义 | 文档 __init__ 原型为 group/num_cpu_bytes/num_max_tokens_per_rank/hidden/num_topk/with_grad/explicitly_destroy 七参数,无 comm_alg | 实现在 Python/C++/pybind 三层新增 comm_alg 参数(fullmesh/shared_jetty),产品文档 __init__ 原型未包含该参数 | ❌ | | S6 | 伪代码映射 | 文档无伪代码章节 | 无伪代码可映射 | N/A | | S7 | 约束合规 | 所需 CCL 通信 buffer 由 ElasticBuffer 内部按算子参数自动计算并申请,无需手动配置 | shared_jetty 路径同样由内部按窗口布局公式自动计算并以 2MB 对齐 1GiB 大页申请,满足文档约束 | ✅ | | D8 | 文档格式 | | | ✅ | ### 设计一致性偏差(❌ 项详情) **S5**:__init__ 新增 comm_alg 参数未同步至产品文档函数原型 - 代码位置(校对后行号):mc2/common/torch_extension/elastic_buffer.py:660 - 设计依据:torchapi_ElasticBuffer.md 函数原型(36-46 行)__init__ 原型无 comm_alg **S2**:shared_jetty 通信算法分支(含至少 64 rank、仅 direct 拓扑、32 jetty 资源约束)未在产品文档功能说明中描述 - 代码位置(校对后行号):mc2/common/torch_extension/elastic_buffer.py:923 - 设计依据:torchapi_ElasticBuffer.md 功能说明(28-30 行)仅描述单一通信路径 ## 需关注(MED 置信度) ### [SEC-7.4] 对外结构体接口新增字段时必须在结构体最后添加 - **状态**:FAIL | **置信度**:MED - **问题描述**:本次 commit 在 4 个 TilingData Info 结构体(MoeEpDispatchEpilogueInfo/MoeEpDispatchInfo/ MoeEpCombineInfo/MoeEpCombineEpilogueInfo)的中间位置插入 commAlg 字段而非追加到结构体末尾。 其中 moe_ep_dispatch_epilogue_tiling.h 自身的注释明确记载该结构体是 host tiling 与 kernel 共用的裸内存 ABI,且 rankExpertHitCountOffsetReserved 占位字段存在的唯一目的就是保持 metadataRankOffsetsOffset 等字段在新旧 host/kernel 混用(非同一次构建)时偏移不变; 本次将 commAlg 插入到该占位字段之前,使 metadataRankOffsetsOffset/localRecvIndexOffset/ slotEndsOffset/slotRowIdsOffset 等字段整体后移 8 字节,破坏了注释所记载的混用兼容保证。 混用场景下 kernel 会按旧偏移读取新布局(或反之),metadataRankOffsetsOffset 被错读为 错误值,复现注释中描述的 recv_rank_offsets 错乱类问题。 - **代码文件**:mc2/moe_ep_dispatch_epilogue/op_kernel/moe_ep_dispatch_epilogue_tiling.h - **起始行号**:41 - **中止行号**:51 - **代码片段**: cpp // 占位,勿删:这个字段曾经死在 metadataRankOffsetsOffset 前面,删掉会把后者前移 8 字节。 // tiling 结构体是 host tiling 与 kernel 共用的裸内存 ABI,偏移一变,两侧只要不是同一次构建, // kernel 就会把 metadataRankOffsetsOffset 读成 0,offsets 被写到 recvSrcMetadata + 0, // 随后又被 metadata 行覆盖,表现为 recv_rank_offsets 恒为 torch.empty 的 [0, 0, 0]。 // 保留占位即可让新旧 host/kernel 混用时字段偏移不变。 uint32_t commAlg = 0; uint64_t rankExpertHitCountOffsetReserved = 0; uint64_t metadataRankOffsetsOffset = 0; // byte offset of the aligned tail in packed metadata uint64_t localRecvIndexOffset = 0; // byte offset of [num_tokens, top_k] local recv_x reverse index uint64_t slotEndsOffset = 0; // compact slot list ends, capacity entries uint64_t slotRowIdsOffset = 0; // metadata row ids grouped by slot, capacity entries - **假设检验证据**: 正向证据: | 证据类型 | 分值 | 证据描述 | |---------|------|---------| | 规范违反 | +40% | 4 个 TilingData 结构体均在中间插入新字段,违反"新增字段必须在结构体最后添加" | | 上下文防御缺失 | +30% | 结构体注释明确记载混用 ABI 兼容保证(保留占位使偏移不变),本次插入破坏该保证且无任何版本隔离/偏移校验机制 | | PR 归属 | +20% | commAlg 插入在本次 diff 变更范围内 | | 数据流风险 | +15% | 混用构建下 metadataRankOffsetsOffset 等字段错读 8 字节偏移,接收侧 metadata 布局错乱 | 负向证据: | 证据类型 | 分值 | 证据描述 | |---------|------|---------| | 防御存在 | -20% | mc2/moe_ep_dispatch_epilogue_tiling.h 同一头文件被 host tiling 与 kernel 同时包含,同仓同版本构建时偏移必然一致 | 自信值 = Σ正向 + Σ负向 = 85% ≥ 70% → 判定违规 - **修复建议**:将 commAlg 字段移到各 TilingData Info 结构体末尾(最后一个字段之后)追加, 保持既有字段偏移不变;或复用已有的 reserved/占位字段空间。若确需中间插入, 应同步更新结构体注释并确认部署上不存在新旧 host/kernel 混用场景。 ## 疑似(LOW 置信度) ### [MC2-17] HCCL API 参数动态查阅验证 - **状态**:SUSPICIOUS | **置信度**:LOW - **问题描述**:本次 commit 大量使用新 HCCL/HCOMM 扩展 API(HcclChannelAcquireWithConfig、 HcclChannelConfigSetInt/SetStr、HcclEngineCtxDestroy、MakeMultiChannelHandle、 Hcomm::MakeBatchHandle/WriteNbi/WriteWithNotifyNbi/BatchCommit/Drain/GetHandleRef), 本规则要求检视时必须通过 /ascendc-docs-search 动态查阅官方文档验证参数与生命周期。 本次检视环境中无本地 ASC_DEVKIT 文档,在线文档站点(hiascend.com)对脚本抓取返回 JS/Cookie 拦截页,无法完成权威文档比对。参数一致性只能通过与仓内既有 fullmesh 生产实现(moe_ep_dispatch.h/moe_ep_combine.h 同族调用模式)对照佐证,属于未经 动态查询确认的潜在风险,需人工在具备文档环境时复核。 - **代码文件**:mc2/common/torch_extension/csrc/moe_shared_jetty_context.cpp - **起始行号**:288 - **中止行号**:304 - **代码片段**: cpp std::vector<ChannelHandle> channels(channelDescs_.size()); HcclChannelConfig config = nullptr; CheckHccl(HcclChannelConfigCreateFunc(&config), "HcclChannelConfigCreate"); const char* operation = "HcclChannelConfigSetInt"; auto ret = HcclChannelConfigSetIntFunc(config, HCCL_CHANNEL_CONFIG_TYPE_IS_SHARED_QUEUE, 1); if (ret == HCCL_SUCCESS) { operation = "HcclChannelConfigSetStr"; ret = HcclChannelConfigSetStrFunc(config, HCCL_CHANNEL_CONFIG_TYPE_SHARED_QUEUE_TAG, queueTag.c_str()); } if (ret == HCCL_SUCCESS) { operation = "HcclChannelAcquireWithConfig"; ret = HcclChannelAcquireWithConfigFunc(comm_, COMM_ENGINE, channelDescs_.data(), static_cast<uint32_t>(channelDescs_.size()), config, channels.data()); } auto destroyRet = HcclChannelConfigDestroyFunc(config); TORCH_CHECK(ret == HCCL_SUCCESS, operation, " failed, ret=", ret, ", config cleanup ret=", destroyRet); - **假设检验证据**: 正向证据: | 证据类型 | 分值 | 证据描述 | |---------|------|---------| | 领域关联 | +10% | 代码命中 HCCL 通信 API 领域触发特征,规则要求动态查阅验证 | | PR 归属 | +20% | 全部新增 HCCL 调用在 diff 变更范围内 | 负向证据: | 证据类型 | 分值 | 证据描述 | |---------|------|---------| | 防御存在 | -20% | 所有 HCCL 函数指针经 InitHcclSharedJettyFunctions 全量判空加载,调用返回值全部 CheckHccl/TORCH_CHECK 校验 | | 上游校验 | -15% | Hcomm kernel 侧调用模式与仓内 fullmesh 生产实现(moe_ep_dispatch.h:1165-1210、moe_ep_combine.h:281-317)逐模式一致 | 自信值 = Σ正向 + Σ负向 = -5% ≥ 70% → 未达违规阈值 - **修复建议**:在具备 CANN 文档环境处复核 HcclChannelAcquireWithConfig/MakeMultiChannelHandle 等 新 API 的参数约束与生命周期语义(特别是 AcquireSharedChannels 返回的 ChannelHandle 是否需要显式释放),确认与仓内既有用法一致。 ## 代码风格 > 来自 cpp-style 检视,不走假设检验,违反即 FAIL。不并入上方统计表。 | 条例 | 严重级别 | 问题描述 | 代码位置(校对后行号) | 修复建议 | |------|---------|---------|----------------------|---------| | STYLE-3.1 文件头注释包含版权声明(年份正确) | 中 | 新增文件 moe_ep_combine_shared_jetty.h 的版权年份为 2025,而同一次 commit 新增的其余 7 个文件均为 2026(该文件首次进入仓库于本 commit 2026-10),疑为复制旧文件头注释时未改年份,与同批新文件不一致。 | mc2/moe_ep_combine/op_kernel/moe_ep_combine_shared_jetty.h:1-14 | 将版权年份修正为 2026,与同批新增文件保持一致。 | ## 关联的Issue https://gitcode.com/cann/ops-transformer/issues/5359 ## 测试 二级冒烟,线下测试 ## 文档更新 NA ## 类型标签 <!-- [x] 表示选中 --> - [ ] 🐛 Bug修复 - [ ] ✨ 新特性 - [x] ⚡ 性能优化 - [ ] ♻️ 重构 - [ ] 🧪 测试 - [ ] 📦 构建/CI - [ ] 🔧 配置变更 - [ ] 📝 文档更新 - [ ] ⬆️ 依赖升级 - [ ] 🔒 安全修复 - [ ] 🧹 代码清理 - [ ] ❓ 其他,请描述: See merge request: cann/ops-transformer!13422 | 9 days ago | |
[cleancode]整仓替换OP_LOGE_WITH_INVALID_ATTR、OP_LOGE_WITH_INVALID_ATTR_SIZE等废弃宏 Co-authored-by: mutex_lock<chenyifan66@h-partners.com> # message auto-generated for no-merge-commit merge: !15263 merge replace_obs_api into master [cleancode]整仓替换OP_LOGE_WITH_INVALID_ATTR、OP_LOGE_WITH_INVALID_ATTR_SIZE等废弃宏 Created-by: mutex_lock Commit-by: mutex_lock Merged-by: cann-robot Description: ## 描述 整仓替换 op_common/log/log.h 中已废弃的日志宏,迁移到文档推荐的新宏,避免后续日落删除导致编译失败。 ### 背景与原因 OP_LOGE_WITH_INVALID_ATTR / ATTR_SIZE / INPUT_FORMAT / INPUT_DTYPE 等接口已在 opbase 文档中标记废弃,并给出替代宏。仓内(含 mc2、moe、ffn、experimental)仍有大量调用,需统一切换。 ### 改动方法 仅做宏名替换,调用参数签名一致,不改校验逻辑: | 废弃宏 | 替代宏 | 约计次数 | |--------|--------|----------| | OP_LOGE_WITH_INVALID_ATTR | OP_LOGE_FOR_INVALID_VALUE | 230 | | OP_LOGE_WITH_INVALID_ATTR_SIZE | OP_LOGE_FOR_INVALID_LISTSIZE | 8 | | OP_LOGE_WITH_INVALID_INPUT_FORMAT | OP_LOGE_FOR_INVALID_FORMAT | 13 | | OP_LOGE_WITH_INVALID_INPUT_DTYPE | OP_LOGE_FOR_INVALID_DTYPE | 1 | 共修改 60 个文件,252 处;错误码/日志文案随新宏切换(如 ATTR→VALUE:EZ0002→EZ0024),属预期行为。 ### 涉及范围 - mc2/、moe/、ffn/、experimental/ 等 Host / OPAPI 侧调用点 - 均依赖同一 log/log.h(third_party/opbase/include/op_common/log/log.h) ## 关联的Issue https://gitcode.com/cann/ops-transformer/issues/7092 ## 测试 - [x] 相关算子 Host / OPAPI UT(按需抽测) - [x] 二级冒烟 / 算子泛化(如有流水要求再补) - [x] 静态核对:旧宏在业务源码中无残留;新宏均在 log.h 中有定义;参数个数未变 ## 文档更新 无业务文档更新;依据 third_party/opbase 既有废弃说明完成迁移。 ## 类型标签 <!-- [x] 表示选中 --> - [ ] 🐛 Bug修复 - [ ] ✨ 新特性 - [ ] ⚡ 性能优化 - [ ] ♻️ 重构 - [ ] 🧪 测试 - [ ] 📦 构建/CI - [ ] 🔧 配置变更 - [ ] 📝 文档更新 - [ ] ⬆️ 依赖升级 - [ ] 🔒 安全修复 - [x] 🧹 代码清理 - [ ] ❓ 其他,请描述: See merge request: cann/ops-transformer!15263 | 5 days ago | |
[cleancode]整仓替换OP_LOGE_WITH_INVALID_ATTR、OP_LOGE_WITH_INVALID_ATTR_SIZE等废弃宏 Co-authored-by: mutex_lock<chenyifan66@h-partners.com> # message auto-generated for no-merge-commit merge: !15263 merge replace_obs_api into master [cleancode]整仓替换OP_LOGE_WITH_INVALID_ATTR、OP_LOGE_WITH_INVALID_ATTR_SIZE等废弃宏 Created-by: mutex_lock Commit-by: mutex_lock Merged-by: cann-robot Description: ## 描述 整仓替换 op_common/log/log.h 中已废弃的日志宏,迁移到文档推荐的新宏,避免后续日落删除导致编译失败。 ### 背景与原因 OP_LOGE_WITH_INVALID_ATTR / ATTR_SIZE / INPUT_FORMAT / INPUT_DTYPE 等接口已在 opbase 文档中标记废弃,并给出替代宏。仓内(含 mc2、moe、ffn、experimental)仍有大量调用,需统一切换。 ### 改动方法 仅做宏名替换,调用参数签名一致,不改校验逻辑: | 废弃宏 | 替代宏 | 约计次数 | |--------|--------|----------| | OP_LOGE_WITH_INVALID_ATTR | OP_LOGE_FOR_INVALID_VALUE | 230 | | OP_LOGE_WITH_INVALID_ATTR_SIZE | OP_LOGE_FOR_INVALID_LISTSIZE | 8 | | OP_LOGE_WITH_INVALID_INPUT_FORMAT | OP_LOGE_FOR_INVALID_FORMAT | 13 | | OP_LOGE_WITH_INVALID_INPUT_DTYPE | OP_LOGE_FOR_INVALID_DTYPE | 1 | 共修改 60 个文件,252 处;错误码/日志文案随新宏切换(如 ATTR→VALUE:EZ0002→EZ0024),属预期行为。 ### 涉及范围 - mc2/、moe/、ffn/、experimental/ 等 Host / OPAPI 侧调用点 - 均依赖同一 log/log.h(third_party/opbase/include/op_common/log/log.h) ## 关联的Issue https://gitcode.com/cann/ops-transformer/issues/7092 ## 测试 - [x] 相关算子 Host / OPAPI UT(按需抽测) - [x] 二级冒烟 / 算子泛化(如有流水要求再补) - [x] 静态核对:旧宏在业务源码中无残留;新宏均在 log.h 中有定义;参数个数未变 ## 文档更新 无业务文档更新;依据 third_party/opbase 既有废弃说明完成迁移。 ## 类型标签 <!-- [x] 表示选中 --> - [ ] 🐛 Bug修复 - [ ] ✨ 新特性 - [ ] ⚡ 性能优化 - [ ] ♻️ 重构 - [ ] 🧪 测试 - [ ] 📦 构建/CI - [ ] 🔧 配置变更 - [ ] 📝 文档更新 - [ ] ⬆️ 依赖升级 - [ ] 🔒 安全修复 - [x] 🧹 代码清理 - [ ] ❓ 其他,请描述: See merge request: cann/ops-transformer!15263 | 5 days ago | |
[cleancode]整仓替换OP_LOGE_WITH_INVALID_ATTR、OP_LOGE_WITH_INVALID_ATTR_SIZE等废弃宏 Co-authored-by: mutex_lock<chenyifan66@h-partners.com> # message auto-generated for no-merge-commit merge: !15263 merge replace_obs_api into master [cleancode]整仓替换OP_LOGE_WITH_INVALID_ATTR、OP_LOGE_WITH_INVALID_ATTR_SIZE等废弃宏 Created-by: mutex_lock Commit-by: mutex_lock Merged-by: cann-robot Description: ## 描述 整仓替换 op_common/log/log.h 中已废弃的日志宏,迁移到文档推荐的新宏,避免后续日落删除导致编译失败。 ### 背景与原因 OP_LOGE_WITH_INVALID_ATTR / ATTR_SIZE / INPUT_FORMAT / INPUT_DTYPE 等接口已在 opbase 文档中标记废弃,并给出替代宏。仓内(含 mc2、moe、ffn、experimental)仍有大量调用,需统一切换。 ### 改动方法 仅做宏名替换,调用参数签名一致,不改校验逻辑: | 废弃宏 | 替代宏 | 约计次数 | |--------|--------|----------| | OP_LOGE_WITH_INVALID_ATTR | OP_LOGE_FOR_INVALID_VALUE | 230 | | OP_LOGE_WITH_INVALID_ATTR_SIZE | OP_LOGE_FOR_INVALID_LISTSIZE | 8 | | OP_LOGE_WITH_INVALID_INPUT_FORMAT | OP_LOGE_FOR_INVALID_FORMAT | 13 | | OP_LOGE_WITH_INVALID_INPUT_DTYPE | OP_LOGE_FOR_INVALID_DTYPE | 1 | 共修改 60 个文件,252 处;错误码/日志文案随新宏切换(如 ATTR→VALUE:EZ0002→EZ0024),属预期行为。 ### 涉及范围 - mc2/、moe/、ffn/、experimental/ 等 Host / OPAPI 侧调用点 - 均依赖同一 log/log.h(third_party/opbase/include/op_common/log/log.h) ## 关联的Issue https://gitcode.com/cann/ops-transformer/issues/7092 ## 测试 - [x] 相关算子 Host / OPAPI UT(按需抽测) - [x] 二级冒烟 / 算子泛化(如有流水要求再补) - [x] 静态核对:旧宏在业务源码中无残留;新宏均在 log.h 中有定义;参数个数未变 ## 文档更新 无业务文档更新;依据 third_party/opbase 既有废弃说明完成迁移。 ## 类型标签 <!-- [x] 表示选中 --> - [ ] 🐛 Bug修复 - [ ] ✨ 新特性 - [ ] ⚡ 性能优化 - [ ] ♻️ 重构 - [ ] 🧪 测试 - [ ] 📦 构建/CI - [ ] 🔧 配置变更 - [ ] 📝 文档更新 - [ ] ⬆️ 依赖升级 - [ ] 🔒 安全修复 - [x] 🧹 代码清理 - [ ] ❓ 其他,请描述: See merge request: cann/ops-transformer!15263 | 5 days ago | |
修复 ops-transformer 接口文档扫描问题(错别字/术语及MD格式,214处) Co-authored-by: liujing987913<liujing407@h-partners.com> # message auto-generated for no-merge-commit merge: !15468 merge master into master 修复 ops-transformer 接口文档扫描问题(错别字/术语及MD格式,214处) Created-by: liujing987913 Commit-by: liujing987913 Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> - 背景:大模型扫描发现 ops-transformer 接口文档问题 214 处 - 修改分类: - 文本替换 145 处:多字/中文多字 101、同音字 25、术语拼写 19、形近字 1、字母顺序 1、代码括号 3 - MD 结构修复 69 处:MD012 连续空行 / MD022 标题 / MD031 代码围栏 / MD032 列表 / MD058 表格 / MD028 引用 / MD010 tab→空格 - 涉及文件:docs 目录下 146 个接口文档 md(含 torchapi 接口文档) - 验证:git diff 确认为纯文本替换 + 纯结构操作,无内容/代码误改;已人工复核 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> https://gitcode.com/cann/ops-transformer/issues/7211 <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> 本次 PR 更新了 ops-transformer 接口文档 146 个 md 文件,修正错别字/多字/术语 145 处、MD 结构 69 处,详见 diff。 ## 类型标签 <!-- [x] 表示选中 --> - [ ] 🐛 Bug修复 - [ ] ✨ 新特性 - [ ] ⚡ 性能优化 - [ ] ♻️ 重构 - [ ] 🧪 测试 - [ ] 📦 构建/CI - [ ] 🔧 配置变更 - [x] 📝 文档更新 - [ ] ⬆️ 依赖升级 - [ ] 🔒 安全修复 - [ ] 🧹 代码清理 - [ ] ❓ 其他,请描述: See merge request: cann/ops-transformer!15468 | 6 days ago | |
docs: add English translations for markdown files Co-authored-by: jenny_xiang<jenny.xiang@huawei.com> # message auto-generated for no-merge-commit merge: !15372 merge docs/add-english-translations into master docs: add English translations for markdown files Created-by: jenny_xiang Commit-by: jenny_xiang Merged-by: cann-robot Description: ## 描述 新增仓库Markdown文档英文译稿(第二批,共275个文件),为第一批(已合入)之外的其余全部译稿: - 新增263个英文译稿文件(含上游新增算子 attention/flash_kda_grad 的README与测试说明2篇,及14篇基于最新源文档的增量更新) - 重命名12个中文设计文档为英文名(Xxx算子设计介绍.md → Xxx_design.md,与第一批FFN_design.md策略一致) - 更新7个README中的设计文档引用链接 - 更新.pre-commit-config.yaml中codespell忽略词表 本批内全部仓内链接均指向master已有文件(含第一批已合入的42篇译稿),合入后本仓英文文档全部就位、链接完整生效。 ## 关联的Issue 无 ## 测试 文档类变更,无需算子测试;已通过链接有效性校验、残留中文/全角标点扫描、EOF换行规范检查,并完成逐篇翻译规范自查与独立语义审查(含支持状态表、限定词、术语、数值符号核对)。 ## 文档更新 新增263个英文译稿文件、重命名12个中文设计文档、更新8个现有文件,不修改算子源码。 ## 类型标签 - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-transformer!15372 | 9 days ago | |
feat(cmake): 在现有分类遍历中补充独立 DSL 入口 Co-authored-by: sky-zyh<zhangyuhan45@huawei.com> # message auto-generated for no-merge-commit merge: !15388 merge feat/standalone-dsl-discovery-20261105 into master feat(cmake): 在现有分类遍历中补充独立 DSL 入口 Created-by: sky-zyh Commit-by: sky-zyh Merged-by: cann-robot Description: ## 描述 只有 op_dsl/CMakeLists.txt 的算子缺少分类目录加载入口。本 PR 沿用分类目录已有遍历,在原有入口判断后补充 DSL 分支,不新增公共 CMake 函数、模块扫描或目录收集流程。 - attention、mhc、mamba、posembedding、gmm 等已有 root/host 判断的分类,在 host 分支后补充 op_dsl 分支,保留原有 root/host 优先级。 - 原来只判断根目录入口的分类,仅追加 op_dsl/CMakeLists.txt 存在性判断和加载,不额外检查或排除 op_host/framework。原来已有 op_host 判断的分类保留原分支。 - mc2 保留公共目录排除和父作用域变量传递,补充 DSL 入口。mc2/tools/CMakeLists.txt 已恢复基线,不再包含其适配。 - 覆盖仓库已有的 15 个分类入口文件;不新增分类调用,不扩大普通/custom 构建原本会进入的分类范围。 根目录 CMakeLists.txt、cmake/func.cmake、cmake/custom_build.cmake 均恢复为基线内容。没有新增测试文件。 已有 ASC 算子继续由原入口显式 include DSL CMake;纯 DSL 算子只需保留 op_dsl/CMakeLists.txt。原有依赖收集和加载不变,本版不扩展纯 DSL 依赖发现能力。 See merge request: cann/ops-transformer!15388 | 9 days ago |
| Files | Last commit | Last update |
|---|---|---|
| 20 days ago | ||
| 9 days ago | ||
| 5 days ago | ||
| 5 days ago | ||
| 9 days ago | ||
| 5 days ago | ||
| 5 days ago | ||
| 6 days ago | ||
| 9 days ago | ||
| 5 days ago | ||
| 6 days ago | ||
| 5 days ago | ||
| 5 days ago | ||
| 9 days ago | ||
| 9 days ago | ||
| 12 days ago | ||
| 10 days ago | ||
| 16 days ago | ||
| 5 days ago | ||
| 6 days ago | ||
| 5 days ago | ||
| 9 days ago | ||
| 5 days ago | ||
| 5 days ago | ||
| 5 days ago | ||
| 5 days ago | ||
| 9 days ago | ||
| 5 days ago | ||
| 5 days ago | ||
| 5 days ago | ||
| 6 days ago | ||
| 5 days ago | ||
| 5 days ago | ||
| 5 days ago | ||
| 9 days ago | ||
| 5 days ago | ||
| 5 days ago | ||
| 5 days ago | ||
| 5 days ago | ||
| 5 days ago | ||
| 9 days ago | ||
| 9 days ago | ||
| 9 days ago | ||
| 9 days ago | ||
| 5 days ago | ||
| 5 days ago | ||
| 5 days ago | ||
| 6 days ago | ||
| 9 days ago | ||
| 9 days ago |