From 6cb53e91c70efad073eed48b8208e8f319318a6e Mon Sep 17 00:00:00 2001 From: xiaoguoguo626807 <100397923+xiaoguoguo626807@users.noreply.github.com> Date: Fri, 19 May 2023 11:55:33 +0800 Subject: [PATCH] =?UTF-8?q?=E3=80=90prim=E3=80=91merge=20=20branch=20for?= =?UTF-8?q?=20=20GradOpMaker=20codeGen=20to=20clear=20code=20(#53874)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * review * modify opcompat bug * modify pybind --- .../generator/templates/operator_utils.c.j2 | 7 +++---- paddle/fluid/operators/generator/tests_utils.py | 5 +++++ .../composite_double_backward_api.h | 2 +- paddle/fluid/pybind/pybind.cc | 4 ++-- paddle/phi/api/yaml/op_compat.yaml | 12 ++++++------ 5 files changed, 17 insertions(+), 13 deletions(-) diff --git a/paddle/fluid/operators/generator/templates/operator_utils.c.j2 b/paddle/fluid/operators/generator/templates/operator_utils.c.j2 index f762eedf3bf..5395d3329d9 100644 --- a/paddle/fluid/operators/generator/templates/operator_utils.c.j2 +++ b/paddle/fluid/operators/generator/templates/operator_utils.c.j2 @@ -472,15 +472,14 @@ REGISTER_OPERATOR({{name}}, ops::{{name | to_pascal_case}}Op, {% if not "forward" in op %}{# it is a forward op #} ops::{{name | to_pascal_case}}OpMaker, {% endif %} -{% if "only_backward_composite" in op and op["only_backward_composite"] is true %}{# backward #} -{% elif "backward" in op and op["backward"] is not none %} +{% if "backward" in op and op["backward"] is not none and op["only_backward_composite"] is false%}{# backward #} {% set backward_name = op["backward"] %} ops::{{backward_name | to_pascal_case}}OpMaker, ops::{{backward_name | to_pascal_case}}OpMaker, -{% elif "forward" in op %} -{% else %} +{% elif "forward" not in op %} paddle::framework::EmptyGradOpMaker, paddle::framework::EmptyGradOpMaker, +{% else %} {% endif %} {% if op is supports_inplace %}{# inplace#} ops::{{name | to_pascal_case}}InplaceInferer, diff --git a/paddle/fluid/operators/generator/tests_utils.py b/paddle/fluid/operators/generator/tests_utils.py index 9cea1698f4f..2c99de85031 100644 --- a/paddle/fluid/operators/generator/tests_utils.py +++ b/paddle/fluid/operators/generator/tests_utils.py @@ -54,10 +54,15 @@ def is_base_op(op): return "kernel" in op and "infer_meta" in op +# this func describe a op that only has composite implementation, +# without kernel implementation. kernel implementation include +# other op (invoke) or c++ kernel (kernel + infermeta) def is_only_composite_op(op): return "composite" in op and "kernel" not in op and "invoke" not in op +# this func describe a op that has composite implementation, +# maybe also has kernel implementation. def is_composite_op(op): return "composite" in op diff --git a/paddle/fluid/prim/api/composite_backward/composite_double_backward_api.h b/paddle/fluid/prim/api/composite_backward/composite_double_backward_api.h index b97ffeb4b26..a97d4ff0bc0 100644 --- a/paddle/fluid/prim/api/composite_backward/composite_double_backward_api.h +++ b/paddle/fluid/prim/api/composite_backward/composite_double_backward_api.h @@ -1,4 +1,4 @@ -// Copyright (c) 2022 PaddlePaddle Authors. All Rights Reserved. +// Copyright (c) 2023 PaddlePaddle Authors. All Rights Reserved. // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/paddle/fluid/pybind/pybind.cc b/paddle/fluid/pybind/pybind.cc index 05eccd45c8f..956a09bd999 100644 --- a/paddle/fluid/pybind/pybind.cc +++ b/paddle/fluid/pybind/pybind.cc @@ -1363,12 +1363,12 @@ All parameter, weight, gradient are variables in Paddle. } } else { if (grad_op_maker != nullptr) { - VLOG(3) << "Prim Flag Close: Runing origin grad fun for " + VLOG(6) << "Prim Flag Close: Runing origin grad fun for " << op_desc.Type(); grad_op_descs = grad_op_maker( op_desc, no_grad_set, &grad_to_var, grad_sub_block); } else { - VLOG(3) << "Prim Flag Close: Runing composite grad fun for " + VLOG(6) << "Prim Flag Close: Runing composite grad fun for " << op_desc.Type(); grad_op_descs = grad_comp_op_maker(op_desc, no_grad_set, diff --git a/paddle/phi/api/yaml/op_compat.yaml b/paddle/phi/api/yaml/op_compat.yaml index 4c9ac1729b6..23d135d8690 100755 --- a/paddle/phi/api/yaml/op_compat.yaml +++ b/paddle/phi/api/yaml/op_compat.yaml @@ -1525,12 +1525,6 @@ attrs : [bool use_mkldnn = false, str mkldnn_data_type = "float32", bool use_quantizer = false, float Scale_x = 1.0f, float Scale_y = 1.0f, float Scale_out = 1.0f] -- op : maximum (elementwise_min) - backward : maximum_grad (elementwise_min_grad) - extra : - attrs : [bool use_mkldnn = false, str mkldnn_data_type = "float32", - bool use_quantizer = false, float Scale_x = 1.0f, float Scale_y = 1.0f, float Scale_out = 1.0f] - - op : maxout inputs : x : X @@ -1591,6 +1585,12 @@ out : Out drop_empty_grad : [inputs_grad] +- op : minimum (elementwise_min) + backward : minimum_grad (elementwise_min_grad) + extra : + attrs : [bool use_mkldnn = false, str x_data_format = "", str y_data_format = "", str mkldnn_data_type = "float32", + bool use_quantizer = false, float Scale_x = 1.0f, float Scale_y = 1.0f, float Scale_out = 1.0f] + - op : mish backward : mish_grad extra : -- GitLab