| Files | Last commit | Last update |
|---|---|---|
新增ViewCopy重载接口,支持传入inplaceFlag参数 Co-authored-by: ren-botao<renbotao@h-partners.com> # message auto-generated for no-merge-commit merge: !6164 merge add_view_copy_inplace_api into master 新增ViewCopy重载接口,支持传入inplaceFlag参数 Created-by: ren-botao Commit-by: ren-botao Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 本次变更围绕 ViewCopy 接口进行扩展,新增了一个带 inplaceFlag 参数的重载版本,用于区分“原地”与“非原地”的 Tensor 拷贝语义。原三参数 ViewCopy 接口保持兼容,内部转发到新接口并默认传入 inplaceFlag=false;核心逻辑变化在于:当输入与输出指向同一地址时,仅在不处于原地模式时才调用 executor->AbandonCache(true)。 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> [#4461](https://gitcode.com/cann/ops-math/issues/4461) ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> 冒烟验证通过 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> 对应文档在opbase仓 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!6164 | 5 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 |