| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
format cpp Co-authored-by: yang-di52<yangdi52@huawei.com> # message auto-generated for no-merge-commit merge: !6784 merge issue_fix into master format cpp Created-by: yang-di52 Commit-by: yang-di52 Merged-by: cann-robot Description: ## 描述 批量刷新cpp代码格式 ## 关联的Issue [#3791](https://gitcode.com/cann/ops-nn/issues/3791) ## 测试 <!--描述进行了哪些测试来验证你的改动。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述:代码格式化 ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!6784 | 2 个月前 | |
增加tf_plugin插件框架 Co-authored-by: yang-di52<yangdi52@huawei.com> # message auto-generated for no-merge-commit merge: !3622 merge bugfix1 into master 增加tf_plugin插件框架 Created-by: yang-di52 Commit-by: yang-di52 Merged-by: cann-robot Description: ## 描述 Summary - 添加构建系统支持,新增 --tfplugin 构建选项 - 新增TF plugin CMake构建配置和符号生成逻辑 - 提取通用工具函数到 plugin_util.h,包括 GetOpName - 新增TF插件安装路径和打包配置 Changes - CMake构建系统:添加 init_tf_plugin_modules() 和 add_tf_plugin_sources() - 构建脚本:支持 bash build.sh --tfplugin 编译选项 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> ## 测试 [#1977](https://gitcode.com/cann/ops-nn/issues/1977) ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-nn!3622 | 5 个月前 | |
format cpp Co-authored-by: yang-di52<yangdi52@huawei.com> # message auto-generated for no-merge-commit merge: !6784 merge issue_fix into master format cpp Created-by: yang-di52 Commit-by: yang-di52 Merged-by: cann-robot Description: ## 描述 批量刷新cpp代码格式 ## 关联的Issue [#3791](https://gitcode.com/cann/ops-nn/issues/3791) ## 测试 <!--描述进行了哪些测试来验证你的改动。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述:代码格式化 ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!6784 | 2 个月前 | |
fix: onnx插件解析属性时零值字段被GE省略导致回退默认值 Co-authored-by: clinglai0517<laichangling@huawei.com> # message auto-generated for no-merge-commit merge: !10783 merge elu-onnx-fix into master fix: onnx插件解析属性时零值字段被GE省略导致回退默认值 Created-by: clinglai0517 Commit-by: clinglai0517 Merged-by: cann-robot Description: ## 描述 GE 序列化 ONNX 算子属性为 JSON 时,会省略值为 0 的标量字段(float 的 "f"、int 的 "i")。部分插件用 attr.contains("f"/"i") 判断属性是否存在,或直接访问 attr["f"/"i"],导致属性传 0 时被错误回退到算子默认值,或直接抛异常使转换失败。 修复方式:先按 name 判断属性是否存在,值字段缺失时按该类型的 protobuf 默认值 0 处理,而不是回退默认值或抛异常。 涉及算子: - Elu(alpha) - LeakyRelu(alpha) - HardMax(axis) - AdaCast(pixel) - GroupNormRelu(eps / num_groups) - BoundingBoxDecode(wh_ratio_clip) - AscendAntiQuantV2(dst_dtype) ## 关联的Issue Issue #6004 ## 测试 - 编译:bash build.sh --onnxplugin -j16 通过(7 个修复源文件全部编译通过)。 - 单测:bash build.sh -u --ophost --ops=elu,leaky_relu,hardmax,ada_cast,14 个用例全部 PASSED(含各算子新增的「零值字段缺失」用例)。 - 端到端 NPU(Ascend 910B3 / CANN 9.0.0):ELU alpha=0 负半轴输出 [0,0,0,0],alpha=3.0 回归无影响。 ## 文档更新 不涉及 ## 类型标签 - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 - [x] AI辅助编写 See merge request: cann/ops-nn!10783 | 7 天前 | |
feat: 迁移第二批 TF 算子插件(新增 21 个 TF plugin 注册文件) Co-authored-by: Nice_try<zhangzhiwei108@huawei.com> # message auto-generated for no-merge-commit merge: !9685 merge tf-plugin-part2 into master feat: 迁移第二批 TF 算子插件(新增 21 个 TF plugin 注册文件) Created-by: Nice_try Commit-by: Nice_try Merged-by: cann-robot Description: ## 描述 本 PR 为 TensorFlow(TF)算子插件迁移的第二批(分支 tf-plugin-part2),新增 21 个 *_tf_plugin.cpp 插件注册文件,覆盖 common、conv、matmul、pooling、optim、norm、index、vfusion 模块。每个文件通过 REGISTER_CUSTOM_OP 将 TF 框架算子注册为自定义算子: - .FrameworkType(TENSORFLOW):声明算子来源于 TF 框架; - .OriginOpType(...):映射原始 TF 算子类型(含 Resource* 变体,如 ApplyAddSign / ResourceApplyAddSign); - 参数解析:多数算子通过 AutoMappingByOpFn 自动映射属性;Conv2D 额外将 filter format 固定为 HWCN,并根据 explicit_paddings 与输入 format(NCHW/NHWC)生成 pads 属性;Conv2DBackpropInput / Conv2DBackpropFilter / Conv3DBackpropFilter / Conv3DBackpropInput / AvgPool3D 等设置 NDHWC/NCDHW/DHWCN 等 format 与 pads 默认值;BatchMatMulV2 将 adj_x / adj_y 映射为 adj_x1 / adj_x2,并对 BatchMatMulV3 提供 ParseOpToGraphFn 将算子展开为 Data -> BatchMatMulV3 -> Cast 子图;InstanceNormGrad 提供 FusionParseParamsFn 融合参数解析接口; - .ImplyType(ImplyType::TVM):所有注册算子采用 TVM 实现。 ### 新增算子清单(21 个文件) | 文件 | 注册算子(OriginOpType) | |------|-------------------------| | common/src/framework/apply_add_sign_tf_plugin.cpp | ApplyAddSign(ApplyAddSign / ResourceApplyAddSign) | | common/src/framework/basic_lstm_cell_tf_plugin.cpp | BasicLSTMCell | | common/src/framework/basic_lstm_cell_grad_tf_plugin.cpp | BasicLSTMCellCStateGrad / BasicLSTMCellWeightGrad / BasicLSTMCellInputGrad | | common/src/framework/dynamic_lstm_tf_plugin.cpp | DynamicLSTM | | conv/conv2d_v2/framework/conv2d_tf_plugin.cpp | Conv2D | | conv/conv3d_v2/framework/conv3d_tf_plugin.cpp | Conv3D | | conv/conv3d_backprop_filter_v2/framework/conv2d_backprop_filter_tf_plugin.cpp | Conv2DBackpropFilter | | conv/conv3d_backprop_filter_v2/framework/conv3d_backprop_filter_tf_plugin.cpp | Conv3DBackpropFilter(Conv3DBackpropFilterV2) | | conv/conv3d_backprop_input_v2/framework/conv2d_backprop_input_tf_plugin.cpp | Conv2DBackpropInput | | conv/conv3d_backprop_input_v2/framework/conv3d_backprop_input_tf_plugin.cpp | Conv3DBackpropInput(Conv3DBackpropInputV2) | | index/non_zero_with_value_shape_v2/framework/non_zero_with_value_shape_v2_tf_plugin.cpp | NonZeroWithValueShapeV2 | | matmul/mat_mul_v3/framework/matmul_tf_plugin.cpp | MatMulV2(MatMul) | | matmul/batch_mat_mul_v3/framework/batch_matmul_tf_plugin.cpp | BatchMatMulV2(BatchMatMul / BatchMatMulV2 / BatchMatMulV3) | | norm/instance_norm_grad/framework/instance_norm_grad_tf_plugin.cpp | InstanceNormGrad | | optim/inplace_apply_adagrad_da/framework/apply_adagrad_da_tf_plugin.cpp | ApplyAdagradDA(ApplyAdagradDA / ResourceApplyAdagradDA) | | optim/inplace_apply_adagrad_v2/framework/apply_adagradv2_tf_plugin.cpp | ApplyAdagradV2(ApplyAdagradV2 / ResourceApplyAdagradV2) | | optim/inplace_apply_power_sign/framework/apply_power_sign_tf_plugin.cpp | ApplyPowerSign(ApplyPowerSign / ResourceApplyPowerSign) | | pooling/avg_pool3_d/framework/avg_pool3d_tf_plugin.cpp | AvgPool3D | | pooling/dilation2_d/framework/dilation2d_tf_plugin.cpp | Dilation2D | | pooling/max_pool_3d_grad_grad/framework/max_pool3d_grad_grad_tf_plugin.cpp | MaxPool3DGradGrad | | vfusion/normalize_bbox/framework/normalize_bbox_tf_plugin.cpp | NormalizeBBox | ### 改动原因 TF 算子插件迁移系列工作的第二批:将 TF 算子按模块拆分为独立的 */framework/*_tf_plugin.cpp 注册文件,统一注册方式与代码组织。 ## 关联的Issue - #5464 ## 测试 本次变更仅新增插件注册文件,未包含测试用例变更。 ## 文档更新 无。 ## 类型标签 - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述 ## AI/Agent生成声明 - [ ] AI辅助编写 See merge request: cann/ops-nn!9685 | 24 天前 | |
format cpp Co-authored-by: yang-di52<yangdi52@huawei.com> # message auto-generated for no-merge-commit merge: !6784 merge issue_fix into master format cpp Created-by: yang-di52 Commit-by: yang-di52 Merged-by: cann-robot Description: ## 描述 批量刷新cpp代码格式 ## 关联的Issue [#3791](https://gitcode.com/cann/ops-nn/issues/3791) ## 测试 <!--描述进行了哪些测试来验证你的改动。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述:代码格式化 ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!6784 | 2 个月前 | |
format cpp Co-authored-by: yang-di52<yangdi52@huawei.com> # message auto-generated for no-merge-commit merge: !6784 merge issue_fix into master format cpp Created-by: yang-di52 Commit-by: yang-di52 Merged-by: cann-robot Description: ## 描述 批量刷新cpp代码格式 ## 关联的Issue [#3791](https://gitcode.com/cann/ops-nn/issues/3791) ## 测试 <!--描述进行了哪些测试来验证你的改动。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述:代码格式化 ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!6784 | 2 个月前 | |
format cpp Co-authored-by: yang-di52<yangdi52@huawei.com> # message auto-generated for no-merge-commit merge: !6784 merge issue_fix into master format cpp Created-by: yang-di52 Commit-by: yang-di52 Merged-by: cann-robot Description: ## 描述 批量刷新cpp代码格式 ## 关联的Issue [#3791](https://gitcode.com/cann/ops-nn/issues/3791) ## 测试 <!--描述进行了哪些测试来验证你的改动。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述:代码格式化 ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!6784 | 2 个月前 | |
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 | 23 天前 | |
算子原型迁移 Co-authored-by: Zhezhezhezhe0414<zhangzhe180@h-partners.com> Co-authored-by: welt_lester<songlizhe1@h-partners.com> # message auto-generated for no-merge-commit merge: !9141 merge master into master 算子原型迁移 Created-by: welt_lester Commit-by: Zhezhezhezhe0414;welt_lester Merged-by: cann-robot Description: ## 描述 落实issue #4280,将AdaptiveMaxPool2d、Celu、LogSoftmaxV2、AscendAntiQuant、AscendAntiQuantV2、AscendDequant、AscendQuant、AvgPool、AvgPoolV2、BatchNorm、GeGluV2、InstanceNorm、LayerNorm、Relu这14个算子对应的原型从ops-nn/common/inc/op_graph/op_nn_proto_extend.h迁出到各自算子目录的op_graph目录下,再将公共目录下的原型定义删除,并补充相关的CMakeLists文件,同时为关联的插件补充头文件引用。 ## 关联的Issue [Bug-Report|缺陷反馈]: 有对应算子的原型不应该放到公共目录 [#4280](https://gitcode.com/cann/ops-nn/issues/4280) ## 测试 compile、本地验证build通过 ## 文档更新 不涉及 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述:代码重构(算子原型归属迁移,落实 #4280 ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!9141 | 1 个月前 | |
format cpp Co-authored-by: yang-di52<yangdi52@huawei.com> # message auto-generated for no-merge-commit merge: !6784 merge issue_fix into master format cpp Created-by: yang-di52 Commit-by: yang-di52 Merged-by: cann-robot Description: ## 描述 批量刷新cpp代码格式 ## 关联的Issue [#3791](https://gitcode.com/cann/ops-nn/issues/3791) ## 测试 <!--描述进行了哪些测试来验证你的改动。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述:代码格式化 ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!6784 | 2 个月前 | |
feat: 迁移第二批 TF 算子插件(新增 21 个 TF plugin 注册文件) Co-authored-by: Nice_try<zhangzhiwei108@huawei.com> # message auto-generated for no-merge-commit merge: !9685 merge tf-plugin-part2 into master feat: 迁移第二批 TF 算子插件(新增 21 个 TF plugin 注册文件) Created-by: Nice_try Commit-by: Nice_try Merged-by: cann-robot Description: ## 描述 本 PR 为 TensorFlow(TF)算子插件迁移的第二批(分支 tf-plugin-part2),新增 21 个 *_tf_plugin.cpp 插件注册文件,覆盖 common、conv、matmul、pooling、optim、norm、index、vfusion 模块。每个文件通过 REGISTER_CUSTOM_OP 将 TF 框架算子注册为自定义算子: - .FrameworkType(TENSORFLOW):声明算子来源于 TF 框架; - .OriginOpType(...):映射原始 TF 算子类型(含 Resource* 变体,如 ApplyAddSign / ResourceApplyAddSign); - 参数解析:多数算子通过 AutoMappingByOpFn 自动映射属性;Conv2D 额外将 filter format 固定为 HWCN,并根据 explicit_paddings 与输入 format(NCHW/NHWC)生成 pads 属性;Conv2DBackpropInput / Conv2DBackpropFilter / Conv3DBackpropFilter / Conv3DBackpropInput / AvgPool3D 等设置 NDHWC/NCDHW/DHWCN 等 format 与 pads 默认值;BatchMatMulV2 将 adj_x / adj_y 映射为 adj_x1 / adj_x2,并对 BatchMatMulV3 提供 ParseOpToGraphFn 将算子展开为 Data -> BatchMatMulV3 -> Cast 子图;InstanceNormGrad 提供 FusionParseParamsFn 融合参数解析接口; - .ImplyType(ImplyType::TVM):所有注册算子采用 TVM 实现。 ### 新增算子清单(21 个文件) | 文件 | 注册算子(OriginOpType) | |------|-------------------------| | common/src/framework/apply_add_sign_tf_plugin.cpp | ApplyAddSign(ApplyAddSign / ResourceApplyAddSign) | | common/src/framework/basic_lstm_cell_tf_plugin.cpp | BasicLSTMCell | | common/src/framework/basic_lstm_cell_grad_tf_plugin.cpp | BasicLSTMCellCStateGrad / BasicLSTMCellWeightGrad / BasicLSTMCellInputGrad | | common/src/framework/dynamic_lstm_tf_plugin.cpp | DynamicLSTM | | conv/conv2d_v2/framework/conv2d_tf_plugin.cpp | Conv2D | | conv/conv3d_v2/framework/conv3d_tf_plugin.cpp | Conv3D | | conv/conv3d_backprop_filter_v2/framework/conv2d_backprop_filter_tf_plugin.cpp | Conv2DBackpropFilter | | conv/conv3d_backprop_filter_v2/framework/conv3d_backprop_filter_tf_plugin.cpp | Conv3DBackpropFilter(Conv3DBackpropFilterV2) | | conv/conv3d_backprop_input_v2/framework/conv2d_backprop_input_tf_plugin.cpp | Conv2DBackpropInput | | conv/conv3d_backprop_input_v2/framework/conv3d_backprop_input_tf_plugin.cpp | Conv3DBackpropInput(Conv3DBackpropInputV2) | | index/non_zero_with_value_shape_v2/framework/non_zero_with_value_shape_v2_tf_plugin.cpp | NonZeroWithValueShapeV2 | | matmul/mat_mul_v3/framework/matmul_tf_plugin.cpp | MatMulV2(MatMul) | | matmul/batch_mat_mul_v3/framework/batch_matmul_tf_plugin.cpp | BatchMatMulV2(BatchMatMul / BatchMatMulV2 / BatchMatMulV3) | | norm/instance_norm_grad/framework/instance_norm_grad_tf_plugin.cpp | InstanceNormGrad | | optim/inplace_apply_adagrad_da/framework/apply_adagrad_da_tf_plugin.cpp | ApplyAdagradDA(ApplyAdagradDA / ResourceApplyAdagradDA) | | optim/inplace_apply_adagrad_v2/framework/apply_adagradv2_tf_plugin.cpp | ApplyAdagradV2(ApplyAdagradV2 / ResourceApplyAdagradV2) | | optim/inplace_apply_power_sign/framework/apply_power_sign_tf_plugin.cpp | ApplyPowerSign(ApplyPowerSign / ResourceApplyPowerSign) | | pooling/avg_pool3_d/framework/avg_pool3d_tf_plugin.cpp | AvgPool3D | | pooling/dilation2_d/framework/dilation2d_tf_plugin.cpp | Dilation2D | | pooling/max_pool_3d_grad_grad/framework/max_pool3d_grad_grad_tf_plugin.cpp | MaxPool3DGradGrad | | vfusion/normalize_bbox/framework/normalize_bbox_tf_plugin.cpp | NormalizeBBox | ### 改动原因 TF 算子插件迁移系列工作的第二批:将 TF 算子按模块拆分为独立的 */framework/*_tf_plugin.cpp 注册文件,统一注册方式与代码组织。 ## 关联的Issue - #5464 ## 测试 本次变更仅新增插件注册文件,未包含测试用例变更。 ## 文档更新 无。 ## 类型标签 - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述 ## AI/Agent生成声明 - [ ] AI辅助编写 See merge request: cann/ops-nn!9685 | 24 天前 | |
feat: 迁移第二批 TF 算子插件(新增 21 个 TF plugin 注册文件) Co-authored-by: Nice_try<zhangzhiwei108@huawei.com> # message auto-generated for no-merge-commit merge: !9685 merge tf-plugin-part2 into master feat: 迁移第二批 TF 算子插件(新增 21 个 TF plugin 注册文件) Created-by: Nice_try Commit-by: Nice_try Merged-by: cann-robot Description: ## 描述 本 PR 为 TensorFlow(TF)算子插件迁移的第二批(分支 tf-plugin-part2),新增 21 个 *_tf_plugin.cpp 插件注册文件,覆盖 common、conv、matmul、pooling、optim、norm、index、vfusion 模块。每个文件通过 REGISTER_CUSTOM_OP 将 TF 框架算子注册为自定义算子: - .FrameworkType(TENSORFLOW):声明算子来源于 TF 框架; - .OriginOpType(...):映射原始 TF 算子类型(含 Resource* 变体,如 ApplyAddSign / ResourceApplyAddSign); - 参数解析:多数算子通过 AutoMappingByOpFn 自动映射属性;Conv2D 额外将 filter format 固定为 HWCN,并根据 explicit_paddings 与输入 format(NCHW/NHWC)生成 pads 属性;Conv2DBackpropInput / Conv2DBackpropFilter / Conv3DBackpropFilter / Conv3DBackpropInput / AvgPool3D 等设置 NDHWC/NCDHW/DHWCN 等 format 与 pads 默认值;BatchMatMulV2 将 adj_x / adj_y 映射为 adj_x1 / adj_x2,并对 BatchMatMulV3 提供 ParseOpToGraphFn 将算子展开为 Data -> BatchMatMulV3 -> Cast 子图;InstanceNormGrad 提供 FusionParseParamsFn 融合参数解析接口; - .ImplyType(ImplyType::TVM):所有注册算子采用 TVM 实现。 ### 新增算子清单(21 个文件) | 文件 | 注册算子(OriginOpType) | |------|-------------------------| | common/src/framework/apply_add_sign_tf_plugin.cpp | ApplyAddSign(ApplyAddSign / ResourceApplyAddSign) | | common/src/framework/basic_lstm_cell_tf_plugin.cpp | BasicLSTMCell | | common/src/framework/basic_lstm_cell_grad_tf_plugin.cpp | BasicLSTMCellCStateGrad / BasicLSTMCellWeightGrad / BasicLSTMCellInputGrad | | common/src/framework/dynamic_lstm_tf_plugin.cpp | DynamicLSTM | | conv/conv2d_v2/framework/conv2d_tf_plugin.cpp | Conv2D | | conv/conv3d_v2/framework/conv3d_tf_plugin.cpp | Conv3D | | conv/conv3d_backprop_filter_v2/framework/conv2d_backprop_filter_tf_plugin.cpp | Conv2DBackpropFilter | | conv/conv3d_backprop_filter_v2/framework/conv3d_backprop_filter_tf_plugin.cpp | Conv3DBackpropFilter(Conv3DBackpropFilterV2) | | conv/conv3d_backprop_input_v2/framework/conv2d_backprop_input_tf_plugin.cpp | Conv2DBackpropInput | | conv/conv3d_backprop_input_v2/framework/conv3d_backprop_input_tf_plugin.cpp | Conv3DBackpropInput(Conv3DBackpropInputV2) | | index/non_zero_with_value_shape_v2/framework/non_zero_with_value_shape_v2_tf_plugin.cpp | NonZeroWithValueShapeV2 | | matmul/mat_mul_v3/framework/matmul_tf_plugin.cpp | MatMulV2(MatMul) | | matmul/batch_mat_mul_v3/framework/batch_matmul_tf_plugin.cpp | BatchMatMulV2(BatchMatMul / BatchMatMulV2 / BatchMatMulV3) | | norm/instance_norm_grad/framework/instance_norm_grad_tf_plugin.cpp | InstanceNormGrad | | optim/inplace_apply_adagrad_da/framework/apply_adagrad_da_tf_plugin.cpp | ApplyAdagradDA(ApplyAdagradDA / ResourceApplyAdagradDA) | | optim/inplace_apply_adagrad_v2/framework/apply_adagradv2_tf_plugin.cpp | ApplyAdagradV2(ApplyAdagradV2 / ResourceApplyAdagradV2) | | optim/inplace_apply_power_sign/framework/apply_power_sign_tf_plugin.cpp | ApplyPowerSign(ApplyPowerSign / ResourceApplyPowerSign) | | pooling/avg_pool3_d/framework/avg_pool3d_tf_plugin.cpp | AvgPool3D | | pooling/dilation2_d/framework/dilation2d_tf_plugin.cpp | Dilation2D | | pooling/max_pool_3d_grad_grad/framework/max_pool3d_grad_grad_tf_plugin.cpp | MaxPool3DGradGrad | | vfusion/normalize_bbox/framework/normalize_bbox_tf_plugin.cpp | NormalizeBBox | ### 改动原因 TF 算子插件迁移系列工作的第二批:将 TF 算子按模块拆分为独立的 */framework/*_tf_plugin.cpp 注册文件,统一注册方式与代码组织。 ## 关联的Issue - #5464 ## 测试 本次变更仅新增插件注册文件,未包含测试用例变更。 ## 文档更新 无。 ## 类型标签 - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述 ## AI/Agent生成声明 - [ ] AI辅助编写 See merge request: cann/ops-nn!9685 | 24 天前 | |
format cpp Co-authored-by: yang-di52<yangdi52@huawei.com> # message auto-generated for no-merge-commit merge: !6784 merge issue_fix into master format cpp Created-by: yang-di52 Commit-by: yang-di52 Merged-by: cann-robot Description: ## 描述 批量刷新cpp代码格式 ## 关联的Issue [#3791](https://gitcode.com/cann/ops-nn/issues/3791) ## 测试 <!--描述进行了哪些测试来验证你的改动。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述:代码格式化 ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!6784 | 2 个月前 | |
fix: onnx插件解析属性时零值字段被GE省略导致回退默认值 Co-authored-by: clinglai0517<laichangling@huawei.com> # message auto-generated for no-merge-commit merge: !10783 merge elu-onnx-fix into master fix: onnx插件解析属性时零值字段被GE省略导致回退默认值 Created-by: clinglai0517 Commit-by: clinglai0517 Merged-by: cann-robot Description: ## 描述 GE 序列化 ONNX 算子属性为 JSON 时,会省略值为 0 的标量字段(float 的 "f"、int 的 "i")。部分插件用 attr.contains("f"/"i") 判断属性是否存在,或直接访问 attr["f"/"i"],导致属性传 0 时被错误回退到算子默认值,或直接抛异常使转换失败。 修复方式:先按 name 判断属性是否存在,值字段缺失时按该类型的 protobuf 默认值 0 处理,而不是回退默认值或抛异常。 涉及算子: - Elu(alpha) - LeakyRelu(alpha) - HardMax(axis) - AdaCast(pixel) - GroupNormRelu(eps / num_groups) - BoundingBoxDecode(wh_ratio_clip) - AscendAntiQuantV2(dst_dtype) ## 关联的Issue Issue #6004 ## 测试 - 编译:bash build.sh --onnxplugin -j16 通过(7 个修复源文件全部编译通过)。 - 单测:bash build.sh -u --ophost --ops=elu,leaky_relu,hardmax,ada_cast,14 个用例全部 PASSED(含各算子新增的「零值字段缺失」用例)。 - 端到端 NPU(Ascend 910B3 / CANN 9.0.0):ELU alpha=0 负半轴输出 [0,0,0,0],alpha=3.0 回归无影响。 ## 文档更新 不涉及 ## 类型标签 - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 - [x] AI辅助编写 See merge request: cann/ops-nn!10783 | 7 天前 | |
format cpp Co-authored-by: yang-di52<yangdi52@huawei.com> # message auto-generated for no-merge-commit merge: !6784 merge issue_fix into master format cpp Created-by: yang-di52 Commit-by: yang-di52 Merged-by: cann-robot Description: ## 描述 批量刷新cpp代码格式 ## 关联的Issue [#3791](https://gitcode.com/cann/ops-nn/issues/3791) ## 测试 <!--描述进行了哪些测试来验证你的改动。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述:代码格式化 ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!6784 | 2 个月前 | |
feat: 新增16个算子的TensorFlow插件注册 Co-authored-by: Nice_try<zhangzhiwei108@huawei.com> # message auto-generated for no-merge-commit merge: !9643 merge tf_plugin into master feat: 新增16个算子的TensorFlow插件注册 Created-by: Nice_try Commit-by: Nice_try Merged-by: cann-robot Description: ## 描述 本次变更为 16 个算子新增 TensorFlow 框架插件注册( *_tf_plugin.cpp),使这些算子在 TensorFlow 图解析时可通过 REGISTER_CUSTOM_OP 自动映射到昇腾算子(AutoMappingByOpFn,ImplyType::TVM),注册模式与仓库内已有 *_tf_plugin.cpp 文件保持一致。 新增注册的算子(16 个): | 算子 | 注册文件 | |------|----------| | PReluGrad | activation/p_relu_grad_update/framework/prelu_grad_tf_plugin.cpp | | Centralization | common/src/framework/centralization_tf_plugin.cpp | | DynamicAUGRUGrad | common/src/framework/dynamic_augru_grad_tf_plugin.cpp | | DynamicAUGRU | common/src/framework/dynamic_augru_tf_plugin.cpp | | DynamicGRUV2Grad | common/src/framework/dynamic_gruv2_grad_tf_plugin.cpp | | DynamicGRUV2 | common/src/framework/dynamic_gruv2_tf_plugin.cpp | | DynamicRNNGrad | common/src/framework/dynamic_rnn_grad_tf_plugin.cpp | | LRNGrad | common/src/framework/lrn_grad_tf_plugin.cpp | | LRN | common/src/framework/lrn_tf_plugin.cpp | | LRUCacheV2 | common/src/framework/lru_cache_v2_tf_plugin.cpp | | MaxPoolGradGrad | common/src/framework/max_pool_grad_grad_tf_plugin.cpp | | BNInferGrad | norm/bn_infer_grad/framework/bn_infer_grad_tf_plugin.cpp | | MaxPoolGradGradWithArgmax | pooling/max_pool_grad_grad_with_argmax/framework/max_pool_grad_grad_with_argmax_tf_plugin.cpp | | MaxPoolV2 | pooling/max_pool_v2/framework/max_pool_v2_tf_plugin.cpp | | MaxPool | pooling/max_pool_v3/framework/max_pool_v3_tf_plugin.cpp | | Dequantize | quant/dequantize/framework/dequantize_tf_plugin.cpp | ## 关联的Issue - 关联 Issue:https://gitcode.com/cann/ops-nn/issues/5447 ## 测试 本次改动仅为算子注册文件(编译期注册),未包含测试用例。 ## 文档更新 无。 ## 类型标签 - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 - [ ] AI辅助编写 See merge request: cann/ops-nn!9643 | 24 天前 | |
format cpp Co-authored-by: yang-di52<yangdi52@huawei.com> # message auto-generated for no-merge-commit merge: !6784 merge issue_fix into master format cpp Created-by: yang-di52 Commit-by: yang-di52 Merged-by: cann-robot Description: ## 描述 批量刷新cpp代码格式 ## 关联的Issue [#3791](https://gitcode.com/cann/ops-nn/issues/3791) ## 测试 <!--描述进行了哪些测试来验证你的改动。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述:代码格式化 ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!6784 | 2 个月前 | |
shift Val Conv Plugin Fix Co-authored-by: xinweiliu<liuxinwei12@huawei.com> # message auto-generated for no-merge-commit merge: !8272 merge shift_val_plugin_fix into master shift Val Conv Plugin Fix Created-by: xinweiliu Commit-by: xinweiliu Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> Conv plugin 修复 shift value 属性传递 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> [#4578](https://gitcode.com/cann/ops-nn/issues/4578) ## 测试 <!--描述进行了哪些测试来验证你的改动。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!8272 | 1 个月前 | |
移除ExtendConvTranspose多余attr定义 Co-authored-by: YuanTianyi<yuantianyi1@huawei.com> # message auto-generated for no-merge-commit merge: !7679 merge remove_attr into master 移除ExtendConvTranspose多余attr定义 Created-by: YuanTianyi Commit-by: YuanTianyi Merged-by: cann-robot Description: ## 描述 移除ExtendConvTranspose opDef多余的fixedShiftValue attr定义 在onnx_conv_transpose_pulgin新增fixedShiftValue的传递设置逻辑 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> https://gitcode.com/cann/ops-nn/issues/4169 ## 测试 <!--描述进行了哪些测试来验证你的改动。--> rdv测试,自验证测试通过 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!7679 | 2 个月前 | |
feat: 新增13个ONNX标准算子插件(Conv/Gemm/Pool/Normalization/SparseToDense) Co-authored-by: tianqiguang<tianqiguang@huawei.com> # message auto-generated for no-merge-commit merge: !7471 merge master into master feat: 新增13个ONNX标准算子插件(Conv/Gemm/Pool/Normalization/SparseToDense) Created-by: tianqiguang Commit-by: tianqiguang Merged-by: cann-robot Description: ## 描述 将 ONNX 标准算子插件从内部仓库迁移至开源仓库,新增 13 个 ONNX 算子插件的解析实现,覆盖卷积、池化、全连接、归一化等常见神经网络算子,支持多版本 ONNX opset。 | 序号 | 算子 | 文件名 | 行数 | |------|------|--------|------| | 1 | AveragePool | average_pool_onnx_plugin.cpp | 282 | | 2 | Conv | conv_onnx_plugin.cpp | 350 | | 3 | ConvTranspose | conv_transpose_onnx_plugin.cpp | 437 | | 4 | DeformableConv2d | deformable_conv2d_onnx_plugin.cpp | 145 | | 5 | Gemm | gemm_onnx_plugin.cpp | 134 | | 6 | Int8Conv | int8_conv_onnx_plugin.cpp | 250 | | 7 | Int8ConvRelu | int8_conv_relu_onnx_plugin.cpp | 369 | | 8 | Int8FC | int8_fc_onnx_plugin.cpp | 164 | | 9 | LayerNormalization | layer_normalization_onnx_plugin.cpp | 153 | | 10 | LpPool | lppool_onnx_plugin.cpp | 371 | | 11 | MaxPool | max_pool_onnx_plugin.cpp | 388 | | 12 | MaxUnpool | maxunpool_onnx_plugin.cpp | 226 | | 13 | SparseToDense | sparse_to_dense_onnx_plugin.cpp | 44 | ### 实现方式 每个插件文件通过 REGISTER_CUSTOM_OP 宏注册算子,实现 ONNX 算子属性到 Ascend IR 的映射: - 解析 ONNX NodeProto 中的算子属性(strides、pads、dilations、groups 等) - 转换为 Ascend GE 算子属性并通过 ge::Operator::SetAttr 设置 - 注册为 FrameworkType(ONNX) + ImplyType(TVM) 的定制算子 ## 测试 - ONNX 标准算子兼容性验证 - 与现有框架集成测试 ## 文档更新 无 ## 类型标签 - [x] 新特性 ## AI/Agent生成声明 - [x] AI辅助编写 ## 关联的Issue - #4076 See merge request: cann/ops-nn!7471 | 2 个月前 | |
迁移3个TF plugin Co-authored-by: akira<zhouyuanhang4@h-partners.com> # message auto-generated for no-merge-commit merge: !10288 merge tf_plugin_migration_from_canndev into master 迁移3个TF plugin Created-by: VoyageZhou Commit-by: akira Merged-by: cann-robot Description: ## 描述 迁移3个TF plugin - depthwise_conv2d_backprop_filter_plugin.cc - depthwise_conv2d_backprop_input_plugin.cc - depthwise_conv2d_forward_native_plugin.cc <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> [Issue 5812](https://gitcode.com/cann/ops-nn/issues/5812) ## 测试 <!--描述进行了哪些测试来验证你的改动。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [x] AI辅助编写 See merge request: cann/ops-nn!10288 | 13 天前 | |
迁移3个TF plugin Co-authored-by: akira<zhouyuanhang4@h-partners.com> # message auto-generated for no-merge-commit merge: !10288 merge tf_plugin_migration_from_canndev into master 迁移3个TF plugin Created-by: VoyageZhou Commit-by: akira Merged-by: cann-robot Description: ## 描述 迁移3个TF plugin - depthwise_conv2d_backprop_filter_plugin.cc - depthwise_conv2d_backprop_input_plugin.cc - depthwise_conv2d_forward_native_plugin.cc <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> [Issue 5812](https://gitcode.com/cann/ops-nn/issues/5812) ## 测试 <!--描述进行了哪些测试来验证你的改动。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [x] AI辅助编写 See merge request: cann/ops-nn!10288 | 13 天前 | |
迁移3个TF plugin Co-authored-by: akira<zhouyuanhang4@h-partners.com> # message auto-generated for no-merge-commit merge: !10288 merge tf_plugin_migration_from_canndev into master 迁移3个TF plugin Created-by: VoyageZhou Commit-by: akira Merged-by: cann-robot Description: ## 描述 迁移3个TF plugin - depthwise_conv2d_backprop_filter_plugin.cc - depthwise_conv2d_backprop_input_plugin.cc - depthwise_conv2d_forward_native_plugin.cc <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> [Issue 5812](https://gitcode.com/cann/ops-nn/issues/5812) ## 测试 <!--描述进行了哪些测试来验证你的改动。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [x] AI辅助编写 See merge request: cann/ops-nn!10288 | 13 天前 | |
format cpp Co-authored-by: yang-di52<yangdi52@huawei.com> # message auto-generated for no-merge-commit merge: !6784 merge issue_fix into master format cpp Created-by: yang-di52 Commit-by: yang-di52 Merged-by: cann-robot Description: ## 描述 批量刷新cpp代码格式 ## 关联的Issue [#3791](https://gitcode.com/cann/ops-nn/issues/3791) ## 测试 <!--描述进行了哪些测试来验证你的改动。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述:代码格式化 ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!6784 | 2 个月前 | |
feat: 新增16个算子的TensorFlow插件注册 Co-authored-by: Nice_try<zhangzhiwei108@huawei.com> # message auto-generated for no-merge-commit merge: !9643 merge tf_plugin into master feat: 新增16个算子的TensorFlow插件注册 Created-by: Nice_try Commit-by: Nice_try Merged-by: cann-robot Description: ## 描述 本次变更为 16 个算子新增 TensorFlow 框架插件注册( *_tf_plugin.cpp),使这些算子在 TensorFlow 图解析时可通过 REGISTER_CUSTOM_OP 自动映射到昇腾算子(AutoMappingByOpFn,ImplyType::TVM),注册模式与仓库内已有 *_tf_plugin.cpp 文件保持一致。 新增注册的算子(16 个): | 算子 | 注册文件 | |------|----------| | PReluGrad | activation/p_relu_grad_update/framework/prelu_grad_tf_plugin.cpp | | Centralization | common/src/framework/centralization_tf_plugin.cpp | | DynamicAUGRUGrad | common/src/framework/dynamic_augru_grad_tf_plugin.cpp | | DynamicAUGRU | common/src/framework/dynamic_augru_tf_plugin.cpp | | DynamicGRUV2Grad | common/src/framework/dynamic_gruv2_grad_tf_plugin.cpp | | DynamicGRUV2 | common/src/framework/dynamic_gruv2_tf_plugin.cpp | | DynamicRNNGrad | common/src/framework/dynamic_rnn_grad_tf_plugin.cpp | | LRNGrad | common/src/framework/lrn_grad_tf_plugin.cpp | | LRN | common/src/framework/lrn_tf_plugin.cpp | | LRUCacheV2 | common/src/framework/lru_cache_v2_tf_plugin.cpp | | MaxPoolGradGrad | common/src/framework/max_pool_grad_grad_tf_plugin.cpp | | BNInferGrad | norm/bn_infer_grad/framework/bn_infer_grad_tf_plugin.cpp | | MaxPoolGradGradWithArgmax | pooling/max_pool_grad_grad_with_argmax/framework/max_pool_grad_grad_with_argmax_tf_plugin.cpp | | MaxPoolV2 | pooling/max_pool_v2/framework/max_pool_v2_tf_plugin.cpp | | MaxPool | pooling/max_pool_v3/framework/max_pool_v3_tf_plugin.cpp | | Dequantize | quant/dequantize/framework/dequantize_tf_plugin.cpp | ## 关联的Issue - 关联 Issue:https://gitcode.com/cann/ops-nn/issues/5447 ## 测试 本次改动仅为算子注册文件(编译期注册),未包含测试用例。 ## 文档更新 无。 ## 类型标签 - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 - [ ] AI辅助编写 See merge request: cann/ops-nn!9643 | 24 天前 | |
feat: 新增16个算子的TensorFlow插件注册 Co-authored-by: Nice_try<zhangzhiwei108@huawei.com> # message auto-generated for no-merge-commit merge: !9643 merge tf_plugin into master feat: 新增16个算子的TensorFlow插件注册 Created-by: Nice_try Commit-by: Nice_try Merged-by: cann-robot Description: ## 描述 本次变更为 16 个算子新增 TensorFlow 框架插件注册( *_tf_plugin.cpp),使这些算子在 TensorFlow 图解析时可通过 REGISTER_CUSTOM_OP 自动映射到昇腾算子(AutoMappingByOpFn,ImplyType::TVM),注册模式与仓库内已有 *_tf_plugin.cpp 文件保持一致。 新增注册的算子(16 个): | 算子 | 注册文件 | |------|----------| | PReluGrad | activation/p_relu_grad_update/framework/prelu_grad_tf_plugin.cpp | | Centralization | common/src/framework/centralization_tf_plugin.cpp | | DynamicAUGRUGrad | common/src/framework/dynamic_augru_grad_tf_plugin.cpp | | DynamicAUGRU | common/src/framework/dynamic_augru_tf_plugin.cpp | | DynamicGRUV2Grad | common/src/framework/dynamic_gruv2_grad_tf_plugin.cpp | | DynamicGRUV2 | common/src/framework/dynamic_gruv2_tf_plugin.cpp | | DynamicRNNGrad | common/src/framework/dynamic_rnn_grad_tf_plugin.cpp | | LRNGrad | common/src/framework/lrn_grad_tf_plugin.cpp | | LRN | common/src/framework/lrn_tf_plugin.cpp | | LRUCacheV2 | common/src/framework/lru_cache_v2_tf_plugin.cpp | | MaxPoolGradGrad | common/src/framework/max_pool_grad_grad_tf_plugin.cpp | | BNInferGrad | norm/bn_infer_grad/framework/bn_infer_grad_tf_plugin.cpp | | MaxPoolGradGradWithArgmax | pooling/max_pool_grad_grad_with_argmax/framework/max_pool_grad_grad_with_argmax_tf_plugin.cpp | | MaxPoolV2 | pooling/max_pool_v2/framework/max_pool_v2_tf_plugin.cpp | | MaxPool | pooling/max_pool_v3/framework/max_pool_v3_tf_plugin.cpp | | Dequantize | quant/dequantize/framework/dequantize_tf_plugin.cpp | ## 关联的Issue - 关联 Issue:https://gitcode.com/cann/ops-nn/issues/5447 ## 测试 本次改动仅为算子注册文件(编译期注册),未包含测试用例。 ## 文档更新 无。 ## 类型标签 - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 - [ ] AI辅助编写 See merge request: cann/ops-nn!9643 | 24 天前 | |
feat: 新增16个算子的TensorFlow插件注册 Co-authored-by: Nice_try<zhangzhiwei108@huawei.com> # message auto-generated for no-merge-commit merge: !9643 merge tf_plugin into master feat: 新增16个算子的TensorFlow插件注册 Created-by: Nice_try Commit-by: Nice_try Merged-by: cann-robot Description: ## 描述 本次变更为 16 个算子新增 TensorFlow 框架插件注册( *_tf_plugin.cpp),使这些算子在 TensorFlow 图解析时可通过 REGISTER_CUSTOM_OP 自动映射到昇腾算子(AutoMappingByOpFn,ImplyType::TVM),注册模式与仓库内已有 *_tf_plugin.cpp 文件保持一致。 新增注册的算子(16 个): | 算子 | 注册文件 | |------|----------| | PReluGrad | activation/p_relu_grad_update/framework/prelu_grad_tf_plugin.cpp | | Centralization | common/src/framework/centralization_tf_plugin.cpp | | DynamicAUGRUGrad | common/src/framework/dynamic_augru_grad_tf_plugin.cpp | | DynamicAUGRU | common/src/framework/dynamic_augru_tf_plugin.cpp | | DynamicGRUV2Grad | common/src/framework/dynamic_gruv2_grad_tf_plugin.cpp | | DynamicGRUV2 | common/src/framework/dynamic_gruv2_tf_plugin.cpp | | DynamicRNNGrad | common/src/framework/dynamic_rnn_grad_tf_plugin.cpp | | LRNGrad | common/src/framework/lrn_grad_tf_plugin.cpp | | LRN | common/src/framework/lrn_tf_plugin.cpp | | LRUCacheV2 | common/src/framework/lru_cache_v2_tf_plugin.cpp | | MaxPoolGradGrad | common/src/framework/max_pool_grad_grad_tf_plugin.cpp | | BNInferGrad | norm/bn_infer_grad/framework/bn_infer_grad_tf_plugin.cpp | | MaxPoolGradGradWithArgmax | pooling/max_pool_grad_grad_with_argmax/framework/max_pool_grad_grad_with_argmax_tf_plugin.cpp | | MaxPoolV2 | pooling/max_pool_v2/framework/max_pool_v2_tf_plugin.cpp | | MaxPool | pooling/max_pool_v3/framework/max_pool_v3_tf_plugin.cpp | | Dequantize | quant/dequantize/framework/dequantize_tf_plugin.cpp | ## 关联的Issue - 关联 Issue:https://gitcode.com/cann/ops-nn/issues/5447 ## 测试 本次改动仅为算子注册文件(编译期注册),未包含测试用例。 ## 文档更新 无。 ## 类型标签 - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 - [ ] AI辅助编写 See merge request: cann/ops-nn!9643 | 24 天前 | |
feat: 新增16个算子的TensorFlow插件注册 Co-authored-by: Nice_try<zhangzhiwei108@huawei.com> # message auto-generated for no-merge-commit merge: !9643 merge tf_plugin into master feat: 新增16个算子的TensorFlow插件注册 Created-by: Nice_try Commit-by: Nice_try Merged-by: cann-robot Description: ## 描述 本次变更为 16 个算子新增 TensorFlow 框架插件注册( *_tf_plugin.cpp),使这些算子在 TensorFlow 图解析时可通过 REGISTER_CUSTOM_OP 自动映射到昇腾算子(AutoMappingByOpFn,ImplyType::TVM),注册模式与仓库内已有 *_tf_plugin.cpp 文件保持一致。 新增注册的算子(16 个): | 算子 | 注册文件 | |------|----------| | PReluGrad | activation/p_relu_grad_update/framework/prelu_grad_tf_plugin.cpp | | Centralization | common/src/framework/centralization_tf_plugin.cpp | | DynamicAUGRUGrad | common/src/framework/dynamic_augru_grad_tf_plugin.cpp | | DynamicAUGRU | common/src/framework/dynamic_augru_tf_plugin.cpp | | DynamicGRUV2Grad | common/src/framework/dynamic_gruv2_grad_tf_plugin.cpp | | DynamicGRUV2 | common/src/framework/dynamic_gruv2_tf_plugin.cpp | | DynamicRNNGrad | common/src/framework/dynamic_rnn_grad_tf_plugin.cpp | | LRNGrad | common/src/framework/lrn_grad_tf_plugin.cpp | | LRN | common/src/framework/lrn_tf_plugin.cpp | | LRUCacheV2 | common/src/framework/lru_cache_v2_tf_plugin.cpp | | MaxPoolGradGrad | common/src/framework/max_pool_grad_grad_tf_plugin.cpp | | BNInferGrad | norm/bn_infer_grad/framework/bn_infer_grad_tf_plugin.cpp | | MaxPoolGradGradWithArgmax | pooling/max_pool_grad_grad_with_argmax/framework/max_pool_grad_grad_with_argmax_tf_plugin.cpp | | MaxPoolV2 | pooling/max_pool_v2/framework/max_pool_v2_tf_plugin.cpp | | MaxPool | pooling/max_pool_v3/framework/max_pool_v3_tf_plugin.cpp | | Dequantize | quant/dequantize/framework/dequantize_tf_plugin.cpp | ## 关联的Issue - 关联 Issue:https://gitcode.com/cann/ops-nn/issues/5447 ## 测试 本次改动仅为算子注册文件(编译期注册),未包含测试用例。 ## 文档更新 无。 ## 类型标签 - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 - [ ] AI辅助编写 See merge request: cann/ops-nn!9643 | 24 天前 | |
feat: 迁移第二批 TF 算子插件(新增 21 个 TF plugin 注册文件) Co-authored-by: Nice_try<zhangzhiwei108@huawei.com> # message auto-generated for no-merge-commit merge: !9685 merge tf-plugin-part2 into master feat: 迁移第二批 TF 算子插件(新增 21 个 TF plugin 注册文件) Created-by: Nice_try Commit-by: Nice_try Merged-by: cann-robot Description: ## 描述 本 PR 为 TensorFlow(TF)算子插件迁移的第二批(分支 tf-plugin-part2),新增 21 个 *_tf_plugin.cpp 插件注册文件,覆盖 common、conv、matmul、pooling、optim、norm、index、vfusion 模块。每个文件通过 REGISTER_CUSTOM_OP 将 TF 框架算子注册为自定义算子: - .FrameworkType(TENSORFLOW):声明算子来源于 TF 框架; - .OriginOpType(...):映射原始 TF 算子类型(含 Resource* 变体,如 ApplyAddSign / ResourceApplyAddSign); - 参数解析:多数算子通过 AutoMappingByOpFn 自动映射属性;Conv2D 额外将 filter format 固定为 HWCN,并根据 explicit_paddings 与输入 format(NCHW/NHWC)生成 pads 属性;Conv2DBackpropInput / Conv2DBackpropFilter / Conv3DBackpropFilter / Conv3DBackpropInput / AvgPool3D 等设置 NDHWC/NCDHW/DHWCN 等 format 与 pads 默认值;BatchMatMulV2 将 adj_x / adj_y 映射为 adj_x1 / adj_x2,并对 BatchMatMulV3 提供 ParseOpToGraphFn 将算子展开为 Data -> BatchMatMulV3 -> Cast 子图;InstanceNormGrad 提供 FusionParseParamsFn 融合参数解析接口; - .ImplyType(ImplyType::TVM):所有注册算子采用 TVM 实现。 ### 新增算子清单(21 个文件) | 文件 | 注册算子(OriginOpType) | |------|-------------------------| | common/src/framework/apply_add_sign_tf_plugin.cpp | ApplyAddSign(ApplyAddSign / ResourceApplyAddSign) | | common/src/framework/basic_lstm_cell_tf_plugin.cpp | BasicLSTMCell | | common/src/framework/basic_lstm_cell_grad_tf_plugin.cpp | BasicLSTMCellCStateGrad / BasicLSTMCellWeightGrad / BasicLSTMCellInputGrad | | common/src/framework/dynamic_lstm_tf_plugin.cpp | DynamicLSTM | | conv/conv2d_v2/framework/conv2d_tf_plugin.cpp | Conv2D | | conv/conv3d_v2/framework/conv3d_tf_plugin.cpp | Conv3D | | conv/conv3d_backprop_filter_v2/framework/conv2d_backprop_filter_tf_plugin.cpp | Conv2DBackpropFilter | | conv/conv3d_backprop_filter_v2/framework/conv3d_backprop_filter_tf_plugin.cpp | Conv3DBackpropFilter(Conv3DBackpropFilterV2) | | conv/conv3d_backprop_input_v2/framework/conv2d_backprop_input_tf_plugin.cpp | Conv2DBackpropInput | | conv/conv3d_backprop_input_v2/framework/conv3d_backprop_input_tf_plugin.cpp | Conv3DBackpropInput(Conv3DBackpropInputV2) | | index/non_zero_with_value_shape_v2/framework/non_zero_with_value_shape_v2_tf_plugin.cpp | NonZeroWithValueShapeV2 | | matmul/mat_mul_v3/framework/matmul_tf_plugin.cpp | MatMulV2(MatMul) | | matmul/batch_mat_mul_v3/framework/batch_matmul_tf_plugin.cpp | BatchMatMulV2(BatchMatMul / BatchMatMulV2 / BatchMatMulV3) | | norm/instance_norm_grad/framework/instance_norm_grad_tf_plugin.cpp | InstanceNormGrad | | optim/inplace_apply_adagrad_da/framework/apply_adagrad_da_tf_plugin.cpp | ApplyAdagradDA(ApplyAdagradDA / ResourceApplyAdagradDA) | | optim/inplace_apply_adagrad_v2/framework/apply_adagradv2_tf_plugin.cpp | ApplyAdagradV2(ApplyAdagradV2 / ResourceApplyAdagradV2) | | optim/inplace_apply_power_sign/framework/apply_power_sign_tf_plugin.cpp | ApplyPowerSign(ApplyPowerSign / ResourceApplyPowerSign) | | pooling/avg_pool3_d/framework/avg_pool3d_tf_plugin.cpp | AvgPool3D | | pooling/dilation2_d/framework/dilation2d_tf_plugin.cpp | Dilation2D | | pooling/max_pool_3d_grad_grad/framework/max_pool3d_grad_grad_tf_plugin.cpp | MaxPool3DGradGrad | | vfusion/normalize_bbox/framework/normalize_bbox_tf_plugin.cpp | NormalizeBBox | ### 改动原因 TF 算子插件迁移系列工作的第二批:将 TF 算子按模块拆分为独立的 */framework/*_tf_plugin.cpp 注册文件,统一注册方式与代码组织。 ## 关联的Issue - #5464 ## 测试 本次变更仅新增插件注册文件,未包含测试用例变更。 ## 文档更新 无。 ## 类型标签 - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述 ## AI/Agent生成声明 - [ ] AI辅助编写 See merge request: cann/ops-nn!9685 | 24 天前 | |
feat: 新增16个算子的TensorFlow插件注册 Co-authored-by: Nice_try<zhangzhiwei108@huawei.com> # message auto-generated for no-merge-commit merge: !9643 merge tf_plugin into master feat: 新增16个算子的TensorFlow插件注册 Created-by: Nice_try Commit-by: Nice_try Merged-by: cann-robot Description: ## 描述 本次变更为 16 个算子新增 TensorFlow 框架插件注册( *_tf_plugin.cpp),使这些算子在 TensorFlow 图解析时可通过 REGISTER_CUSTOM_OP 自动映射到昇腾算子(AutoMappingByOpFn,ImplyType::TVM),注册模式与仓库内已有 *_tf_plugin.cpp 文件保持一致。 新增注册的算子(16 个): | 算子 | 注册文件 | |------|----------| | PReluGrad | activation/p_relu_grad_update/framework/prelu_grad_tf_plugin.cpp | | Centralization | common/src/framework/centralization_tf_plugin.cpp | | DynamicAUGRUGrad | common/src/framework/dynamic_augru_grad_tf_plugin.cpp | | DynamicAUGRU | common/src/framework/dynamic_augru_tf_plugin.cpp | | DynamicGRUV2Grad | common/src/framework/dynamic_gruv2_grad_tf_plugin.cpp | | DynamicGRUV2 | common/src/framework/dynamic_gruv2_tf_plugin.cpp | | DynamicRNNGrad | common/src/framework/dynamic_rnn_grad_tf_plugin.cpp | | LRNGrad | common/src/framework/lrn_grad_tf_plugin.cpp | | LRN | common/src/framework/lrn_tf_plugin.cpp | | LRUCacheV2 | common/src/framework/lru_cache_v2_tf_plugin.cpp | | MaxPoolGradGrad | common/src/framework/max_pool_grad_grad_tf_plugin.cpp | | BNInferGrad | norm/bn_infer_grad/framework/bn_infer_grad_tf_plugin.cpp | | MaxPoolGradGradWithArgmax | pooling/max_pool_grad_grad_with_argmax/framework/max_pool_grad_grad_with_argmax_tf_plugin.cpp | | MaxPoolV2 | pooling/max_pool_v2/framework/max_pool_v2_tf_plugin.cpp | | MaxPool | pooling/max_pool_v3/framework/max_pool_v3_tf_plugin.cpp | | Dequantize | quant/dequantize/framework/dequantize_tf_plugin.cpp | ## 关联的Issue - 关联 Issue:https://gitcode.com/cann/ops-nn/issues/5447 ## 测试 本次改动仅为算子注册文件(编译期注册),未包含测试用例。 ## 文档更新 无。 ## 类型标签 - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 - [ ] AI辅助编写 See merge request: cann/ops-nn!9643 | 24 天前 | |
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 | 23 天前 | |
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 | 23 天前 | |
fix(matmul): 限制 fixed_shift_value 取值范围为 [34,43] Co-authored-by: KDC202<1664969415@qq.com> # message auto-generated for no-merge-commit merge: !8878 merge master into master fix(matmul): 限制 fixed_shift_value 取值范围为 [34,43] Created-by: KDC202 Commit-by: KDC202 Merged-by: cann-robot Description: ## 修改内容 对 Gemm 和 MatMulV3 的 ONNX plugin 中 fixed_shift_value 属性解析增加取值范围校验,限制为 [34, 43],超出范围的值将被忽略并使用默认值 42。 ## 涉及文件 - common/src/framework/gemm_onnx_plugin.cpp - matmul/mat_mul_v3/framework/matmul_onnx_plugin.cpp ## 改动说明 1. 新增常量 FIXED_SHIFT_VALUE_MAX = 43 和 FIXED_SHIFT_VALUE_MIN = 34。 2. gemm_onnx_plugin.cpp:解析 fixed_shift_value 时增加上下界检查。 3. matmul_onnx_plugin.cpp:同样增加上下界检查,并将硬编码的 42 替换为 FIXED_SHIFT_VALUE_DEFAULT 常量。 See merge request: cann/ops-nn!8878 | 1 个月前 | |
format cpp Co-authored-by: yang-di52<yangdi52@huawei.com> # message auto-generated for no-merge-commit merge: !6784 merge issue_fix into master format cpp Created-by: yang-di52 Commit-by: yang-di52 Merged-by: cann-robot Description: ## 描述 批量刷新cpp代码格式 ## 关联的Issue [#3791](https://gitcode.com/cann/ops-nn/issues/3791) ## 测试 <!--描述进行了哪些测试来验证你的改动。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述:代码格式化 ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!6784 | 2 个月前 | |
format cpp Co-authored-by: yang-di52<yangdi52@huawei.com> # message auto-generated for no-merge-commit merge: !6784 merge issue_fix into master format cpp Created-by: yang-di52 Commit-by: yang-di52 Merged-by: cann-robot Description: ## 描述 批量刷新cpp代码格式 ## 关联的Issue [#3791](https://gitcode.com/cann/ops-nn/issues/3791) ## 测试 <!--描述进行了哪些测试来验证你的改动。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述:代码格式化 ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!6784 | 2 个月前 | |
fix: onnx插件解析属性时零值字段被GE省略导致回退默认值 Co-authored-by: clinglai0517<laichangling@huawei.com> # message auto-generated for no-merge-commit merge: !10783 merge elu-onnx-fix into master fix: onnx插件解析属性时零值字段被GE省略导致回退默认值 Created-by: clinglai0517 Commit-by: clinglai0517 Merged-by: cann-robot Description: ## 描述 GE 序列化 ONNX 算子属性为 JSON 时,会省略值为 0 的标量字段(float 的 "f"、int 的 "i")。部分插件用 attr.contains("f"/"i") 判断属性是否存在,或直接访问 attr["f"/"i"],导致属性传 0 时被错误回退到算子默认值,或直接抛异常使转换失败。 修复方式:先按 name 判断属性是否存在,值字段缺失时按该类型的 protobuf 默认值 0 处理,而不是回退默认值或抛异常。 涉及算子: - Elu(alpha) - LeakyRelu(alpha) - HardMax(axis) - AdaCast(pixel) - GroupNormRelu(eps / num_groups) - BoundingBoxDecode(wh_ratio_clip) - AscendAntiQuantV2(dst_dtype) ## 关联的Issue Issue #6004 ## 测试 - 编译:bash build.sh --onnxplugin -j16 通过(7 个修复源文件全部编译通过)。 - 单测:bash build.sh -u --ophost --ops=elu,leaky_relu,hardmax,ada_cast,14 个用例全部 PASSED(含各算子新增的「零值字段缺失」用例)。 - 端到端 NPU(Ascend 910B3 / CANN 9.0.0):ELU alpha=0 负半轴输出 [0,0,0,0],alpha=3.0 回归无影响。 ## 文档更新 不涉及 ## 类型标签 - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 - [x] AI辅助编写 See merge request: cann/ops-nn!10783 | 7 天前 | |
format cpp Co-authored-by: yang-di52<yangdi52@huawei.com> # message auto-generated for no-merge-commit merge: !6784 merge issue_fix into master format cpp Created-by: yang-di52 Commit-by: yang-di52 Merged-by: cann-robot Description: ## 描述 批量刷新cpp代码格式 ## 关联的Issue [#3791](https://gitcode.com/cann/ops-nn/issues/3791) ## 测试 <!--描述进行了哪些测试来验证你的改动。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述:代码格式化 ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!6784 | 2 个月前 | |
fix: onnx插件解析属性时零值字段被GE省略导致回退默认值 Co-authored-by: clinglai0517<laichangling@huawei.com> # message auto-generated for no-merge-commit merge: !10783 merge elu-onnx-fix into master fix: onnx插件解析属性时零值字段被GE省略导致回退默认值 Created-by: clinglai0517 Commit-by: clinglai0517 Merged-by: cann-robot Description: ## 描述 GE 序列化 ONNX 算子属性为 JSON 时,会省略值为 0 的标量字段(float 的 "f"、int 的 "i")。部分插件用 attr.contains("f"/"i") 判断属性是否存在,或直接访问 attr["f"/"i"],导致属性传 0 时被错误回退到算子默认值,或直接抛异常使转换失败。 修复方式:先按 name 判断属性是否存在,值字段缺失时按该类型的 protobuf 默认值 0 处理,而不是回退默认值或抛异常。 涉及算子: - Elu(alpha) - LeakyRelu(alpha) - HardMax(axis) - AdaCast(pixel) - GroupNormRelu(eps / num_groups) - BoundingBoxDecode(wh_ratio_clip) - AscendAntiQuantV2(dst_dtype) ## 关联的Issue Issue #6004 ## 测试 - 编译:bash build.sh --onnxplugin -j16 通过(7 个修复源文件全部编译通过)。 - 单测:bash build.sh -u --ophost --ops=elu,leaky_relu,hardmax,ada_cast,14 个用例全部 PASSED(含各算子新增的「零值字段缺失」用例)。 - 端到端 NPU(Ascend 910B3 / CANN 9.0.0):ELU alpha=0 负半轴输出 [0,0,0,0],alpha=3.0 回归无影响。 ## 文档更新 不涉及 ## 类型标签 - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 - [x] AI辅助编写 See merge request: cann/ops-nn!10783 | 7 天前 | |
format cpp Co-authored-by: yang-di52<yangdi52@huawei.com> # message auto-generated for no-merge-commit merge: !6784 merge issue_fix into master format cpp Created-by: yang-di52 Commit-by: yang-di52 Merged-by: cann-robot Description: ## 描述 批量刷新cpp代码格式 ## 关联的Issue [#3791](https://gitcode.com/cann/ops-nn/issues/3791) ## 测试 <!--描述进行了哪些测试来验证你的改动。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述:代码格式化 ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!6784 | 2 个月前 | |
AscendAntiQuant/AscendAntiQuantV2/AscendDequant/AscendQuant/BatchNorm/InstanceNorm/LayerNorm算子原型放到对应的算子目录 Co-authored-by: liujie12345678<liujie81@huawei.com> # message auto-generated for no-merge-commit merge: !8549 merge master into master AscendAntiQuant/AscendAntiQuantV2/AscendDequant/AscendQuant/BatchNorm/InstanceNorm/LayerNorm算子原型放到对应的算子目录 Created-by: liujie12345678 Commit-by: liujie12345678 Merged-by: cann-robot Description: ## 描述 AscendAntiQuant/AscendAntiQuantV2/AscendDequant/AscendQuant/BatchNorm/InstanceNorm/LayerNorm算子原型放到对应的算子目录 ## 关联的Issue https://gitcode.com/cann/ops-nn/issues/4280 ## 测试 测试通过 ## 文档更新 NA ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述:AscendAntiQuant/AscendAntiQuantV2/AscendDequant/AscendQuant/BatchNorm/InstanceNorm/LayerNorm算子原型放到对应的算子目录 ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!8549 | 1 个月前 | |
算子原型迁移 Co-authored-by: Zhezhezhezhe0414<zhangzhe180@h-partners.com> Co-authored-by: welt_lester<songlizhe1@h-partners.com> # message auto-generated for no-merge-commit merge: !9141 merge master into master 算子原型迁移 Created-by: welt_lester Commit-by: Zhezhezhezhe0414;welt_lester Merged-by: cann-robot Description: ## 描述 落实issue #4280,将AdaptiveMaxPool2d、Celu、LogSoftmaxV2、AscendAntiQuant、AscendAntiQuantV2、AscendDequant、AscendQuant、AvgPool、AvgPoolV2、BatchNorm、GeGluV2、InstanceNorm、LayerNorm、Relu这14个算子对应的原型从ops-nn/common/inc/op_graph/op_nn_proto_extend.h迁出到各自算子目录的op_graph目录下,再将公共目录下的原型定义删除,并补充相关的CMakeLists文件,同时为关联的插件补充头文件引用。 ## 关联的Issue [Bug-Report|缺陷反馈]: 有对应算子的原型不应该放到公共目录 [#4280](https://gitcode.com/cann/ops-nn/issues/4280) ## 测试 compile、本地验证build通过 ## 文档更新 不涉及 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述:代码重构(算子原型归属迁移,落实 #4280 ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!9141 | 1 个月前 | |
AscendAntiQuant/AscendAntiQuantV2/AscendDequant/AscendQuant/BatchNorm/InstanceNorm/LayerNorm算子原型放到对应的算子目录 Co-authored-by: liujie12345678<liujie81@huawei.com> # message auto-generated for no-merge-commit merge: !8549 merge master into master AscendAntiQuant/AscendAntiQuantV2/AscendDequant/AscendQuant/BatchNorm/InstanceNorm/LayerNorm算子原型放到对应的算子目录 Created-by: liujie12345678 Commit-by: liujie12345678 Merged-by: cann-robot Description: ## 描述 AscendAntiQuant/AscendAntiQuantV2/AscendDequant/AscendQuant/BatchNorm/InstanceNorm/LayerNorm算子原型放到对应的算子目录 ## 关联的Issue https://gitcode.com/cann/ops-nn/issues/4280 ## 测试 测试通过 ## 文档更新 NA ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述:AscendAntiQuant/AscendAntiQuantV2/AscendDequant/AscendQuant/BatchNorm/InstanceNorm/LayerNorm算子原型放到对应的算子目录 ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!8549 | 1 个月前 | |
AscendAntiQuant/AscendAntiQuantV2/AscendDequant/AscendQuant/BatchNorm/InstanceNorm/LayerNorm算子原型放到对应的算子目录 Co-authored-by: liujie12345678<liujie81@huawei.com> # message auto-generated for no-merge-commit merge: !8549 merge master into master AscendAntiQuant/AscendAntiQuantV2/AscendDequant/AscendQuant/BatchNorm/InstanceNorm/LayerNorm算子原型放到对应的算子目录 Created-by: liujie12345678 Commit-by: liujie12345678 Merged-by: cann-robot Description: ## 描述 AscendAntiQuant/AscendAntiQuantV2/AscendDequant/AscendQuant/BatchNorm/InstanceNorm/LayerNorm算子原型放到对应的算子目录 ## 关联的Issue https://gitcode.com/cann/ops-nn/issues/4280 ## 测试 测试通过 ## 文档更新 NA ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述:AscendAntiQuant/AscendAntiQuantV2/AscendDequant/AscendQuant/BatchNorm/InstanceNorm/LayerNorm算子原型放到对应的算子目录 ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!8549 | 1 个月前 | |
format cpp Co-authored-by: yang-di52<yangdi52@huawei.com> # message auto-generated for no-merge-commit merge: !6784 merge issue_fix into master format cpp Created-by: yang-di52 Commit-by: yang-di52 Merged-by: cann-robot Description: ## 描述 批量刷新cpp代码格式 ## 关联的Issue [#3791](https://gitcode.com/cann/ops-nn/issues/3791) ## 测试 <!--描述进行了哪些测试来验证你的改动。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述:代码格式化 ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!6784 | 2 个月前 | |
迁移4个TF plugin Co-authored-by: akira<zhouyuanhang4@h-partners.com> # message auto-generated for no-merge-commit merge: !10311 merge tf_plugin_migration2 into master 迁移4个TF plugin Created-by: VoyageZhou Commit-by: akira Merged-by: cann-robot Description: ## 描述 迁移4个TF plugin - apply_adam_with_amsgrad_plugin.cc - lars_v2_plugin.cc - npu_alloc_floatstatus_plugin.cc - prod_env_mat_a_plugin.cc <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> [Issue 5812](https://gitcode.com/cann/ops-nn/issues/5812) ## 测试 <!--描述进行了哪些测试来验证你的改动。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [x] AI辅助编写 See merge request: cann/ops-nn!10311 | 13 天前 | |
AscendAntiQuant/AscendAntiQuantV2/AscendDequant/AscendQuant/BatchNorm/InstanceNorm/LayerNorm算子原型放到对应的算子目录 Co-authored-by: liujie12345678<liujie81@huawei.com> # message auto-generated for no-merge-commit merge: !8549 merge master into master AscendAntiQuant/AscendAntiQuantV2/AscendDequant/AscendQuant/BatchNorm/InstanceNorm/LayerNorm算子原型放到对应的算子目录 Created-by: liujie12345678 Commit-by: liujie12345678 Merged-by: cann-robot Description: ## 描述 AscendAntiQuant/AscendAntiQuantV2/AscendDequant/AscendQuant/BatchNorm/InstanceNorm/LayerNorm算子原型放到对应的算子目录 ## 关联的Issue https://gitcode.com/cann/ops-nn/issues/4280 ## 测试 测试通过 ## 文档更新 NA ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述:AscendAntiQuant/AscendAntiQuantV2/AscendDequant/AscendQuant/BatchNorm/InstanceNorm/LayerNorm算子原型放到对应的算子目录 ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!8549 | 1 个月前 | |
算子原型迁移 Co-authored-by: Zhezhezhezhe0414<zhangzhe180@h-partners.com> Co-authored-by: welt_lester<songlizhe1@h-partners.com> # message auto-generated for no-merge-commit merge: !9141 merge master into master 算子原型迁移 Created-by: welt_lester Commit-by: Zhezhezhezhe0414;welt_lester Merged-by: cann-robot Description: ## 描述 落实issue #4280,将AdaptiveMaxPool2d、Celu、LogSoftmaxV2、AscendAntiQuant、AscendAntiQuantV2、AscendDequant、AscendQuant、AvgPool、AvgPoolV2、BatchNorm、GeGluV2、InstanceNorm、LayerNorm、Relu这14个算子对应的原型从ops-nn/common/inc/op_graph/op_nn_proto_extend.h迁出到各自算子目录的op_graph目录下,再将公共目录下的原型定义删除,并补充相关的CMakeLists文件,同时为关联的插件补充头文件引用。 ## 关联的Issue [Bug-Report|缺陷反馈]: 有对应算子的原型不应该放到公共目录 [#4280](https://gitcode.com/cann/ops-nn/issues/4280) ## 测试 compile、本地验证build通过 ## 文档更新 不涉及 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述:代码重构(算子原型归属迁移,落实 #4280 ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!9141 | 1 个月前 | |
feat: 新增16个算子的TensorFlow插件注册 Co-authored-by: Nice_try<zhangzhiwei108@huawei.com> # message auto-generated for no-merge-commit merge: !9643 merge tf_plugin into master feat: 新增16个算子的TensorFlow插件注册 Created-by: Nice_try Commit-by: Nice_try Merged-by: cann-robot Description: ## 描述 本次变更为 16 个算子新增 TensorFlow 框架插件注册( *_tf_plugin.cpp),使这些算子在 TensorFlow 图解析时可通过 REGISTER_CUSTOM_OP 自动映射到昇腾算子(AutoMappingByOpFn,ImplyType::TVM),注册模式与仓库内已有 *_tf_plugin.cpp 文件保持一致。 新增注册的算子(16 个): | 算子 | 注册文件 | |------|----------| | PReluGrad | activation/p_relu_grad_update/framework/prelu_grad_tf_plugin.cpp | | Centralization | common/src/framework/centralization_tf_plugin.cpp | | DynamicAUGRUGrad | common/src/framework/dynamic_augru_grad_tf_plugin.cpp | | DynamicAUGRU | common/src/framework/dynamic_augru_tf_plugin.cpp | | DynamicGRUV2Grad | common/src/framework/dynamic_gruv2_grad_tf_plugin.cpp | | DynamicGRUV2 | common/src/framework/dynamic_gruv2_tf_plugin.cpp | | DynamicRNNGrad | common/src/framework/dynamic_rnn_grad_tf_plugin.cpp | | LRNGrad | common/src/framework/lrn_grad_tf_plugin.cpp | | LRN | common/src/framework/lrn_tf_plugin.cpp | | LRUCacheV2 | common/src/framework/lru_cache_v2_tf_plugin.cpp | | MaxPoolGradGrad | common/src/framework/max_pool_grad_grad_tf_plugin.cpp | | BNInferGrad | norm/bn_infer_grad/framework/bn_infer_grad_tf_plugin.cpp | | MaxPoolGradGradWithArgmax | pooling/max_pool_grad_grad_with_argmax/framework/max_pool_grad_grad_with_argmax_tf_plugin.cpp | | MaxPoolV2 | pooling/max_pool_v2/framework/max_pool_v2_tf_plugin.cpp | | MaxPool | pooling/max_pool_v3/framework/max_pool_v3_tf_plugin.cpp | | Dequantize | quant/dequantize/framework/dequantize_tf_plugin.cpp | ## 关联的Issue - 关联 Issue:https://gitcode.com/cann/ops-nn/issues/5447 ## 测试 本次改动仅为算子注册文件(编译期注册),未包含测试用例。 ## 文档更新 无。 ## 类型标签 - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 - [ ] AI辅助编写 See merge request: cann/ops-nn!9643 | 24 天前 | |
format cpp Co-authored-by: yang-di52<yangdi52@huawei.com> # message auto-generated for no-merge-commit merge: !6784 merge issue_fix into master format cpp Created-by: yang-di52 Commit-by: yang-di52 Merged-by: cann-robot Description: ## 描述 批量刷新cpp代码格式 ## 关联的Issue [#3791](https://gitcode.com/cann/ops-nn/issues/3791) ## 测试 <!--描述进行了哪些测试来验证你的改动。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述:代码格式化 ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!6784 | 2 个月前 | |
feat: 新增16个算子的TensorFlow插件注册 Co-authored-by: Nice_try<zhangzhiwei108@huawei.com> # message auto-generated for no-merge-commit merge: !9643 merge tf_plugin into master feat: 新增16个算子的TensorFlow插件注册 Created-by: Nice_try Commit-by: Nice_try Merged-by: cann-robot Description: ## 描述 本次变更为 16 个算子新增 TensorFlow 框架插件注册( *_tf_plugin.cpp),使这些算子在 TensorFlow 图解析时可通过 REGISTER_CUSTOM_OP 自动映射到昇腾算子(AutoMappingByOpFn,ImplyType::TVM),注册模式与仓库内已有 *_tf_plugin.cpp 文件保持一致。 新增注册的算子(16 个): | 算子 | 注册文件 | |------|----------| | PReluGrad | activation/p_relu_grad_update/framework/prelu_grad_tf_plugin.cpp | | Centralization | common/src/framework/centralization_tf_plugin.cpp | | DynamicAUGRUGrad | common/src/framework/dynamic_augru_grad_tf_plugin.cpp | | DynamicAUGRU | common/src/framework/dynamic_augru_tf_plugin.cpp | | DynamicGRUV2Grad | common/src/framework/dynamic_gruv2_grad_tf_plugin.cpp | | DynamicGRUV2 | common/src/framework/dynamic_gruv2_tf_plugin.cpp | | DynamicRNNGrad | common/src/framework/dynamic_rnn_grad_tf_plugin.cpp | | LRNGrad | common/src/framework/lrn_grad_tf_plugin.cpp | | LRN | common/src/framework/lrn_tf_plugin.cpp | | LRUCacheV2 | common/src/framework/lru_cache_v2_tf_plugin.cpp | | MaxPoolGradGrad | common/src/framework/max_pool_grad_grad_tf_plugin.cpp | | BNInferGrad | norm/bn_infer_grad/framework/bn_infer_grad_tf_plugin.cpp | | MaxPoolGradGradWithArgmax | pooling/max_pool_grad_grad_with_argmax/framework/max_pool_grad_grad_with_argmax_tf_plugin.cpp | | MaxPoolV2 | pooling/max_pool_v2/framework/max_pool_v2_tf_plugin.cpp | | MaxPool | pooling/max_pool_v3/framework/max_pool_v3_tf_plugin.cpp | | Dequantize | quant/dequantize/framework/dequantize_tf_plugin.cpp | ## 关联的Issue - 关联 Issue:https://gitcode.com/cann/ops-nn/issues/5447 ## 测试 本次改动仅为算子注册文件(编译期注册),未包含测试用例。 ## 文档更新 无。 ## 类型标签 - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 - [ ] AI辅助编写 See merge request: cann/ops-nn!9643 | 24 天前 | |
feat: 新增16个算子的TensorFlow插件注册 Co-authored-by: Nice_try<zhangzhiwei108@huawei.com> # message auto-generated for no-merge-commit merge: !9643 merge tf_plugin into master feat: 新增16个算子的TensorFlow插件注册 Created-by: Nice_try Commit-by: Nice_try Merged-by: cann-robot Description: ## 描述 本次变更为 16 个算子新增 TensorFlow 框架插件注册( *_tf_plugin.cpp),使这些算子在 TensorFlow 图解析时可通过 REGISTER_CUSTOM_OP 自动映射到昇腾算子(AutoMappingByOpFn,ImplyType::TVM),注册模式与仓库内已有 *_tf_plugin.cpp 文件保持一致。 新增注册的算子(16 个): | 算子 | 注册文件 | |------|----------| | PReluGrad | activation/p_relu_grad_update/framework/prelu_grad_tf_plugin.cpp | | Centralization | common/src/framework/centralization_tf_plugin.cpp | | DynamicAUGRUGrad | common/src/framework/dynamic_augru_grad_tf_plugin.cpp | | DynamicAUGRU | common/src/framework/dynamic_augru_tf_plugin.cpp | | DynamicGRUV2Grad | common/src/framework/dynamic_gruv2_grad_tf_plugin.cpp | | DynamicGRUV2 | common/src/framework/dynamic_gruv2_tf_plugin.cpp | | DynamicRNNGrad | common/src/framework/dynamic_rnn_grad_tf_plugin.cpp | | LRNGrad | common/src/framework/lrn_grad_tf_plugin.cpp | | LRN | common/src/framework/lrn_tf_plugin.cpp | | LRUCacheV2 | common/src/framework/lru_cache_v2_tf_plugin.cpp | | MaxPoolGradGrad | common/src/framework/max_pool_grad_grad_tf_plugin.cpp | | BNInferGrad | norm/bn_infer_grad/framework/bn_infer_grad_tf_plugin.cpp | | MaxPoolGradGradWithArgmax | pooling/max_pool_grad_grad_with_argmax/framework/max_pool_grad_grad_with_argmax_tf_plugin.cpp | | MaxPoolV2 | pooling/max_pool_v2/framework/max_pool_v2_tf_plugin.cpp | | MaxPool | pooling/max_pool_v3/framework/max_pool_v3_tf_plugin.cpp | | Dequantize | quant/dequantize/framework/dequantize_tf_plugin.cpp | ## 关联的Issue - 关联 Issue:https://gitcode.com/cann/ops-nn/issues/5447 ## 测试 本次改动仅为算子注册文件(编译期注册),未包含测试用例。 ## 文档更新 无。 ## 类型标签 - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 - [ ] AI辅助编写 See merge request: cann/ops-nn!9643 | 24 天前 | |
format cpp Co-authored-by: yang-di52<yangdi52@huawei.com> # message auto-generated for no-merge-commit merge: !6784 merge issue_fix into master format cpp Created-by: yang-di52 Commit-by: yang-di52 Merged-by: cann-robot Description: ## 描述 批量刷新cpp代码格式 ## 关联的Issue [#3791](https://gitcode.com/cann/ops-nn/issues/3791) ## 测试 <!--描述进行了哪些测试来验证你的改动。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述:代码格式化 ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!6784 | 2 个月前 | |
format cpp Co-authored-by: yang-di52<yangdi52@huawei.com> # message auto-generated for no-merge-commit merge: !6784 merge issue_fix into master format cpp Created-by: yang-di52 Commit-by: yang-di52 Merged-by: cann-robot Description: ## 描述 批量刷新cpp代码格式 ## 关联的Issue [#3791](https://gitcode.com/cann/ops-nn/issues/3791) ## 测试 <!--描述进行了哪些测试来验证你的改动。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述:代码格式化 ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!6784 | 2 个月前 | |
feat: 新增16个算子的TensorFlow插件注册 Co-authored-by: Nice_try<zhangzhiwei108@huawei.com> # message auto-generated for no-merge-commit merge: !9643 merge tf_plugin into master feat: 新增16个算子的TensorFlow插件注册 Created-by: Nice_try Commit-by: Nice_try Merged-by: cann-robot Description: ## 描述 本次变更为 16 个算子新增 TensorFlow 框架插件注册( *_tf_plugin.cpp),使这些算子在 TensorFlow 图解析时可通过 REGISTER_CUSTOM_OP 自动映射到昇腾算子(AutoMappingByOpFn,ImplyType::TVM),注册模式与仓库内已有 *_tf_plugin.cpp 文件保持一致。 新增注册的算子(16 个): | 算子 | 注册文件 | |------|----------| | PReluGrad | activation/p_relu_grad_update/framework/prelu_grad_tf_plugin.cpp | | Centralization | common/src/framework/centralization_tf_plugin.cpp | | DynamicAUGRUGrad | common/src/framework/dynamic_augru_grad_tf_plugin.cpp | | DynamicAUGRU | common/src/framework/dynamic_augru_tf_plugin.cpp | | DynamicGRUV2Grad | common/src/framework/dynamic_gruv2_grad_tf_plugin.cpp | | DynamicGRUV2 | common/src/framework/dynamic_gruv2_tf_plugin.cpp | | DynamicRNNGrad | common/src/framework/dynamic_rnn_grad_tf_plugin.cpp | | LRNGrad | common/src/framework/lrn_grad_tf_plugin.cpp | | LRN | common/src/framework/lrn_tf_plugin.cpp | | LRUCacheV2 | common/src/framework/lru_cache_v2_tf_plugin.cpp | | MaxPoolGradGrad | common/src/framework/max_pool_grad_grad_tf_plugin.cpp | | BNInferGrad | norm/bn_infer_grad/framework/bn_infer_grad_tf_plugin.cpp | | MaxPoolGradGradWithArgmax | pooling/max_pool_grad_grad_with_argmax/framework/max_pool_grad_grad_with_argmax_tf_plugin.cpp | | MaxPoolV2 | pooling/max_pool_v2/framework/max_pool_v2_tf_plugin.cpp | | MaxPool | pooling/max_pool_v3/framework/max_pool_v3_tf_plugin.cpp | | Dequantize | quant/dequantize/framework/dequantize_tf_plugin.cpp | ## 关联的Issue - 关联 Issue:https://gitcode.com/cann/ops-nn/issues/5447 ## 测试 本次改动仅为算子注册文件(编译期注册),未包含测试用例。 ## 文档更新 无。 ## 类型标签 - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 - [ ] AI辅助编写 See merge request: cann/ops-nn!9643 | 24 天前 | |
max_pool_onnx_plugin bugfix Co-authored-by: xufeng12121<1074805447@qq.com> # message auto-generated for no-merge-commit merge: !7604 merge poo into master max_pool_onnx_plugin bugfix Created-by: xufeng12121 Commit-by: xufeng12121 Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 从cann仓迁移时,新增修改遗漏 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> https://gitcode.com/cann/ops-nn/issues/4137 ## 测试 <!--描述进行了哪些测试来验证你的改动。--> 1.atc 转模型成功 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!7604 | 2 个月前 | |
feat: 新增13个ONNX标准算子插件(Conv/Gemm/Pool/Normalization/SparseToDense) Co-authored-by: tianqiguang<tianqiguang@huawei.com> # message auto-generated for no-merge-commit merge: !7471 merge master into master feat: 新增13个ONNX标准算子插件(Conv/Gemm/Pool/Normalization/SparseToDense) Created-by: tianqiguang Commit-by: tianqiguang Merged-by: cann-robot Description: ## 描述 将 ONNX 标准算子插件从内部仓库迁移至开源仓库,新增 13 个 ONNX 算子插件的解析实现,覆盖卷积、池化、全连接、归一化等常见神经网络算子,支持多版本 ONNX opset。 | 序号 | 算子 | 文件名 | 行数 | |------|------|--------|------| | 1 | AveragePool | average_pool_onnx_plugin.cpp | 282 | | 2 | Conv | conv_onnx_plugin.cpp | 350 | | 3 | ConvTranspose | conv_transpose_onnx_plugin.cpp | 437 | | 4 | DeformableConv2d | deformable_conv2d_onnx_plugin.cpp | 145 | | 5 | Gemm | gemm_onnx_plugin.cpp | 134 | | 6 | Int8Conv | int8_conv_onnx_plugin.cpp | 250 | | 7 | Int8ConvRelu | int8_conv_relu_onnx_plugin.cpp | 369 | | 8 | Int8FC | int8_fc_onnx_plugin.cpp | 164 | | 9 | LayerNormalization | layer_normalization_onnx_plugin.cpp | 153 | | 10 | LpPool | lppool_onnx_plugin.cpp | 371 | | 11 | MaxPool | max_pool_onnx_plugin.cpp | 388 | | 12 | MaxUnpool | maxunpool_onnx_plugin.cpp | 226 | | 13 | SparseToDense | sparse_to_dense_onnx_plugin.cpp | 44 | ### 实现方式 每个插件文件通过 REGISTER_CUSTOM_OP 宏注册算子,实现 ONNX 算子属性到 Ascend IR 的映射: - 解析 ONNX NodeProto 中的算子属性(strides、pads、dilations、groups 等) - 转换为 Ascend GE 算子属性并通过 ge::Operator::SetAttr 设置 - 注册为 FrameworkType(ONNX) + ImplyType(TVM) 的定制算子 ## 测试 - ONNX 标准算子兼容性验证 - 与现有框架集成测试 ## 文档更新 无 ## 类型标签 - [x] 新特性 ## AI/Agent生成声明 - [x] AI辅助编写 ## 关联的Issue - #4076 See merge request: cann/ops-nn!7471 | 2 个月前 | |
format cpp Co-authored-by: yang-di52<yangdi52@huawei.com> # message auto-generated for no-merge-commit merge: !6784 merge issue_fix into master format cpp Created-by: yang-di52 Commit-by: yang-di52 Merged-by: cann-robot Description: ## 描述 批量刷新cpp代码格式 ## 关联的Issue [#3791](https://gitcode.com/cann/ops-nn/issues/3791) ## 测试 <!--描述进行了哪些测试来验证你的改动。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述:代码格式化 ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!6784 | 2 个月前 | |
format cpp Co-authored-by: yang-di52<yangdi52@huawei.com> # message auto-generated for no-merge-commit merge: !6784 merge issue_fix into master format cpp Created-by: yang-di52 Commit-by: yang-di52 Merged-by: cann-robot Description: ## 描述 批量刷新cpp代码格式 ## 关联的Issue [#3791](https://gitcode.com/cann/ops-nn/issues/3791) ## 测试 <!--描述进行了哪些测试来验证你的改动。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述:代码格式化 ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!6784 | 2 个月前 | |
format cpp Co-authored-by: yang-di52<yangdi52@huawei.com> # message auto-generated for no-merge-commit merge: !6784 merge issue_fix into master format cpp Created-by: yang-di52 Commit-by: yang-di52 Merged-by: cann-robot Description: ## 描述 批量刷新cpp代码格式 ## 关联的Issue [#3791](https://gitcode.com/cann/ops-nn/issues/3791) ## 测试 <!--描述进行了哪些测试来验证你的改动。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述:代码格式化 ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!6784 | 2 个月前 | |
format cpp Co-authored-by: yang-di52<yangdi52@huawei.com> # message auto-generated for no-merge-commit merge: !6784 merge issue_fix into master format cpp Created-by: yang-di52 Commit-by: yang-di52 Merged-by: cann-robot Description: ## 描述 批量刷新cpp代码格式 ## 关联的Issue [#3791](https://gitcode.com/cann/ops-nn/issues/3791) ## 测试 <!--描述进行了哪些测试来验证你的改动。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述:代码格式化 ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!6784 | 2 个月前 | |
迁移4个TF plugin Co-authored-by: akira<zhouyuanhang4@h-partners.com> # message auto-generated for no-merge-commit merge: !10311 merge tf_plugin_migration2 into master 迁移4个TF plugin Created-by: VoyageZhou Commit-by: akira Merged-by: cann-robot Description: ## 描述 迁移4个TF plugin - apply_adam_with_amsgrad_plugin.cc - lars_v2_plugin.cc - npu_alloc_floatstatus_plugin.cc - prod_env_mat_a_plugin.cc <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> [Issue 5812](https://gitcode.com/cann/ops-nn/issues/5812) ## 测试 <!--描述进行了哪些测试来验证你的改动。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [x] AI辅助编写 See merge request: cann/ops-nn!10311 | 13 天前 | |
[david]新增scatterND算子的onnx插件 Co-authored-by: yezhao1<yezhao1@huawei.com> # message auto-generated for no-merge-commit merge: !8204 merge master into master [david]新增scatterND算子的onnx插件 Created-by: yezhao1 Commit-by: yezhao1 Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 原因:scatternd接口所有属性都被映射到了TensorScatterUpdate上,当属性非none时存在精度问题,需要修改; 修改方案:添加ScatterND的onnx插件,按照对应的属性值,映射到不同的算子上,当属性未mul时,日志报错不支持 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> [#4601](https://gitcode.com/cann/ops-nn/issues/4601) 4601 ## 测试 <!--描述进行了哪些测试来验证你的改动。--> 脚本生成所有属性的onnx模型,并通过atc转om模型,在昇腾上执行,所有属性结果符合预期 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!8204 | 1 个月前 | |
fix: migrate simple onnx parse params plugins Co-authored-by: clinglai0517<laichangling@huawei.com> # message auto-generated for no-merge-commit merge: !9161 merge onnx-fix-0825 into master fix: migrate simple onnx parse params plugins Created-by: clinglai0517 Commit-by: clinglai0517 Merged-by: cann-robot Description: ## 描述 将一批 ONNX 插件的参数解析接口从 ParseParamsFn 迁移到 ParseParamsByOperatorFn,实现onnx插件和protobuf的解耦 涉及算子: - Mish - FastGelu - Size - Elu - LeakyRelu - HardMax 【实现说明】 - 无属性或仅默认属性的算子,直接切换新注册接口。 - 对 Elu、LeakyRelu、HardMax,从 ge::Operator 的 attribute JSON 中解析 ONNX 属性。 - 保留旧逻辑中的默认值行为。 - 对缺失或非数组形式的 attribute JSON 增加保护,避免无属性场景误返回 FAILED。 ## 关联的Issue Issue #5115 ## 测试 onnx插件ut编译、执行通过 ## 文档更新 不涉及 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [x] AI辅助编写 See merge request: cann/ops-nn!9161 | 1 个月前 | |
format cpp Co-authored-by: yang-di52<yangdi52@huawei.com> # message auto-generated for no-merge-commit merge: !6784 merge issue_fix into master format cpp Created-by: yang-di52 Commit-by: yang-di52 Merged-by: cann-robot Description: ## 描述 批量刷新cpp代码格式 ## 关联的Issue [#3791](https://gitcode.com/cann/ops-nn/issues/3791) ## 测试 <!--描述进行了哪些测试来验证你的改动。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述:代码格式化 ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!6784 | 2 个月前 | |
feat: 新增13个ONNX标准算子插件(Conv/Gemm/Pool/Normalization/SparseToDense) Co-authored-by: tianqiguang<tianqiguang@huawei.com> # message auto-generated for no-merge-commit merge: !7471 merge master into master feat: 新增13个ONNX标准算子插件(Conv/Gemm/Pool/Normalization/SparseToDense) Created-by: tianqiguang Commit-by: tianqiguang Merged-by: cann-robot Description: ## 描述 将 ONNX 标准算子插件从内部仓库迁移至开源仓库,新增 13 个 ONNX 算子插件的解析实现,覆盖卷积、池化、全连接、归一化等常见神经网络算子,支持多版本 ONNX opset。 | 序号 | 算子 | 文件名 | 行数 | |------|------|--------|------| | 1 | AveragePool | average_pool_onnx_plugin.cpp | 282 | | 2 | Conv | conv_onnx_plugin.cpp | 350 | | 3 | ConvTranspose | conv_transpose_onnx_plugin.cpp | 437 | | 4 | DeformableConv2d | deformable_conv2d_onnx_plugin.cpp | 145 | | 5 | Gemm | gemm_onnx_plugin.cpp | 134 | | 6 | Int8Conv | int8_conv_onnx_plugin.cpp | 250 | | 7 | Int8ConvRelu | int8_conv_relu_onnx_plugin.cpp | 369 | | 8 | Int8FC | int8_fc_onnx_plugin.cpp | 164 | | 9 | LayerNormalization | layer_normalization_onnx_plugin.cpp | 153 | | 10 | LpPool | lppool_onnx_plugin.cpp | 371 | | 11 | MaxPool | max_pool_onnx_plugin.cpp | 388 | | 12 | MaxUnpool | maxunpool_onnx_plugin.cpp | 226 | | 13 | SparseToDense | sparse_to_dense_onnx_plugin.cpp | 44 | ### 实现方式 每个插件文件通过 REGISTER_CUSTOM_OP 宏注册算子,实现 ONNX 算子属性到 Ascend IR 的映射: - 解析 ONNX NodeProto 中的算子属性(strides、pads、dilations、groups 等) - 转换为 Ascend GE 算子属性并通过 ge::Operator::SetAttr 设置 - 注册为 FrameworkType(ONNX) + ImplyType(TVM) 的定制算子 ## 测试 - ONNX 标准算子兼容性验证 - 与现有框架集成测试 ## 文档更新 无 ## 类型标签 - [x] 新特性 ## AI/Agent生成声明 - [x] AI辅助编写 ## 关联的Issue - #4076 See merge request: cann/ops-nn!7471 | 2 个月前 |
| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
| 2 个月前 | ||
| 5 个月前 | ||
| 2 个月前 | ||
| 7 天前 | ||
| 24 天前 | ||
| 2 个月前 | ||
| 2 个月前 | ||
| 2 个月前 | ||
| 23 天前 | ||
| 1 个月前 | ||
| 2 个月前 | ||
| 24 天前 | ||
| 24 天前 | ||
| 2 个月前 | ||
| 7 天前 | ||
| 2 个月前 | ||
| 24 天前 | ||
| 2 个月前 | ||
| 1 个月前 | ||
| 2 个月前 | ||
| 2 个月前 | ||
| 13 天前 | ||
| 13 天前 | ||
| 13 天前 | ||
| 2 个月前 | ||
| 24 天前 | ||
| 24 天前 | ||
| 24 天前 | ||
| 24 天前 | ||
| 24 天前 | ||
| 24 天前 | ||
| 23 天前 | ||
| 23 天前 | ||
| 1 个月前 | ||
| 2 个月前 | ||
| 2 个月前 | ||
| 7 天前 | ||
| 2 个月前 | ||
| 7 天前 | ||
| 2 个月前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 2 个月前 | ||
| 13 天前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 24 天前 | ||
| 2 个月前 | ||
| 24 天前 | ||
| 24 天前 | ||
| 2 个月前 | ||
| 2 个月前 | ||
| 24 天前 | ||
| 2 个月前 | ||
| 2 个月前 | ||
| 2 个月前 | ||
| 2 个月前 | ||
| 2 个月前 | ||
| 2 个月前 | ||
| 13 天前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 2 个月前 | ||
| 2 个月前 |