| Files | Last commit | Last update |
|---|---|---|
feat(5162a): 5162 短名/series 更名、reduce 算子注册与 IsSimtSupported 接口 Co-authored-by: wuxuening<wuxuening2@huawei.com> # message auto-generated for no-merge-commit merge: !6969 merge br_5162_series_rename into master feat(5162a): 5162 短名/series 更名、reduce 算子注册与 IsSimtSupported 接口 Created-by: wuxuening Commit-by: wuxuening Merged-by: cann-robot Description: ## 描述 **1. 区分 5162 芯片 soc 版本与短名/series 命名**(对齐 MC62/Ascend950 惯例): - soc 版本:保留 Ascend5162A/ascend5162a;短名/series:ascend5162a 更名为 ascend5162 **2. reduce_sum/max/min/mean 算子注册适配 ascend5162**(移植 PR #6504,适配名统一改为 ascend5162): - 4 个 def.cpp 追加 AddConfig("ascend5162", aicoreConfig),复用 950 全量配置(含 B64 类型) - 4 个 CMakeLists 的 SUPPORT_COMPUTE_UNIT/SUPPORT_TILING_DIR 追加 ascend5162/arch35 **3. 新增 IsSimtSupported 平台 SIMT 能力查询函数**(common/inc/op_host/tiling_util.h,纯头文件): - 架构白名单 {DAV_3510, DAV_5102, DAV_9201, DAV_9202},DAV_5162 等无 SIMT 硬件的架构返回 false - DAV_ 常量经 opbase op_const_def.h 解析(旧版 CANN 兼容),TilingParseContext/TilingContext 双重载 - 参考 cann/opbase PR #1065 评审意见,与 ops-nn/ops-cv 仓实现保持一致 ## 测试 - pre-commit 全量 hook 通过 - IsSimtSupported g++ 语法校验与双重载实例化 0 error ## 文档更新 无 See merge request: cann/ops-math!6969 | 7 days ago | |
fix: 桩 registrar 改静态对象登记消除泄漏,惰化路径补 WARN 日志,补登记 Globalavgpoolpass Co-authored-by: yuyuanfeng<yuyuanfeng1@huawei.com> # message auto-generated for no-merge-commit merge: !6731 merge refactor/fusion-pass-stub-static into master fix: 桩 registrar 改静态对象登记消除泄漏,惰化路径补 WARN 日志,补登记 Globalavgpoolpass Created-by: yuyuanfeng Commit-by: yuyuanfeng Merged-by: cann-robot Description: ## 描述 修复 !5140 桩机制的两处遗留问题,并补登记一项搁置的桩: 1. **registrar 堆分配未释放**: STUB_REG_PASS 的 registrar 改为函数内静态对象——ge_compiler 版本满足时构造并登记一次,不满足时不构造;消除 new 出的对象永不释放(ASan dlclose 场景 11 条分配 → 0)。 2. **惰化路径零日志**:版本门控不满足时补 WARN,进程内仅告警一次,区分弱符号未解析与 ge_compiler 版本低于 9.0.0 两种原因;登记行为与不加日志时完全一致。 3. **补登记 Globalavgpoolpass**(STUB_REG_PASS("Globalavgpoolpass", fe::BUILT_IN_GRAPH_PASS, 0x01),FORBIDDEN_CLOSE):!5140 时 math 类名为 GlobalavgpoolPass,大小写与 canndev 旧名(小写 p)不一致而搁置;!5385(10-30)类名对齐为 Globalavgpoolpass 后,桩名 / 类名(REG_FUSION_PASS(Globalavgpoolpass))/ 配置槽位(fusion_config.json、support_fusion_pass.json 3510/5102)三面一致,且 Stage=kCompatibleInherited、在 OPP 3510(ascend950) 白名单内,满足登记条件,补上 !5140 遗留。 4. 全部改动通过 clang-format v18.1.8(pre-commit 门禁)规范。 ## 关联的Issue - 关联 Issue #4352:https://gitcode.com/cann/ops-math/issues/4352(registrar 泄漏与门控静默缺陷) ## 测试 - **差分验证**(新旧同条件编译,五场景:无ACL / 真实ACL / 旧版本8.0.0 / dlclose前后 / -O2):注册输出逐名字一致;符号面未定义引用零删除、强符号导出面一致。 - **ASan/LSan**:泄漏 old=11 条分配 → new=0(修复生效);常驻场景两版均无泄漏报告。 - **950 真机**(run 包解包产物):桩编入(nm 两查通过)、fe 表登记 11/11、桥接闭环 11/11、PR 静态指纹=2(registrar 机制验证,时点为 11 桩清单;新增登记复用同一机制与门控)。 - **新增登记静态核验**:名字/类型/attr 与 canndev 原注册 REG_PASS("Globalavgpoolpass", BUILT_IN_GRAPH_PASS, Globalavgpoolpass, FORBIDDEN_CLOSE) 逐项一致;类名大小写经 !5385 对齐 canndev 旧名;OPP 白名单 3510 含该 pass;Stage=kCompatibleInherited(ge_compiler≥9.0.0),不在 kAfterInferShape 例外清单(对比 Castlike/Histogram)。 - **门禁**:pre-commit 全钩子通过(clang-format / codespell / OAT 合规);--opgraph --soc=ascend950 构建通过;rebase 至最新 master 后 CI 重跑(见下方流水线)。 ## 文档更新 无 ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!6731 | 7 days ago | |
fix: 桩 registrar 改静态对象登记消除泄漏,惰化路径补 WARN 日志,补登记 Globalavgpoolpass Co-authored-by: yuyuanfeng<yuyuanfeng1@huawei.com> # message auto-generated for no-merge-commit merge: !6731 merge refactor/fusion-pass-stub-static into master fix: 桩 registrar 改静态对象登记消除泄漏,惰化路径补 WARN 日志,补登记 Globalavgpoolpass Created-by: yuyuanfeng Commit-by: yuyuanfeng Merged-by: cann-robot Description: ## 描述 修复 !5140 桩机制的两处遗留问题,并补登记一项搁置的桩: 1. **registrar 堆分配未释放**: STUB_REG_PASS 的 registrar 改为函数内静态对象——ge_compiler 版本满足时构造并登记一次,不满足时不构造;消除 new 出的对象永不释放(ASan dlclose 场景 11 条分配 → 0)。 2. **惰化路径零日志**:版本门控不满足时补 WARN,进程内仅告警一次,区分弱符号未解析与 ge_compiler 版本低于 9.0.0 两种原因;登记行为与不加日志时完全一致。 3. **补登记 Globalavgpoolpass**(STUB_REG_PASS("Globalavgpoolpass", fe::BUILT_IN_GRAPH_PASS, 0x01),FORBIDDEN_CLOSE):!5140 时 math 类名为 GlobalavgpoolPass,大小写与 canndev 旧名(小写 p)不一致而搁置;!5385(10-30)类名对齐为 Globalavgpoolpass 后,桩名 / 类名(REG_FUSION_PASS(Globalavgpoolpass))/ 配置槽位(fusion_config.json、support_fusion_pass.json 3510/5102)三面一致,且 Stage=kCompatibleInherited、在 OPP 3510(ascend950) 白名单内,满足登记条件,补上 !5140 遗留。 4. 全部改动通过 clang-format v18.1.8(pre-commit 门禁)规范。 ## 关联的Issue - 关联 Issue #4352:https://gitcode.com/cann/ops-math/issues/4352(registrar 泄漏与门控静默缺陷) ## 测试 - **差分验证**(新旧同条件编译,五场景:无ACL / 真实ACL / 旧版本8.0.0 / dlclose前后 / -O2):注册输出逐名字一致;符号面未定义引用零删除、强符号导出面一致。 - **ASan/LSan**:泄漏 old=11 条分配 → new=0(修复生效);常驻场景两版均无泄漏报告。 - **950 真机**(run 包解包产物):桩编入(nm 两查通过)、fe 表登记 11/11、桥接闭环 11/11、PR 静态指纹=2(registrar 机制验证,时点为 11 桩清单;新增登记复用同一机制与门控)。 - **新增登记静态核验**:名字/类型/attr 与 canndev 原注册 REG_PASS("Globalavgpoolpass", BUILT_IN_GRAPH_PASS, Globalavgpoolpass, FORBIDDEN_CLOSE) 逐项一致;类名大小写经 !5385 对齐 canndev 旧名;OPP 白名单 3510 含该 pass;Stage=kCompatibleInherited(ge_compiler≥9.0.0),不在 kAfterInferShape 例外清单(对比 Castlike/Histogram)。 - **门禁**:pre-commit 全钩子通过(clang-format / codespell / OAT 合规);--opgraph --soc=ascend950 构建通过;rebase 至最新 master 后 CI 重跑(见下方流水线)。 ## 文档更新 无 ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!6731 | 7 days ago | |
fix: ONNX插件解析零值属性异常 Co-authored-by: clinglai0517<laichangling@huawei.com> # message auto-generated for no-merge-commit merge: !5896 merge fix/onnx-zero-attr-parsing into master fix: ONNX插件解析零值属性异常 Created-by: clinglai0517 Commit-by: clinglai0517 Merged-by: cann-robot Description: ## 描述 GE 序列化 ONNX 算子属性为 JSON 时,会省略值为 0 的标量 int 字段 "i"。部分 ops-math 插件以 attr.contains("i") 判断属性是否存在,导致显式零值被错误回退到算子默认值或误判为必需属性缺失。 本次修改: - 按属性 name 判断属性是否存在;i 字段缺失时按 protobuf 标量默认值 0 处理。 - 修复 Correlation、ReverseSequence、NPUOneHot 的零值属性解析。 - 完善 3 个插件的 framework UT,覆盖显式零值、属性缺省、正常属性及异常 JSON 等场景。 ## 关联的Issue Closes #3270 https://gitcode.com/cann/ops-math/issues/3270 ## 测试 - ONNX 插件构建:bash build.sh --onnxplugin -j16,通过。 - op_host UT 构建:bash build.sh -u --ophost --noexec --ops=correlation,reverse_sequence,one_hot -j64,通过。 - 专项 UT:Correlation、ReverseSequence、OneHotD 共 22 个用例,全部 PASSED。 - pre-commit:trailing whitespace、EOF、merge conflict、private key、clang-format、codespell、OAT 全部通过。 - 验证环境:Ascend 910B3 / CANN 9.0.0。 ## 文档更新 不涉及。 ## 类型标签 - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 - [x] AI辅助编写 See merge request: cann/ops-math!5896 | 1 month ago | |
fe: 融合 pass 打桩注册,编入 libopgraph_math.so Co-authored-by: yuyuanfeng<yuyuanfeng1@huawei.com> # message auto-generated for no-merge-commit merge: !5140 merge task4-stubs into master fe: 融合 pass 打桩注册,编入 libopgraph_math.so Created-by: yuyuanfeng Commit-by: yuyuanfeng Merged-by: cann-robot Description: ## 描述 桩声明 GE fe 融合 pass 注册接口(GraphFusionPassType 枚举、PassAttr、FusionPassRegistry、FusionPassRegistrar、STUB_REG_PASS),新增 common/src/op_graph/fusion_pass_common.cpp 登记 9 个有 canndev 对应物的 pass 名字,编入 libopgraph_math.so;仅 ascend950 且 ge_compiler >= 9.0.0 时生效。 作用:删掉 canndev 后 fe 表为空,这 9 个 pass 的融合会全部丢失(fusable-only 算子会在引擎选型阶段报 "Cannot find engine")。桩用名字占住 fe 表,fe 调度器才能按名字桥接到 math 侧实现。 未登记的 3 个: - CastlikeFusionPass、HistogramFusionPass:math 实现 Stage 为 kAfterInferShape,不在 kCompatibleInherited 表里,登记后 fe 查不到实现会报 "pattern fusion is nullptr" - Globalavgpoolpass:本次不登记 补充说明:DropOutV3SplitFusionPass 已登记但当前不生效——不在 OPP 白名单 support_fusion_pass.json 的 3510(ascend950) 名单内,fe 会 force close 跳过;待 OPP 侧补名单后生效,故保留登记。 ## 关联的Issue 关联 Issue #3450:[Requirement|需求建议]: FE 融合 pass 打桩注册,编入 libopgraph_math.so https://gitcode.com/cann/ops-math/issues/3450 ## 测试 - 编译:ascend950 配置下 fusion_pass_common.cpp 编译通过,libopgraph_math.so 链接通过 - 符号:桩引用的 FusionPassRegistrar 未定义符号与 libregister.so 导出的逐字符一致(_GLIBCXX_USE_CXX11_ABI=0) - 加载:ldd 依赖全部可解析,dlopen libopgraph_math.so 成功,静态初始化未崩溃 - 冒烟:已验证通过 ## 文档更新 无 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!5140 | 1 month ago |