文件最后提交记录最后更新时间
Arch编码更新 Co-authored-by: hwx805026<hanming9@h-partners.com> # message auto-generated for no-merge-commit merge: !1120 merge master into master Arch编码更新 Created-by: jerry_ming Commit-by: hwx805026 Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-transformer!11204 个月前
grouped_mat_mul_allto_allv算子性能优化 Co-authored-by: huangshuai<huangshuai59@huawei.com> # message auto-generated for no-merge-commit merge: !5704 merge prof_1 into master grouped_mat_mul_allto_allv算子性能优化 Created-by: huangshuai59 Commit-by: huangshuai Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> ## 关联的Issue https://gitcode.com/cann/ops-transformer/issues/2707 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] 🐛 Bug 修复 - [ ] ✨ 新特性 - [ ] ⚡ 性能优化 - [ ] ♻️ 重构 - [ ] 🧪 测试 - [ ] 📦 构建/CI - [ ] 🔧 配置变更 - [ ] 📝 文档更新 - [ ] ⬆️ 依赖升级 - [ ] 🔒 安全修复 - [ ] 🧹 代码清理 - [ ] ❓ 其他,请描述: # 代码检视报告(更新版) ## 检视概览 - 代码文件:PR #5704 (https://gitcode.com/cann/ops-transformer/pull/5704) - 代码侧别:混合(Tiling + Kernel) - 检视文档:cpp-secure + cpp-general + ascendc-api + ascendc-perf + ascendc-topk + mc2-specific - 总条例数:24(适用条例,过滤后,含重叠合并) - 检视时间:2026-05-26(代码更新后重新检视) - 与上次检视对比:代码已更新,上次发现的 5 个 HIGH 问题中 **4 个已修复** ## 检视统计 | 状态 | 条例数 | 占比 | |-----|--------|------| | PASS(已修复) | 4 | 16.7% | | PASS(持续通过) | 12 | 50.0% | | FAIL(新发现) | 0 | 0% | | SUSPICIOUS(需关注) | 2 | 8.3% | | MED(残余未修复) | 2 | 8.3% | | LOW(信息性) | 4 | 16.7% | ## 上次检视问题修复状态 | # | 上次问题 | 条例 | 上次置信度 | 修复状态 | 修复行号 | |---|---------|------|---------|---------|------| | 1 | BsK == 0 未拦截 | SEC-4.1+TOPK-7 | HIGH | ✅ **已修复** | quant_tiling_common.cpp:637 | | 2 | send/recv 逐元素上界缺失 | SEC-4.1+TOPK-7 | HIGH | ✅ **已修复** | quant_tiling_common.cpp:617-624 | | 3 | GetInputDesc 6处未判空 | SEC-3.5+TOPK-1 | HIGH | ✅ **已修复** | gmm_allto_allv_tiling.cpp:92-94,103-105,118-119,161-166,187-188 | | 4 | L0C CeilAlign 反弹 | TIL-2 | HIGH | ✅ **已修复** | gmm_qbmm_tiling.cpp:954-956 (CeilAlign→FloorAlign) | | 5 | transMmWeight 日志缺值 | MC2-07 | MED | ✅ **已修复** | gmm_allto_allv_tiling.cpp:232-235 | ## 修复验证详情 ### [SEC-4.1+TOPK-7] BsK == 0 校验修复 - **修复行号**: quant_grouped_mat_mul_allto_allv_tiling_common.cpp:637 - **修复内容**: (localParams_.BsK >= MAX_BSK_VALUE)(localParams_.BsK == 0) || (localParams_.BsK >= MAX_BSK_VALUE) - **验证**: ✅ 修复正确,与 H1/N1 检查模式保持一致(H1 == 0 || H1 >= MAX_H1_VALUE) ### [SEC-4.1+TOPK-7] send/recv 逐元素上界修复 - **修复行号**: quant_grouped_mat_mul_allto_allv_tiling_common.cpp:617-624 - **修复内容**: 仅 sendCounts[i] < 0sendCounts[i] < 0 || sendCounts[i] > static_cast<int64_t>(localParams_.A);同理 recvCounts 增加 > BsK 上界 - **验证**: ✅ 修复正确,与同类算子(allto_allv_grouped_mat_mul、allto_allv_quant_grouped_mat_mul)保持一致,且数学合理性已证明(总量+非负约束下逐元素上界是冗余但合理的防御性编程) ### [SEC-3.5+TOPK-1] GetInputDesc 判空修复 - **修复行号**: gmm_allto_allv_tiling.cpp:92-94, 103-105, 118-119, 161-166, 187-188 - **修复内容**: 所有 GetInputDesc/GetOptionalInputDesc/GetOutputDesc 调用先赋值到局部变量,再判空后解引用 - **验证**: ✅ 6处全部修复,无遗漏。模式为 auto desc = context_->GetXxxDesc(index); OP_TILING_CHECK(desc == nullptr, ...); localParams_.dtype = desc->GetDataType(); ### [TIL-2] FloorAlign 替代 CeilAlign 修复 - **修复行号**: gmm_qbmm_tiling.cpp:954-956 - **修复内容**: CeilAlign(basicTiling_.baseN, CUBE_BLOCK)FloorAlign(basicTiling_.baseN, CUBE_BLOCK) - **验证**: ✅ FloorAlign 向下对齐,确保 baseN ≤ maxBaseN,不再超过 L0C 限制 ### [MC2-07] transMmWeight 日志补值修复 - **修复行号**: gmm_allto_allv_tiling.cpp:232-235 - **修复内容**: "transMmWeight should not be true when mmX is null!""transMmWeight should not be true when mmX is null! transMmWeight=%d, hasSharedMm=%d.", *transMmWeightPtr, localParams_.hasSharedMm) - **验证**: ✅ 日志包含参数名和实际值,符合 MC2-07 要求 ## 需关注(MED 置信度 — 残余未修复) ### [MC2-19] send/recv 逐卡 per-rank 数据量校验缺失 - **问题描述**: 老代码 A3 架构验证每卡 ∑ recvCounts[j] * H∑ sendCounts[j] * H 的合理性,新代码无此校验。总量一致性已覆盖全局,但单卡数据量合理性(如 UB 容量是否足够)未校验。 - **影响**: A3 架构特有校验(A5 不执行),总量校验已覆盖全局一致性。属于增强型校验而非安全底线。 - **置信度**: MED (60-80%) - **备注**: 新代码已有 sendCounts[i] > ArecvCounts[i] > BsK 的逐元素上界,在总量+非负+逐元素上界三重约束下,per-card H-multiply sum 校验的数学必要性已降低 ### [MC2-18] HCCL InitV2/Finalize 核类型不匹配 - **问题描述**: HcclA2avOp.Init()hccl_.InitV2()hccl_.SetCcTilingV2() 在所有核上调用(无 AIC/AIV 过滤),但 HcclA2avOp.End()hccl_.Finalize() 仅在非 AIC 核上调用。HCCL 文档要求"Finalize 在 AIC 或 AIV 核上调用必须与对应 Prepare 接口的调用核保持一致"。 - **代码位置**: hccl_a2av_op.h:48-65 (Init) + 行 274-280 (End) - **影响**: 此代码不在 diff 变更范围内,属于预存设计模式。旧代码也存在此模式。需与 HCCL 框架团队确认是否为已知例外。 - **置信度**: MED (65%) ## 通过条例(持续通过 — 与上次检视一致) SEC-2.1 有符号整数运算不溢出 SEC-2.2 无符号整数运算不回绕 SEC-2.3 除法/余数运算除零保护(qbmm: DATA_SIZE_L0C=4 constexpr,baseM 上游保证非零) SEC-3.3 数组索引校验 TOPK-2 使用GetInputDesc获取Dtype,context获取Shape TOPK-5+MC2-08 属性获取类型需与ir原型一致 MC2-01 核间同步必要性(GmmA2avScheduler 循环内 compute→SyncAll<false>→hccl.Launch,同步完整) MC2-03 SyncAll 同步生效(所有核 SyncAll 总次数一致) MC2-04 全局操作一致性(无 rankId 分支导致参数差异) MC2-10 量化模式校验完整性(gqmm DEFAULT bug fix 正确) MC2-11 量化精度保护(无 Cast 在 diff 茦围围内) MC2-19 AlltoAllV 跨 rank 参数一致性(总量+逐元素约束下跨 rank 一致性通过) API-6 AllocTensor/FreeTensor 必须配对使用(委托模板框架管理) PERF-2 禁止写死硬件参数(新代码无硬编码,旧硬编码已删除) SEC-1.2 保证内存安全(引用绑定生命周期安全) SEC-3.1 禁止使用未初始化的变量(所有变量已初始化) GEN-1.1 外部数据合法性检查(通过 — BsK==0 已在基类修复) MC2-14 Tiling 校验与结构规范(通过 — BsK==0 修复、send/recv 上界修复、FloorAlign 修复) --- ## 被检视代码 > 本次检视的完整 diff 来自 PR #5704(更新版) **PR diff 文件路径**: ./operators/.pr_diff/5704_v2.diff **完整源码路径**: ./operators/.pr_repo/5704/ **代码概要路径**: ./operators/pr-5704/code_summary.md **diff 行数**:2704 行 See merge request: cann/ops-transformer!57046 天前
grouped_mat_mul_allto_allv算子性能优化 Co-authored-by: huangshuai<huangshuai59@huawei.com> # message auto-generated for no-merge-commit merge: !5704 merge prof_1 into master grouped_mat_mul_allto_allv算子性能优化 Created-by: huangshuai59 Commit-by: huangshuai Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> ## 关联的Issue https://gitcode.com/cann/ops-transformer/issues/2707 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] 🐛 Bug 修复 - [ ] ✨ 新特性 - [ ] ⚡ 性能优化 - [ ] ♻️ 重构 - [ ] 🧪 测试 - [ ] 📦 构建/CI - [ ] 🔧 配置变更 - [ ] 📝 文档更新 - [ ] ⬆️ 依赖升级 - [ ] 🔒 安全修复 - [ ] 🧹 代码清理 - [ ] ❓ 其他,请描述: # 代码检视报告(更新版) ## 检视概览 - 代码文件:PR #5704 (https://gitcode.com/cann/ops-transformer/pull/5704) - 代码侧别:混合(Tiling + Kernel) - 检视文档:cpp-secure + cpp-general + ascendc-api + ascendc-perf + ascendc-topk + mc2-specific - 总条例数:24(适用条例,过滤后,含重叠合并) - 检视时间:2026-05-26(代码更新后重新检视) - 与上次检视对比:代码已更新,上次发现的 5 个 HIGH 问题中 **4 个已修复** ## 检视统计 | 状态 | 条例数 | 占比 | |-----|--------|------| | PASS(已修复) | 4 | 16.7% | | PASS(持续通过) | 12 | 50.0% | | FAIL(新发现) | 0 | 0% | | SUSPICIOUS(需关注) | 2 | 8.3% | | MED(残余未修复) | 2 | 8.3% | | LOW(信息性) | 4 | 16.7% | ## 上次检视问题修复状态 | # | 上次问题 | 条例 | 上次置信度 | 修复状态 | 修复行号 | |---|---------|------|---------|---------|------| | 1 | BsK == 0 未拦截 | SEC-4.1+TOPK-7 | HIGH | ✅ **已修复** | quant_tiling_common.cpp:637 | | 2 | send/recv 逐元素上界缺失 | SEC-4.1+TOPK-7 | HIGH | ✅ **已修复** | quant_tiling_common.cpp:617-624 | | 3 | GetInputDesc 6处未判空 | SEC-3.5+TOPK-1 | HIGH | ✅ **已修复** | gmm_allto_allv_tiling.cpp:92-94,103-105,118-119,161-166,187-188 | | 4 | L0C CeilAlign 反弹 | TIL-2 | HIGH | ✅ **已修复** | gmm_qbmm_tiling.cpp:954-956 (CeilAlign→FloorAlign) | | 5 | transMmWeight 日志缺值 | MC2-07 | MED | ✅ **已修复** | gmm_allto_allv_tiling.cpp:232-235 | ## 修复验证详情 ### [SEC-4.1+TOPK-7] BsK == 0 校验修复 - **修复行号**: quant_grouped_mat_mul_allto_allv_tiling_common.cpp:637 - **修复内容**: (localParams_.BsK >= MAX_BSK_VALUE)(localParams_.BsK == 0) || (localParams_.BsK >= MAX_BSK_VALUE) - **验证**: ✅ 修复正确,与 H1/N1 检查模式保持一致(H1 == 0 || H1 >= MAX_H1_VALUE) ### [SEC-4.1+TOPK-7] send/recv 逐元素上界修复 - **修复行号**: quant_grouped_mat_mul_allto_allv_tiling_common.cpp:617-624 - **修复内容**: 仅 sendCounts[i] < 0sendCounts[i] < 0 || sendCounts[i] > static_cast<int64_t>(localParams_.A);同理 recvCounts 增加 > BsK 上界 - **验证**: ✅ 修复正确,与同类算子(allto_allv_grouped_mat_mul、allto_allv_quant_grouped_mat_mul)保持一致,且数学合理性已证明(总量+非负约束下逐元素上界是冗余但合理的防御性编程) ### [SEC-3.5+TOPK-1] GetInputDesc 判空修复 - **修复行号**: gmm_allto_allv_tiling.cpp:92-94, 103-105, 118-119, 161-166, 187-188 - **修复内容**: 所有 GetInputDesc/GetOptionalInputDesc/GetOutputDesc 调用先赋值到局部变量,再判空后解引用 - **验证**: ✅ 6处全部修复,无遗漏。模式为 auto desc = context_->GetXxxDesc(index); OP_TILING_CHECK(desc == nullptr, ...); localParams_.dtype = desc->GetDataType(); ### [TIL-2] FloorAlign 替代 CeilAlign 修复 - **修复行号**: gmm_qbmm_tiling.cpp:954-956 - **修复内容**: CeilAlign(basicTiling_.baseN, CUBE_BLOCK)FloorAlign(basicTiling_.baseN, CUBE_BLOCK) - **验证**: ✅ FloorAlign 向下对齐,确保 baseN ≤ maxBaseN,不再超过 L0C 限制 ### [MC2-07] transMmWeight 日志补值修复 - **修复行号**: gmm_allto_allv_tiling.cpp:232-235 - **修复内容**: "transMmWeight should not be true when mmX is null!""transMmWeight should not be true when mmX is null! transMmWeight=%d, hasSharedMm=%d.", *transMmWeightPtr, localParams_.hasSharedMm) - **验证**: ✅ 日志包含参数名和实际值,符合 MC2-07 要求 ## 需关注(MED 置信度 — 残余未修复) ### [MC2-19] send/recv 逐卡 per-rank 数据量校验缺失 - **问题描述**: 老代码 A3 架构验证每卡 ∑ recvCounts[j] * H∑ sendCounts[j] * H 的合理性,新代码无此校验。总量一致性已覆盖全局,但单卡数据量合理性(如 UB 容量是否足够)未校验。 - **影响**: A3 架构特有校验(A5 不执行),总量校验已覆盖全局一致性。属于增强型校验而非安全底线。 - **置信度**: MED (60-80%) - **备注**: 新代码已有 sendCounts[i] > ArecvCounts[i] > BsK 的逐元素上界,在总量+非负+逐元素上界三重约束下,per-card H-multiply sum 校验的数学必要性已降低 ### [MC2-18] HCCL InitV2/Finalize 核类型不匹配 - **问题描述**: HcclA2avOp.Init()hccl_.InitV2()hccl_.SetCcTilingV2() 在所有核上调用(无 AIC/AIV 过滤),但 HcclA2avOp.End()hccl_.Finalize() 仅在非 AIC 核上调用。HCCL 文档要求"Finalize 在 AIC 或 AIV 核上调用必须与对应 Prepare 接口的调用核保持一致"。 - **代码位置**: hccl_a2av_op.h:48-65 (Init) + 行 274-280 (End) - **影响**: 此代码不在 diff 变更范围内,属于预存设计模式。旧代码也存在此模式。需与 HCCL 框架团队确认是否为已知例外。 - **置信度**: MED (65%) ## 通过条例(持续通过 — 与上次检视一致) SEC-2.1 有符号整数运算不溢出 SEC-2.2 无符号整数运算不回绕 SEC-2.3 除法/余数运算除零保护(qbmm: DATA_SIZE_L0C=4 constexpr,baseM 上游保证非零) SEC-3.3 数组索引校验 TOPK-2 使用GetInputDesc获取Dtype,context获取Shape TOPK-5+MC2-08 属性获取类型需与ir原型一致 MC2-01 核间同步必要性(GmmA2avScheduler 循环内 compute→SyncAll<false>→hccl.Launch,同步完整) MC2-03 SyncAll 同步生效(所有核 SyncAll 总次数一致) MC2-04 全局操作一致性(无 rankId 分支导致参数差异) MC2-10 量化模式校验完整性(gqmm DEFAULT bug fix 正确) MC2-11 量化精度保护(无 Cast 在 diff 茦围围内) MC2-19 AlltoAllV 跨 rank 参数一致性(总量+逐元素约束下跨 rank 一致性通过) API-6 AllocTensor/FreeTensor 必须配对使用(委托模板框架管理) PERF-2 禁止写死硬件参数(新代码无硬编码,旧硬编码已删除) SEC-1.2 保证内存安全(引用绑定生命周期安全) SEC-3.1 禁止使用未初始化的变量(所有变量已初始化) GEN-1.1 外部数据合法性检查(通过 — BsK==0 已在基类修复) MC2-14 Tiling 校验与结构规范(通过 — BsK==0 修复、send/recv 上界修复、FloorAlign 修复) --- ## 被检视代码 > 本次检视的完整 diff 来自 PR #5704(更新版) **PR diff 文件路径**: ./operators/.pr_diff/5704_v2.diff **完整源码路径**: ./operators/.pr_repo/5704/ **代码概要路径**: ./operators/pr-5704/code_summary.md **diff 行数**:2704 行 See merge request: cann/ops-transformer!57046 天前
新增AlltoAllvQuantGroupedMatmul、QuantGroupedMatmulAlltoAllv算子 Co-authored-by: libohao6<libohao3@huawei.com> Co-authored-by: huangshuai<huangshuai59@huawei.com> # message auto-generated for no-merge-commit merge: !2548 merge alltoallv_v2 into master 新增AlltoAllvQuantGroupedMatmul、QuantGroupedMatmulAlltoAllv算子 Created-by: libohao6 Commit-by: huangshuai;libohao6 Merged-by: cann-robot Description: ## 描述 新增AlltoAllvQuantGroupedMatmul、QuantGroupedMatmulAlltoAllv算子 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> ## 测试 二级冒烟 ## 文档更新 更新了AlltoAllvQuantGroupedMatmul、QuantGroupedMatmulAlltoAllv的aclnn文档。 ## 类型标签 <!-- [x] 表示选中 --> - [X] 🐛 Bug 修复 - [ ] ✨ 新特性 - [ ] ⚡ 性能优化 - [ ] ♻️ 重构 - [ ] 🧪 测试 - [ ] 📦 构建/CI - [ ] 🔧 配置变更 - [ ] 📝 文档更新 - [ ] ⬆️ 依赖升级 - [ ] 🔒 安全修复 - [ ] 🧹 代码清理 - [ ] ❓ 其他,请描述: See merge request: cann/ops-transformer!25482 个月前
调整common目录结构 Co-authored-by: hello_simida<wangyi206@huawei.com> # message auto-generated for no-merge-commit merge: !2465 merge master_v3 into master 调整common目录结构 Created-by: hello_simida Commit-by: hello_simida Merged-by: cann-robot Description: ## 描述 调整common目录调整 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-transformer!24652 个月前