| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
MovingSumWithSigmoid/BasicLSTMInplaceFillWindowCache/BasicGRUInplaceFillWindowCache/DynSeqOuter/DynamicGRUV2/MaskedSoftmaxWithRelPosBias算子注册去重宏 Co-authored-by: Coder_Nerd<shishuai5@huawei.com> # message auto-generated for no-merge-commit merge: !9705 merge master into master MovingSumWithSigmoid/BasicLSTMInplaceFillWindowCache/BasicGRUInplaceFillWindowCache/DynSeqOuter/DynamicGRUV2/MaskedSoftmaxWithRelPosBias算子注册去重宏 Created-by: Coder_Nerd Commit-by: Coder_Nerd Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 补充op_nn_proto_extend.h中MovingSumWithSigmoid/BasicLSTMInplaceFillWindowCache/BasicGRUInplaceFillWindowCache/DynSeqOuter/DynamicGRUV2/MaskedSoftmaxWithRelPosBias算子注册去重宏 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> https://gitcode.com/cann/ops-nn/issues/5490 ## 测试 <!--描述进行了哪些测试来验证你的改动。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!9705 | 5 天前 | |
refactor: 迁移 TF 插件注册至新框架 API(part 3) Co-authored-by: Nice_try<zhangzhiwei108@huawei.com> # message auto-generated for no-merge-commit merge: !9758 merge tf-plugin-part3 into master refactor: 迁移 TF 插件注册至新框架 API(part 3) Created-by: Nice_try Commit-by: Nice_try Merged-by: cann-robot Description: ## 描述 将 TF 框架侧自定义算子注册(REGISTER_CUSTOM_OP)从旧工具链迁移至 ops-nn 新仓(TF 插件迁移 part 3),共新增/调整 22 个 *_tf_plugin.cpp 注册文件。 ### 改动原因 1. 旧注册 API(ParseParamsFn/AutoMappingFn)与标量 OriginOpType({...}) 写法在新工具链已不适用,统一迁移为 ParseParamsByOperatorFn(AutoMappingByOpFn) 与 OriginOpType(std::vector<ge::AscendString>{...}) 形式; 2. 依赖 TF protobuf NodeDef(node_def.pb.h)的旧解析逻辑在新工具链中已不存在,相关解析改为基于 ge::Operator 的子图分解(ParseOpToGraphFn/FusionParseParamsFn)实现; 3. 承接本仓已完成的 TF 插件迁移 part 1/2,补齐剩余算子的 TF 注册。 ### 改动方法 按模块汇总: - common:新增 AscendWeightQuant(TF 字符串 dst_type 到 ge DataType 的转换解析)、GatherPoint(分解为 GatherV2+Const 子图)、GatherPointGrad(分解为 ScatterUpdate 子图)注册; - index:gather_v2 新增 Gather/ResourceGather 到自定义 Gather 的注册;scatter_add/scatter_sub 新增 TensorScatterAdd/TensorScatterSub 注册;新增 BroadcastGradientArgs、SparseSegmentMean、SparseSegmentMeanGrad、SparseSlice、SparseToDense 注册; - norm:BNInfer/BNTrainingReduceGrad/BNTrainingUpdateGrad/LayerNorm/LayerNormGrad 由 ParseParamsFn 迁移到 ParseParamsByOperatorFn;LayerNorm/LayerNormGrad 增补 FusedLayerNorm/FusedLayerNormGrad 双 origin 映射;bn_training_update_v2 新增 BNTrainingUpdate 注册; - optim:ApplyAdagrad 迁移新 API(保留 ApplyAdagrad/ResourceApplyAdagrad 双 origin); - matmul:新增 Einsum 注册; - rnn:新增 BlockLSTM(分解为 DynamicRNN 子图,含 seq_length 的 Cast 与输出重排)、DynamicRNN 融合解析(FusionParseParamsFn)与 DynamicRnn 注册、DynamicRNNV2/DynamicRnnV2 系列注册(含 is_misplaced 属性处理)。 ## 关联的Issue 关联 Issue #5505:https://gitcode.com/cann/ops-nn/issues/5505 ## 测试 本 PR 仅涉及注册/图解析代码迁移,无测试文件变更;依赖仓内 CI(编译、静态检查、UT/ST 工作流)验证。 ## 文档更新 无。 ## 类型标签 - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述:TF 插件注册迁移(part 3) ## AI/Agent生成声明 - [x] AI辅助编写 See merge request: cann/ops-nn!9758 | 4 天前 | |
fix(rsqrt): 移除 nn 仓 Rsqrt 算子重复原型定义,迁移至 stub_ops.h 避免与 math 仓冲突 Co-authored-by: yuanbin_22<yuanbin22@huawei.com> # message auto-generated for no-merge-commit merge: !9693 merge fix/rsqrt-dup-def into master fix(rsqrt): 移除 nn 仓 Rsqrt 算子重复原型定义,迁移至 stub_ops.h 避免与 math 仓冲突 Created-by: yuanbin_22 Commit-by: yuanbin_22 Merged-by: cann-robot Description: ## 描述 Rsqrt 算子的 REG_OP 原型定义同时存在于 cann/ops-math(math/rsqrt/op_graph/rsqrt_proto.h)和 cann/ops-nn(common/inc/op_graph/op_nn_proto_extend.h)两个仓库中,导致链接时重复注册符号冲突。本 PR 从 nn 仓的 op_nn_proto_extend.h 中移除 Rsqrt 的 REG_OP 定义,并将其迁移至 common/stub/inc/framework/stub_ops.h,消除跨仓重复定义问题。 ### 涉及文件 | 文件 | 变更类型 | +行 | -行 | |------|----------|-----|-----| | common/inc/op_graph/op_nn_proto_extend.h | 移除重复定义 | +0 | -20 | | common/stub/inc/framework/stub_ops.h | 新增 stub 定义 | +20 | -0 | ### 变更内容 #### 1. 移除 op_nn_proto_extend.h 中的 Rsqrt 重复定义 从 op_nn_proto_extend.h 中移除 REG_OP(Rsqrt) 块(包含注释、INPUT/OUTPUT 声明和 OP_END_FACTORY_REG),该定义与 ops-math 仓的 rsqrt_proto.h 完全重复。 #### 2. 在 stub_ops.h 中新增 Rsqrt 定义 在 stub_ops.h 中新增相同的 REG_OP(Rsqrt) 块,作为 stub 框架的算子原型注册。stub_ops.h 用于 stub 编译场景,不会与 ops-math 的正式定义产生符号冲突。 ### 变更原因 ops-math 和 ops-nn 两个仓库都包含了 Rsqrt 的 REG_OP 定义。当两个仓库的头文件被同一编译单元包含时,REG_OP 宏会展开两次,产生重复的注册符号,导致链接错误。ops-math 是 Rsqrt 的正确归属仓库,nn 仓的 op_nn_proto_extend.h 中的定义是历史遗留的重复。将 nn 仓的定义从 op_nn_proto_extend.h 移至 stub_ops.h,既消除了重复定义冲突,又保留了 stub 场景下的算子原型可用性。 ## 关联的Issue 关联Issue #5469 ## 测试 - nn 仓编译验证通过,无重复注册告警 - stub 编译场景下 Rsqrt 算子原型可正常注册 - math 仓 Rsqrt 算子功能不受影响 ## 文档更新 不涉及 ## 类型标签 - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 - [ ] AI辅助编写 See merge request: cann/ops-nn!9693 | 6 天前 | |
fix(common): 迁移 AdaCast onnx 插件解耦 protobuf,并使 common 集中目录 onnx 变更可被 CI 触发执行 framework UT Co-authored-by: clinglai0517<laichangling@huawei.com> # message auto-generated for no-merge-commit merge: !9618 merge fix-onnx-0831 into master fix(common): 迁移 AdaCast onnx 插件解耦 protobuf,并使 common 集中目录 onnx 变更可被 CI 触发执行 framework UT Created-by: clinglai0517 Commit-by: clinglai0517 Merged-by: cann-robot Description: ## 描述 本 MR 含两部分: 1. 将 common/src/framework/ada_cast_onnx_plugin.cpp 的 ParseParamsFn 迁移到 ParseParamsByOperatorFn,从 op_src 的 attribute JSON 解析 pixel(INT),去掉 protobuf 依赖(onnx_common.h → plugin_util.h 等 proto-free 头),并补 common/tests/ut/framework/test_ada_cast_onnx_plugin.cpp 单测。 2. 补齐 ops-nn "framework UT 按算子 + op_host "中 common 集中 目录这一支的失效:改 common/.../framework 下 onnx 文件时 CI 静默跳过 (parse_changed_files.py 无 framework matcher、tests/ut/op_host 的 if(NOT ASCEND_OP_NAME) 在 --ops 下把 common framework UT 挡死)。 ## 实现说明 - scripts/util/parse_changed_files.py(改动1) 基类 match() 加 framework 短路 + OpHostUt._ut_match 正则提取算子名 ((?:^|/) 兼容相对路径),覆盖四种 onnx framework 路径:common 插件源、 common 插件 UT、算子级 UT、算子级插件源。非 framework 文件走原逻辑不变; 仅 op_host_ut 命中。顶部加 import re。 - tests/ut/op_host/CMakeLists.txt(改动2) 门槛 if(NOT ASCEND_OP_NAME) → 全量接入;--ops 仅命中 common 框架插件算子 才接入。结构上规避 ops-cv !1435 那种"非框架算子 PR 触发 framework cases_obj 零源"回归。framework static_lib 链接处本就有 $<TARGET_EXISTS:> 守卫, 非框架算子构建时链接为空,不影响他人。 - cmake/ut.cmake(改动3/5) 改动3:framework 分支按 test_<op>_onnx_plugin.cpp 文件名逐文件过滤。 改动5:add_opbase_ut_common(tiling/infershape/framework 三模块共享) 加 empty.cpp 兜底源——selective 下三个 opbase obj 目标都不存在时 add_library 无源会在 generate 阶段报错。 - scripts/util/dependency_parser.py(改动4) find_all_dependency 对不在依赖图的 framework-only 算子(ada_cast/hardmax/ size 无算子目录)由 raise RuntimeError 改为 warn+计入算子本身(无子依赖)。 否则 parse 与 build.sh --ops 依赖解析会崩、且 parse 输出 op 字段为空。 真实算子(在 all_ops)不受影响。 ## 关联的Issue Issue [#5115](https://gitcode.com/cann/ops-nn/issues/5115) ## 测试 容器(CANN 9.0.0,aarch64)端到端 CI -f 验证: - ada_cast(common 插件源)CI -f:Trigger Ut op_host_ut:ada_cast → OnnxAdaCastPluginTest 2 用例 PASSED,rc=0。 - elu(算子级插件源 activation/elu/framework/elu_onnx_plugin.cpp,扩展正则 新增覆盖)CI -f:Trigger Ut op_host_ut:elu → OnnxEluPluginTest 2 用例 PASSED,rc=0。 - relu(非框架算子、不涉及 onnx,回归)CI -f:门槛不命中 common framework, 无 No SOURCES 报错,7 用例 PASSED,rc=0(即不涉及 onnx 的 PR 不受影响)。 - ada_cast 迁移本身:protobuf-free 编译通过,硬标准 onnx_common.h/ge::onnx::/Message 零残留。 本地 git diff --check 通过;py_compile 通过。 ## 文档更新 不涉及 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [x] AI辅助编写 See merge request: cann/ops-nn!9618 | 6 天前 | |
调整cube_utils的源码和ut的位置 Co-authored-by: jiang-mingming01<jiangmingming16@h-partners.com> # message auto-generated for no-merge-commit merge: !9060 merge br_mingmingj_mv_cube_utils_0824 into master 调整cube_utils的源码和ut的位置 Created-by: jiang-mingming01 Commit-by: jiang-mingming01 Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> t调整cube_utils的源码和ut的位置 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> ## 测试 <!--描述进行了哪些测试来验证你的改动。--> UT在在--opgraph -u或者ut_test_all的时候触发 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [x] AI辅助编写 See merge request: cann/ops-nn!9060 | 14 天前 |