From 5cb2c74127d2a387cb54ed982da88a157e33b4bf Mon Sep 17 00:00:00 2001 From: Aurelius84 Date: Wed, 25 Dec 2019 14:22:35 +0800 Subject: [PATCH] add register op_data_type of pad/expand_as et.al (#21718) * add register op_data_type test=develop * fix register bug in isfinite op test=develop * rm int int64_t in pad2d gradKernel test=develop --- paddle/fluid/operators/argsort_op.cc | 4 +++- paddle/fluid/operators/argsort_op.cu | 2 ++ paddle/fluid/operators/cumsum_op.cc | 3 ++- paddle/fluid/operators/cumsum_op.cu | 3 ++- paddle/fluid/operators/expand_as_op.cc | 3 +++ paddle/fluid/operators/expand_as_op.cu | 3 +++ paddle/fluid/operators/isfinite_op.cc | 2 ++ paddle/fluid/operators/pad2d_op.cc | 7 +++++-- paddle/fluid/operators/pad2d_op.cu | 7 +++++-- paddle/fluid/operators/pad_constant_like_op.cc | 9 +++++++-- paddle/fluid/operators/pad_constant_like_op.cu | 7 ++++++- paddle/fluid/operators/pad_op.cc | 8 ++++++-- paddle/fluid/operators/pad_op.cu | 2 ++ paddle/fluid/operators/save_combine_op.cc | 3 ++- paddle/fluid/operators/save_combine_op.cu | 3 ++- paddle/fluid/operators/scatter_op.cc | 9 +++++++-- paddle/fluid/operators/scatter_op.cu | 8 ++++++-- .../operators/sequence_ops/sequence_concat_op.cc | 5 +++-- .../operators/sequence_ops/sequence_concat_op.cu.cc | 6 ++++-- .../fluid/operators/sequence_ops/sequence_slice_op.cc | 11 +++++++++-- .../fluid/operators/sequence_ops/sequence_slice_op.cu | 11 +++++++++-- paddle/fluid/operators/space_to_depth_op.cc | 2 ++ paddle/fluid/operators/space_to_depth_op.cu | 2 ++ paddle/fluid/operators/top_k_op.cc | 4 +++- paddle/fluid/operators/top_k_op.cu | 2 ++ 25 files changed, 99 insertions(+), 27 deletions(-) diff --git a/paddle/fluid/operators/argsort_op.cc b/paddle/fluid/operators/argsort_op.cc index 999e2510a8..1995b7ba04 100644 --- a/paddle/fluid/operators/argsort_op.cc +++ b/paddle/fluid/operators/argsort_op.cc @@ -93,4 +93,6 @@ REGISTER_OPERATOR( paddle::framework::EmptyGradOpMaker); REGISTER_OP_CPU_KERNEL(argsort, ops::ArgsortKernel, - ops::ArgsortKernel); + ops::ArgsortKernel, + ops::ArgsortKernel, + ops::ArgsortKernel); diff --git a/paddle/fluid/operators/argsort_op.cu b/paddle/fluid/operators/argsort_op.cu index 8eb56e70b5..0ea7e3dcb1 100644 --- a/paddle/fluid/operators/argsort_op.cu +++ b/paddle/fluid/operators/argsort_op.cu @@ -240,4 +240,6 @@ class ArgsortOpCUDAKernel : public framework::OpKernel { REGISTER_OP_CUDA_KERNEL( argsort, paddle::operators::ArgsortOpCUDAKernel, paddle::operators::ArgsortOpCUDAKernel, + paddle::operators::ArgsortOpCUDAKernel, + paddle::operators::ArgsortOpCUDAKernel, paddle::operators::ArgsortOpCUDAKernel); diff --git a/paddle/fluid/operators/cumsum_op.cc b/paddle/fluid/operators/cumsum_op.cc index ab81a2873b..89cd5c6977 100644 --- a/paddle/fluid/operators/cumsum_op.cc +++ b/paddle/fluid/operators/cumsum_op.cc @@ -81,4 +81,5 @@ REGISTER_OPERATOR(cumsum, ops::CumOp, ops::CumsumOpMaker, ops::CumsumGradMaker); REGISTER_OP_CPU_KERNEL(cumsum, ops::CumKernel>, ops::CumKernel>, - ops::CumKernel>); + ops::CumKernel>, + ops::CumKernel>); diff --git a/paddle/fluid/operators/cumsum_op.cu b/paddle/fluid/operators/cumsum_op.cu index eb5fd99ccb..a1388f20dc 100644 --- a/paddle/fluid/operators/cumsum_op.cu +++ b/paddle/fluid/operators/cumsum_op.cu @@ -19,4 +19,5 @@ using CUDA = paddle::platform::CUDADeviceContext; REGISTER_OP_CUDA_KERNEL(cumsum, ops::CumKernel>, ops::CumKernel>, - ops::CumKernel>); + ops::CumKernel>, + ops::CumKernel>); diff --git a/paddle/fluid/operators/expand_as_op.cc b/paddle/fluid/operators/expand_as_op.cc index e72a16cb5f..da20ed3bbc 100644 --- a/paddle/fluid/operators/expand_as_op.cc +++ b/paddle/fluid/operators/expand_as_op.cc @@ -130,8 +130,11 @@ REGISTER_OP_CPU_KERNEL( expand_as, ops::ExpandAsKernel, ops::ExpandAsKernel, ops::ExpandAsKernel, + ops::ExpandAsKernel, ops::ExpandAsKernel); REGISTER_OP_CPU_KERNEL( expand_as_grad, + ops::ExpandAsGradKernel, + ops::ExpandAsGradKernel, ops::ExpandAsGradKernel, ops::ExpandAsGradKernel); diff --git a/paddle/fluid/operators/expand_as_op.cu b/paddle/fluid/operators/expand_as_op.cu index d7c894d248..dbb1fcf3ab 100755 --- a/paddle/fluid/operators/expand_as_op.cu +++ b/paddle/fluid/operators/expand_as_op.cu @@ -15,8 +15,11 @@ REGISTER_OP_CUDA_KERNEL( expand_as, ops::ExpandAsKernel, ops::ExpandAsKernel, ops::ExpandAsKernel, + ops::ExpandAsKernel, ops::ExpandAsKernel); REGISTER_OP_CUDA_KERNEL( expand_as_grad, + ops::ExpandAsGradKernel, + ops::ExpandAsGradKernel, ops::ExpandAsGradKernel, ops::ExpandAsGradKernel); diff --git a/paddle/fluid/operators/isfinite_op.cc b/paddle/fluid/operators/isfinite_op.cc index f8c584163f..8936a8c9a2 100644 --- a/paddle/fluid/operators/isfinite_op.cc +++ b/paddle/fluid/operators/isfinite_op.cc @@ -104,6 +104,8 @@ namespace ops = paddle::operators; REGISTER_OP_CPU_KERNEL( \ op_type, ops::OverflowKernel, \ + ops::OverflowKernel, \ ops::OverflowKernel, \ ops::OverflowKernel); REGISTER_OPERATOR(pad2d_grad, ops::Pad2dOpGrad, ops::Pad2dOpGradNoNeedBufferVarsInference); -REGISTER_OP_CPU_KERNEL(pad2d, ops::Pad2dCPUKernel); -REGISTER_OP_CPU_KERNEL(pad2d_grad, ops::Pad2dGradCPUKernel); +REGISTER_OP_CPU_KERNEL(pad2d, ops::Pad2dCPUKernel, + ops::Pad2dCPUKernel, ops::Pad2dCPUKernel, + ops::Pad2dCPUKernel); +REGISTER_OP_CPU_KERNEL(pad2d_grad, ops::Pad2dGradCPUKernel, + ops::Pad2dGradCPUKernel); diff --git a/paddle/fluid/operators/pad2d_op.cu b/paddle/fluid/operators/pad2d_op.cu index 72eca08b06..4b6e3e9521 100644 --- a/paddle/fluid/operators/pad2d_op.cu +++ b/paddle/fluid/operators/pad2d_op.cu @@ -459,5 +459,8 @@ class Pad2dGradCUDAKernel : public framework::OpKernel { } // namespace paddle namespace ops = paddle::operators; -REGISTER_OP_CUDA_KERNEL(pad2d, ops::Pad2dCUDAKernel); -REGISTER_OP_CUDA_KERNEL(pad2d_grad, ops::Pad2dGradCUDAKernel); +REGISTER_OP_CUDA_KERNEL(pad2d, ops::Pad2dCUDAKernel, + ops::Pad2dCUDAKernel, ops::Pad2dCUDAKernel, + ops::Pad2dCUDAKernel); +REGISTER_OP_CUDA_KERNEL(pad2d_grad, ops::Pad2dGradCUDAKernel, + ops::Pad2dGradCUDAKernel); diff --git a/paddle/fluid/operators/pad_constant_like_op.cc b/paddle/fluid/operators/pad_constant_like_op.cc index d408275d8e..4fb4f7a022 100644 --- a/paddle/fluid/operators/pad_constant_like_op.cc +++ b/paddle/fluid/operators/pad_constant_like_op.cc @@ -224,8 +224,13 @@ REGISTER_OPERATOR(pad_constant_like_grad, ops::PadConstantLikeOpGrad); REGISTER_OP_CPU_KERNEL( pad_constant_like, ops::PadConstantLikeKernel, - ops::PadConstantLikeKernel); + ops::PadConstantLikeKernel, + ops::PadConstantLikeKernel, + ops::PadConstantLikeKernel); REGISTER_OP_CPU_KERNEL( pad_constant_like_grad, ops::PadConstantLikeGradKernel, - ops::PadConstantLikeGradKernel); + ops::PadConstantLikeGradKernel, + ops::PadConstantLikeGradKernel, + ops::PadConstantLikeGradKernel); diff --git a/paddle/fluid/operators/pad_constant_like_op.cu b/paddle/fluid/operators/pad_constant_like_op.cu index 9e62a6dc9d..76faf30ed9 100644 --- a/paddle/fluid/operators/pad_constant_like_op.cu +++ b/paddle/fluid/operators/pad_constant_like_op.cu @@ -17,9 +17,14 @@ namespace ops = paddle::operators; REGISTER_OP_CUDA_KERNEL( pad_constant_like, ops::PadConstantLikeKernel, - ops::PadConstantLikeKernel); + ops::PadConstantLikeKernel, + ops::PadConstantLikeKernel, + ops::PadConstantLikeKernel); REGISTER_OP_CUDA_KERNEL( pad_constant_like_grad, + ops::PadConstantLikeGradKernel, + ops::PadConstantLikeGradKernel, ops::PadConstantLikeGradKernel, ops::PadConstantLikeGradKernel); diff --git a/paddle/fluid/operators/pad_op.cc b/paddle/fluid/operators/pad_op.cc index b98f201e8a..a604c28cb0 100644 --- a/paddle/fluid/operators/pad_op.cc +++ b/paddle/fluid/operators/pad_op.cc @@ -147,6 +147,10 @@ REGISTER_OPERATOR(pad, ops::PadOp, ops::PadOpMaker, ops::PadOpGradMaker); REGISTER_OPERATOR(pad_grad, ops::PadOpGrad); REGISTER_OP_CPU_KERNEL( - pad, ops::PadKernel); + pad, ops::PadKernel, + ops::PadKernel, + ops::PadKernel, + ops::PadKernel); REGISTER_OP_CPU_KERNEL( - pad_grad, ops::PadGradKernel); + pad_grad, ops::PadGradKernel, + ops::PadGradKernel); diff --git a/paddle/fluid/operators/pad_op.cu b/paddle/fluid/operators/pad_op.cu index e07c99b12b..391e305352 100644 --- a/paddle/fluid/operators/pad_op.cu +++ b/paddle/fluid/operators/pad_op.cu @@ -18,6 +18,8 @@ namespace plat = paddle::platform; REGISTER_OP_CUDA_KERNEL( pad, ops::PadKernel, ops::PadKernel, + ops::PadKernel, + ops::PadKernel, ops::PadKernel); REGISTER_OP_CUDA_KERNEL( pad_grad, ops::PadGradKernel, diff --git a/paddle/fluid/operators/save_combine_op.cc b/paddle/fluid/operators/save_combine_op.cc index 953e2655d1..68144e603b 100644 --- a/paddle/fluid/operators/save_combine_op.cc +++ b/paddle/fluid/operators/save_combine_op.cc @@ -86,4 +86,5 @@ REGISTER_OP_CPU_KERNEL( save_combine, ops::SaveCombineOpKernel, ops::SaveCombineOpKernel, - ops::SaveCombineOpKernel); + ops::SaveCombineOpKernel, + ops::SaveCombineOpKernel); diff --git a/paddle/fluid/operators/save_combine_op.cu b/paddle/fluid/operators/save_combine_op.cu index 78607823a0..71476fd802 100644 --- a/paddle/fluid/operators/save_combine_op.cu +++ b/paddle/fluid/operators/save_combine_op.cu @@ -20,4 +20,5 @@ REGISTER_OP_CUDA_KERNEL( save_combine, ops::SaveCombineOpKernel, ops::SaveCombineOpKernel, - ops::SaveCombineOpKernel); + ops::SaveCombineOpKernel, + ops::SaveCombineOpKernel); diff --git a/paddle/fluid/operators/scatter_op.cc b/paddle/fluid/operators/scatter_op.cc index 6ba5ba7bb2..12dadc4eb9 100644 --- a/paddle/fluid/operators/scatter_op.cc +++ b/paddle/fluid/operators/scatter_op.cc @@ -146,5 +146,10 @@ REGISTER_OPERATOR(scatter, ops::ScatterOp, ops::ScatterOpMaker, REGISTER_OPERATOR(scatter_grad, ops::ScatterGradOp, ops::ScatterGradNoNeedBufferVarsInference, ops::ScatterGradInplaceInferer); -REGISTER_OP_CPU_KERNEL(scatter, ops::ScatterOpKernel); -REGISTER_OP_CPU_KERNEL(scatter_grad, ops::ScatterGradientOpKernel); +REGISTER_OP_CPU_KERNEL(scatter, ops::ScatterOpKernel, + ops::ScatterOpKernel, ops::ScatterOpKernel, + ops::ScatterOpKernel); +REGISTER_OP_CPU_KERNEL(scatter_grad, ops::ScatterGradientOpKernel, + ops::ScatterGradientOpKernel, + ops::ScatterGradientOpKernel, + ops::ScatterGradientOpKernel); diff --git a/paddle/fluid/operators/scatter_op.cu b/paddle/fluid/operators/scatter_op.cu index f3e0faa164..938616e86c 100644 --- a/paddle/fluid/operators/scatter_op.cu +++ b/paddle/fluid/operators/scatter_op.cu @@ -94,5 +94,9 @@ class ScatterGradOpCUDAKernel : public framework::OpKernel { } // namespace paddle namespace ops = paddle::operators; -REGISTER_OP_CUDA_KERNEL(scatter, ops::ScatterOpCUDAKernel); -REGISTER_OP_CUDA_KERNEL(scatter_grad, ops::ScatterGradOpCUDAKernel); +REGISTER_OP_CUDA_KERNEL(scatter, ops::ScatterOpCUDAKernel, + ops::ScatterOpCUDAKernel, + ops::ScatterOpCUDAKernel, + ops::ScatterOpCUDAKernel); +REGISTER_OP_CUDA_KERNEL(scatter_grad, ops::ScatterGradOpCUDAKernel, + ops::ScatterGradOpCUDAKernel); diff --git a/paddle/fluid/operators/sequence_ops/sequence_concat_op.cc b/paddle/fluid/operators/sequence_ops/sequence_concat_op.cc index ac513dee29..d8214ac2ca 100644 --- a/paddle/fluid/operators/sequence_ops/sequence_concat_op.cc +++ b/paddle/fluid/operators/sequence_ops/sequence_concat_op.cc @@ -126,7 +126,7 @@ REGISTER_OPERATOR(sequence_concat, op::SequenceConcatOp, op::SeqConcatOpMaker, template using Kernel = op::SeqConcatKernel; REGISTER_OP_CPU_KERNEL(sequence_concat, Kernel, Kernel, - Kernel); + Kernel, Kernel); REGISTER_OPERATOR(sequence_concat_grad, op::SeqConcatGradOp, op::SeqConcatGradNoNeedBufferVarsInference); @@ -134,4 +134,5 @@ template using GradKernel = op::SeqConcatGradKernel; REGISTER_OP_CPU_KERNEL(sequence_concat_grad, GradKernel, - GradKernel, GradKernel); + GradKernel, GradKernel, + GradKernel); diff --git a/paddle/fluid/operators/sequence_ops/sequence_concat_op.cu.cc b/paddle/fluid/operators/sequence_ops/sequence_concat_op.cu.cc index 7b8043bc45..43fd84a711 100644 --- a/paddle/fluid/operators/sequence_ops/sequence_concat_op.cu.cc +++ b/paddle/fluid/operators/sequence_ops/sequence_concat_op.cu.cc @@ -17,10 +17,12 @@ template using Kernel = paddle::operators::SeqConcatKernel; -REGISTER_OP_CUDA_KERNEL(sequence_concat, Kernel, Kernel); +REGISTER_OP_CUDA_KERNEL(sequence_concat, Kernel, Kernel, + Kernel, Kernel); template using GradKernel = paddle::operators::SeqConcatGradKernel; REGISTER_OP_CUDA_KERNEL(sequence_concat_grad, GradKernel, - GradKernel); + GradKernel, GradKernel, + GradKernel); diff --git a/paddle/fluid/operators/sequence_ops/sequence_slice_op.cc b/paddle/fluid/operators/sequence_ops/sequence_slice_op.cc index 9e31a81c43..655afe7e53 100644 --- a/paddle/fluid/operators/sequence_ops/sequence_slice_op.cc +++ b/paddle/fluid/operators/sequence_ops/sequence_slice_op.cc @@ -150,7 +150,14 @@ REGISTER_OPERATOR(sequence_slice_grad, ops::SequenceSliceGradOp, ops::SequenceSliceGradNoNeedBufferVarsInference); REGISTER_OP_CPU_KERNEL( sequence_slice, - ops::SequenceSliceOpKernel); + ops::SequenceSliceOpKernel, + ops::SequenceSliceOpKernel, + ops::SequenceSliceOpKernel, + ops::SequenceSliceOpKernel); REGISTER_OP_CPU_KERNEL( sequence_slice_grad, - ops::SequenceSliceGradOpKernel); + ops::SequenceSliceGradOpKernel, + ops::SequenceSliceGradOpKernel, + ops::SequenceSliceGradOpKernel, + ops::SequenceSliceGradOpKernel); diff --git a/paddle/fluid/operators/sequence_ops/sequence_slice_op.cu b/paddle/fluid/operators/sequence_ops/sequence_slice_op.cu index 1e4a1b8323..a4b0ea2e5b 100644 --- a/paddle/fluid/operators/sequence_ops/sequence_slice_op.cu +++ b/paddle/fluid/operators/sequence_ops/sequence_slice_op.cu @@ -17,7 +17,14 @@ limitations under the License. */ namespace ops = paddle::operators; REGISTER_OP_CUDA_KERNEL( sequence_slice, - ops::SequenceSliceOpKernel); + ops::SequenceSliceOpKernel, + ops::SequenceSliceOpKernel, + ops::SequenceSliceOpKernel, + ops::SequenceSliceOpKernel); REGISTER_OP_CUDA_KERNEL( sequence_slice_grad, - ops::SequenceSliceGradOpKernel); + ops::SequenceSliceGradOpKernel, + ops::SequenceSliceGradOpKernel, + ops::SequenceSliceGradOpKernel, + ops::SequenceSliceGradOpKernel); diff --git a/paddle/fluid/operators/space_to_depth_op.cc b/paddle/fluid/operators/space_to_depth_op.cc index 133be773ac..1042d2acd3 100644 --- a/paddle/fluid/operators/space_to_depth_op.cc +++ b/paddle/fluid/operators/space_to_depth_op.cc @@ -187,9 +187,11 @@ REGISTER_OP_CPU_KERNEL( space_to_depth, ops::SpaceToDepthKernel, ops::SpaceToDepthKernel, + ops::SpaceToDepthKernel, ops::SpaceToDepthKernel); REGISTER_OP_CPU_KERNEL( space_to_depth_grad, ops::SpaceToDepthGradKernel, ops::SpaceToDepthGradKernel, + ops::SpaceToDepthGradKernel, ops::SpaceToDepthGradKernel); diff --git a/paddle/fluid/operators/space_to_depth_op.cu b/paddle/fluid/operators/space_to_depth_op.cu index 38d0a66273..5a9f7c288d 100644 --- a/paddle/fluid/operators/space_to_depth_op.cu +++ b/paddle/fluid/operators/space_to_depth_op.cu @@ -21,10 +21,12 @@ REGISTER_OP_CUDA_KERNEL( space_to_depth, ops::SpaceToDepthKernel, ops::SpaceToDepthKernel, + ops::SpaceToDepthKernel, ops::SpaceToDepthKernel); REGISTER_OP_CUDA_KERNEL( space_to_depth_grad, ops::SpaceToDepthGradKernel, ops::SpaceToDepthGradKernel, + ops::SpaceToDepthGradKernel, ops::SpaceToDepthGradKernel); diff --git a/paddle/fluid/operators/top_k_op.cc b/paddle/fluid/operators/top_k_op.cc index 7b9960c8b4..c18ec5d418 100644 --- a/paddle/fluid/operators/top_k_op.cc +++ b/paddle/fluid/operators/top_k_op.cc @@ -99,4 +99,6 @@ REGISTER_OPERATOR( paddle::framework::EmptyGradOpMaker); REGISTER_OP_CPU_KERNEL(top_k, ops::TopkKernel, - ops::TopkKernel); + ops::TopkKernel, + ops::TopkKernel, + ops::TopkKernel); diff --git a/paddle/fluid/operators/top_k_op.cu b/paddle/fluid/operators/top_k_op.cu index 0375611dfb..c56716f8ed 100644 --- a/paddle/fluid/operators/top_k_op.cu +++ b/paddle/fluid/operators/top_k_op.cu @@ -549,4 +549,6 @@ class TopkOpCUDAKernel : public framework::OpKernel { REGISTER_OP_CUDA_KERNEL( top_k, paddle::operators::TopkOpCUDAKernel, paddle::operators::TopkOpCUDAKernel, + paddle::operators::TopkOpCUDAKernel, + paddle::operators::TopkOpCUDAKernel, paddle::operators::TopkOpCUDAKernel); -- GitLab