文件最后提交记录最后更新时间
mmalltoall代际隔离 Co-authored-by: qzzzy1<qiziyu2@huawei.com> # message auto-generated for no-merge-commit merge: !4924 merge master into master mmalltoall代际隔离 Created-by: qzzzy1 Commit-by: qzzzy1 Merged-by: cann-robot Description: ## 描述 mmalltoall代际隔离 ## 关联的Issue 关联issue 2241 ## 测试 二级冒烟,本地自测试 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] 🐛 Bug 修复 - [ ] ✨ 新特性 - [x] ⚡ 性能优化 - [ ] ♻️ 重构 - [ ] 🧪 测试 - [ ] 📦 构建/CI - [ ] 🔧 配置变更 - [ ] 📝 文档更新 - [ ] ⬆️ 依赖升级 - [ ] 🔒 安全修复 - [ ] 🧹 代码清理 - [ ] ❓ 其他,请描述: See merge request: cann/ops-transformer!492422 天前
fix-ccusmoke Co-authored-by: qq_43844249<fanglin17@huawei.com> # message auto-generated for no-merge-commit merge: !5138 merge fix-ccusmoke into master fix-ccusmoke Created-by: qq_43844249 Commit-by: qq_43844249 Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> # 代码检视报告 **项目名称**:ops-transformer MC2算子通信引擎修复检视报告 **检视模块**:6个Tiling文件(allto_all/matmul_allto_all系列) **检视人**:Ascend C Code Review Agent **检视日期**:2026-05-11 **检视模式**:PR检视(提交 a8bddade8) **代码侧别**:Tiling侧(Host侧) --- ## 🔍 检视概览 | 统计项 | 数值 | | ---- | ---- | | 检视条款总数 | 8 条 | | 通过条款 | 7 条 | | 需关注条款 | 1 条 | | 发现问题总数 | 0 个(无严重级违规) | | 需关注建议 | 1 个(建议添加注释) | | 检视置信度分布 | HIGH: 0个 / MED: 1个 / LOW: 2个 | **核心结论**:本次修改的技术合理性正确,代码安全性合规,无严重级违规问题。存在1处中等置信度的可读性改进建议(建议添加注释说明修改原因),2处低置信度的类型安全和常量语义提醒(属代码规范建议,非强制整改项)。 **修改概述**: - 修改内容:将 mc2tiling::A5_CCU_ENGINE (值为5) 改为硬编码数字 0 - 修改范围:6个文件,每个文件仅修改1行 - 技术背景:根据 mc2_tiling_utils.h 注释,5 对应 CCU_MS引擎,仅在 A2/3架构支持,A5不支持;改为默认值 0 可解决 CCU Smoke 测试问题 --- ## 📊 检视条款执行详情 | 条款编号 | 条款名称 | 适用范围 | 检视结果 | 置信度 | 备注 | |---------|---------|---------|---------|--------|------| | CLAUSE-1 | 总体原则-静态类型安全(1.1) | All | ✅ PASS | LOW | 存在隐式类型转换(int→uint8_t),但值在范围内 | | CLAUSE-2 | 总体原则-内存安全(1.2) | All | ✅ PASS | - | 不涉及内存操作 | | CLAUSE-3 | 总体原则-禁止未定义行为(1.3) | All | ✅ PASS | - | 合法C++行为 | | CLAUSE-4 | 接口变更兼容性(10.12) | All | ⚠️ 需关注 | MED | 建议添加注释说明修改原因 | | CLAUSE-5 | 返回值校验(TOPK-1) | Host | ✅ PASS | - | 已有 isSuccess() 检查 | | CLAUSE-6 | 外部输入校验(TOPK-7) | Host | ✅ PASS | - | 不引入新的外部输入 | | CLAUSE-7 | 常量单一职责(4.3) | All | ✅ PASS | LOW | 建议添加注释说明语义 | | CLAUSE-8 | 禁止未初始化变量(5.5) | All | ✅ PASS | - | 不涉及变量声明 | --- ## ⚠️ 需关注建议详情 ### 建议 ID:SUGGESTION-001 | 严重级别:MEDIUM(建议) #### 🔬 假设检验过程 **代码段**:SetHcclTiling() 函数中的 withCommEngine(0) 调用 **假设**:H0: 修改不影响代码可读性和可维护性 | 证据序号 | 证据类型 | 规范ID | 证据描述 | 分值增量 | 累计自信值 | |---------|---------|--------|---------|---------|-----------| | 1 | 规范违反(轻) | cpp-secure.md 10.12 | 接口参数值变更未添加注释说明 | +40% | 40% | | 2 | 可读性降低 | - | 硬编码数字 0 缺乏语义说明 | +30% | 70% | **结论**:自信值 **70%** > 60%,**推翻原假设H0**,建议添加注释提升可维护性。 --- **关联规范条款**:cpp-secure.md 10.12(接口变更兼容性) **代码路径**:6个文件的 SetHcclTiling() 函数 - mc2/allto_all_matmul/op_host/op_tiling/arch35/allto_all_fp_matmul_tiling_base.cpp:192 - mc2/allto_all_matmul/op_host/op_tiling/arch35/allto_all_kc_quant_matmul_tiling_base.cpp:236 - mc2/allto_all_matmul/op_host/op_tiling/arch35/allto_all_mx_quant_matmul_tiling_base.cpp:493 - mc2/matmul_allto_all/op_host/op_tiling/arch35/fp_matmul_allto_all_tiling_base.cpp:177 - mc2/matmul_allto_all/op_host/op_tiling/arch35/kc_quant_matmul_allto_all_tiling_base.cpp:148 - mc2/matmul_allto_all/op_host/op_tiling/arch35/mx_quant_matmul_allto_all_tiling_base.cpp:608 **问题类型**:代码可读性建议 **问题描述**:修改将语义明确的常量 mc2tiling::A5_CCU_ENGINE 改为硬编码数字 0,降低了代码的可读性和可维护性。后续维护者需要查阅注释才能理解 0 的含义(默认通信引擎),增加了理解成本。虽用户明确排除魔鬼数字规范检查,但从工程实践角度,建议添加注释说明修改原因和技术背景。 --- #### 修改建议 **修改前代码**: ```cpp // reducetype接口附带的数据类型优先于调用通信接口传入的数据类型,因此这里需要设置 AscendC::Mc2CcTilingConfig allToAllTilingConfig = allToAllBuilder.withCommEngine(0) .withReduceType(opName_, AscendC::HcclReduceOp::HCCL_REDUCE_SUM, contextInfo_.args_.geAType, contextInfo_.args_.geAType) .build(); ``` **修改后代码**: ```cpp // reducetype接口附带的数据类型优先于调用通信接口传入的数据类型,因此这里需要设置 // 【CCU Smoke Fix】A5架构不支持CCU_MS引擎(值为5),改用默认引擎(值为0) // 参考:mc2_tiling_utils.h注释:"5:CCU_MS(A2/3支持 A5不支持)" AscendC::Mc2CcTilingConfig allToAllTilingConfig = allToAllBuilder.withCommEngine(0) // 默认通信引擎,适配A5架构 .withReduceType(opName_, AscendC::HcclReduceOp::HCCL_REDUCE_SUM, contextInfo_.args_.geAType, contextInfo_.args_.geAType) .build(); ``` **修改说明**:添加注释说明修改原因和技术背景,提升代码可维护性。注释包含: 1. 修改原因:解决 A5 架构 CCU Smoke 测试问题 2. 技术背景:引用 mc2_tiling_utils.h 注释,说明 5 在 A5 不支持 3. 语义说明:标注 0 表示默认通信引擎 --- ## ✅ 通过条款补充说明 ### CLAUSE-1:静态类型安全(置信度 LOW) **分析**:修改将 int 类型字面量 0 传递给可能期望 uint8_t 的 API(根据常量定义推断),存在隐式类型转换。但: - C++ 允许 intuint8_t 的隐式转换(缩窄转换) - 值 0uint8_t 表示范围内(0-255) - 无类型溢出风险 **建议**:类型转换风险较低,但建议添加注释说明类型兼容性。 --- ### CLAUSE-7:常量单一职责(置信度 LOW) **分析**:硬编码数字 0 的语义明确(根据注释"0:默认值"),保持单一职责(表示默认通信引擎)。但可读性有所降低,建议添加注释辅助理解。 --- ## 🔧 技术合理性验证 ### 修改背景分析 根据 mc2_tiling_utils.h 第 51-56 行注释: ```cpp /** 当前通信API未提供枚举,后续会提供 0:默认值 1:HOST_TS(A2/3支持 A5不支持)2:AICPU_TS(A2/3支持 A5不支持) 3:AIV 4:AIV_ONLY(A2/3支持 A5不支持) 5:CCU_MS(A2/3支持 A5不支持) 6:CCU_SCHED(A2/3支持 A5不支持) 7:AICPU_UB/ROCE(A5不支持) **/ ``` **技术合理性**: - mc2tiling::A5_CCU_ENGINE = 5 对应 CCU_MS,注释明确标注"**A5不支持**" - 改为默认值 0 是合理的修复方案 - 其他算子(moe_distribute 系列)仍使用 A5_CCU_ENGINE,可能需要后续修复 ### 功能影响评估 **正面影响**: - 解决 A5 架构 CCU Smoke 测试失败问题 - 使用默认通信引擎,适配 A5 硬件限制 **潜在风险**: - 默认引擎 0 在 A5 上的性能是否与预期一致?建议验证性能 - 其他算子(moe_distribute)是否需要相同修复?建议统一处理 --- ## 📝 整改建议汇总 | 建议编号 | 建议类型 | 严重级别 | 建议内容 | 优先级 | |---------|---------|---------|---------|--------| | SUGGESTION-001 | 可读性改进 | MEDIUM | 添加注释说明修改原因和技术背景 | P2(建议执行) | | SUGGESTION-002 | 代码一致性 | LOW | 检查 moe_distribute 系列算子是否需要相同修复 | P3(可选) | | SUGGESTION-003 | 性能验证 | LOW | 验证默认引擎 0 在 A5 架构上的性能表现 | P3(可选) | --- ## ✅ 检视结论 **合规性评估**: - ✅ C++安全编码规范:8条条款全部通过(无严重级违规) - ✅ TOPK问题清单:相关条款全部通过 - ⚠️ 代码可读性:建议添加注释(非强制整改项) **技术合理性评估**: - ✅ 修改背景清晰:A5架构不支持CCU_MS引擎(值为5) - ✅ 修复方案合理:改为默认值(0) - ⚠️ 需验证性能和一致性 **整改建议**: 1. **建议执行**:添加注释说明修改原因(6个文件统一修改) 2. **可选执行**:检查 moe_distribute 系列算子是否需要相同修复 3. **可选执行**:验证默认引擎在 A5 上的性能表现 **最终结论**:本次修改**技术合理性正确,安全性合规**,建议添加注释提升可维护性,无需强制整改。 --- ## 📄 报告生成信息 **报告生成时间**:2026-05-11 **报告状态**:已完成检视,建议整改(非强制) **检视覆盖率**:8/8 条款(100%覆盖) **检视方法**:假设检验驱动 + 证据链追溯 --- ## 附录:修改文件列表 | 序号 | 文件路径 | 修改行 | 修改内容 | |-----|---------|--------|---------| | 1 | mc2/allto_all_matmul/op_host/op_tiling/arch35/allto_all_fp_matmul_tiling_base.cpp | 192 | mc2tiling::A5_CCU_ENGINE0 | | 2 | mc2/allto_all_matmul/op_host/op_tiling/arch35/allto_all_kc_quant_matmul_tiling_base.cpp | 236 | mc2tiling::A5_CCU_ENGINE0 | | 3 | mc2/allto_all_matmul/op_host/op_tiling/arch35/allto_all_mx_quant_matmul_tiling_base.cpp | 493 | mc2tiling::A5_CCU_ENGINE0 | | 4 | mc2/matmul_allto_all/op_host/op_tiling/arch35/fp_matmul_allto_all_tiling_base.cpp | 177 | mc2tiling::A5_CCU_ENGINE0 | | 5 | mc2/matmul_allto_all/op_host/op_tiling/arch35/kc_quant_matmul_allto_all_tiling_base.cpp | 148 | mc2tiling::A5_CCU_ENGINE0 | | 6 | mc2/matmul_allto_all/op_host/op_tiling/arch35/mx_quant_matmul_allto_all_tiling_base.cpp | 608 | mc2tiling::A5_CCU_ENGINE0 | ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [x] 🐛 Bug 修复 - [ ] ✨ 新特性 - [ ] ⚡ 性能优化 - [ ] ♻️ 重构 - [ ] 🧪 测试 - [ ] 📦 构建/CI - [ ] 🔧 配置变更 - [ ] 📝 文档更新 - [ ] ⬆️ 依赖升级 - [ ] 🔒 安全修复 - [ ] 🧹 代码清理 - [ ] ❓ 其他,请描述: See merge request: cann/ops-transformer!513818 天前
refact arch:根据代际隔离要求重构matmulalltoall Co-authored-by: adamlwang<wangjingquan2@huawei.com> # message auto-generated for no-merge-commit merge: !4952 merge refact into master refact arch:根据代际隔离要求重构matmulalltoall Created-by: adamlwang Commit-by: adamlwang Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 根据代际隔离要求重构matmulalltoall. ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> https://gitcode.com/cann/ops-transformer/issues/2327 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] 🐛 Bug 修复 - [ ] ✨ 新特性 - [ ] ⚡ 性能优化 - [x] ♻️ 重构 - [ ] 🧪 测试 - [ ] 📦 构建/CI - [ ] 🔧 配置变更 - [ ] 📝 文档更新 - [ ] ⬆️ 依赖升级 - [ ] 🔒 安全修复 - [ ] 🧹 代码清理 - [ ] ❓ 其他,请描述: # PR 4952 代码检视报告 ## PR概述 **PR标题**: merge 'refact' into 'master' **变更概要**: 重构 matmul_allto_all 算子 tiling 代码架构,删除工厂类,将工厂逻辑迁移到基类和arch35子类的虚函数中。 **代码侧别**: Tiling侧(Host侧) **检视模式**: PR检视(仅关注变更代码) ## 检视统计 - **检视条款**: 9条重点条款(TOPK问题+红线问题) - **通过条款**: 9条(100%通过) - **发现问题**: 0个高风险问题 - **需关注**: 1个低风险项(已验证) ## 检视结果详情 ### ✅ 通过条款(9条) | 条款ID | 条款标题 | 检视结果 | 说明 | |--------|---------|---------|------| | TOPK-1 | 必须校验函数返回值 | **通过** | 用户反馈已确认第66行返回值问题OK | | TOPK-3 | 避免野指针 | **通过** | 无局部变量指针传递风险 | | TOPK-7 | 外部输入校验 | **通过** | args.rankDim 通过判断函数校验 | | TOPK-8 | GM内存偏移int64 | **通过** | 本次变更无涉及GM地址计算 | | 红线2 | 除零保护 | **通过** | 无除法/求余运算 | | 红线3 | 溢出保护 | **通过** | 无数值溢出风险运算 | | 红线4 | 指针保护 | **通过** | 无指针解引用操作 | | 红线5 | 变量初始化 | **通过** | 继承体系初始化完整 | | 红线6 | 资源配对 | **通过** | 无动态资源申请 | ### 需关注项(低风险,已验证) **关注项1**: formulaicTiling.GetTiling() 返回值未直接使用 **位置**: matmul_allto_all_fit_balance_tiling.h:64 **代码片段**: ```cpp AlltoAllMM formulaicTiling(args, args.rankDim, kernelType, socVersion); formulaicTiling.GetTiling(); // 返回值未使用 return formulaicTiling.tilingM_.cutRes; ``` **风险评估**: 低风险(LOW,置信度20%) - 返回值虽未校验,但下一行直接返回 tilingM_.cutRes - 该设计可能是故意忽略返回值,直接访问成员变量 - 用户反馈已确认之前的问题OK,本关注项仅作记录 ## 变更文件清单 ### 新增文件 - 无 ### 修改文件(8个) 1. mc2/matmul_allto_all/op_host/CMakeLists.txt - 删除tiling编译配置 2. mc2/matmul_allto_all/op_host/op_tiling/arch35/fp_matmul_allto_all_tiling_base.cpp - 新增 GetTilingResult() 3. mc2/matmul_allto_all/op_host/op_tiling/arch35/fp_matmul_allto_all_tiling_base.h - 新增虚函数声明 4. mc2/matmul_allto_all/op_host/op_tiling/arch35/kc_quant_matmul_allto_all_tiling_base.cpp - 新增 GetTilingResult() 5. mc2/matmul_allto_all/op_host/op_tiling/arch35/kc_quant_matmul_allto_all_tiling_base.h - 新增虚函数声明 6. mc2/matmul_allto_all/op_host/op_tiling/arch35/mx_quant_matmul_allto_all_tiling_base.cpp - 新增 GetTilingResult() 7. mc2/matmul_allto_all/op_host/op_tiling/arch35/mx_quant_matmul_allto_all_tiling_base.h - 新增虚函数声明 8. mc2/matmul_allto_all/op_host/op_tiling/arch35/matmul_allto_all_fit_balance_tiling.h - 新增 GetArch35TilingResult() ### 删除文件(2个) 1. mc2/matmul_allto_all/op_host/op_tiling/common/allto_all_tiling_factory.cpp 2. mc2/matmul_allto_all/op_host/op_tiling/common/allto_all_tiling_factory.h ### 基类修改(2个) 1. mc2/matmul_allto_all/op_host/op_tiling/matmul_allto_all_tiling_base.cpp - 简化基类实现 2. mc2/matmul_allto_all/op_host/op_tiling/matmul_allto_all_tiling_base.h - 改为虚函数 ## 总体结论 **✅ 检视通过** 本次PR重构符合Ascend C算子开发规范,重点条款100%通过。变更代码: 1. 无数值安全风险(除零、溢出) 2. 无内存安全风险(野指针、未初始化) 3. 无输入验证缺失 4. 无资源管理风险 所有红线问题和TOPK问题均通过检视,代码质量良好。 --- **检视时间**: 2026-05-11 **检视工具**: Ascend C Code Review Agent **规范来源**: ascendc-topk.md + cpp-secure.md See merge request: cann/ops-transformer!495218 天前
(register)replace socversion with npuArch Co-authored-by: inspirations<wangke201@huawei.com> # message auto-generated for no-merge-commit merge: !1480 merge master into master (register)replace socversion with npuArch Created-by: inspirations Commit-by: inspirations Merged-by: cann-robot Description: ## 描述 mc2 3rd目录下的socversion整改 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-transformer!14803 个月前
refact arch:根据代际隔离要求重构matmulalltoall Co-authored-by: adamlwang<wangjingquan2@huawei.com> # message auto-generated for no-merge-commit merge: !4952 merge refact into master refact arch:根据代际隔离要求重构matmulalltoall Created-by: adamlwang Commit-by: adamlwang Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 根据代际隔离要求重构matmulalltoall. ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> https://gitcode.com/cann/ops-transformer/issues/2327 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] 🐛 Bug 修复 - [ ] ✨ 新特性 - [ ] ⚡ 性能优化 - [x] ♻️ 重构 - [ ] 🧪 测试 - [ ] 📦 构建/CI - [ ] 🔧 配置变更 - [ ] 📝 文档更新 - [ ] ⬆️ 依赖升级 - [ ] 🔒 安全修复 - [ ] 🧹 代码清理 - [ ] ❓ 其他,请描述: # PR 4952 代码检视报告 ## PR概述 **PR标题**: merge 'refact' into 'master' **变更概要**: 重构 matmul_allto_all 算子 tiling 代码架构,删除工厂类,将工厂逻辑迁移到基类和arch35子类的虚函数中。 **代码侧别**: Tiling侧(Host侧) **检视模式**: PR检视(仅关注变更代码) ## 检视统计 - **检视条款**: 9条重点条款(TOPK问题+红线问题) - **通过条款**: 9条(100%通过) - **发现问题**: 0个高风险问题 - **需关注**: 1个低风险项(已验证) ## 检视结果详情 ### ✅ 通过条款(9条) | 条款ID | 条款标题 | 检视结果 | 说明 | |--------|---------|---------|------| | TOPK-1 | 必须校验函数返回值 | **通过** | 用户反馈已确认第66行返回值问题OK | | TOPK-3 | 避免野指针 | **通过** | 无局部变量指针传递风险 | | TOPK-7 | 外部输入校验 | **通过** | args.rankDim 通过判断函数校验 | | TOPK-8 | GM内存偏移int64 | **通过** | 本次变更无涉及GM地址计算 | | 红线2 | 除零保护 | **通过** | 无除法/求余运算 | | 红线3 | 溢出保护 | **通过** | 无数值溢出风险运算 | | 红线4 | 指针保护 | **通过** | 无指针解引用操作 | | 红线5 | 变量初始化 | **通过** | 继承体系初始化完整 | | 红线6 | 资源配对 | **通过** | 无动态资源申请 | ### 需关注项(低风险,已验证) **关注项1**: formulaicTiling.GetTiling() 返回值未直接使用 **位置**: matmul_allto_all_fit_balance_tiling.h:64 **代码片段**: ```cpp AlltoAllMM formulaicTiling(args, args.rankDim, kernelType, socVersion); formulaicTiling.GetTiling(); // 返回值未使用 return formulaicTiling.tilingM_.cutRes; ``` **风险评估**: 低风险(LOW,置信度20%) - 返回值虽未校验,但下一行直接返回 tilingM_.cutRes - 该设计可能是故意忽略返回值,直接访问成员变量 - 用户反馈已确认之前的问题OK,本关注项仅作记录 ## 变更文件清单 ### 新增文件 - 无 ### 修改文件(8个) 1. mc2/matmul_allto_all/op_host/CMakeLists.txt - 删除tiling编译配置 2. mc2/matmul_allto_all/op_host/op_tiling/arch35/fp_matmul_allto_all_tiling_base.cpp - 新增 GetTilingResult() 3. mc2/matmul_allto_all/op_host/op_tiling/arch35/fp_matmul_allto_all_tiling_base.h - 新增虚函数声明 4. mc2/matmul_allto_all/op_host/op_tiling/arch35/kc_quant_matmul_allto_all_tiling_base.cpp - 新增 GetTilingResult() 5. mc2/matmul_allto_all/op_host/op_tiling/arch35/kc_quant_matmul_allto_all_tiling_base.h - 新增虚函数声明 6. mc2/matmul_allto_all/op_host/op_tiling/arch35/mx_quant_matmul_allto_all_tiling_base.cpp - 新增 GetTilingResult() 7. mc2/matmul_allto_all/op_host/op_tiling/arch35/mx_quant_matmul_allto_all_tiling_base.h - 新增虚函数声明 8. mc2/matmul_allto_all/op_host/op_tiling/arch35/matmul_allto_all_fit_balance_tiling.h - 新增 GetArch35TilingResult() ### 删除文件(2个) 1. mc2/matmul_allto_all/op_host/op_tiling/common/allto_all_tiling_factory.cpp 2. mc2/matmul_allto_all/op_host/op_tiling/common/allto_all_tiling_factory.h ### 基类修改(2个) 1. mc2/matmul_allto_all/op_host/op_tiling/matmul_allto_all_tiling_base.cpp - 简化基类实现 2. mc2/matmul_allto_all/op_host/op_tiling/matmul_allto_all_tiling_base.h - 改为虚函数 ## 总体结论 **✅ 检视通过** 本次PR重构符合Ascend C算子开发规范,重点条款100%通过。变更代码: 1. 无数值安全风险(除零、溢出) 2. 无内存安全风险(野指针、未初始化) 3. 无输入验证缺失 4. 无资源管理风险 所有红线问题和TOPK问题均通过检视,代码质量良好。 --- **检视时间**: 2026-05-11 **检视工具**: Ascend C Code Review Agent **规范来源**: ascendc-topk.md + cpp-secure.md See merge request: cann/ops-transformer!495218 天前
refact arch:根据代际隔离要求重构matmulalltoall Co-authored-by: adamlwang<wangjingquan2@huawei.com> # message auto-generated for no-merge-commit merge: !4952 merge refact into master refact arch:根据代际隔离要求重构matmulalltoall Created-by: adamlwang Commit-by: adamlwang Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 根据代际隔离要求重构matmulalltoall. ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> https://gitcode.com/cann/ops-transformer/issues/2327 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] 🐛 Bug 修复 - [ ] ✨ 新特性 - [ ] ⚡ 性能优化 - [x] ♻️ 重构 - [ ] 🧪 测试 - [ ] 📦 构建/CI - [ ] 🔧 配置变更 - [ ] 📝 文档更新 - [ ] ⬆️ 依赖升级 - [ ] 🔒 安全修复 - [ ] 🧹 代码清理 - [ ] ❓ 其他,请描述: # PR 4952 代码检视报告 ## PR概述 **PR标题**: merge 'refact' into 'master' **变更概要**: 重构 matmul_allto_all 算子 tiling 代码架构,删除工厂类,将工厂逻辑迁移到基类和arch35子类的虚函数中。 **代码侧别**: Tiling侧(Host侧) **检视模式**: PR检视(仅关注变更代码) ## 检视统计 - **检视条款**: 9条重点条款(TOPK问题+红线问题) - **通过条款**: 9条(100%通过) - **发现问题**: 0个高风险问题 - **需关注**: 1个低风险项(已验证) ## 检视结果详情 ### ✅ 通过条款(9条) | 条款ID | 条款标题 | 检视结果 | 说明 | |--------|---------|---------|------| | TOPK-1 | 必须校验函数返回值 | **通过** | 用户反馈已确认第66行返回值问题OK | | TOPK-3 | 避免野指针 | **通过** | 无局部变量指针传递风险 | | TOPK-7 | 外部输入校验 | **通过** | args.rankDim 通过判断函数校验 | | TOPK-8 | GM内存偏移int64 | **通过** | 本次变更无涉及GM地址计算 | | 红线2 | 除零保护 | **通过** | 无除法/求余运算 | | 红线3 | 溢出保护 | **通过** | 无数值溢出风险运算 | | 红线4 | 指针保护 | **通过** | 无指针解引用操作 | | 红线5 | 变量初始化 | **通过** | 继承体系初始化完整 | | 红线6 | 资源配对 | **通过** | 无动态资源申请 | ### 需关注项(低风险,已验证) **关注项1**: formulaicTiling.GetTiling() 返回值未直接使用 **位置**: matmul_allto_all_fit_balance_tiling.h:64 **代码片段**: ```cpp AlltoAllMM formulaicTiling(args, args.rankDim, kernelType, socVersion); formulaicTiling.GetTiling(); // 返回值未使用 return formulaicTiling.tilingM_.cutRes; ``` **风险评估**: 低风险(LOW,置信度20%) - 返回值虽未校验,但下一行直接返回 tilingM_.cutRes - 该设计可能是故意忽略返回值,直接访问成员变量 - 用户反馈已确认之前的问题OK,本关注项仅作记录 ## 变更文件清单 ### 新增文件 - 无 ### 修改文件(8个) 1. mc2/matmul_allto_all/op_host/CMakeLists.txt - 删除tiling编译配置 2. mc2/matmul_allto_all/op_host/op_tiling/arch35/fp_matmul_allto_all_tiling_base.cpp - 新增 GetTilingResult() 3. mc2/matmul_allto_all/op_host/op_tiling/arch35/fp_matmul_allto_all_tiling_base.h - 新增虚函数声明 4. mc2/matmul_allto_all/op_host/op_tiling/arch35/kc_quant_matmul_allto_all_tiling_base.cpp - 新增 GetTilingResult() 5. mc2/matmul_allto_all/op_host/op_tiling/arch35/kc_quant_matmul_allto_all_tiling_base.h - 新增虚函数声明 6. mc2/matmul_allto_all/op_host/op_tiling/arch35/mx_quant_matmul_allto_all_tiling_base.cpp - 新增 GetTilingResult() 7. mc2/matmul_allto_all/op_host/op_tiling/arch35/mx_quant_matmul_allto_all_tiling_base.h - 新增虚函数声明 8. mc2/matmul_allto_all/op_host/op_tiling/arch35/matmul_allto_all_fit_balance_tiling.h - 新增 GetArch35TilingResult() ### 删除文件(2个) 1. mc2/matmul_allto_all/op_host/op_tiling/common/allto_all_tiling_factory.cpp 2. mc2/matmul_allto_all/op_host/op_tiling/common/allto_all_tiling_factory.h ### 基类修改(2个) 1. mc2/matmul_allto_all/op_host/op_tiling/matmul_allto_all_tiling_base.cpp - 简化基类实现 2. mc2/matmul_allto_all/op_host/op_tiling/matmul_allto_all_tiling_base.h - 改为虚函数 ## 总体结论 **✅ 检视通过** 本次PR重构符合Ascend C算子开发规范,重点条款100%通过。变更代码: 1. 无数值安全风险(除零、溢出) 2. 无内存安全风险(野指针、未初始化) 3. 无输入验证缺失 4. 无资源管理风险 所有红线问题和TOPK问题均通过检视,代码质量良好。 --- **检视时间**: 2026-05-11 **检视工具**: Ascend C Code Review Agent **规范来源**: ascendc-topk.md + cpp-secure.md See merge request: cann/ops-transformer!495218 天前