| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
common目录结构整改 Co-authored-by: hello_simida<wangyi206@huawei.com> # message auto-generated for no-merge-commit merge: !5133 merge master into master common目录结构整改 Created-by: hello_simida Commit-by: hello_simida Merged-by: cann-robot Description: ## 描述 完成 common 目录结构调整,并适配所有 CMake 和源码引用路径。 ## 关联的Issue Closes #2369 ## 测试 - 已通过单算子编译验证: bash build.sh --pkg --soc=ascend910b --ops=all_gather_matmul_v2 - build_out/ 已成功生成 .run 包 ## 文档更新 无 ## 类型标签 - [ ] 🐛 Bug 修复 - [ ] ✨ 新特性 - [ ] ⚡ 性能优化 - [x] ♻️ 重构 - [ ] 🧪 测试 - [ ] 📦 构建/CI - [ ] 🔧 配置变更 - [ ] 📝 文档更新 - [ ] ⬆️ 依赖升级 - [ ] 🔒 安全修复 - [ ] 🧹 代码清理 - [ ] ❓ 其他,请描述: See merge request: cann/ops-transformer!5133 | 1 个月前 | |
整改st目录下的atk用例统一目录格式 Co-authored-by: yue-ma<mayue54@huawei.com> # message auto-generated for no-merge-commit merge: !5166 merge master into master 整改st目录下的atk用例统一目录格式 Created-by: yue-ma Commit-by: yue-ma Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 整改st目录下的atk用例统一目录格式 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> https://gitcode.com/cann/ops-math/issues/1538 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] 🐛 Bug 修复 - [ ] ✨ 新特性 - [ ] ⚡ 性能优化 - [ ] ♻️ 重构 - [x] 🧪 测试 - [ ] 📦 构建/CI - [ ] 🔧 配置变更 - [ ] 📝 文档更新 - [ ] ⬆️ 依赖升级 - [ ] 🔒 安全修复 - [x] 🧹 代码清理 - [ ] ❓ 其他,请描述: See merge request: cann/ops-transformer!5166 | 1 个月前 | |
修复AllGatherMatmul在非量化场景的精度问题 Co-authored-by: zhu-mingzhe71<zhumingzhe2@huawei.com> # message auto-generated for no-merge-commit merge: !5387 merge fix_workspace_bug into master 修复AllGatherMatmul在非量化场景的精度问题 Created-by: zhu-mingzhe71 Commit-by: zhu-mingzhe71 Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> PR 4362优化了AllGatherMatmulV2算子的workspace使用,但是会导致非量化场景矩阵计算输出地址错误,引起精度问题,该PR进行修复。 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> https://gitcode.com/cann/ops-transformer/issues/2286 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [x] 🐛 Bug 修复 - [ ] ✨ 新特性 - [ ] ⚡ 性能优化 - [ ] ♻️ 重构 - [ ] 🧪 测试 - [ ] 📦 构建/CI - [ ] 🔧 配置变更 - [ ] 📝 文档更新 - [ ] ⬆️ 依赖升级 - [ ] 🔒 安全修复 - [ ] 🧹 代码清理 - [ ] ❓ 其他,请描述: See merge request: cann/ops-transformer!5387 | 1 个月前 | |
修改mc2目录下的arch32为arch22 Co-authored-by: hblnb<huangbolin3@huawei.com> # message auto-generated for no-merge-commit merge: !4314 merge change_A2A3_arch into master 修改mc2目录下的arch32为arch22 Created-by: hblnb Commit-by: hblnb Merged-by: cann-robot Description: ## 描述 修改mc2目录下的arch32为arch22 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] 🐛 Bug 修复 - [ ] ✨ 新特性 - [ ] ⚡ 性能优化 - [ ] ♻️ 重构 - [ ] 🧪 测试 - [ ] 📦 构建/CI - [ ] 🔧 配置变更 - [ ] 📝 文档更新 - [ ] ⬆️ 依赖升级 - [ ] 🔒 安全修复 - [ ] 🧹 代码清理 - [ ] ❓ 其他,请描述: See merge request: cann/ops-transformer!4314 | 2 个月前 | |
bugfix: groupSize Co-authored-by: yifux<xiongyifu1@huawei.com> # message auto-generated for no-merge-commit merge: !5215 merge pr_groupsize into master bugfix: groupSize Created-by: xiongyifu Commit-by: yifux Merged-by: cann-robot Description: ## 描述 修改all_to_all_matmul和matmul_all_to_all算子的fallback,添加修饰符static ## 关联的Issue https://gitcode.com/cann/ops-transformer/issues/2406 ## 测试 线上出子包验证   rdv验证 ## 文档更新 不涉及 ## 类型标签 <!-- [x] 表示选中 --> - [x] 🐛 Bug 修复 - [ ] ✨ 新特性 - [ ] ⚡ 性能优化 - [ ] ♻️ 重构 - [ ] 🧪 测试 - [ ] 📦 构建/CI - [ ] 🔧 配置变更 - [ ] 📝 文档更新 - [ ] ⬆️ 依赖升级 - [ ] 🔒 安全修复 - [ ] 🧹 代码清理 - [ ] ❓ 其他,请描述: See merge request: cann/ops-transformer!5215 | 1 个月前 | |
修复A3默认AICPU通信引擎方式 Co-authored-by: libohao6<libohao3@huawei.com> # message auto-generated for no-merge-commit merge: !5262 merge fix_pr3730_ut into master 修复A3默认AICPU通信引擎方式 Created-by: libohao6 Commit-by: libohao6 Merged-by: cann-robot Description: ## 描述 修复A3默认AICPU通信引擎方式 #5262 ## 关联的Issue [Bug-Report|缺陷反馈]: 修复A3默认AICPU通信引擎方式 #2411 ## 测试 rdv ## 文档更新 不涉及。 ## 类型标签 <!-- [x] 表示选中 --> - [x] 🐛 Bug 修复 - [ ] ✨ 新特性 - [ ] ⚡ 性能优化 - [ ] ♻️ 重构 - [ ] 🧪 测试 - [ ] 📦 构建/CI - [ ] 🔧 配置变更 - [ ] 📝 文档更新 - [ ] ⬆️ 依赖升级 - [ ] 🔒 安全修复 - [ ] 🧹 代码清理 - [ ] ❓ 其他,请描述: See merge request: cann/ops-transformer!5262 | 1 个月前 | |
修复A3默认AICPU通信引擎方式 Co-authored-by: libohao6<libohao3@huawei.com> # message auto-generated for no-merge-commit merge: !5262 merge fix_pr3730_ut into master 修复A3默认AICPU通信引擎方式 Created-by: libohao6 Commit-by: libohao6 Merged-by: cann-robot Description: ## 描述 修复A3默认AICPU通信引擎方式 #5262 ## 关联的Issue [Bug-Report|缺陷反馈]: 修复A3默认AICPU通信引擎方式 #2411 ## 测试 rdv ## 文档更新 不涉及。 ## 类型标签 <!-- [x] 表示选中 --> - [x] 🐛 Bug 修复 - [ ] ✨ 新特性 - [ ] ⚡ 性能优化 - [ ] ♻️ 重构 - [ ] 🧪 测试 - [ ] 📦 构建/CI - [ ] 🔧 配置变更 - [ ] 📝 文档更新 - [ ] ⬆️ 依赖升级 - [ ] 🔒 安全修复 - [ ] 🧹 代码清理 - [ ] ❓ 其他,请描述: See merge request: cann/ops-transformer!5262 | 1 个月前 | |
修改mc2目录下的arch32为arch22 Co-authored-by: hblnb<huangbolin3@huawei.com> # message auto-generated for no-merge-commit merge: !4314 merge change_A2A3_arch into master 修改mc2目录下的arch32为arch22 Created-by: hblnb Commit-by: hblnb Merged-by: cann-robot Description: ## 描述 修改mc2目录下的arch32为arch22 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] 🐛 Bug 修复 - [ ] ✨ 新特性 - [ ] ⚡ 性能优化 - [ ] ♻️ 重构 - [ ] 🧪 测试 - [ ] 📦 构建/CI - [ ] 🔧 配置变更 - [ ] 📝 文档更新 - [ ] ⬆️ 依赖升级 - [ ] 🔒 安全修复 - [ ] 🧹 代码清理 - [ ] ❓ 其他,请描述: See merge request: cann/ops-transformer!4314 | 2 个月前 | |
修改mc2目录下的arch32为arch22 Co-authored-by: hblnb<huangbolin3@huawei.com> # message auto-generated for no-merge-commit merge: !4314 merge change_A2A3_arch into master 修改mc2目录下的arch32为arch22 Created-by: hblnb Commit-by: hblnb Merged-by: cann-robot Description: ## 描述 修改mc2目录下的arch32为arch22 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] 🐛 Bug 修复 - [ ] ✨ 新特性 - [ ] ⚡ 性能优化 - [ ] ♻️ 重构 - [ ] 🧪 测试 - [ ] 📦 构建/CI - [ ] 🔧 配置变更 - [ ] 📝 文档更新 - [ ] ⬆️ 依赖升级 - [ ] 🔒 安全修复 - [ ] 🧹 代码清理 - [ ] ❓ 其他,请描述: See merge request: cann/ops-transformer!4314 | 2 个月前 | |
回退D&C算子context修改 Co-authored-by: zzg_code<zengzhiguo1@huawei.com> # message auto-generated for no-merge-commit merge: !5314 merge revert-mr-5224-1778740208497-auto into master 回退D&C算子context修改 Created-by: zzg_code Commit-by: zzg_code Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] 🐛 Bug 修复 - [ ] ✨ 新特性 - [ ] ⚡ 性能优化 - [ ] ♻️ 重构 - [ ] 🧪 测试 - [ ] 📦 构建/CI - [ ] 🔧 配置变更 - [ ] 📝 文档更新 - [ ] ⬆️ 依赖升级 - [ ] 🔒 安全修复 - [ ] 🧹 代码清理 - [ ] ❓ 其他,请描述: See merge request: cann/ops-transformer!5314 | 1 个月前 | |
distributebarrier算子在A5上context结构体切换 Co-authored-by: Yuyu-Li<liyuyu6@huawei.com> # message auto-generated for no-merge-commit merge: !3730 merge hccl_context_lyy into master distributebarrier算子在A5上context结构体切换 Created-by: Yuyu-Li Commit-by: Yuyu-Li Merged-by: cann-robot Description: ## 描述 distributebarrier算子在A5上context结构体切换 # 代码检视报告 ## 基本信息 | 项目 | 内容 | |-----|-----| | Commit ID | eaa63da32ae4e3c706de387152a8b8d946c5a932 | | 提交说明 | distributebarrier算子在A5上context结构体切换 | | 检视范围 | C++安全规范 + 通用编码规范 + TOPK高频问题 | | 检视日期 | 2026-05-12 | --- ## 检视摘要 | 类别 | 问题数 | 严重级别 | |-----|-------|---------| | C++ 安全规范 | 0 | - | | C++ 通用规范 | 1 | 中 | | TOPK 高频问题 | 0 | - | | **总计** | **1** | **中危问题: 1** | --- ## 详细检视结果 ### 一、C++ 通用编码规范问题 #### 问题1: 未使用的头文件包含 [中] [规范2.3] **文件**: mc2/distribute_barrier_extend/op_host/op_tiling/distribute_barrier_extend_tiling.cpp **位置**: 行1827-1838 **风险代码**: cpp #include <dlfcn.h> #include <fcntl.h> #include <sys/types.h> #include <unistd.h> #include <cmath> #include <cstdio> #include <cstdlib> #include <queue> **假设检验过程**: | 步骤 | 分析内容 | 自信值增量 | |-----|---------|-----------| | 头文件用途识别 | dlfcn.h: 动态加载, fcntl.h: 文件控制, sys/types.h: 系统类型定义 | +30% | | 代码引用检查 | 文件中未调用 dlopen/dlclose, open/fcntl, 未使用 pid_t 等类型 | +40% | | 规范违反 | cpp-general.md 2.3: 禁止包含用不到的头文件 | +40% | | **自信值** | **110%** | **存在风险** | **问题说明**: - 文件包含多个未使用的系统头文件和标准库头文件 - 增加编译依赖,可能导致不必要的重新编译 - 实际仅使用 <string> 和 <vector> (通过间接引用) **修复建议**: 删除以下未使用的头文件: cpp // 删除以下行 #include <dlfcn.h> #include <fcntl.h> #include <sys/types.h> #include <unistd.h> #include <cmath> #include <cstdio> #include <cstdlib> #include <queue> // 保留实际使用的头文件 #include <string> // 用于 std::string #include <vector> // 可能通过其他头文件间接使用 **规范引用**: [cpp-general.md] 2.3 禁止包含用不到的头文件 --- ## 安全红线问题检视结果 ### Host侧红线问题 | 红线要求 | 检视结果 | 说明 | |---------|---------|-----| | 除法操作除零保护 | ✅ 通过 | 所有除法操作除数来自TilingData,已校验非零 | | 数组访问越界保护 | ✅ 通过 | 数组索引均有边界判断或来自TilingData | | 整数运算溢出保护 | ✅ 通过 | 关键运算有业务约束保护 | | 指针操作判空 | ✅ 通过 | 属性获取和指针操作均有判空检查 | | 变量初始化 | ✅ 通过 | 成员变量在Init函数中正确初始化 | | 资源匹配 | ✅ 通过 | Kernel侧静态分配,无需释放 | ### Kernel侧红线问题 | 红线要求 | 检视结果 | 说明 | |---------|---------|-----| | GM地址偏移用int64 | ✅ 通过 | 业务约束确保安全范围 | | 除法除零保护 | ✅ 通过 | 除数来自TilingData,符合排除规则 | | 数组索引校验 | ✅ 通过 | 索引访问有边界保护 | --- ## Kernel侧排除规则执行说明 根据 cpp-secure.md Kernel侧排除规则,以下情况在检视中自动排除: | 排除规则 | 排除原因 | 检视执行情况 | |---------|---------|-------------| | 除数来自TilingData | Tiling阶段已校验非零 | ✅ 已严格执行 | | 索引来自TilingData | Tiling阶段已校验范围 | ✅ 已严格执行 | | 循环边界内索引 | 循环条件保证范围 | ✅ 已严格执行 | --- ## TOPK高频问题检视结果 | TOPK问题 | 检视结果 | 说明 | |---------|---------|-----| | 函数返回值校验 | ✅ 通过 | 所有关键函数调用均有返回值检查 | | GetInputDesc获取Dtype | ✅ 通过 | 正确使用GetInputDesc获取数据类型 | | 属性从context获取 | ✅ 通过 | 属性正确从context获取,未通过CompileInfo传递 | | 属性类型与IR原型一致 | ✅ 通过 | int64_t与IR原型Int类型匹配 | | 外部输入校验 | ✅ 通过 | Tiling阶段有完整的输入校验 | | GM偏移用int64表示 | ✅ 通过 | 业务约束确保安全 | | 特殊值处理 | ✅ 通过 | 无特殊值计算场景 | | atomic累加清零 | ✅ 通过 | 无atomic操作 | | 通信算子核间同步 | ✅ 通过 | 有SyncAll同步 | | 宏定义变量冲突 | ✅ 通过 | 无风险宏定义 | --- ## 建议修复优先级 ### 中危问题(建议修复) **唯一待修复问题**: 删除未使用的头文件 - 文件: distribute_barrier_extend_tiling.cpp - 行: 1827-1838 - 操作: 删除8个未使用的头文件包含 - 影响: 减少编译依赖,提升代码整洁度 --- ## 总结 本次检视严格执行假设检验方法论和Kernel侧排除规则: **检视统计**: - 代码文件: 32个文件变更 - 检视重点: Tiling代码 + Kernel代码 - 发现问题: 1个中危问题(未使用头文件) - 安全红线: 全部通过 ✅ - TOPK问题: 全部通过 ✅ **整体评价**: 代码质量优秀,安全防护完善。Host侧和Kernel侧均符合安全红线要求。唯一发现的问题为代码整洁性问题(未使用头文件),不影响功能和安全。 **建议**: 删除 distribute_barrier_extend_tiling.cpp 中的未使用头文件,保持代码整洁。 --- ## 附录: 检视方法论 本次检视采用假设检验驱动方法论: | 阶段 | 执行情况 | |-----|---------| | 阶段1: 参数校验 | ✅ 已校验必需参数完整性 | | 阶段2: 规范学习 | ✅ 已完整阅读3份规范文档 | | 阶段3: 代码段识别 | ✅ 已划分代码段进行分析 | | 阶段4: 假设建立 | ✅ 对每个代码段建立H0/H1假设 | | 阶段5: 证据收集 | ✅ 按规范条款系统性收集证据 | | 阶段6: 有效性校验 | ✅ 已排除误报(应用排除规则) | | 阶段7: 决策判断 | ✅ 自信值超过60%才判定为风险 | | 阶段8: 报告生成 | ✅ 已生成完整检视报告 | **排除规则应用统计**: - Kernel侧除法排除: 3处 - Kernel侧索引排除: 5处 - 业务约束保护认定: 2处 --- *报告生成时间: 2026-05-12* *检视工具: ascendc-code-review skill* *规范版本: cpp-secure.md (47条), cpp-general.md (46条), ascendc-topk.md (13条)* ## 关联的Issue https://gitcode.com/cann/ops-transformer/issues/2300 ## 测试 二级冒烟,泛化测试 ## 文档更新 更新了README.md文档 ## 类型标签 <!-- [x] 表示选中 --> - [ ] 🐛 Bug 修复 - [x] ✨ 新特性 - [ ] ⚡ 性能优化 - [ ] ♻️ 重构 - [ ] 🧪 测试 - [ ] 📦 构建/CI - [ ] 🔧 配置变更 - [ ] 📝 文档更新 - [ ] ⬆️ 依赖升级 - [ ] 🔒 安全修复 - [ ] 🧹 代码清理 - [ ] ❓ 其他,请描述: See merge request: cann/ops-transformer!3730 | 1 个月前 | |
修复mc2算子编kernel的ut编译出错的问题 Co-authored-by: hblnb<huangbolin3@huawei.com> # message auto-generated for no-merge-commit merge: !5373 merge fix_issue_2445 into master 修复mc2算子编kernel的ut编译出错的问题 Created-by: hblnb Commit-by: hblnb Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] 🐛 Bug 修复 - [ ] ✨ 新特性 - [ ] ⚡ 性能优化 - [ ] ♻️ 重构 - [ ] 🧪 测试 - [ ] 📦 构建/CI - [ ] 🔧 配置变更 - [ ] 📝 文档更新 - [ ] ⬆️ 依赖升级 - [ ] 🔒 安全修复 - [ ] 🧹 代码清理 - [ ] ❓ 其他,请描述: See merge request: cann/ops-transformer!5373 | 1 个月前 | |
修改mc2目录下的arch32为arch22 Co-authored-by: hblnb<huangbolin3@huawei.com> # message auto-generated for no-merge-commit merge: !4314 merge change_A2A3_arch into master 修改mc2目录下的arch32为arch22 Created-by: hblnb Commit-by: hblnb Merged-by: cann-robot Description: ## 描述 修改mc2目录下的arch32为arch22 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] 🐛 Bug 修复 - [ ] ✨ 新特性 - [ ] ⚡ 性能优化 - [ ] ♻️ 重构 - [ ] 🧪 测试 - [ ] 📦 构建/CI - [ ] 🔧 配置变更 - [ ] 📝 文档更新 - [ ] ⬆️ 依赖升级 - [ ] 🔒 安全修复 - [ ] 🧹 代码清理 - [ ] ❓ 其他,请描述: See merge request: cann/ops-transformer!4314 | 2 个月前 | |
revert:对mc2的tilingKey进行宏编译处理 Co-authored-by: hblnb<huangbolin3@huawei.com> # message auto-generated for no-merge-commit merge: !5025 merge revert-mr-4332-1778221340412-auto into master revert:对mc2的tilingKey进行宏编译处理 Created-by: hblnb Commit-by: hblnb Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] 🐛 Bug 修复 - [ ] ✨ 新特性 - [ ] ⚡ 性能优化 - [ ] ♻️ 重构 - [ ] 🧪 测试 - [ ] 📦 构建/CI - [ ] 🔧 配置变更 - [ ] 📝 文档更新 - [ ] ⬆️ 依赖升级 - [ ] 🔒 安全修复 - [ ] 🧹 代码清理 - [ ] ❓ 其他,请描述: See merge request: cann/ops-transformer!5025 | 1 个月前 | |
gmmalltoallv算子AICPU适配 Co-authored-by: huangshuai<huangshuai59@huawei.com> # message auto-generated for no-merge-commit merge: !4970 merge AICPU_dev into master gmmalltoallv算子AICPU适配 Created-by: huangshuai59 Commit-by: huangshuai Merged-by: cann-robot Description: ## 描述 gmmalltoallv算子AICPU适配 ## 关联的Issue https://gitcode.com/cann/ops-transformer/issues/2410 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] 🐛 Bug 修复 - [ ] ✨ 新特性 - [ ] ⚡ 性能优化 - [ ] ♻️ 重构 - [ ] 🧪 测试 - [ ] 📦 构建/CI - [ ] 🔧 配置变更 - [ ] 📝 文档更新 - [ ] ⬆️ 依赖升级 - [ ] 🔒 安全修复 - [ ] 🧹 代码清理 - [ ] ❓ 其他,请描述: # PR #4970 代码检视报告 **检视对象**: https://gitcode.com/cann/ops-transformer/pull/4970 **检视时间**: 2026-05-12 **检视模式**: PR检视(重点关注红线和TOPK问题) **检视范围**: Host侧代码(op_api、op_graph、op_host目录) --- ## 一、变更概览 本次PR实现**通信模式可配置化**,允许通过环境变量 ENV_MC2_COMM_MODE_AICPU 在A5平台选择AICPU或CCU通信模式。 **变更文件统计**: - op_api层:2个文件 - op_graph层:2个文件 - op_host层:4个文件 - op_kernel层:4个文件(本次重点检视Host侧) - 测试文件:1个 --- ## 二、红线问题检视结果 ### ✅ 红线1: Host侧除法/求余除零保护 **结论**: PASS **依据**: 本次变更未新增除法或求余运算,无需除零保护。 --- ### ✅ 红线2: Host侧数组访问越界保护 **结论**: PASS **依据**: 本次变更未新增数组访问逻辑,无需越界保护。 --- ### ✅ 红线3: Host侧数值运算溢出保护 **结论**: PASS **依据**: - 新增的 commMode 变量为 uint8_t 类型,取值范围有限(0-255) - 未涉及大数值运算,不存在溢出风险 --- ### ✅ 红线4: Host侧指针操作安全性 **结论**: PASS(附带建议) **分析**: 涉及指针初始化的代码: cpp const char* serverType = nullptr; const char* streamType = nullptr; if (commMode == Mc2Comm::COMM_MODE_AICPU) { streamType = "kfc_stream"; serverType = "aicpu kfc server"; } else if (isA5) { streamType = "ccu_stream"; serverType = "ccu server"; } else { streamType = "kfc_stream"; serverType = "aicpu kfc server"; } return Mc2GenTaskOpsUtils::CommonKFCMc2CalcParamFunc(context, serverType, streamType); **安全性验证**: 1. if-else分支覆盖所有情况(commMode-AICPU、A5-CCU、其他),不存在未赋值的路径 2. 赋值为字符串常量,非动态内存,无需释放 3. serverType/streamType 调用时已确保非nullptr **建议**: 虽然逻辑安全,但初始化为nullptr可能引起疑虑。可考虑: cpp const char* serverType = "aicpu kfc server"; // 默认值 const char* streamType = "kfc_stream"; --- ### ✅ 红线5: 变量初始化检查 **结论**: PASS **依据**: - 所有新增变量均有初始化:uint8_t commMode = Mc2Comm::GetCommModeFromEnv() - 指针变量显式初始化为nullptr,符合规范 --- ### ✅ 纠线6: 资源申请释放匹配 **结论**: PASS **依据**: 本次变更未新增资源申请(malloc/new等),无需匹配检查。 --- ## 三、TOPK问题检视结果 ### ✅ TOPK-1: 函数返回值校验 **结论**: PASS **分析**: Mc2Comm::GetCommModeFromEnv() 返回 uint8_t 类型,非指针类型,无需判空检查。 **代码示例**: cpp uint8_t commMode = Mc2Comm::GetCommModeFromEnv(); if (commMode == Mc2Comm::COMM_MODE_AICPU) { // 直接比较,无指针风险 ... } **建议**: 需确认 mc2_comm_utils.h 中该函数实现有默认返回值,避免环境变量未设置时返回未定义值。 --- ### ✅ TOPK-2: 使用GetInputDesc获取Dtype **结论**: 未涉及 **依据**: 本次变更未涉及Shape/Dtype获取逻辑。 --- ### ✅ TOPK-4: 属性从context获取 **结论**: 未涉及 **依据**: 本次变更未新增属性获取逻辑。 --- ### ✅ TOPK-8: GM内存偏移用int64 **结论**: PASS **依据**: Kernel侧变更未新增GM内存偏移计算,现有代码已符合规范。 --- ### ✅ TOPK-10: 可整数计算不转浮点 **结论**: PASS **依据**: 本次变更未新增数值计算,未涉及浮点转换。 --- ### ✅ TOPK-12: 宏定义变量命名冲突 **结论**: PASS **依据**: 本次变更未新增宏定义。 --- ## 四、其他发现 ### 1. LOG API使用规范性检查 ✅ **分析**: 所有新增日志调用符合规范: - 参数数量与占位符匹配 - 类型匹配正确(commMode 为 uint8_t,使用 %u) - 无空指针传入风险 **示例**: cpp OP_LOGD(context->GetNodeName(), "GmmAlltoAllv tiling: commMode=%u", commMode); --- ### 2. 条件编译改为运行时配置 ⚠️(需关注) **变更**: 原Kernel侧使用 #if defined(__NPU_ARCH__) 条件编译选择HCCL类型,现改为模板参数。 **影响**: - 提升灵活性,支持运行时切换 - 需确保 TilingKey 计算正确反映 commMode **代码验证**: cpp template<int commMode = CCU_COMM_MODE> struct HcclTypeSelector { using type = Hccl<HcclServerType::HCCL_SERVER_TYPE_CCU>; }; template<> struct HcclTypeSelector<AICPU_COMM_MODE> { using type = Hccl<HcclServerType::HCCL_SERVER_TYPE_AICPU>; }; **建议**: 模板特化实现正确,确保编译期选择符合预期。 --- ## 五、检视总结 | 检视维度 | 结果 | 风险等级 | |---------|------|---------| | **红线问题** | 6项全部PASS | 无高风险 | | **TOPK问题** | 重点项全部PASS | 无高风险 | | **LOG API规范** | 符合规范 | 无风险 | | **架构变更** | 合理,需关注测试 | 中等 | --- ## 六、建议事项 ### 1. 测试覆盖(必做) - 验证环境变量 ENV_MC2_COMM_MODE_AICPU 未设置时的默认行为 - 验证A5平台CCU模式、AICPU模式的正确性 - 验证非A5平台的行为一致性 ### 2. 文档更新(建议) - 补充环境变量配置说明 - 说明通信模式选择的影响范围 ### 3. 代码优化(可选) - 考虑为 serverType/streamType 设置明确的默认值,避免nullptr初始化疑虑 --- ## 七、检视结论 **最终判定**: **PASS WITH NOTES** **依据**: - 红线和TOPK问题全部通过,无阻塞性缺陷 - 代码逻辑清晰,符合安全规范 - 唯一需关注:新增运行时配置逻辑需充分测试验证 **建议后续**: 1. 补充单元测试覆盖通信模式切换 2. 更新测试用例 expectTilingKey 已正确调整(137→1),需验证其他场景 3. 提交前确认环境变量解析函数有默认返回值 --- **检视人**: CANNBot Agent **检视日期**: 2026-05-12 See merge request: cann/ops-transformer!4970 | 1 个月前 | |
revert:对mc2的tilingKey进行宏编译处理 Co-authored-by: hblnb<huangbolin3@huawei.com> # message auto-generated for no-merge-commit merge: !5025 merge revert-mr-4332-1778221340412-auto into master revert:对mc2的tilingKey进行宏编译处理 Created-by: hblnb Commit-by: hblnb Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] 🐛 Bug 修复 - [ ] ✨ 新特性 - [ ] ⚡ 性能优化 - [ ] ♻️ 重构 - [ ] 🧪 测试 - [ ] 📦 构建/CI - [ ] 🔧 配置变更 - [ ] 📝 文档更新 - [ ] ⬆️ 依赖升级 - [ ] 🔒 安全修复 - [ ] 🧹 代码清理 - [ ] ❓ 其他,请描述: See merge request: cann/ops-transformer!5025 | 1 个月前 | |
add ut case Co-authored-by: lixiawei<lixiawei2@h-partners.com> # message auto-generated for no-merge-commit merge: !5220 merge add_case_0511 into master add ut case Created-by: lixiawei Commit-by: lixiawei Merged-by: cann-robot Description: ## 描述 增加ut用例,提升UT覆盖率到90% ## 关联的Issue https://gitcode.com/cann/ops-transformer/issues/2442 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] 🐛 Bug 修复 - [ ] ✨ 新特性 - [ ] ⚡ 性能优化 - [ ] ♻️ 重构 - [ ] 🧪 测试 - [ ] 📦 构建/CI - [ ] 🔧 配置变更 - [ ] 📝 文档更新 - [ ] ⬆️ 依赖升级 - [ ] 🔒 安全修复 - [ ] 🧹 代码清理 - [ ] ❓ 其他,请描述: **AI代码检视报告** 检视概述 项目: 提交 内容: 7986712f - add ut case ──────────────────────────────────────── 项目: 检视范围 内容: 24 个文件,+1930/-51 行 ──────────────────────────────────────── 项目: 检视类别 内容: C++ 安全编码规范(cpp-secure.md)、C++ 通用编码规范(cpp-general.md)、TOPK 问题清单(ascendc-topk.md) ──────────────────────────────────────── 项目: 代码类型 内容: UT 测试代码(op_api 测试 + op_host tiling 测试) ──────────────────────────────────────── 项目: 适用规范 内容: [适用: All] 条款 变更概览 本次提交新增了大量 UT 用例: - op_api 测试:为 matmul_all_reduce 系列算子增加 nullptr 检测和执行路径测试 - op_host tiling 测试:新增 moe_distribute_combine 的 arch22/arch35 tiling 用例 - CSV 数据行:为 matmul_all_reduce / matmul_reduce_scatter_v2 新增参数化测试数据 - 修复:命名空间拼写修正 MowDistributeCombine → MoeDistributeCombine,变量名修正 groupList_type → groupListType,双分号修复 检视结论:未发现安全风险 See merge request: cann/ops-transformer!5220 | 1 个月前 | |
revert:对mc2的tilingKey进行宏编译处理 Co-authored-by: hblnb<huangbolin3@huawei.com> # message auto-generated for no-merge-commit merge: !5025 merge revert-mr-4332-1778221340412-auto into master revert:对mc2的tilingKey进行宏编译处理 Created-by: hblnb Commit-by: hblnb Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] 🐛 Bug 修复 - [ ] ✨ 新特性 - [ ] ⚡ 性能优化 - [ ] ♻️ 重构 - [ ] 🧪 测试 - [ ] 📦 构建/CI - [ ] 🔧 配置变更 - [ ] 📝 文档更新 - [ ] ⬆️ 依赖升级 - [ ] 🔒 安全修复 - [ ] 🧹 代码清理 - [ ] ❓ 其他,请描述: See merge request: cann/ops-transformer!5025 | 1 个月前 | |
增加MMAA 910B OP_API UT Co-authored-by: SimpleBright_Man<tangpanrui1@huawei.com> # message auto-generated for no-merge-commit merge: !5296 merge addMMAAUT into master 增加MMAA 910B OP_API UT Created-by: SimpleBright_Man Commit-by: SimpleBright_Man 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!5296 | 1 个月前 | |
[修复] MRS算子日志双空格问题 - 移除OP_LOGD消息字符串中的多余前导空格 Co-authored-by: libohao6<libohao3@huawei.com> # message auto-generated for no-merge-commit merge: !5045 merge fix_mmrs_bias_issue into master [修复] MRS算子日志双空格问题 - 移除OP_LOGD消息字符串中的多余前导空格 Created-by: libohao6 Commit-by: libohao6 Merged-by: cann-robot Description: ## 描述 [修复] MRS算子日志双空格问题 - 移除OP_LOGD消息字符串中的多余前导空格 ## 关联的Issue [Bug-Report|缺陷反馈]: MRS算子日志双空格问题 #2291 ## 测试 不涉及逻辑改动。 ## 文档更新 不涉及。 ## 类型标签 <!-- [x] 表示选中 --> - [x] 🐛 Bug 修复 - [ ] ✨ 新特性 - [ ] ⚡ 性能优化 - [ ] ♻️ 重构 - [ ] 🧪 测试 - [ ] 📦 构建/CI - [ ] 🔧 配置变更 - [ ] 📝 文档更新 - [ ] ⬆️ 依赖升级 - [ ] 🔒 安全修复 - [ ] 🧹 代码清理 - [ ] ❓ 其他,请描述: # 代码检视报告 **项目名称**:MRS算子日志格式修复检视报告 **检视模块**: - mc2/common/utils/mc2_log.cpp - mc2/matmul_reduce_scatter/op_host/op_tiling/matmul_reduce_scatter_tiling.cpp - mc2/matmul_reduce_scatter_v2/op_host/op_tiling/arch22/matmul_reduce_scatter_v2_aiv_mode_tiling.cpp - mc2/matmul_reduce_scatter_v2/op_host/op_tiling/arch35/matmul_reduce_scatter_v2_tiling.cpp - mc2/matmul_reduce_scatter_v2/op_host/op_tiling/arch35/quant_bmm_reduce_scatter_tiling.cpp - mc2/matmul_reduce_scatter_v2/op_host/op_tiling/matmul_reduce_scatter_tiling_base.cpp **检视人**:Sisyphus **检视日期**:2026-05-09 ## 🔍 检视概览 | 统计项 | 数值 | | ---- | ---- | | 检视文件数 | 6 个 | | 变更行数 | 314行删除 + 315行新增 | | 发现问题总数 | 0 个 | | 严重级(CRITICAL)问题 | 0 个 | | 中等级(MEDIUM)问题 | 0 个 | | 轻微级(LOW)问题 | 1 个(预存问题,非本次修改引入) | | 误报数量 | 0 个 | **核心结论**:本次修改为纯格式修复,移除OP_LOGD格式字符串中的多余前导空格,消除日志输出中的双空格问题。修改范围明确,不涉及任何逻辑变更,不引入新的安全风险。**通过检视,无阻塞问题。** ## ✅ 合规确认 ### 1. 修改类型分析 | 分类 | 说明 | | ---- | ---- | | 修改类型 | 纯格式修复(日志格式字符串空格移除) | | 修改模式 | OP_LOGD(opName, " xxx") → OP_LOGD(opName, "xxx") | | 影响范围 | 仅影响日志输出格式,不影响任何计算逻辑 | | 风险等级 | 低(仅日志可见性变更) | ### 2. 各文件变更统计 | 文件 | 变更行数 | 说明 | | ---- | -------- | ---- | | mc2/common/utils/mc2_log.cpp | 169行 | 公共Tiling日志打印函数 | | matmul_reduce_scatter_tiling.cpp(V1) | 67行 | V1 MRS tiling日志 | | matmul_reduce_scatter_v2_aiv_mode_tiling.cpp | 23行 | V2 AIV模式tiling日志 | | matmul_reduce_scatter_v2_tiling.cpp(arch35) | 9行 | V2 arch35 tiling日志 | | quant_bmm_reduce_scatter_tiling.cpp | 33行 | 量化BMM MRS tiling日志 | | matmul_reduce_scatter_tiling_base.cpp(V2) | 2行 | V2 MRS tiling基类日志 | ### 3. 格式字符串安全性检查 对所有OP_LOGD调用进行逐一核对: | 检查项 | 结果 | 说明 | | ------ | ---- | ---- | | 格式说明符与参数类型匹配 | ✅ 通过 | %d→int、%u→unsigned、%lu→unsigned long、%s→字符串,均正确匹配 | | 格式字符串完整性 | ✅ 通过 | 移除的仅为前导空格字符,未破坏任何格式说明符 | | 参数数量与格式说明符一致 | ✅ 通过 | 未修改任何参数传递,仅修改格式字符串前缀 | | 新增格式化漏洞 | ✅ 无风险 | 无用户输入拼接到格式字符串,均为固定的tiling字段名 | ### 4. C++ 通用编码规范合规性(条款对照) | 规范编号 | 规范名称 | 适用性 | 合规性 | | -------- | -------- | ------ | ------ | | 1.1 | 外部数据合法性检查 | 不涉及 | N/A(无外部数据输入变更) | | 4.2 | 禁止使用魔鬼数字/字符串 | ✅ 合规 | 修改未引入魔鬼数字/字符串 | | 11.1 | 字符串存储确保有'\\0'结束符 | ✅ 合规 | 格式字符串为编译期常量,自动以'\\0'结尾 | | 1.3 | 删除无效冗余代码 | ✅ 合规 | 移除多余空格属于代码清理 | ### 5. 日志输出影响分析 **修改前日志示例**: [opName] tiling.usedCoreNum 32 [opName] tiling.M 1024 (注意opName]后的双空格) **修改后日志示例**: [opName] tiling.usedCoreNum 32 [opName] tiling.M 1024 (正常单空格分隔) **OP_LOGD宏展开分析**:OP_LOGD实现中,opName与格式字符串之间已有分隔符(通常为空格或]),格式字符串内的前导空格导致日志输出出现双空格[opName] message,移除后为标准单空格[opName] message。 ## ⚠️ 预存问题(非本次修改引入) ### 预存问题ID:PREEXIST-001 | 严重级别:LOW(代码风格) **代码路径**:matmul_reduce_scatter_tiling.cpp:152(修改后行号) **问题描述**:该行使用TAB缩进而其他行使用空格缩进,存在缩进不一致。 **代码片段**: cpp OP_LOGD("MatmulReduceScatter", "rcsTiling.storageGather %d", rcsTiling.storageGather); **说明**:此问题为原代码预存问题,本次修改仅移除了前导空格,未改变缩进字符。不影响功能,仅影响代码风格一致性。建议在后续专项代码风格修复中统一处理。 ## 📊 检视结论 | 结论 | 说明 | | ---- | ---- | | 安全性 | **通过** - 无安全风险引入 | | 功能正确性 | **通过** - 仅修改日志格式字符串,不影响计算逻辑 | | 格式字符串安全 | **通过** - 所有格式说明符与参数类型正确匹配 | | 编码规范合规 | **通过** - 符合C++通用编码规范要求 | | 预存问题 | 1个LOW级代码风格问题(缩进不一致),非本次修改引入 | **检视结果:✅ 通过,无阻塞问题。** ## 报告生成时间 2026-05-09 09:44:00 ## 报告状态 已完成检视,通过 See merge request: cann/ops-transformer!5045 | 1 个月前 | |
add ut case Co-authored-by: lixiawei<lixiawei2@h-partners.com> # message auto-generated for no-merge-commit merge: !5220 merge add_case_0511 into master add ut case Created-by: lixiawei Commit-by: lixiawei Merged-by: cann-robot Description: ## 描述 增加ut用例,提升UT覆盖率到90% ## 关联的Issue https://gitcode.com/cann/ops-transformer/issues/2442 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] 🐛 Bug 修复 - [ ] ✨ 新特性 - [ ] ⚡ 性能优化 - [ ] ♻️ 重构 - [ ] 🧪 测试 - [ ] 📦 构建/CI - [ ] 🔧 配置变更 - [ ] 📝 文档更新 - [ ] ⬆️ 依赖升级 - [ ] 🔒 安全修复 - [ ] 🧹 代码清理 - [ ] ❓ 其他,请描述: **AI代码检视报告** 检视概述 项目: 提交 内容: 7986712f - add ut case ──────────────────────────────────────── 项目: 检视范围 内容: 24 个文件,+1930/-51 行 ──────────────────────────────────────── 项目: 检视类别 内容: C++ 安全编码规范(cpp-secure.md)、C++ 通用编码规范(cpp-general.md)、TOPK 问题清单(ascendc-topk.md) ──────────────────────────────────────── 项目: 代码类型 内容: UT 测试代码(op_api 测试 + op_host tiling 测试) ──────────────────────────────────────── 项目: 适用规范 内容: [适用: All] 条款 变更概览 本次提交新增了大量 UT 用例: - op_api 测试:为 matmul_all_reduce 系列算子增加 nullptr 检测和执行路径测试 - op_host tiling 测试:新增 moe_distribute_combine 的 arch22/arch35 tiling 用例 - CSV 数据行:为 matmul_all_reduce / matmul_reduce_scatter_v2 新增参数化测试数据 - 修复:命名空间拼写修正 MowDistributeCombine → MoeDistributeCombine,变量名修正 groupList_type → groupListType,双分号修复 检视结论:未发现安全风险 See merge request: cann/ops-transformer!5220 | 1 个月前 | |
megamoe host a4w4 adapt Co-authored-by: weixin_49300047<lijianhua56@huawei.com> # message auto-generated for no-merge-commit merge: !5007 merge megamoe_a4w4 into master megamoe host a4w4 adapt Created-by: weixin_49300047 Commit-by: LiJianHua;weixin_49300047 Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 1. 在 aclnn_common.h 中补齐 FP4 / FP8 dtype 桥接与 HCCL 公共封装,作为 A4W4 适配的基础设施。 2. 在 mega_moe_tiling.cpp 中将参数命名语义化(N → hiddenDim)并对齐 A4W4 路径的类型签名。 3. 在 torch 适配层 mega_moe.cpp 中修复 weight1 真实 dtype 透传,保证 tiling 走入正确的 A4W4 分支。 4. 在 moe_distribute_dispatch_v2_tiling.cpp 中补齐 scalesDim1 维度校验,将非法 shape 拦截在 host 侧。 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> https://gitcode.com/cann/ops-transformer/issues/2453 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] 🐛 Bug 修复 - [x] ✨ 新特性 - [ ] ⚡ 性能优化 - [ ] ♻️ 重构 - [ ] 🧪 测试 - [ ] 📦 构建/CI - [ ] 🔧 配置变更 - [ ] 📝 文档更新 - [ ] ⬆️ 依赖升级 - [ ] 🔒 安全修复 - [ ] 🧹 代码清理 - [ ] ❓ 其他,请描述: See merge request: cann/ops-transformer!5007 | 1 个月前 | |
add ut case Co-authored-by: lixiawei<lixiawei2@h-partners.com> # message auto-generated for no-merge-commit merge: !5220 merge add_case_0511 into master add ut case Created-by: lixiawei Commit-by: lixiawei Merged-by: cann-robot Description: ## 描述 增加ut用例,提升UT覆盖率到90% ## 关联的Issue https://gitcode.com/cann/ops-transformer/issues/2442 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] 🐛 Bug 修复 - [ ] ✨ 新特性 - [ ] ⚡ 性能优化 - [ ] ♻️ 重构 - [ ] 🧪 测试 - [ ] 📦 构建/CI - [ ] 🔧 配置变更 - [ ] 📝 文档更新 - [ ] ⬆️ 依赖升级 - [ ] 🔒 安全修复 - [ ] 🧹 代码清理 - [ ] ❓ 其他,请描述: **AI代码检视报告** 检视概述 项目: 提交 内容: 7986712f - add ut case ──────────────────────────────────────── 项目: 检视范围 内容: 24 个文件,+1930/-51 行 ──────────────────────────────────────── 项目: 检视类别 内容: C++ 安全编码规范(cpp-secure.md)、C++ 通用编码规范(cpp-general.md)、TOPK 问题清单(ascendc-topk.md) ──────────────────────────────────────── 项目: 代码类型 内容: UT 测试代码(op_api 测试 + op_host tiling 测试) ──────────────────────────────────────── 项目: 适用规范 内容: [适用: All] 条款 变更概览 本次提交新增了大量 UT 用例: - op_api 测试:为 matmul_all_reduce 系列算子增加 nullptr 检测和执行路径测试 - op_host tiling 测试:新增 moe_distribute_combine 的 arch22/arch35 tiling 用例 - CSV 数据行:为 matmul_all_reduce / matmul_reduce_scatter_v2 新增参数化测试数据 - 修复:命名空间拼写修正 MowDistributeCombine → MoeDistributeCombine,变量名修正 groupList_type → groupListType,双分号修复 检视结论:未发现安全风险 See merge request: cann/ops-transformer!5220 | 1 个月前 | |
订正D&C算子CMake依赖 Co-authored-by: gitcode_lijd<lijiandong20@huawei.com> # message auto-generated for no-merge-commit merge: !5159 merge fix into master 订正D&C算子CMake依赖 Created-by: gitcode_lijd Commit-by: gitcode_lijd Merged-by: cann-robot Description: https://gitcode.com/cann/ops-transformer/issues/2404 # 代码检视报告 - 5159.diff **检视日期**: 2026-05-13 **检视类别**: 构建配置检视 **检视范围**: CMakeLists.txt 文件修改 **适用规范**: 无适用安全编码规范(构建配置文件不涉及数值/内存/指针等代码安全风险) --- ## 变更内容汇总 | 文件 | 原依赖 | 新增依赖 | |------|--------|---------| | moe_distribute_combine/op_host/CMakeLists.txt | v2版本依赖 | +v3版本依赖 | | moe_distribute_combine_add_rms_norm/op_host/CMakeLists.txt | v2版本依赖 | +v3版本依赖 | | moe_distribute_combine_v2/op_host/CMakeLists.txt | v2版本依赖 | +v3版本依赖 | | moe_distribute_dispatch/op_host/CMakeLists.txt | v2版本依赖 | +v3版本依赖 | | moe_distribute_dispatch_setup/op_host/CMakeLists.txt | v2版本依赖 | +v3版本依赖 | --- ## 假设检验分析 **假设 H0**: 构建依赖变更存在安全风险 **证据收集**: - ✅ 仅修改 set(..._depends ...) 的依赖列表 - ✅ 无数值运算、内存操作、指针解引用代码 - ✅ 不涉及编译选项变更(如 ASLR、栈保护等) - ✅ 功能已验证(用户确认) **自信值**: 0% → **PASS** --- ## 检视结论 **✅ 无安全风险** 本次变更仅为构建依赖关系调整,添加 v3 版本算子依赖。不涉及 C++ 代码实现,无需安全编码规范检视。 --- ## 建议 1. 确认依赖模块 mc2/moe_distribute_dispatch_v3 和 mc2/moe_distribute_combine_v3 是否已存在 2. 确认构建顺序是否正确(依赖模块需先构建) See merge request: cann/ops-transformer!5159 | 1 个月前 | |
common目录整改 Co-authored-by: hello_simida<wangyi206@huawei.com> # message auto-generated for no-merge-commit merge: !4870 merge feature/common_dir_fix_v2 into master common目录整改 Created-by: hello_simida Commit-by: hello_simida Merged-by: cann-robot Description: ## 描述 本次修改对 common/ 目录进行整理,分为两个阶段: - **Phase 1**: 将 common/include/kernel/ 重命名为 common/include/op_kernel/ - **Phase 2**: 将 common/include/tiling_base/ 和 common/src/tiling_base/ 合并到 common/include/op_host/ 和 common/src/op_host/ 相应的 CMake 配置和所有 #include 路径引用已同步更新。 影响范围: - 351 个文件修改(include 路径更新) - 8 个文件重命名(tiling_base → op_host) - 2 个 CMakeLists.txt 修改 + 多个 tests 目录 CMakeLists.txt 更新 ## 关联的Issue Closes #2246 ## 测试 - 编译验证通过:bash build.sh --pkg --soc=ascend910b --ops=all_gather_matmul_v2 -j16 - 编译产物成功生成 .run 包 ## 文档更新 无 ## 类型标签 - [x] ♻️ 重构 - [ ] 🐛 Bug 修复 - [ ] ✨ 新特性 - [ ] ⚡ 性能优化 - [ ] 🧪 测试 - [ ] 📦 构建/CI - [ ] 🔧 配置变更 - [ ] 📝 文档更新 - [ ] ⬆️ 依赖升级 - [ ] 🔒 安全修复 - [ ] 🧹 代码清理 - [ ] ❓ 其他,请描述: See merge request: cann/ops-transformer!4870 | 2 个月前 | |
common目录整改 Co-authored-by: hello_simida<wangyi206@huawei.com> # message auto-generated for no-merge-commit merge: !4870 merge feature/common_dir_fix_v2 into master common目录整改 Created-by: hello_simida Commit-by: hello_simida Merged-by: cann-robot Description: ## 描述 本次修改对 common/ 目录进行整理,分为两个阶段: - **Phase 1**: 将 common/include/kernel/ 重命名为 common/include/op_kernel/ - **Phase 2**: 将 common/include/tiling_base/ 和 common/src/tiling_base/ 合并到 common/include/op_host/ 和 common/src/op_host/ 相应的 CMake 配置和所有 #include 路径引用已同步更新。 影响范围: - 351 个文件修改(include 路径更新) - 8 个文件重命名(tiling_base → op_host) - 2 个 CMakeLists.txt 修改 + 多个 tests 目录 CMakeLists.txt 更新 ## 关联的Issue Closes #2246 ## 测试 - 编译验证通过:bash build.sh --pkg --soc=ascend910b --ops=all_gather_matmul_v2 -j16 - 编译产物成功生成 .run 包 ## 文档更新 无 ## 类型标签 - [x] ♻️ 重构 - [ ] 🐛 Bug 修复 - [ ] ✨ 新特性 - [ ] ⚡ 性能优化 - [ ] 🧪 测试 - [ ] 📦 构建/CI - [ ] 🔧 配置变更 - [ ] 📝 文档更新 - [ ] ⬆️ 依赖升级 - [ ] 🔒 安全修复 - [ ] 🧹 代码清理 - [ ] ❓ 其他,请描述: See merge request: cann/ops-transformer!4870 | 2 个月前 | |
能跑通单机8卡的fullmesh | 1 个月前 | |
debug | 1 个月前 | |
订正D&C算子CMake依赖 Co-authored-by: gitcode_lijd<lijiandong20@huawei.com> # message auto-generated for no-merge-commit merge: !5159 merge fix into master 订正D&C算子CMake依赖 Created-by: gitcode_lijd Commit-by: gitcode_lijd Merged-by: cann-robot Description: https://gitcode.com/cann/ops-transformer/issues/2404 # 代码检视报告 - 5159.diff **检视日期**: 2026-05-13 **检视类别**: 构建配置检视 **检视范围**: CMakeLists.txt 文件修改 **适用规范**: 无适用安全编码规范(构建配置文件不涉及数值/内存/指针等代码安全风险) --- ## 变更内容汇总 | 文件 | 原依赖 | 新增依赖 | |------|--------|---------| | moe_distribute_combine/op_host/CMakeLists.txt | v2版本依赖 | +v3版本依赖 | | moe_distribute_combine_add_rms_norm/op_host/CMakeLists.txt | v2版本依赖 | +v3版本依赖 | | moe_distribute_combine_v2/op_host/CMakeLists.txt | v2版本依赖 | +v3版本依赖 | | moe_distribute_dispatch/op_host/CMakeLists.txt | v2版本依赖 | +v3版本依赖 | | moe_distribute_dispatch_setup/op_host/CMakeLists.txt | v2版本依赖 | +v3版本依赖 | --- ## 假设检验分析 **假设 H0**: 构建依赖变更存在安全风险 **证据收集**: - ✅ 仅修改 set(..._depends ...) 的依赖列表 - ✅ 无数值运算、内存操作、指针解引用代码 - ✅ 不涉及编译选项变更(如 ASLR、栈保护等) - ✅ 功能已验证(用户确认) **自信值**: 0% → **PASS** --- ## 检视结论 **✅ 无安全风险** 本次变更仅为构建依赖关系调整,添加 v3 版本算子依赖。不涉及 C++ 代码实现,无需安全编码规范检视。 --- ## 建议 1. 确认依赖模块 mc2/moe_distribute_dispatch_v3 和 mc2/moe_distribute_combine_v3 是否已存在 2. 确认构建顺序是否正确(依赖模块需先构建) See merge request: cann/ops-transformer!5159 | 1 个月前 | |
订正D&C算子CMake依赖 Co-authored-by: gitcode_lijd<lijiandong20@huawei.com> # message auto-generated for no-merge-commit merge: !5159 merge fix into master 订正D&C算子CMake依赖 Created-by: gitcode_lijd Commit-by: gitcode_lijd Merged-by: cann-robot Description: https://gitcode.com/cann/ops-transformer/issues/2404 # 代码检视报告 - 5159.diff **检视日期**: 2026-05-13 **检视类别**: 构建配置检视 **检视范围**: CMakeLists.txt 文件修改 **适用规范**: 无适用安全编码规范(构建配置文件不涉及数值/内存/指针等代码安全风险) --- ## 变更内容汇总 | 文件 | 原依赖 | 新增依赖 | |------|--------|---------| | moe_distribute_combine/op_host/CMakeLists.txt | v2版本依赖 | +v3版本依赖 | | moe_distribute_combine_add_rms_norm/op_host/CMakeLists.txt | v2版本依赖 | +v3版本依赖 | | moe_distribute_combine_v2/op_host/CMakeLists.txt | v2版本依赖 | +v3版本依赖 | | moe_distribute_dispatch/op_host/CMakeLists.txt | v2版本依赖 | +v3版本依赖 | | moe_distribute_dispatch_setup/op_host/CMakeLists.txt | v2版本依赖 | +v3版本依赖 | --- ## 假设检验分析 **假设 H0**: 构建依赖变更存在安全风险 **证据收集**: - ✅ 仅修改 set(..._depends ...) 的依赖列表 - ✅ 无数值运算、内存操作、指针解引用代码 - ✅ 不涉及编译选项变更(如 ASLR、栈保护等) - ✅ 功能已验证(用户确认) **自信值**: 0% → **PASS** --- ## 检视结论 **✅ 无安全风险** 本次变更仅为构建依赖关系调整,添加 v3 版本算子依赖。不涉及 C++ 代码实现,无需安全编码规范检视。 --- ## 建议 1. 确认依赖模块 mc2/moe_distribute_dispatch_v3 和 mc2/moe_distribute_combine_v3 是否已存在 2. 确认构建顺序是否正确(依赖模块需先构建) See merge request: cann/ops-transformer!5159 | 1 个月前 | |
workspace alloc fix Co-authored-by: tangjn<tangjianing@huawei.com> # message auto-generated for no-merge-commit merge: !5283 merge master into master workspace alloc fix Created-by: tangjn Commit-by: tangjn Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> workspace空间大小申请 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [X] 🐛 Bug 修复 - [ ] ✨ 新特性 - [ ] ⚡ 性能优化 - [ ] ♻️ 重构 - [ ] 🧪 测试 - [ ] 📦 构建/CI - [ ] 🔧 配置变更 - [ ] 📝 文档更新 - [ ] ⬆️ 依赖升级 - [ ] 🔒 安全修复 - [ ] 🧹 代码清理 - [ ] ❓ 其他,请描述: See merge request: cann/ops-transformer!5283 | 1 个月前 | |
提升moe_distribute_combine_v2,moe_update_expert等算子ut覆盖率 Co-authored-by: chenyifan<chenyifan66@h-partners.com> # message auto-generated for no-merge-commit merge: !5221 merge mdd_mdc_ut into master 提升moe_distribute_combine_v2,moe_update_expert等算子ut覆盖率 Created-by: mutex_lock Commit-by: chenyifan Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> - 提升moe_distribute_combine_v2,moe_update_expert等算子ut覆盖率 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> https://gitcode.com/cann/ops-transformer/issues/2341 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] 🐛 Bug 修复 - [ ] ✨ 新特性 - [ ] ⚡ 性能优化 - [ ] ♻️ 重构 - [x] 🧪 测试 - [ ] 📦 构建/CI - [ ] 🔧 配置变更 - [ ] 📝 文档更新 - [ ] ⬆️ 依赖升级 - [ ] 🔒 安全修复 - [ ] 🧹 代码清理 - [ ] ❓ 其他,请描述: See merge request: cann/ops-transformer!5221 | 1 个月前 | |
修复mc2算子编kernel的ut编译出错的问题 Co-authored-by: hblnb<huangbolin3@huawei.com> # message auto-generated for no-merge-commit merge: !5373 merge fix_issue_2445 into master 修复mc2算子编kernel的ut编译出错的问题 Created-by: hblnb Commit-by: hblnb Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] 🐛 Bug 修复 - [ ] ✨ 新特性 - [ ] ⚡ 性能优化 - [ ] ♻️ 重构 - [ ] 🧪 测试 - [ ] 📦 构建/CI - [ ] 🔧 配置变更 - [ ] 📝 文档更新 - [ ] ⬆️ 依赖升级 - [ ] 🔒 安全修复 - [ ] 🧹 代码清理 - [ ] ❓ 其他,请描述: See merge request: cann/ops-transformer!5373 | 1 个月前 | |
提升moe_distribute_combine_v2,moe_update_expert等算子ut覆盖率 Co-authored-by: chenyifan<chenyifan66@h-partners.com> # message auto-generated for no-merge-commit merge: !5221 merge mdd_mdc_ut into master 提升moe_distribute_combine_v2,moe_update_expert等算子ut覆盖率 Created-by: mutex_lock Commit-by: chenyifan Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> - 提升moe_distribute_combine_v2,moe_update_expert等算子ut覆盖率 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> https://gitcode.com/cann/ops-transformer/issues/2341 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] 🐛 Bug 修复 - [ ] ✨ 新特性 - [ ] ⚡ 性能优化 - [ ] ♻️ 重构 - [x] 🧪 测试 - [ ] 📦 构建/CI - [ ] 🔧 配置变更 - [ ] 📝 文档更新 - [ ] ⬆️ 依赖升级 - [ ] 🔒 安全修复 - [ ] 🧹 代码清理 - [ ] ❓ 其他,请描述: See merge request: cann/ops-transformer!5221 | 1 个月前 | |
quant_all_reduce/quant_reduce_scatter 动态分块性能优化 Co-authored-by: mmh<miaominghao@huawei.com> # message auto-generated for no-merge-commit merge: !5147 merge perf_write_status_leader_v2 into master quant_all_reduce/quant_reduce_scatter 动态分块性能优化 Created-by: andingfangt Commit-by: mmh Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> https://gitcode.com/cann/ops-transformer/issues/2391 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] 🐛 Bug 修复 - [ ] ✨ 新特性 - [ ] ⚡ 性能优化 - [ ] ♻️ 重构 - [ ] 🧪 测试 - [ ] 📦 构建/CI - [ ] 🔧 配置变更 - [ ] 📝 文档更新 - [ ] ⬆️ 依赖升级 - [ ] 🔒 安全修复 - [ ] 🧹 代码清理 - [ ] ❓ 其他,请描述: # 代码检视报告 **检视对象**:QAR/QRS 算子代码优化整改(commit 2610fdae7+) **检视范围**:9 个文件(4 Kernel + 2 Tiling + 1 Utils + 1 MTE Comm + 1 UT) **检视规范**:C++ 安全编码规范、C++ 代码风格规范、Ascend C API 最佳实践、TOPK 问题清单 --- ## 检视总结 | 类别 | 问题数 | |------|--------| | 安全问题 | 0 | | API 规范违反 | 0 | | 风格问题 | 0 | | 潜在关注 | 0 | --- ## 逐项检视结果 ### 1. 数值安全(cpp-secure 2.1/2.2/2.3) **代码段**:FracDiv(remainingSpace, baseDynamic, 32U, 3U) **H0**:计算安全,无溢出/回绕/除零 - **2.1/2.2 溢出检查**:remainingSpace * 32 最坏约 8MB(UB=256KB),远小于 uint64_t 上限;baseDynamic * 32 + 3 最坏约 770,均安全 - **2.3 除零检查**:分母 baseDynamic * num + den,baseDynamic 最小为 sizeof 表达式(≥ 12),num ≥ 4,den ≥ 1,永不为零 **自信值**:0%(工具验证:GCC 数值测试均无溢出) → **PASS** --- ### 2. API 使用安全(ascendc-api) **AllocTensor/FreeTensor 配对(API-6)**:两个 kernel 文件各 2:2 精确配对 **PASS** **Cast RoundMode(API-9)**:全部使用 CAST_NONE,均为向上 cast(fp4/int8→fp32),无需舍入 **PASS** **DataCopy blockLen(API-10)**:所有 blockLen = scaleNum * sizeof(T) 均为字节单位,配合 DataCopyPad 使用,正确 **PASS** --- ### 3. 结构体兼容性(cpp-secure 10.4/10.5) **TilingInfo 新增字段**:xPerBlock(uint32_t)和 alignBlock(uint32_t)均添加在结构体末尾,符合"对外结构体新增字段必须在最后"规范 **PASS** **UT 同步更新**:expectTilingData 已更新,测试 108/108 PASS **PASS** --- ### 4. 未使用变量/死代码(cpp-secure 3.1) - alignedXSize_ 已删除 **PASS** - xSliceSize_ 已改为局部变量 **PASS** - VectorCompute 新增 scaleNumsPerBlock_{0},SetScaleNums() 在 vecComp_.InitBuffer() 前调用 **PASS** --- ### 5. 风格规范(cpp-style) - 行宽 120 字符:ReadDataBlockReduceSum 声明已换行修复 **PASS** - 成员变量命名:scaleInQue_ 统一加下划线后缀 **PASS** - if 大括号:全部满足 **PASS** --- ### 6. TOPK 问题清单 - **TOPK-8(GM 偏移用 int64)**:xOffset_/scaleOffset_ 等偏移变量均为 uint64_t **PASS** - **TOPK-12(宏临时变量)**:FracDiv 为内联函数,非宏 **PASS** --- ## 潜在关注 无。上一版报告的 scaleNumsPerBlcok_ 拼写已修复为 scaleNumsPerBlock_。 --- ## 最终判定 **无安全问题、无 API 规范违反、无风格问题。108 个 UT 全部通过,精度 100% PASS,性能无回退。代码质量达标。** See merge request: cann/ops-transformer!5147 | 1 个月前 | |
gmmalltoallv算子AICPU适配 Co-authored-by: huangshuai<huangshuai59@huawei.com> # message auto-generated for no-merge-commit merge: !4970 merge AICPU_dev into master gmmalltoallv算子AICPU适配 Created-by: huangshuai59 Commit-by: huangshuai Merged-by: cann-robot Description: ## 描述 gmmalltoallv算子AICPU适配 ## 关联的Issue https://gitcode.com/cann/ops-transformer/issues/2410 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] 🐛 Bug 修复 - [ ] ✨ 新特性 - [ ] ⚡ 性能优化 - [ ] ♻️ 重构 - [ ] 🧪 测试 - [ ] 📦 构建/CI - [ ] 🔧 配置变更 - [ ] 📝 文档更新 - [ ] ⬆️ 依赖升级 - [ ] 🔒 安全修复 - [ ] 🧹 代码清理 - [ ] ❓ 其他,请描述: # PR #4970 代码检视报告 **检视对象**: https://gitcode.com/cann/ops-transformer/pull/4970 **检视时间**: 2026-05-12 **检视模式**: PR检视(重点关注红线和TOPK问题) **检视范围**: Host侧代码(op_api、op_graph、op_host目录) --- ## 一、变更概览 本次PR实现**通信模式可配置化**,允许通过环境变量 ENV_MC2_COMM_MODE_AICPU 在A5平台选择AICPU或CCU通信模式。 **变更文件统计**: - op_api层:2个文件 - op_graph层:2个文件 - op_host层:4个文件 - op_kernel层:4个文件(本次重点检视Host侧) - 测试文件:1个 --- ## 二、红线问题检视结果 ### ✅ 红线1: Host侧除法/求余除零保护 **结论**: PASS **依据**: 本次变更未新增除法或求余运算,无需除零保护。 --- ### ✅ 红线2: Host侧数组访问越界保护 **结论**: PASS **依据**: 本次变更未新增数组访问逻辑,无需越界保护。 --- ### ✅ 红线3: Host侧数值运算溢出保护 **结论**: PASS **依据**: - 新增的 commMode 变量为 uint8_t 类型,取值范围有限(0-255) - 未涉及大数值运算,不存在溢出风险 --- ### ✅ 红线4: Host侧指针操作安全性 **结论**: PASS(附带建议) **分析**: 涉及指针初始化的代码: cpp const char* serverType = nullptr; const char* streamType = nullptr; if (commMode == Mc2Comm::COMM_MODE_AICPU) { streamType = "kfc_stream"; serverType = "aicpu kfc server"; } else if (isA5) { streamType = "ccu_stream"; serverType = "ccu server"; } else { streamType = "kfc_stream"; serverType = "aicpu kfc server"; } return Mc2GenTaskOpsUtils::CommonKFCMc2CalcParamFunc(context, serverType, streamType); **安全性验证**: 1. if-else分支覆盖所有情况(commMode-AICPU、A5-CCU、其他),不存在未赋值的路径 2. 赋值为字符串常量,非动态内存,无需释放 3. serverType/streamType 调用时已确保非nullptr **建议**: 虽然逻辑安全,但初始化为nullptr可能引起疑虑。可考虑: cpp const char* serverType = "aicpu kfc server"; // 默认值 const char* streamType = "kfc_stream"; --- ### ✅ 红线5: 变量初始化检查 **结论**: PASS **依据**: - 所有新增变量均有初始化:uint8_t commMode = Mc2Comm::GetCommModeFromEnv() - 指针变量显式初始化为nullptr,符合规范 --- ### ✅ 纠线6: 资源申请释放匹配 **结论**: PASS **依据**: 本次变更未新增资源申请(malloc/new等),无需匹配检查。 --- ## 三、TOPK问题检视结果 ### ✅ TOPK-1: 函数返回值校验 **结论**: PASS **分析**: Mc2Comm::GetCommModeFromEnv() 返回 uint8_t 类型,非指针类型,无需判空检查。 **代码示例**: cpp uint8_t commMode = Mc2Comm::GetCommModeFromEnv(); if (commMode == Mc2Comm::COMM_MODE_AICPU) { // 直接比较,无指针风险 ... } **建议**: 需确认 mc2_comm_utils.h 中该函数实现有默认返回值,避免环境变量未设置时返回未定义值。 --- ### ✅ TOPK-2: 使用GetInputDesc获取Dtype **结论**: 未涉及 **依据**: 本次变更未涉及Shape/Dtype获取逻辑。 --- ### ✅ TOPK-4: 属性从context获取 **结论**: 未涉及 **依据**: 本次变更未新增属性获取逻辑。 --- ### ✅ TOPK-8: GM内存偏移用int64 **结论**: PASS **依据**: Kernel侧变更未新增GM内存偏移计算,现有代码已符合规范。 --- ### ✅ TOPK-10: 可整数计算不转浮点 **结论**: PASS **依据**: 本次变更未新增数值计算,未涉及浮点转换。 --- ### ✅ TOPK-12: 宏定义变量命名冲突 **结论**: PASS **依据**: 本次变更未新增宏定义。 --- ## 四、其他发现 ### 1. LOG API使用规范性检查 ✅ **分析**: 所有新增日志调用符合规范: - 参数数量与占位符匹配 - 类型匹配正确(commMode 为 uint8_t,使用 %u) - 无空指针传入风险 **示例**: cpp OP_LOGD(context->GetNodeName(), "GmmAlltoAllv tiling: commMode=%u", commMode); --- ### 2. 条件编译改为运行时配置 ⚠️(需关注) **变更**: 原Kernel侧使用 #if defined(__NPU_ARCH__) 条件编译选择HCCL类型,现改为模板参数。 **影响**: - 提升灵活性,支持运行时切换 - 需确保 TilingKey 计算正确反映 commMode **代码验证**: cpp template<int commMode = CCU_COMM_MODE> struct HcclTypeSelector { using type = Hccl<HcclServerType::HCCL_SERVER_TYPE_CCU>; }; template<> struct HcclTypeSelector<AICPU_COMM_MODE> { using type = Hccl<HcclServerType::HCCL_SERVER_TYPE_AICPU>; }; **建议**: 模板特化实现正确,确保编译期选择符合预期。 --- ## 五、检视总结 | 检视维度 | 结果 | 风险等级 | |---------|------|---------| | **红线问题** | 6项全部PASS | 无高风险 | | **TOPK问题** | 重点项全部PASS | 无高风险 | | **LOG API规范** | 符合规范 | 无风险 | | **架构变更** | 合理,需关注测试 | 中等 | --- ## 六、建议事项 ### 1. 测试覆盖(必做) - 验证环境变量 ENV_MC2_COMM_MODE_AICPU 未设置时的默认行为 - 验证A5平台CCU模式、AICPU模式的正确性 - 验证非A5平台的行为一致性 ### 2. 文档更新(建议) - 补充环境变量配置说明 - 说明通信模式选择的影响范围 ### 3. 代码优化(可选) - 考虑为 serverType/streamType 设置明确的默认值,避免nullptr初始化疑虑 --- ## 七、检视结论 **最终判定**: **PASS WITH NOTES** **依据**: - 红线和TOPK问题全部通过,无阻塞性缺陷 - 代码逻辑清晰,符合安全规范 - 唯一需关注:新增运行时配置逻辑需充分测试验证 **建议后续**: 1. 补充单元测试覆盖通信模式切换 2. 更新测试用例 expectTilingKey 已正确调整(137→1),需验证其他场景 3. 提交前确认环境变量解析函数有默认返回值 --- **检视人**: CANNBot Agent **检视日期**: 2026-05-12 See merge request: cann/ops-transformer!4970 | 1 个月前 | |
quant_all_reduce/quant_reduce_scatter 动态分块性能优化 Co-authored-by: mmh<miaominghao@huawei.com> # message auto-generated for no-merge-commit merge: !5147 merge perf_write_status_leader_v2 into master quant_all_reduce/quant_reduce_scatter 动态分块性能优化 Created-by: andingfangt Commit-by: mmh Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> https://gitcode.com/cann/ops-transformer/issues/2391 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] 🐛 Bug 修复 - [ ] ✨ 新特性 - [ ] ⚡ 性能优化 - [ ] ♻️ 重构 - [ ] 🧪 测试 - [ ] 📦 构建/CI - [ ] 🔧 配置变更 - [ ] 📝 文档更新 - [ ] ⬆️ 依赖升级 - [ ] 🔒 安全修复 - [ ] 🧹 代码清理 - [ ] ❓ 其他,请描述: # 代码检视报告 **检视对象**:QAR/QRS 算子代码优化整改(commit 2610fdae7+) **检视范围**:9 个文件(4 Kernel + 2 Tiling + 1 Utils + 1 MTE Comm + 1 UT) **检视规范**:C++ 安全编码规范、C++ 代码风格规范、Ascend C API 最佳实践、TOPK 问题清单 --- ## 检视总结 | 类别 | 问题数 | |------|--------| | 安全问题 | 0 | | API 规范违反 | 0 | | 风格问题 | 0 | | 潜在关注 | 0 | --- ## 逐项检视结果 ### 1. 数值安全(cpp-secure 2.1/2.2/2.3) **代码段**:FracDiv(remainingSpace, baseDynamic, 32U, 3U) **H0**:计算安全,无溢出/回绕/除零 - **2.1/2.2 溢出检查**:remainingSpace * 32 最坏约 8MB(UB=256KB),远小于 uint64_t 上限;baseDynamic * 32 + 3 最坏约 770,均安全 - **2.3 除零检查**:分母 baseDynamic * num + den,baseDynamic 最小为 sizeof 表达式(≥ 12),num ≥ 4,den ≥ 1,永不为零 **自信值**:0%(工具验证:GCC 数值测试均无溢出) → **PASS** --- ### 2. API 使用安全(ascendc-api) **AllocTensor/FreeTensor 配对(API-6)**:两个 kernel 文件各 2:2 精确配对 **PASS** **Cast RoundMode(API-9)**:全部使用 CAST_NONE,均为向上 cast(fp4/int8→fp32),无需舍入 **PASS** **DataCopy blockLen(API-10)**:所有 blockLen = scaleNum * sizeof(T) 均为字节单位,配合 DataCopyPad 使用,正确 **PASS** --- ### 3. 结构体兼容性(cpp-secure 10.4/10.5) **TilingInfo 新增字段**:xPerBlock(uint32_t)和 alignBlock(uint32_t)均添加在结构体末尾,符合"对外结构体新增字段必须在最后"规范 **PASS** **UT 同步更新**:expectTilingData 已更新,测试 108/108 PASS **PASS** --- ### 4. 未使用变量/死代码(cpp-secure 3.1) - alignedXSize_ 已删除 **PASS** - xSliceSize_ 已改为局部变量 **PASS** - VectorCompute 新增 scaleNumsPerBlock_{0},SetScaleNums() 在 vecComp_.InitBuffer() 前调用 **PASS** --- ### 5. 风格规范(cpp-style) - 行宽 120 字符:ReadDataBlockReduceSum 声明已换行修复 **PASS** - 成员变量命名:scaleInQue_ 统一加下划线后缀 **PASS** - if 大括号:全部满足 **PASS** --- ### 6. TOPK 问题清单 - **TOPK-8(GM 偏移用 int64)**:xOffset_/scaleOffset_ 等偏移变量均为 uint64_t **PASS** - **TOPK-12(宏临时变量)**:FracDiv 为内联函数,非宏 **PASS** --- ## 潜在关注 无。上一版报告的 scaleNumsPerBlcok_ 拼写已修复为 scaleNumsPerBlock_。 --- ## 最终判定 **无安全问题、无 API 规范违反、无风格问题。108 个 UT 全部通过,精度 100% PASS,性能无回退。代码质量达标。** See merge request: cann/ops-transformer!5147 | 1 个月前 | |
书写错误修改 Co-authored-by: lu-zhirui<luzhirui2@h-partners.com> # message auto-generated for no-merge-commit merge: !4987 merge moe一站式维护工具打屏错别字修复 into master 书写错误修改 Created-by: lu-zhirui Commit-by: lu-zhirui Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] 🐛 Bug 修复 - [ ] ✨ 新特性 - [ ] ⚡ 性能优化 - [ ] ♻️ 重构 - [ ] 🧪 测试 - [ ] 📦 构建/CI - [ ] 🔧 配置变更 - [ ] 📝 文档更新 - [ ] ⬆️ 依赖升级 - [ ] 🔒 安全修复 - [ ] 🧹 代码清理 - [ ] ❓ 其他,请描述: See merge request: cann/ops-transformer!4987 | 2 个月前 | |
mc2新特性开发 Co-authored-by: xutianze<xutianze2@huawei.com> # message auto-generated for no-merge-commit merge: !500 merge feature_mc2 into master mc2新特性开发 Created-by: xutianze Commit-by: xutianze Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-transformer!500 | 6 个月前 |
| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
| 1 个月前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 2 个月前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 2 个月前 | ||
| 2 个月前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 2 个月前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 2 个月前 | ||
| 2 个月前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 2 个月前 | ||
| 6 个月前 |