文件最后提交记录最后更新时间
清理cleancode Co-authored-by: zzg_code<zengzhiguo1@huawei.com> # message auto-generated for no-merge-commit merge: !6046 merge newkfc into master 清理cleancode Created-by: zzg_code Commit-by: zzg_code Merged-by: cann-robot Description: ## 描述 清理cleancode ## 关联的Issue https://gitcode.com/cann/ops-transformer/issues/2735 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] 🐛 Bug 修复 - [ ] ✨ 新特性 - [ ] ⚡ 性能优化 - [ ] ♻️ 重构 - [ ] 🧪 测试 - [ ] 📦 构建/CI - [ ] 🔧 配置变更 - [ ] 📝 文档更新 - [ ] ⬆️ 依赖升级 - [ ] 🔒 安全修复 - [ ] 🧹 代码清理 - [ ] ❓ 其他,请描述: See merge request: cann/ops-transformer!604613 小时前
arch35gentask stub for compiling master with c25 toolkit Co-authored-by: ChenYiran<chenyiran6@huawei.com> # message auto-generated for no-merge-commit merge: !1711 merge c25_c into master arch35gentask stub for compiling master with c25 toolkit Created-by: ChenYiran Commit-by: ChenYiran Merged-by: cann-robot Description: ## 描述 增加arch35gentask的打桩文件以满足使用c25 toolkit包对主线进行编译 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> [#804](https://gitcode.com/cann/ops-transformer/issues/804) ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> 不涉及 ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-transformer!17113 个月前
Bugfix: Fix alignment mask bug Co-authored-by: tgwsakiko_<linwei69@huawei.com> # message auto-generated for no-merge-commit merge: !3629 merge bugfix into master Bugfix: Fix alignment mask bug Created-by: tgwsakiko_ Commit-by: tgwsakiko_ Merged-by: cann-robot Description: ## 描述 The mask value was incorrectly set to 64 instead of 63, which cause alignment failure when x = n * 64 -1. This value has been corrected to 63 in this PR to ensure proper alignment. ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [x] 🐛 Bug 修复 - [ ] ✨ 新特性 - [ ] ⚡ 性能优化 - [ ] ♻️ 重构 - [ ] 🧪 测试 - [ ] 📦 构建/CI - [ ] 🔧 配置变更 - [ ] 📝 文档更新 - [ ] ⬆️ 依赖升级 - [ ] 🔒 安全修复 - [ ] 🧹 代码清理 - [ ] ❓ 其他,请描述: See merge request: cann/ops-transformer!36291 个月前
feature: A2 Dispatch And Combine Support Exception Dump Co-authored-by: urbub<linhailong3@huawei.com> # message auto-generated for no-merge-commit merge: !5546 merge ADumpA2Simple into master feature: A2 Dispatch And Combine Support Exception Dump Created-by: urbub Commit-by: urbub Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> A2 DispatchV2和CombineV2支持ADump特性,在算子报错时,可额外Dump出通信域的报错信息,包含基础属性以及执行打点以及通信信息。 Fullmesh超时时,会额外将Win区状态信息拷贝至ADump。 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> [#2321](https://gitcode.com/cann/ops-transformer/issues/2321) ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] 🐛 Bug 修复 - [x] ✨ 新特性 - [ ] ⚡ 性能优化 - [ ] ♻️ 重构 - [ ] 🧪 测试 - [ ] 📦 构建/CI - [ ] 🔧 配置变更 - [ ] 📝 文档更新 - [ ] ⬆️ 依赖升级 - [ ] 🔒 安全修复 - [ ] 🧹 代码清理 - [ ] ❓ 其他,请描述: See merge request: cann/ops-transformer!554610 天前
feature: A2 Dispatch And Combine Support Exception Dump Co-authored-by: urbub<linhailong3@huawei.com> # message auto-generated for no-merge-commit merge: !5546 merge ADumpA2Simple into master feature: A2 Dispatch And Combine Support Exception Dump Created-by: urbub Commit-by: urbub Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> A2 DispatchV2和CombineV2支持ADump特性,在算子报错时,可额外Dump出通信域的报错信息,包含基础属性以及执行打点以及通信信息。 Fullmesh超时时,会额外将Win区状态信息拷贝至ADump。 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> [#2321](https://gitcode.com/cann/ops-transformer/issues/2321) ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] 🐛 Bug 修复 - [x] ✨ 新特性 - [ ] ⚡ 性能优化 - [ ] ♻️ 重构 - [ ] 🧪 测试 - [ ] 📦 构建/CI - [ ] 🔧 配置变更 - [ ] 📝 文档更新 - [ ] ⬆️ 依赖升级 - [ ] 🔒 安全修复 - [ ] 🧹 代码清理 - [ ] ❓ 其他,请描述: See merge request: cann/ops-transformer!554610 天前
feature: A2 Dispatch And Combine Support Exception Dump Co-authored-by: urbub<linhailong3@huawei.com> # message auto-generated for no-merge-commit merge: !5546 merge ADumpA2Simple into master feature: A2 Dispatch And Combine Support Exception Dump Created-by: urbub Commit-by: urbub Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> A2 DispatchV2和CombineV2支持ADump特性,在算子报错时,可额外Dump出通信域的报错信息,包含基础属性以及执行打点以及通信信息。 Fullmesh超时时,会额外将Win区状态信息拷贝至ADump。 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> [#2321](https://gitcode.com/cann/ops-transformer/issues/2321) ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] 🐛 Bug 修复 - [x] ✨ 新特性 - [ ] ⚡ 性能优化 - [ ] ♻️ 重构 - [ ] 🧪 测试 - [ ] 📦 构建/CI - [ ] 🔧 配置变更 - [ ] 📝 文档更新 - [ ] ⬆️ 依赖升级 - [ ] 🔒 安全修复 - [ ] 🧹 代码清理 - [ ] ❓ 其他,请描述: See merge request: cann/ops-transformer!554610 天前
feature: A2 Dispatch And Combine Support Exception Dump Co-authored-by: urbub<linhailong3@huawei.com> # message auto-generated for no-merge-commit merge: !5546 merge ADumpA2Simple into master feature: A2 Dispatch And Combine Support Exception Dump Created-by: urbub Commit-by: urbub Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> A2 DispatchV2和CombineV2支持ADump特性,在算子报错时,可额外Dump出通信域的报错信息,包含基础属性以及执行打点以及通信信息。 Fullmesh超时时,会额外将Win区状态信息拷贝至ADump。 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> [#2321](https://gitcode.com/cann/ops-transformer/issues/2321) ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] 🐛 Bug 修复 - [x] ✨ 新特性 - [ ] ⚡ 性能优化 - [ ] ♻️ 重构 - [ ] 🧪 测试 - [ ] 📦 构建/CI - [ ] 🔧 配置变更 - [ ] 📝 文档更新 - [ ] ⬆️ 依赖升级 - [ ] 🔒 安全修复 - [ ] 🧹 代码清理 - [ ] ❓ 其他,请描述: See merge request: cann/ops-transformer!554610 天前
feature: A2 Dispatch And Combine Support Exception Dump Co-authored-by: urbub<linhailong3@huawei.com> # message auto-generated for no-merge-commit merge: !5546 merge ADumpA2Simple into master feature: A2 Dispatch And Combine Support Exception Dump Created-by: urbub Commit-by: urbub Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> A2 DispatchV2和CombineV2支持ADump特性,在算子报错时,可额外Dump出通信域的报错信息,包含基础属性以及执行打点以及通信信息。 Fullmesh超时时,会额外将Win区状态信息拷贝至ADump。 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> [#2321](https://gitcode.com/cann/ops-transformer/issues/2321) ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] 🐛 Bug 修复 - [x] ✨ 新特性 - [ ] ⚡ 性能优化 - [ ] ♻️ 重构 - [ ] 🧪 测试 - [ ] 📦 构建/CI - [ ] 🔧 配置变更 - [ ] 📝 文档更新 - [ ] ⬆️ 依赖升级 - [ ] 🔒 安全修复 - [ ] 🧹 代码清理 - [ ] ❓ 其他,请描述: See merge request: cann/ops-transformer!554610 天前
调整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 个月前
Add context as an input to dispatch/combine Co-authored-by: GJQ<gaojiaqin@hisilicon.com> Co-authored-by: OblivionZHU<zhujun116@huawei.com> # message auto-generated for no-merge-commit merge: !1404 merge moe_context into master Add context as an input to dispatch/combine Created-by: Jiaqin Commit-by: OblivionZHU;GJQ Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 新增MoeDistributeDispatchV3/CombineV3原型,完善host侧适配,支持传入context。 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> 关联Issue #1030需求建议: 新增动态获取context输入的方法,以便实时更新 <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> 静态检查、蓝区冒烟、二级冒烟、线下RDV ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-transformer!14042 个月前
Dispatch V2适配mxfp4量化 Co-authored-by: weixin_49300047<lijianhua56@huawei.com> # message auto-generated for no-merge-commit merge: !2592 merge mxfp4 into master Dispatch V2适配mxfp4量化 Created-by: weixin_49300047 Commit-by: weixin_49300047 Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> Dispatch新增MXFP4量化功能,将输入类型为BF16/FP16的数据在通信前量化为FP4类型 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> https://gitcode.com/cann/ops-transformer/issues/1254) ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] 🐛 Bug 修复 - [x] ✨ 新特性 - [ ] ⚡ 性能优化 - [ ] ♻️ 重构 - [ ] 🧪 测试 - [ ] 📦 构建/CI - [ ] 🔧 配置变更 - [ ] 📝 文档更新 - [ ] ⬆️ 依赖升级 - [ ] 🔒 安全修复 - [ ] 🧹 代码清理 - [ ] ❓ 其他,请描述: See merge request: cann/ops-transformer!25921 个月前
oom报错修复 Co-authored-by: jiangxiuhan1<jiangxiuhan@huawei.com> # message auto-generated for no-merge-commit merge: !5566 merge oom into master oom报错修复 Created-by: jiangxiuhan1 Commit-by: jiangxiuhan1 Merged-by: cann-robot Description: ## 描述 oom检测场景下,注册位置在检测位置之后,导致报错。 ## 关联的Issue https://gitcode.com/cann/ops-transformer/issues/2624 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] 🐛 Bug 修复 - [ ] ✨ 新特性 - [ ] ⚡ 性能优化 - [ ] ♻️ 重构 - [ ] 🧪 测试 - [ ] 📦 构建/CI - [ ] 🔧 配置变更 - [ ] 📝 文档更新 - [ ] ⬆️ 依赖升级 - [ ] 🔒 安全修复 - [ ] 🧹 代码清理 - [ ] ❓ 其他,请描述: See merge request: cann/ops-transformer!55664 天前
优化dispatchv2fullmesh版本中Token,及Cnt发送逻辑 Co-authored-by: Yuyu-Li<liyuyu6@huawei.com> # message auto-generated for no-merge-commit merge: !5732 merge barrier into master 优化dispatchv2fullmesh版本中Token,及Cnt发送逻辑 Created-by: Yuyu-Li Commit-by: Yuyu-Li Merged-by: cann-robot Description: ## 描述 A5场景下dispatch_v2_fullmesh版本进行性能拆解发现,token发送阶段性能很差,进一步排查发现token发送时MTE3没有和Vector、及MTE2等进行有效掩盖,性能与串行发送相当。通过优化MTE3 / V之间的依赖,将发送逻辑改为多 buffer并发。并实现token分核、tokenCnt全核发送等逻辑改动。显著优化A5场景下dispatch算子性能。 # 代码检视报告 **项目名称**:ops-transformer **检视模块**:mc2/moe_distribute_dispatch_v2/op_kernel/moe_distribute_dispatch_v2_full_mesh.h **检视范围**:C++ 安全规范、C++ 通用规范、TOPK 高频问题 **Commit ID**:2c4eb237d1609d0c0e7b09a0aa8df6cd0cdbfa80 **检视人**:CANNBot Code Reviewer **检视日期**:2026-05-26 ## 🔍 检视概览 | 统计项 | 数值 | | ---- | ---- | | 发现问题总数 | 0 个 | | 严重级(CRITICAL)问题 | 0 个 | | 中等级(MEDIUM)问题 | 0 个 | | 轻微级(LOW)问题 | 0 个 | | 误报数量 | 0 个 | **核心结论**:代码检视通过。新增成员变量初始化规范,边界检查完备,同步机制优化合理,符合 C++ 安全规范、通用规范及 TOPK 高频问题清单要求。 --- ## ✅ 排除项说明 以下潜在风险点经假设检验后排除: | 序号 | 代码位置 | 原始风险描述 | 排除原因 | 适用排除规则 | |-----|---------|-------------|---------|-------------| | 1 | 第 658-659 行 | expertPerSizeOnWin_ * epRankId_ 乘法溢出风险 | 业务约束保证参数范围不会溢出 uint32_t | TOPK-08 业务约束保护 | | 2 | 第 658-659 行 | sendTokenIndex * hCommuSize_ 乘法溢出风险 | 业务约束保证参数范围不会溢出 uint32_t | TOPK-08 业务约束保护 | | 3 | 第 793-795 行 | epRankId_ * moeExpertNumPerRank_ 乘法溢出风险 | 业务约束保证参数范围不会溢出 uint32_t | TOPK-08 业务约束保护 | | 4 | 第 793-795 行 | dstTokenIdx * hCommuSize_ 乘法溢出风险 | 业务约束保证参数范围不会溢出 uint32_t | TOPK-08 业务约束保护 | | 5 | 第 783 行 | remainUbSize / hCommuSize_ 除零风险 | hCommuSize_ 来自 TilingData,Tiling 阶段已校验通信大小非零 | SEC-2.3 排除规则 | | 6 | 第 768 行 | sendNum_ = validTokenNum / moeUsedAivNum_ 除零风险 | moeUsedAivNum_ 来自 TilingData,Tiling 阶段已校验核数非零 | SEC-2.3 排除规则 | | 7 | 第 537 行 | outTensor_[...] 数组索引越界风险 | 通过 syncFlagId_ % sendTokenBufNum_ 确保索引在范围内 | SEC-3.3 排除规则 | | 8 | 第 808 行 | expertId 数组索引越界风险 | 代码已显式添加边界检查:if (expertId >= moeExpertNum_ || expertId < 0) continue; | 已有防御代码 | | 9 | 第 781 行 | totalUbSize_ - (...) 减法回绕风险 | endUbAddr > beiginUbAddr(物理地址递增),减法结果为正数 | 业务约束保护 | --- ## 📋 合规性检查清单 | 检查项 | 规范来源 | 检查结果 | 说明 | |-------|---------|---------|-----| | 成员变量初始化 | SEC-3.1 | ✅ 通过 | 新增成员变量 syncFlagId_{0}sendTokenBufNum_{0}totalUbSize_{0} 均已初始化 | | 数组边界检查 | SEC-3.3 | ✅ 通过 | expertId 添加显式边界检查(第 808 行) | | 除零保护 | SEC-2.3 | ✅ 通过 | 除数均来自 TilingData,Tiling 阶段已校验 | | GM 地址计算 | TOPK-08 | ✅ 通过 | 业务约束保证不会溢出 | | TBuf 初始化 | SEC-3.1 | ✅ 通过 | calBeginBuf_calEndBuf_InitBuffer 中初始化 | | 同步机制 | Kernel 最佳实践 | ✅ 通过 | 使用 SetFlag/WaitFlag 实现流水线同步,设计合理 | --- ## 📊 规范条款引用统计 | 规范来源 | 涉及条款数 | 主要条款 | |---------|-----------|---------| | C++ 安全编码规范 | 4 条 | SEC-2.3、SEC-3.1、SEC-3.3、SEC-3.5 | | TOPK 问题清单 | 2 条 | TOPK-08、TOPK-06 | | C++ 通用编码规范 | 0 条 | 无违反 | ## 报告生成时间 2026-05-26 ## 报告状态 已完成检视,代码合规 ## 关联的Issue https://gitcode.com/cann/ops-transformer/issues/2595 ## 测试 二级冒烟,线下测试 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] 🐛 Bug 修复 - [ ] ✨ 新特性 - [x] ⚡ 性能优化 - [ ] ♻️ 重构 - [ ] 🧪 测试 - [ ] 📦 构建/CI - [ ] 🔧 配置变更 - [ ] 📝 文档更新 - [ ] ⬆️ 依赖升级 - [ ] 🔒 安全修复 - [ ] 🧹 代码清理 - [ ] ❓ 其他,请描述: See merge request: cann/ops-transformer!57322 天前
调整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 个月前
fix: correct smoothScales buffer allocation size for pergroup quantization Co-authored-by: zhong-zixin<zhongzixin@huawei.com> # message auto-generated for no-merge-commit merge: !4770 merge nan_bug into master fix: correct smoothScales buffer allocation size for pergroup quantization Created-by: zhong-zixin Commit-by: zhong-zixin Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 修复 pergroup 量化场景下,外部传入 smoothScale 时,量化计算时可能引入脏数据的问题。具体来说,量化计算时会以128个元素为一组计算 dynamicScale,但 TBuf 分配内存和 smoothScale 搬运时未按照 128 元素大小对齐,导致量化计算时引入脏数据。 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [x] 🐛 Bug 修复 - [ ] ✨ 新特性 - [ ] ⚡ 性能优化 - [ ] ♻️ 重构 - [ ] 🧪 测试 - [ ] 📦 构建/CI - [ ] 🔧 配置变更 - [ ] 📝 文档更新 - [ ] ⬆️ 依赖升级 - [ ] 🔒 安全修复 - [ ] 🧹 代码清理 - [ ] ❓ 其他,请描述: # Ascend C 代码检视报告 ## 检视信息 | 项目 | 内容 | |------|------| | **Commit ID** | 864ca861e83245c7a8e4df20d890e6153809c8a8 | | **Commit Message** | fix: correct smoothScales buffer allocation size for pergroup quantization | | **检视时间** | 2026-04-29 | | **检视规范** | cpp-secure.md + cpp-general.md + ascendc-topk.md | | **检视范围** | C++ 安全规范 + 通用编码规范 + TOPK高频问题 | | **检视结论** | **PASS** | | **风险点数量** | 0 | --- ## 变更文件清单 | 序号 | 文件路径 | 变更行数 | 检视范围 | |-----|---------|---------|---------| | 1 | mc2/moe_distribute_dispatch_v2/op_host/op_tiling/moe_distribute_dispatch_v2_tiling.cpp | +5 | Tiling侧(Host) | | 2 | mc2/moe_distribute_dispatch_v2/op_kernel/arch35/moe_distribute_dispatch_v2_host_kfc.h | +5 | Kernel侧 | | 3 | mc2/moe_distribute_dispatch_v2/op_kernel/moe_distribute_dispatch_v2.h | +6 | Kernel侧 | | 4 | mc2/moe_distribute_dispatch_v2/op_kernel/moe_distribute_dispatch_v2_quant.h | +13 | Kernel侧 | --- ## 假设检验过程 ### 代码段1:tiling.cpp(行1601-1611) **原假设 H0**:新增的 scalesStorageShape 指针判空和 hFp32Size 计算逻辑是安全的。 **备择假设 H1**:存在指针解引用或整数运算风险。 **自信值初始化**:0% --- #### 证据收集与评估 | 证据类型 | 分析动作 | 分析结果 | 证据分值 | |---------|---------|---------|---------| | **规范违反** | 检查指针判空(TOPK-1) | scalesStorageShape != nullptr 判断正确,符合要求 | 无违规 | | **规范违反** | 检查整数溢出(规范2.1/2.2) | 发现潜在溢出风险点 | +40% | | **上下文防御** | 检查业务约束保护 | **发现有效防御**:hMax=8192校验保护(行1119) | 无需额外防御 | | **工具验证** | GCC builtin溢出检测 | 业务范围内(h≤8192)无溢出 | 无溢出 | --- #### 业务约束证据链 **约束定义**(moe_distribute_dispatch_v2_tiling.cpp:116-118): ```cpp constexpr int64_t H_MIN = 1024; constexpr int64_t H_MAX = 8192; constexpr int64_t H_MAX_LAYERED = 7168; ``` **约束校验**(moe_distribute_dispatch_v2_tiling.cpp:1119-1120): ```cpp OP_TILING_CHECK((xDim1 < hMin) || (xDim1 > hMax), OP_LOGE(nodeName, "xShape dims1(H) should be in [%ld, %ld], but got %ld.", hMin, hMax, xDim1), return ge::GRAPH_FAILED); ``` **工具验证结果**: 使用 GCC builtin 函数在业务约束边界(h=8192)验证: ```bash # 测试行1609: Ceil(hSize * sizeof(float), UB_ALIGN) uint32_t dividend = 8192 * 4 = 32768 Ceil internal add overflow: NO Ceil result = 32768 # 测试行1611: Ceil(hSize, PERGROUP_BLOCK_SIZE) * sizeof(float) uint32_t ceilResult = Ceil(8192, 128) = 8192 ceilResult * 4 = 32768 (overflow: NO) ``` --- #### 自信值计算与决策 **证据汇总**: - 发现潜在溢出风险:+40%(理论风险) - 发现业务约束保护:-40%(有效防御) - 工具验证无溢出:-40%(实际安全) **自信值** = 40% - 40% - 40% = **-40%** < 60% **决策**:**PASS**(业务约束保护 + 工具验证确认) --- ### 代码段2:quant.h(行94-97) **原假设 H0**:新增的 smoothTailOffset_smoothTailCount_ 计算逻辑是安全的。 **备择假设 H1**:存在未初始化或整数运算风险。 **自信值初始化**:0% --- #### 证据收集与评估 | 证据类型 | 分析动作 | 分析结果 | 证据分值 | |---------|---------|---------|---------| | **规范违反** | 检查变量初始化(规范3.1) | 成员初始化器 {0} 确保初始化 | 无违规 | | **规范违反** | 检查整数溢出(规范2.2) | 发现潜在溢出风险点 | +40% | | **上下文防御** | 检查业务约束保护 | axisH_ 来自 TilingData,已校验范围 | 有效防御 | | **工具验证** | GCC builtin溢出检测 | 业务范围内无溢出 | 无溢出 | --- #### 变量初始化证据 **类定义**(moe_distribute_dispatch_v2_quant.h:36-37): ```cpp uint32_t smoothTailOffset_{0}; // ✅ 成员初始化器 uint32_t smoothTailCount_{0}; // ✅ 成员初始化器 ``` 符合规范 3.1:"变量使用前必须进行有效初始化"。 --- #### 工具验证结果 在业务约束边界(axisH_=8192)验证: ```bash # 测试行94: Ceil(axisH * sizeof(float), UB_ALIGN) * UB_ALIGN / sizeof(float) uint32_t ceilResult = Ceil(8192 * 4, 32) = 32768 ceilResult * 32 = 1048576 (overflow: NO) ``` --- #### 自信值计算与决策 **证据汇总**: - 发现潜在溢出风险:+40%(理论风险) - 变量已初始化:-40%(符合规范) - 业务约束保护:-40%(有效防御) - 工具验证无溢出:-40%(实际安全) **自信值** = 40% - 40% - 40% - 40% = **-80%** < 60% **决策**:**PASS**(初始化正确 + 业务约束保护 + 工具验证确认) --- ## 规范条款对照表 ### C++ 安全编码规范(cpp-secure.md) | 规范编号 | 规范名称 | 适用范围 | 检视结果 | 证据 | |---------|---------|---------|---------|------| | **2.1** | 有符号整数运算不溢出 | All | ✅ PASS | 业务约束(h≤8192)保护 | | **2.2** | 无符号整数运算不回绕 | All | ✅ PASS | 业务约束保护 + 工具验证 | | **2.3** | 除法/余数运算除零保护 | All | ✅ PASS | Ceil函数内置除零校验 | | **3.1** | 禁止未初始化变量 | All | ✅ PASS | 成员初始化器 {0} | | **TOPK-1** | 必须校验函数返回值 | Host | ✅ PASS | scalesStorageShape != nullptr | | **TOPK-7** | 外部输入校验 | Host | ✅ PASS | hSize来自TilingData已校验 | --- ### C++ 通用编码规范(cpp-general.md) | 规范编号 | 规范名称 | 适用范围 | 检视结果 | 证据 | |---------|---------|---------|---------|------| | **1.1** | 外部数据合法性检查 | All | ✅ PASS | OP_TILING_CHECK校验链 | | **15.2** | 入参用const T&,出参用T* | All | ✅ PASS | 参数传递符合规范 | --- ### TOPK 高频问题清单(ascendc-topk.md) | 序号 | 问题类型 | 适用范围 | 检视结果 | 证据 | |-----|---------|---------|---------|------| | **1** | 必须校验函数返回值 | Host | ✅ PASS | GetOptionalInputShape判空 | | **7** | 融合规则/InferShape/Tiling外部输入校验 | Host | ✅ PASS | h参数范围校验 | | **8** | gm内存偏移或大小必须用int64表示 | All | ✅ 不适用 | 本变更涉及UB大小计算 | --- ## 代码质量评估 ### 变更意图与实现 **变更意图**:修正 PERGROUP_DYNAMIC_QUANT 模式下 smoothScales buffer 分配大小计算逻辑。 **实现评估**: - ✅ 逻辑正确:从 Ceil(hSize * sizeof(float), UB_ALIGN) 改为 Ceil(hSize, PERGROUP_BLOCK_SIZE) * sizeof(float) - ✅ 覆盖完整:Tiling侧 + Kernel侧(三个文件)同步修改 - ✅ 条件准确:仅在 PERGROUP_DYNAMIC_QUANTisScales 时生效 - ✅ 注释更新:从 BS * K * 4B 改为 hAlign * 4B,语义更准确 ### 安全性评估 | 评估项 | 评分 | 说明 | |--------|------|------| | **数值安全** | 100/100 | 业务约束保护 + 工具验证确认无溢出 | | **内存安全** | 100/100 | 指针判空正确,变量初始化完整 | | **输入验证** | 100/100 | h参数范围校验链完整 | | **资源管理** | 100/100 | Buffer静态分配,无动态资源管理 | --- ## 检视结论 ### 最终判定:**PASS** **判定依据**: 1. **业务约束保护**:h参数在 Tiling 阶段校验范围 [1024, 8192],确保整数运算不会溢出 2. **工具验证确认**:使用 GCC builtin 函数在业务边界验证,无溢出触发 3. **代码规范合规**: - TOPK-1:函数返回值判空正确 - 规范 3.1:变量初始化完整(成员初始化器 {0}) - 规范 2.3:Ceil 函数内置除零保护 4. **变更质量高**:意图清晰,实现正确,覆盖完整 ### 安全边界说明 | 约束条件 | 具体内容 | 保护位置 | |---------|---------|---------| | **h范围** | [1024, 8192] (普通) / [1024, 7168] (layered) | moe_distribute_dispatch_v2_tiling.cpp:1119-1120 | | **校验方式** | OP_TILING_CHECK((xDim1 < hMin) || (xDim1 > hMax), ...) | Tiling 阶段强制校验 | ### 未来扩展风险提示 **风险点**:若未来业务需求扩展 h 超过 8192,整数溢出风险将被激活。 **应对建议**: - 若需支持更大 h(如 h > 268435456),应将 Ceil 函数返回值及中间变量改为 uint64_t - 或在 Tiling 阶段增加额外校验:OP_TILING_CHECK(h * sizeof(float) > UINT32_MAX, ...) --- ## 附录:工具验证详细数据 ### GCC builtin 溢出检测代码 ```cpp // 测试 Ceil 函数内部溢出 uint32_t dividend = 4294967292; // UINT32_MAX - 3 uint32_t divisor = 32; bool addOverflow = __builtin_uadd_overflow(dividend, divisor - 1, &dividend); // 结果:YES(dividend接近UINT32_MAX时溢出) // 测试业务约束边界(h=8192) uint32_t hSize = 8192; uint32_t dividend2 = hSize * 4; // 32768 bool mulOverflow = __builtin_umul_overflow(hSize, 4U, &dividend2); // 结果:NO(业务范围内安全) ``` ### 大类型对比验证代码 ```cpp // uint32_t vs uint64_t 对比 uint32_t hSize = 8192; uint32_t result32 = Ceil(hSize * 4, 32); uint64_t result64 = Ceil((uint64_t)hSize * 4, 32); // result32 = result64 = 32768(无截断) ``` --- ## 检视签名 **检视人**:Ascend C Code Review Skill **检视时间**:2026-04-29 **检视方法**:假设检验驱动 + 工具组合验证 **检视结论**:**PASS**(业务约束保护 + 代码规范合规) See merge request: cann/ops-transformer!477030 天前
dispatchV2 fullmesh模板新增tiling侧UB buffersize校验 Co-authored-by: yangzeheng<yangzeheng@huawei.com> # message auto-generated for no-merge-commit merge: !1730 merge master into master dispatchV2 fullmesh模板新增tiling侧UB buffersize校验 Created-by: yangzeheng Commit-by: yangzeheng Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-transformer!17302 个月前
adapt 3101 to 3510 Co-authored-by: 张磊<zhanglei121@huawei.com> # message auto-generated for no-merge-commit merge: !1210 merge master into master adapt 3101 to 3510 Created-by: zl_hw Commit-by: 张磊 Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-transformer!12102 个月前
dispatch和combine同步至开源仓 Co-authored-by: Shuye Liu<liushuye@huawei.com> # message auto-generated for no-merge-commit merge: !1036 merge dispatch into master dispatch和combine同步至开源仓 Created-by: shuyeliu Commit-by: Patrick Liu;Shuye Liu Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-transformer!10363 个月前
调整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 个月前
修复Dispatch输入低精度场景数据区偏移计算错误问题 Co-authored-by: weixin_49300047<lijianhua56@huawei.com> # message auto-generated for no-merge-commit merge: !5808 merge bug_fix into master 修复Dispatch输入低精度场景数据区偏移计算错误问题 Created-by: weixin_49300047 Commit-by: weixin_49300047 Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> Dispatch中原有combine WIN区偏移使用Dispatch输入类型进行计算,当Dispatch输入为低精度场景时会导致偏移计算错误出现WIN区踩踏,现按combine的固定输入类型大小替换 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> https://gitcode.com/cann/ops-transformer/issues/2623 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [x] 🐛 Bug 修复 - [ ] ✨ 新特性 - [ ] ⚡ 性能优化 - [ ] ♻️ 重构 - [ ] 🧪 测试 - [ ] 📦 构建/CI - [ ] 🔧 配置变更 - [ ] 📝 文档更新 - [ ] ⬆️ 依赖升级 - [ ] 🔒 安全修复 - [ ] 🧹 代码清理 - [ ] ❓ 其他,请描述: See merge request: cann/ops-transformer!58086 天前
Dispatch V2适配mxfp4量化 Co-authored-by: weixin_49300047<lijianhua56@huawei.com> # message auto-generated for no-merge-commit merge: !2592 merge mxfp4 into master Dispatch V2适配mxfp4量化 Created-by: weixin_49300047 Commit-by: weixin_49300047 Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> Dispatch新增MXFP4量化功能,将输入类型为BF16/FP16的数据在通信前量化为FP4类型 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> https://gitcode.com/cann/ops-transformer/issues/1254) ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] 🐛 Bug 修复 - [x] ✨ 新特性 - [ ] ⚡ 性能优化 - [ ] ♻️ 重构 - [ ] 🧪 测试 - [ ] 📦 构建/CI - [ ] 🔧 配置变更 - [ ] 📝 文档更新 - [ ] ⬆️ 依赖升级 - [ ] 🔒 安全修复 - [ ] 🧹 代码清理 - [ ] ❓ 其他,请描述: See merge request: cann/ops-transformer!25921 个月前