| 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 | |
[fix]mc2潜在偏移越界错误排查修改 Co-authored-by: adamlwang<wangjingquan2@huawei.com> # message auto-generated for no-merge-commit merge: !15563 merge check into master [fix]mc2潜在偏移越界错误排查修改 Created-by: adamlwang Commit-by: adamlwang Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> [fix]mc2潜在偏移越界错误排查修改 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> https://gitcode.com/cann/ops-transformer/issues/7284 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] 🐛 Bug修复 - [ ] ✨ 新特性 - [ ] ⚡ 性能优化 - [ ] ♻️ 重构 - [ ] 🧪 测试 - [ ] 📦 构建/CI - [ ] 🔧 配置变更 - [ ] 📝 文档更新 - [ ] ⬆️ 依赖升级 - [x] 🔒 安全修复 - [ ] 🧹 代码清理 - [ ] ❓ 其他,请描述: See merge request: cann/ops-transformer!15563 | 5 days ago | |
[fix]mc2潜在偏移越界错误排查修改 Co-authored-by: adamlwang<wangjingquan2@huawei.com> # message auto-generated for no-merge-commit merge: !15563 merge check into master [fix]mc2潜在偏移越界错误排查修改 Created-by: adamlwang Commit-by: adamlwang Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> [fix]mc2潜在偏移越界错误排查修改 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> https://gitcode.com/cann/ops-transformer/issues/7284 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] 🐛 Bug修复 - [ ] ✨ 新特性 - [ ] ⚡ 性能优化 - [ ] ♻️ 重构 - [ ] 🧪 测试 - [ ] 📦 构建/CI - [ ] 🔧 配置变更 - [ ] 📝 文档更新 - [ ] ⬆️ 依赖升级 - [x] 🔒 安全修复 - [ ] 🧹 代码清理 - [ ] ❓ 其他,请描述: See merge request: cann/ops-transformer!15563 | 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 | |
[fix]mc2潜在偏移越界错误排查修改 Co-authored-by: adamlwang<wangjingquan2@huawei.com> # message auto-generated for no-merge-commit merge: !15563 merge check into master [fix]mc2潜在偏移越界错误排查修改 Created-by: adamlwang Commit-by: adamlwang Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> [fix]mc2潜在偏移越界错误排查修改 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> https://gitcode.com/cann/ops-transformer/issues/7284 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] 🐛 Bug修复 - [ ] ✨ 新特性 - [ ] ⚡ 性能优化 - [ ] ♻️ 重构 - [ ] 🧪 测试 - [ ] 📦 构建/CI - [ ] 🔧 配置变更 - [ ] 📝 文档更新 - [ ] ⬆️ 依赖升级 - [x] 🔒 安全修复 - [ ] 🧹 代码清理 - [ ] ❓ 其他,请描述: See merge request: cann/ops-transformer!15563 | 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 | |
feat: 960dt 非量化场景适配APACE新模板 Co-authored-by: dengyidan<dengyidan@huawei.com> # message auto-generated for no-merge-commit merge: !14503 merge mmrs_A5_apace into master feat: 960dt 非量化场景适配APACE新模板 Created-by: dyd-dmy Commit-by: dengyidan Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 为 MatmulReduceScatterV2 的 960dt 非量化场景接入 APACE 模板,复用已有 MX 量化通路的融合调度,实现非量化与 MX 量化共用计算、同步及通信流程。 主要修改如下: 1. 新增非量化 APACE 计算实现:基于 Blaze Basic BlockMmad 支持 FP16、BF16输入数据类型,支持 x2 转置和非转置、以及与输出同类型的 bias的输入组合。 2. 统一融合调度:非量化与 MX 量化共用头块组、尾块组调度和 HCCL ReduceScatter 流水,计算层分别保留对应的 Matmul 实现。APACE 使用 AIC-only 核类型。 3. 复用现有 Tiling:非量化沿用 MatmulV3 Tiling 和原有 TilingData,按各 rank 当前通信块合成的逻辑 M 生成计算切分;复用通信块对齐调整,减少跨 rank 行段的拆块。 4. 完善边界处理:Kernel 对跨 rank 的非连续输入分段计算;Host 校验分块覆盖范围、尾轮调度、片上缓冲区容量、单次通信量及包含尾块的总通信次数。 5. 保持平台与接口兼容:对外接口不变,APACE 仅在 960dt 满足条件的非量化和 MX 场景启用,当前使用 AICPU 通信;950、PerTensor、PerBlock及其他非 APACE 场景沿用原有通路。 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> https://gitcode.com/cann/ops-transformer/issues/6732 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> 1. 本地测试已通过。 2. 冒烟测试已通过。 3. 补充并调整 Tiling UT,覆盖 960dt 非量化 APACE 分支选择、小/大 shape、不同核数,以及包含尾块的通信次数边界。 4. 增加 950 非量化和量化原有通路的回归用例,覆盖 AICPU、CCU、PeerOnly及通信量边界。 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> 不涉及 ## 类型标签 <!-- [x] 表示选中 --> - [ ] 🐛 Bug修复 - [x] ✨ 新特性 - [ ] ⚡ 性能优化 - [ ] ♻️ 重构 - [ ] 🧪 测试 - [ ] 📦 构建/CI - [ ] 🔧 配置变更 - [ ] 📝 文档更新 - [ ] ⬆️ 依赖升级 - [ ] 🔒 安全修复 - [ ] 🧹 代码清理 - [ ] ❓ 其他,请描述: See merge request: cann/ops-transformer!14503 | 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 | |
[fix]mc2潜在偏移越界错误排查修改 Co-authored-by: adamlwang<wangjingquan2@huawei.com> # message auto-generated for no-merge-commit merge: !15563 merge check into master [fix]mc2潜在偏移越界错误排查修改 Created-by: adamlwang Commit-by: adamlwang Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> [fix]mc2潜在偏移越界错误排查修改 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> https://gitcode.com/cann/ops-transformer/issues/7284 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] 🐛 Bug修复 - [ ] ✨ 新特性 - [ ] ⚡ 性能优化 - [ ] ♻️ 重构 - [ ] 🧪 测试 - [ ] 📦 构建/CI - [ ] 🔧 配置变更 - [ ] 📝 文档更新 - [ ] ⬆️ 依赖升级 - [x] 🔒 安全修复 - [ ] 🧹 代码清理 - [ ] ❓ 其他,请描述: See merge request: cann/ops-transformer!15563 | 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 | |
[fix]mc2潜在偏移越界错误排查修改 Co-authored-by: adamlwang<wangjingquan2@huawei.com> # message auto-generated for no-merge-commit merge: !15563 merge check into master [fix]mc2潜在偏移越界错误排查修改 Created-by: adamlwang Commit-by: adamlwang Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> [fix]mc2潜在偏移越界错误排查修改 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> https://gitcode.com/cann/ops-transformer/issues/7284 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] 🐛 Bug修复 - [ ] ✨ 新特性 - [ ] ⚡ 性能优化 - [ ] ♻️ 重构 - [ ] 🧪 测试 - [ ] 📦 构建/CI - [ ] 🔧 配置变更 - [ ] 📝 文档更新 - [ ] ⬆️ 依赖升级 - [x] 🔒 安全修复 - [ ] 🧹 代码清理 - [ ] ❓ 其他,请描述: See merge request: cann/ops-transformer!15563 | 5 days ago | |
[fix]mc2潜在偏移越界错误排查修改 Co-authored-by: adamlwang<wangjingquan2@huawei.com> # message auto-generated for no-merge-commit merge: !15563 merge check into master [fix]mc2潜在偏移越界错误排查修改 Created-by: adamlwang Commit-by: adamlwang Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> [fix]mc2潜在偏移越界错误排查修改 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> https://gitcode.com/cann/ops-transformer/issues/7284 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] 🐛 Bug修复 - [ ] ✨ 新特性 - [ ] ⚡ 性能优化 - [ ] ♻️ 重构 - [ ] 🧪 测试 - [ ] 📦 构建/CI - [ ] 🔧 配置变更 - [ ] 📝 文档更新 - [ ] ⬆️ 依赖升级 - [x] 🔒 安全修复 - [ ] 🧹 代码清理 - [ ] ❓ 其他,请描述: See merge request: cann/ops-transformer!15563 | 5 days ago | |
feat(mega_moe): A3 W4A8 路径支持 dispatch & combine 阶段通信去重(通信零冗余)特性 Co-authored-by: TensorSmith<yangbohan12@huawei.com> # message auto-generated for no-merge-commit merge: !14318 merge feature/megamoe-zr into master feat(mega_moe): A3 W4A8 路径支持 dispatch & combine 阶段通信去重(通信零冗余)特性 Created-by: TensorSmith Commit-by: TensorSmith Merged-by: cann-robot Description: ### 背景 MoE 推理中 topK 较大时,同一 token 以较高概率命中同一张目标卡上的多个专家;基线 MegaMoE 的 dispatch/combine 按行传输,跨卡冗余搬运占比可观(4 卡 topK8 实测约 26%~50%,与 950PR/DT 路径观察一致)。本特性在 Atlas A3 系列 W4A8 量化路径上消除该冗余:dispatch 侧同一 token 发往 同一目标卡只传输一次,combine 侧该卡上的多个专家输出在本卡按 FP32 累加后合并为一行发回, combine 阶段通信量从组内行数降为每 token 每源卡一行。 与 950PR/DT 系列既有去重能力(!12916)语义对齐:由属性 combine_comm_mode 控制,0=关闭 (默认,行为与基线逐位一致),1=开启。combine_comm_mode=1 时实际开启需同时满足能力约束 与收益门控,处置按「程序能否自动处置」分级:须人工调整的配置(支持路径、最小通信窗口) 不满足时算子在 tiling 阶段直接报错并给出建议值;程序可自动处置的情形不报错——单轮接收 不满足(手动配置 maxRecvTokenNum 过小)自动回基线并打 WARN 日志说明原因,收益门控 不达标(小 batch 等低收益形状)静默走基线并打一条 decision 日志——低收益/单轮不可行形状 由算子自动关回,调用方无需逐形状判断(与 950PR/DT 去重的收益门控语义一致)。 ### 行为矩阵 | 配置 | ccm=0(缺省) | ccm=1 | |---|---|---| | A3 + A8W4-INT,能力约束满足、收益门控达标 | 基线 | 去重开启 | | A3 + A8W4-INT,能力约束满足、收益门控不达标(小 batch 等低收益形状) | 基线 | 基线(decision 日志) | | A3 + A8W4-INT,单轮接收不满足(maxRecvTokenNum 过小) | 基线 | 基线(WARN 日志) | | A3 + A8W4-INT,最小通信窗口不满足 | 基线 | tiling 显式报错(附建议值) | | A3 + 其它量化场景(A8W8-INT/A16W16) | 基线 | tiling 显式报错 | | A2 系列 | 基线 | tiling 显式报错 | | 任意非法取值(非 0/1) | — | tiling 显式报错 | 能力约束(详见 README/torchapi 约束说明更新): - **单轮接收**:maxRecvTokenNum ≥ min(BS,1024) × epWorldSize × min(topK, localMoeExpertNum) (保持缺省值 0 时自动计算的取值恰好满足;手动配置过小时不报错,自动回退基线 + WARN 日志); - **通信窗口**:通信 buffer 满足去重布局的最小窗口需求(get_symm_buffer_for_mega_moe 在 ccm=1 时自动按去重布局计算); - **BS 一致**:所有卡的 BS 完全一致——不一致(即使均 ≥1024)会因通信 chunk 轮次/ 尾 chunk 布局步长不一致导致挂起或结果错位,各卡 BS 不一致的部署需上层补齐后再调用。 ### 精度口径 开启后同一 token 在同一卡上命中的多个专家输出改为在该卡按 FP32 加权累加后合并为一行发送: 与关闭态相比,除跨专家累加顺序外,加权位置与中间舍入次数也发生变化(关闭态:各专家输出先 量化为 BF16 再乘以 topk 权重;开启态:FP32 全程加权累加、末端一次舍入),即使 num_topk=1 结果也可能不同;y 与 ccm=0 不逐位相同属正常差异,两者与参考值的偏差均随输入而异,无一般性 优劣保证,精度按既有容差口径验收通过(与 950PR/DT 去重同口径)。需要与关闭态逐位一致时请 使用 ccm=0;关闭态与基线逐位一致(编译期双实例化,if constexpr 裁剪)。 ### 适用场景(开启建议) topK 较大、同一 token 命中同卡多个专家比例较高、性能瓶颈在通信的形状收益明显;小 batch 等低收益形状由收益门控自动关回基线,无需调用方逐形状判断,门控边界附近的边缘形状建议实测 后再决定。内部 EP8/EP16 × 4 模型 × bs{8..4096} 扫描实测:大 bs 响应类形状收益 2.8%~20.9% (EP8 档 flash bs2048 收益最大 −20.9%;单机 4 卡 EP4 形态同 bs 达 −29.9%,4366→3062 μs), 小 bs 有 0.7%~12.9% 开销(收益门控即按此标定,将低收益形状挡在开启之外)。 ### 验证摘要 - 精度(EP8,双标杆四指标 + output_1 逐位等 golden):K3 真实形状 bs64/bs4096 ccm{0,1} 全过; 开启臂误差指标与关闭臂可区分(证去重路径实跑)。 - 负例:ccm=2 / 非 W4A8 路径 + ccm=1 / 最小窗口不满足 + ccm=1 均在 tiling 显式拒绝, 各 ccm=0 控制组全过;单轮不满足 + ccm=1 断言自动回基线(tiling 成功、去重字段全 0)。 - UT:arch22 tiling UT 覆盖取值/路径校验、单轮不满足自动回退断言、去重开启时的布局字段 透传与收益门控回退。 - 关闭路径与基线逐位一致经专项闸门验证(双实例化裁剪 + 逐位比对;EP8 复验:ccm=0 与 ccm=1@bs8(门控关回)输出逐位一致,ccm=1@bs1024 输出不同、精度验收通过)。 See merge request: cann/ops-transformer!14318 | 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 | |
Ascend960 combine RSW Co-authored-by: yezhuoxi<yezhuoxi@huawei.com> # message auto-generated for no-merge-commit merge: !13827 merge master into master Ascend960 combine RSW Created-by: yezhuoxi Commit-by: yezhuoxi Merged-by: cann-robot Description: ## 描述 Ascend960 combine算子使用 RSW特性 ## 关联的Issue https://gitcode.com/cann/ops-transformer/issues/7195 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] 🐛 Bug修复 - [ ] ✨ 新特性 - [ ] ⚡ 性能优化 - [ ] ♻️ 重构 - [ ] 🧪 测试 - [ ] 📦 构建/CI - [ ] 🔧 配置变更 - [ ] 📝 文档更新 - [ ] ⬆️ 依赖升级 - [ ] 🔒 安全修复 - [ ] 🧹 代码清理 - [ ] ❓ 其他,请描述: See merge request: cann/ops-transformer!13827 | 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 | |
Ascend960 combine RSW Co-authored-by: yezhuoxi<yezhuoxi@huawei.com> # message auto-generated for no-merge-commit merge: !13827 merge master into master Ascend960 combine RSW Created-by: yezhuoxi Commit-by: yezhuoxi Merged-by: cann-robot Description: ## 描述 Ascend960 combine算子使用 RSW特性 ## 关联的Issue https://gitcode.com/cann/ops-transformer/issues/7195 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] 🐛 Bug修复 - [ ] ✨ 新特性 - [ ] ⚡ 性能优化 - [ ] ♻️ 重构 - [ ] 🧪 测试 - [ ] 📦 构建/CI - [ ] 🔧 配置变更 - [ ] 📝 文档更新 - [ ] ⬆️ 依赖升级 - [ ] 🔒 安全修复 - [ ] 🧹 代码清理 - [ ] ❓ 其他,请描述: See merge request: cann/ops-transformer!13827 | 5 days ago | |
Ascend960 combine RSW Co-authored-by: yezhuoxi<yezhuoxi@huawei.com> # message auto-generated for no-merge-commit merge: !13827 merge master into master Ascend960 combine RSW Created-by: yezhuoxi Commit-by: yezhuoxi Merged-by: cann-robot Description: ## 描述 Ascend960 combine算子使用 RSW特性 ## 关联的Issue https://gitcode.com/cann/ops-transformer/issues/7195 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] 🐛 Bug修复 - [ ] ✨ 新特性 - [ ] ⚡ 性能优化 - [ ] ♻️ 重构 - [ ] 🧪 测试 - [ ] 📦 构建/CI - [ ] 🔧 配置变更 - [ ] 📝 文档更新 - [ ] ⬆️ 依赖升级 - [ ] 🔒 安全修复 - [ ] 🧹 代码清理 - [ ] ❓ 其他,请描述: See merge request: cann/ops-transformer!13827 | 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 | |
Ascend960 combine RSW Co-authored-by: yezhuoxi<yezhuoxi@huawei.com> # message auto-generated for no-merge-commit merge: !13827 merge master into master Ascend960 combine RSW Created-by: yezhuoxi Commit-by: yezhuoxi Merged-by: cann-robot Description: ## 描述 Ascend960 combine算子使用 RSW特性 ## 关联的Issue https://gitcode.com/cann/ops-transformer/issues/7195 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] 🐛 Bug修复 - [ ] ✨ 新特性 - [ ] ⚡ 性能优化 - [ ] ♻️ 重构 - [ ] 🧪 测试 - [ ] 📦 构建/CI - [ ] 🔧 配置变更 - [ ] 📝 文档更新 - [ ] ⬆️ 依赖升级 - [ ] 🔒 安全修复 - [ ] 🧹 代码清理 - [ ] ❓ 其他,请描述: See merge request: cann/ops-transformer!13827 | 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 | ||
| 5 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 | ||
| 5 days ago | ||
| 5 days ago | ||
| 5 days ago | ||
| 5 days ago | ||
| 5 days ago | ||
| 5 days ago | ||
| 5 days ago | ||
| 5 days ago | ||
| 5 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 |