From ce8067d554eda75094f14c60d93167d3f46974c0 Mon Sep 17 00:00:00 2001 From: Liyulingyue <852433440@qq.com> Date: Mon, 20 Feb 2023 23:02:39 +0800 Subject: [PATCH 01/75] remove utils --- paddle/phi/kernels/xpu/rnn_grad_kernel.cc | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/paddle/phi/kernels/xpu/rnn_grad_kernel.cc b/paddle/phi/kernels/xpu/rnn_grad_kernel.cc index c7ba5e7f765f05..2cbc6272fde52c 100644 --- a/paddle/phi/kernels/xpu/rnn_grad_kernel.cc +++ b/paddle/phi/kernels/xpu/rnn_grad_kernel.cc @@ -13,8 +13,8 @@ // limitations under the License. #include "paddle/phi/kernels/rnn_grad_kernel.h" -#include "paddle/fluid/operators/utils.h" #include "paddle/phi/backends/xpu/enforce_xpu.h" +#include "paddle/phi/common/scalar.h" #include "paddle/phi/core/kernel_registry.h" #include "paddle/phi/kernels/funcs/math_function.h" #include "paddle/phi/kernels/xpu/rnn_util.h" @@ -166,7 +166,7 @@ void RnnGradKernel(const Context& dev_ctx, std::vector seq_len_tensor(batch_size, seq_len); if (has_seq_length) { seq_len_tensor = - paddle::operators::GetDataFromTensor(sequence_length.get_ptr()); + paddle::experimental::GetDataFromTensor(sequence_length.get_ptr()); } for (int i = num_layers - 1; i >= 0; --i) { From 2f818e350a9fa6f67937b801b9794b9a210cb1d0 Mon Sep 17 00:00:00 2001 From: Liyulingyue <852433440@qq.com> Date: Mon, 20 Feb 2023 23:27:39 +0800 Subject: [PATCH 02/75] remove utils --- paddle/phi/kernels/cpu/rnn_functor.h | 4 ++-- paddle/phi/kernels/gpu/rnn_grad_kernel.cu.cc | 4 ++-- paddle/phi/kernels/gpu/rnn_kernel.cu.cc | 4 ++-- paddle/phi/kernels/xpu/rnn_kernel.cc | 4 ++-- 4 files changed, 8 insertions(+), 8 deletions(-) diff --git a/paddle/phi/kernels/cpu/rnn_functor.h b/paddle/phi/kernels/cpu/rnn_functor.h index cdf024d1ec9604..96e7eaf9757f6b 100644 --- a/paddle/phi/kernels/cpu/rnn_functor.h +++ b/paddle/phi/kernels/cpu/rnn_functor.h @@ -14,7 +14,7 @@ #pragma once -#include "paddle/fluid/operators/utils.h" +#include "paddle/phi/common/scalar.h" #include "paddle/phi/core/dense_tensor.h" #include "paddle/phi/core/generator.h" #include "paddle/phi/core/tensor_utils.h" @@ -48,7 +48,7 @@ void CreateMaskMatrix(const CPUContext& dev_ctx, const bool& is_reverse, int* min_seq_len) { const auto& seq_len_vec = - paddle::operators::GetDataFromTensor(sequence_length); + paddle::experimental::GetDataFromTensor(sequence_length); const int table_width = mask_matrix->dims()[0]; DenseTensor temp = Empty(dev_ctx, {mask_matrix->dims()[1], mask_matrix->dims()[0]}); diff --git a/paddle/phi/kernels/gpu/rnn_grad_kernel.cu.cc b/paddle/phi/kernels/gpu/rnn_grad_kernel.cu.cc index ff1d295b11e681..b5e4f08d44580a 100644 --- a/paddle/phi/kernels/gpu/rnn_grad_kernel.cu.cc +++ b/paddle/phi/kernels/gpu/rnn_grad_kernel.cu.cc @@ -14,8 +14,8 @@ #include "paddle/phi/kernels/rnn_grad_kernel.h" -#include "paddle/fluid/operators/utils.h" #include "paddle/phi/backends/gpu/gpu_context.h" +#include "paddle/phi/common/scalar.h" #include "paddle/phi/core/kernel_registry.h" #include "paddle/phi/kernels/empty_kernel.h" #include "paddle/phi/kernels/full_kernel.h" @@ -224,7 +224,7 @@ void RnnGradKernel(const Context &dev_ctx, std::vector SequenceLength; if (has_seq_length) { SequenceLength = - paddle::operators::GetDataFromTensor(sequence_length.get_ptr()); + paddle::experimental::GetDataFromTensor(sequence_length.get_ptr()); } auto input_dims = x.dims(); diff --git a/paddle/phi/kernels/gpu/rnn_kernel.cu.cc b/paddle/phi/kernels/gpu/rnn_kernel.cu.cc index 44fab87d910d76..96f2af41773c00 100644 --- a/paddle/phi/kernels/gpu/rnn_kernel.cu.cc +++ b/paddle/phi/kernels/gpu/rnn_kernel.cu.cc @@ -14,8 +14,8 @@ #include "paddle/phi/kernels/rnn_kernel.h" -#include "paddle/fluid/operators/utils.h" #include "paddle/phi/backends/gpu/gpu_context.h" +#include "paddle/phi/common/scalar.h" #include "paddle/phi/core/generator.h" #include "paddle/phi/core/kernel_registry.h" #include "paddle/phi/kernels/empty_kernel.h" @@ -206,7 +206,7 @@ void RnnKernel(const Context &dev_ctx, std::vector SequenceLength; if (has_seq_length) { SequenceLength = - paddle::operators::GetDataFromTensor(sequence_length.get_ptr()); + paddle::experimental::GetDataFromTensor(sequence_length.get_ptr()); } auto handle = dev_ctx.cudnn_handle(); diff --git a/paddle/phi/kernels/xpu/rnn_kernel.cc b/paddle/phi/kernels/xpu/rnn_kernel.cc index faa4dce29f77d8..658c1570d2ee0b 100644 --- a/paddle/phi/kernels/xpu/rnn_kernel.cc +++ b/paddle/phi/kernels/xpu/rnn_kernel.cc @@ -13,8 +13,8 @@ // limitations under the License. #include "paddle/phi/kernels/rnn_kernel.h" -#include "paddle/fluid/operators/utils.h" #include "paddle/phi/backends/xpu/enforce_xpu.h" +#include "paddle/phi/common/scalar.h" #include "paddle/phi/core/kernel_registry.h" #include "paddle/phi/kernels/funcs/math_function.h" #include "paddle/phi/kernels/xpu/rnn_util.h" @@ -120,7 +120,7 @@ void RnnKernel(const Context& dev_ctx, if (has_seq_length) { seq_len_tensor = - paddle::operators::GetDataFromTensor(sequence_length.get_ptr()); + paddle::experimental::GetDataFromTensor(sequence_length.get_ptr()); } int state_offset = pre_state[0]->dims()[1] * pre_state[0]->dims()[2]; From ce3d484f78a0f27204e2d2ea33102b4cbd3fb0f4 Mon Sep 17 00:00:00 2001 From: Liyulingyue <852433440@qq.com> Date: Tue, 21 Feb 2023 06:43:54 +0800 Subject: [PATCH 03/75] remove utils --- paddle/phi/core/utils/get_data_from_tensor.h | 56 ++++++++++++++++++++ paddle/phi/kernels/xpu/rnn_grad_kernel.cc | 4 +- 2 files changed, 58 insertions(+), 2 deletions(-) create mode 100644 paddle/phi/core/utils/get_data_from_tensor.h diff --git a/paddle/phi/core/utils/get_data_from_tensor.h b/paddle/phi/core/utils/get_data_from_tensor.h new file mode 100644 index 00000000000000..697d5e1a97a708 --- /dev/null +++ b/paddle/phi/core/utils/get_data_from_tensor.h @@ -0,0 +1,56 @@ +/* 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. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. */ +#pragma once +#include + +#include +#include + +namespace phi { +namespace operators { + +template +inline std::vector GetDataFromTensor(const phi::DenseTensor* x) { + std::vector vec_new_data; + if (framework::TransToProtoVarType(x->dtype()) == + framework::proto::VarType::INT32) { + auto* data = x->data(); + phi::DenseTensor cpu_attr_tensor; + if (!platform::is_cpu_place(x->place())) { + paddle::framework::TensorCopySync( + *x, platform::CPUPlace(), &cpu_attr_tensor); + data = cpu_attr_tensor.data(); + } + vec_new_data = std::vector(data, data + x->numel()); + } else if (framework::TransToProtoVarType(x->dtype()) == + framework::proto::VarType::INT64) { + auto* data = x->data(); + phi::DenseTensor cpu_attr_tensor; + if (!platform::is_cpu_place(x->place())) { + paddle::framework::TensorCopySync( + *x, platform::CPUPlace(), &cpu_attr_tensor); + data = cpu_attr_tensor.data(); + } + // NOTE: Converting int64 to int32 may cause data overflow. + vec_new_data = std::vector(data, data + x->numel()); + } else { + PADDLE_THROW(phi::errors::InvalidArgument( + "The dtype of Tensor must be int32 or int64, but received: %s", + framework::TransToProtoVarType(x->dtype()))); + } + return vec_new_data; +} + +} // namespace operators +} // namespace phi diff --git a/paddle/phi/kernels/xpu/rnn_grad_kernel.cc b/paddle/phi/kernels/xpu/rnn_grad_kernel.cc index 2cbc6272fde52c..cc75ae7548186c 100644 --- a/paddle/phi/kernels/xpu/rnn_grad_kernel.cc +++ b/paddle/phi/kernels/xpu/rnn_grad_kernel.cc @@ -14,8 +14,8 @@ #include "paddle/phi/kernels/rnn_grad_kernel.h" #include "paddle/phi/backends/xpu/enforce_xpu.h" -#include "paddle/phi/common/scalar.h" #include "paddle/phi/core/kernel_registry.h" +#include "paddle/phi/core/utils/get_data_from_tensor.h" #include "paddle/phi/kernels/funcs/math_function.h" #include "paddle/phi/kernels/xpu/rnn_util.h" @@ -166,7 +166,7 @@ void RnnGradKernel(const Context& dev_ctx, std::vector seq_len_tensor(batch_size, seq_len); if (has_seq_length) { seq_len_tensor = - paddle::experimental::GetDataFromTensor(sequence_length.get_ptr()); + operators::GetDataFromTensor(sequence_length.get_ptr()); } for (int i = num_layers - 1; i >= 0; --i) { From 500616c34e200dcdd2d2687a8ea3ac76dd69115a Mon Sep 17 00:00:00 2001 From: Liyulingyue <852433440@qq.com> Date: Tue, 21 Feb 2023 07:02:21 +0800 Subject: [PATCH 04/75] remove utils --- paddle/phi/core/utils/get_data_from_tensor.h | 6 +++--- paddle/phi/kernels/xpu/rnn_grad_kernel.cc | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/paddle/phi/core/utils/get_data_from_tensor.h b/paddle/phi/core/utils/get_data_from_tensor.h index 697d5e1a97a708..e6ae2896626ba4 100644 --- a/paddle/phi/core/utils/get_data_from_tensor.h +++ b/paddle/phi/core/utils/get_data_from_tensor.h @@ -18,10 +18,10 @@ limitations under the License. */ #include namespace phi { -namespace operators { +namespace funcs { template -inline std::vector GetDataFromTensor(const phi::DenseTensor* x) { +inline std::vector GetDataFromDenseTensor(const phi::DenseTensor* x) { std::vector vec_new_data; if (framework::TransToProtoVarType(x->dtype()) == framework::proto::VarType::INT32) { @@ -52,5 +52,5 @@ inline std::vector GetDataFromTensor(const phi::DenseTensor* x) { return vec_new_data; } -} // namespace operators +} // namespace funcs } // namespace phi diff --git a/paddle/phi/kernels/xpu/rnn_grad_kernel.cc b/paddle/phi/kernels/xpu/rnn_grad_kernel.cc index cc75ae7548186c..f607517000bff2 100644 --- a/paddle/phi/kernels/xpu/rnn_grad_kernel.cc +++ b/paddle/phi/kernels/xpu/rnn_grad_kernel.cc @@ -166,7 +166,7 @@ void RnnGradKernel(const Context& dev_ctx, std::vector seq_len_tensor(batch_size, seq_len); if (has_seq_length) { seq_len_tensor = - operators::GetDataFromTensor(sequence_length.get_ptr()); + phi::funcs::GetDataFromDenseTensor(sequence_length.get_ptr()); } for (int i = num_layers - 1; i >= 0; --i) { From f58156a676edaf99116d6d3fec6ffb0923f85a77 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BC=A0=E6=98=A5=E4=B9=94?= <83450930+Liyulingyue@users.noreply.github.com> Date: Tue, 21 Feb 2023 08:13:47 +0800 Subject: [PATCH 05/75] Update get_data_from_tensor.h --- paddle/phi/core/utils/get_data_from_tensor.h | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/paddle/phi/core/utils/get_data_from_tensor.h b/paddle/phi/core/utils/get_data_from_tensor.h index e6ae2896626ba4..4ae202efdee980 100644 --- a/paddle/phi/core/utils/get_data_from_tensor.h +++ b/paddle/phi/core/utils/get_data_from_tensor.h @@ -23,23 +23,23 @@ namespace funcs { template inline std::vector GetDataFromDenseTensor(const phi::DenseTensor* x) { std::vector vec_new_data; - if (framework::TransToProtoVarType(x->dtype()) == - framework::proto::VarType::INT32) { + if (paddle::framework::TransToProtoVarType(x->dtype()) == + paddle::framework::proto::VarType::INT32) { auto* data = x->data(); phi::DenseTensor cpu_attr_tensor; - if (!platform::is_cpu_place(x->place())) { + if (!paddle::platform::is_cpu_place(x->place())) { paddle::framework::TensorCopySync( - *x, platform::CPUPlace(), &cpu_attr_tensor); + *x, paddle::platform::CPUPlace(), &cpu_attr_tensor); data = cpu_attr_tensor.data(); } vec_new_data = std::vector(data, data + x->numel()); - } else if (framework::TransToProtoVarType(x->dtype()) == - framework::proto::VarType::INT64) { + } else if (paddle::framework::TransToProtoVarType(x->dtype()) == + paddle::framework::proto::VarType::INT64) { auto* data = x->data(); phi::DenseTensor cpu_attr_tensor; - if (!platform::is_cpu_place(x->place())) { + if (!paddle::platform::is_cpu_place(x->place())) { paddle::framework::TensorCopySync( - *x, platform::CPUPlace(), &cpu_attr_tensor); + *x, paddle::platform::CPUPlace(), &cpu_attr_tensor); data = cpu_attr_tensor.data(); } // NOTE: Converting int64 to int32 may cause data overflow. @@ -47,7 +47,7 @@ inline std::vector GetDataFromDenseTensor(const phi::DenseTensor* x) { } else { PADDLE_THROW(phi::errors::InvalidArgument( "The dtype of Tensor must be int32 or int64, but received: %s", - framework::TransToProtoVarType(x->dtype()))); + paddle::framework::TransToProtoVarType(x->dtype()))); } return vec_new_data; } From fcf2eaf6d84830e705ee2db3d45f165ea5bb4603 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BC=A0=E6=98=A5=E4=B9=94?= <83450930+Liyulingyue@users.noreply.github.com> Date: Tue, 21 Feb 2023 12:27:39 +0800 Subject: [PATCH 06/75] Update rnn_functor.h --- paddle/phi/kernels/cpu/rnn_functor.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/paddle/phi/kernels/cpu/rnn_functor.h b/paddle/phi/kernels/cpu/rnn_functor.h index 96e7eaf9757f6b..d2b8967169f6e3 100644 --- a/paddle/phi/kernels/cpu/rnn_functor.h +++ b/paddle/phi/kernels/cpu/rnn_functor.h @@ -14,7 +14,7 @@ #pragma once -#include "paddle/phi/common/scalar.h" +#include "paddle/phi/core/utils/get_data_from_tensor.h" #include "paddle/phi/core/dense_tensor.h" #include "paddle/phi/core/generator.h" #include "paddle/phi/core/tensor_utils.h" @@ -48,7 +48,7 @@ void CreateMaskMatrix(const CPUContext& dev_ctx, const bool& is_reverse, int* min_seq_len) { const auto& seq_len_vec = - paddle::experimental::GetDataFromTensor(sequence_length); + phi::funcs::GetDataFromDenseTensor(sequence_length); const int table_width = mask_matrix->dims()[0]; DenseTensor temp = Empty(dev_ctx, {mask_matrix->dims()[1], mask_matrix->dims()[0]}); From 46a9fb7fb70f8b899d8bd02ef2840e4c75603973 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BC=A0=E6=98=A5=E4=B9=94?= <83450930+Liyulingyue@users.noreply.github.com> Date: Tue, 21 Feb 2023 12:28:45 +0800 Subject: [PATCH 07/75] Update rnn_grad_kernel.cu.cc --- paddle/phi/kernels/gpu/rnn_grad_kernel.cu.cc | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/paddle/phi/kernels/gpu/rnn_grad_kernel.cu.cc b/paddle/phi/kernels/gpu/rnn_grad_kernel.cu.cc index b5e4f08d44580a..c573d94156e159 100644 --- a/paddle/phi/kernels/gpu/rnn_grad_kernel.cu.cc +++ b/paddle/phi/kernels/gpu/rnn_grad_kernel.cu.cc @@ -15,7 +15,7 @@ #include "paddle/phi/kernels/rnn_grad_kernel.h" #include "paddle/phi/backends/gpu/gpu_context.h" -#include "paddle/phi/common/scalar.h" +#include "paddle/phi/core/utils/get_data_from_tensor.h" #include "paddle/phi/core/kernel_registry.h" #include "paddle/phi/kernels/empty_kernel.h" #include "paddle/phi/kernels/full_kernel.h" @@ -224,7 +224,7 @@ void RnnGradKernel(const Context &dev_ctx, std::vector SequenceLength; if (has_seq_length) { SequenceLength = - paddle::experimental::GetDataFromTensor(sequence_length.get_ptr()); + phi::funcs::GetDataFromDenseTensor(sequence_length.get_ptr()); } auto input_dims = x.dims(); From 651dff36528ead439cef337c9d1850e2aed793dc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BC=A0=E6=98=A5=E4=B9=94?= <83450930+Liyulingyue@users.noreply.github.com> Date: Tue, 21 Feb 2023 12:29:54 +0800 Subject: [PATCH 08/75] Update rnn_kernel.cu.cc --- paddle/phi/kernels/gpu/rnn_kernel.cu.cc | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/paddle/phi/kernels/gpu/rnn_kernel.cu.cc b/paddle/phi/kernels/gpu/rnn_kernel.cu.cc index 96f2af41773c00..29ad0c8dcf5fe0 100644 --- a/paddle/phi/kernels/gpu/rnn_kernel.cu.cc +++ b/paddle/phi/kernels/gpu/rnn_kernel.cu.cc @@ -15,7 +15,7 @@ #include "paddle/phi/kernels/rnn_kernel.h" #include "paddle/phi/backends/gpu/gpu_context.h" -#include "paddle/phi/common/scalar.h" +#include "paddle/phi/core/utils/get_data_from_tensor.h" #include "paddle/phi/core/generator.h" #include "paddle/phi/core/kernel_registry.h" #include "paddle/phi/kernels/empty_kernel.h" @@ -206,7 +206,7 @@ void RnnKernel(const Context &dev_ctx, std::vector SequenceLength; if (has_seq_length) { SequenceLength = - paddle::experimental::GetDataFromTensor(sequence_length.get_ptr()); + phi::funcs::GetDataFromDenseTensor(sequence_length.get_ptr()); } auto handle = dev_ctx.cudnn_handle(); From 64ff5c6b6650bbf540a6fef41e9f26482c08ccf2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BC=A0=E6=98=A5=E4=B9=94?= <83450930+Liyulingyue@users.noreply.github.com> Date: Tue, 21 Feb 2023 12:30:59 +0800 Subject: [PATCH 09/75] Update rnn_kernel.cc --- paddle/phi/kernels/xpu/rnn_kernel.cc | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/paddle/phi/kernels/xpu/rnn_kernel.cc b/paddle/phi/kernels/xpu/rnn_kernel.cc index 658c1570d2ee0b..8e1a745db64843 100644 --- a/paddle/phi/kernels/xpu/rnn_kernel.cc +++ b/paddle/phi/kernels/xpu/rnn_kernel.cc @@ -14,7 +14,7 @@ #include "paddle/phi/kernels/rnn_kernel.h" #include "paddle/phi/backends/xpu/enforce_xpu.h" -#include "paddle/phi/common/scalar.h" +#include "paddle/phi/core/utils/get_data_from_tensor.h" #include "paddle/phi/core/kernel_registry.h" #include "paddle/phi/kernels/funcs/math_function.h" #include "paddle/phi/kernels/xpu/rnn_util.h" @@ -120,7 +120,7 @@ void RnnKernel(const Context& dev_ctx, if (has_seq_length) { seq_len_tensor = - paddle::experimental::GetDataFromTensor(sequence_length.get_ptr()); + phi::funcs::GetDataFromDenseTensor(sequence_length.get_ptr()); } int state_offset = pre_state[0]->dims()[1] * pre_state[0]->dims()[2]; From b29339d954984b7c9388fb1ece6b7d88602aca7a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BC=A0=E6=98=A5=E4=B9=94?= <83450930+Liyulingyue@users.noreply.github.com> Date: Tue, 21 Feb 2023 12:57:23 +0800 Subject: [PATCH 10/75] Update rnn_grad_kernel.cu.cc --- paddle/phi/kernels/gpu/rnn_grad_kernel.cu.cc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/paddle/phi/kernels/gpu/rnn_grad_kernel.cu.cc b/paddle/phi/kernels/gpu/rnn_grad_kernel.cu.cc index c573d94156e159..a6b19380c4ef00 100644 --- a/paddle/phi/kernels/gpu/rnn_grad_kernel.cu.cc +++ b/paddle/phi/kernels/gpu/rnn_grad_kernel.cu.cc @@ -15,8 +15,8 @@ #include "paddle/phi/kernels/rnn_grad_kernel.h" #include "paddle/phi/backends/gpu/gpu_context.h" -#include "paddle/phi/core/utils/get_data_from_tensor.h" #include "paddle/phi/core/kernel_registry.h" +#include "paddle/phi/core/utils/get_data_from_tensor.h" #include "paddle/phi/kernels/empty_kernel.h" #include "paddle/phi/kernels/full_kernel.h" #include "paddle/phi/kernels/gpu/rnn_functor.h" From e4403defc3e0474cbcf0f31da11425748a8ac2e4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BC=A0=E6=98=A5=E4=B9=94?= <83450930+Liyulingyue@users.noreply.github.com> Date: Tue, 21 Feb 2023 12:57:37 +0800 Subject: [PATCH 11/75] Update rnn_functor.h --- paddle/phi/kernels/cpu/rnn_functor.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/paddle/phi/kernels/cpu/rnn_functor.h b/paddle/phi/kernels/cpu/rnn_functor.h index d2b8967169f6e3..cf68d5b2f0c6c1 100644 --- a/paddle/phi/kernels/cpu/rnn_functor.h +++ b/paddle/phi/kernels/cpu/rnn_functor.h @@ -14,10 +14,10 @@ #pragma once -#include "paddle/phi/core/utils/get_data_from_tensor.h" #include "paddle/phi/core/dense_tensor.h" #include "paddle/phi/core/generator.h" #include "paddle/phi/core/tensor_utils.h" +#include "paddle/phi/core/utils/get_data_from_tensor.h" #include "paddle/phi/kernels/empty_kernel.h" #include "paddle/phi/kernels/funcs/eigen/common.h" #include "paddle/phi/kernels/funcs/eigen/eigen_function.h" From e7357456c52b9260e935bf6853345860f2691b00 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BC=A0=E6=98=A5=E4=B9=94?= <83450930+Liyulingyue@users.noreply.github.com> Date: Tue, 21 Feb 2023 12:58:35 +0800 Subject: [PATCH 12/75] Update rnn_kernel.cu.cc --- paddle/phi/kernels/gpu/rnn_kernel.cu.cc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/paddle/phi/kernels/gpu/rnn_kernel.cu.cc b/paddle/phi/kernels/gpu/rnn_kernel.cu.cc index 29ad0c8dcf5fe0..d45a30d67194aa 100644 --- a/paddle/phi/kernels/gpu/rnn_kernel.cu.cc +++ b/paddle/phi/kernels/gpu/rnn_kernel.cu.cc @@ -15,9 +15,9 @@ #include "paddle/phi/kernels/rnn_kernel.h" #include "paddle/phi/backends/gpu/gpu_context.h" -#include "paddle/phi/core/utils/get_data_from_tensor.h" #include "paddle/phi/core/generator.h" #include "paddle/phi/core/kernel_registry.h" +#include "paddle/phi/core/utils/get_data_from_tensor.h" #include "paddle/phi/kernels/empty_kernel.h" #include "paddle/phi/kernels/gpu/rnn_functor.h" From 792ecd7084b7710ae58b0714e54d052c8f944e68 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BC=A0=E6=98=A5=E4=B9=94?= <83450930+Liyulingyue@users.noreply.github.com> Date: Tue, 21 Feb 2023 12:58:53 +0800 Subject: [PATCH 13/75] Update rnn_kernel.cc --- paddle/phi/kernels/xpu/rnn_kernel.cc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/paddle/phi/kernels/xpu/rnn_kernel.cc b/paddle/phi/kernels/xpu/rnn_kernel.cc index 8e1a745db64843..1b1acff7d809bb 100644 --- a/paddle/phi/kernels/xpu/rnn_kernel.cc +++ b/paddle/phi/kernels/xpu/rnn_kernel.cc @@ -14,8 +14,8 @@ #include "paddle/phi/kernels/rnn_kernel.h" #include "paddle/phi/backends/xpu/enforce_xpu.h" -#include "paddle/phi/core/utils/get_data_from_tensor.h" #include "paddle/phi/core/kernel_registry.h" +#include "paddle/phi/core/utils/get_data_from_tensor.h" #include "paddle/phi/kernels/funcs/math_function.h" #include "paddle/phi/kernels/xpu/rnn_util.h" From b3613d5549bfc65b85d6eb4528f1583723981e0d Mon Sep 17 00:00:00 2001 From: Liyulingyue <852433440@qq.com> Date: Tue, 21 Feb 2023 17:44:49 +0800 Subject: [PATCH 14/75] remove utils --- paddle/phi/core/tensor_utils.h | 34 ++++++++++++ paddle/phi/core/utils/get_data_from_tensor.h | 56 -------------------- paddle/phi/kernels/gpu/rnn_grad_kernel.cu.cc | 5 +- paddle/phi/kernels/gpu/rnn_kernel.cu.cc | 5 +- paddle/phi/kernels/xpu/rnn_grad_kernel.cc | 5 +- paddle/phi/kernels/xpu/rnn_kernel.cc | 5 +- 6 files changed, 42 insertions(+), 68 deletions(-) delete mode 100644 paddle/phi/core/utils/get_data_from_tensor.h diff --git a/paddle/phi/core/tensor_utils.h b/paddle/phi/core/tensor_utils.h index df6db077f0310d..3d781a51d4f62a 100644 --- a/paddle/phi/core/tensor_utils.h +++ b/paddle/phi/core/tensor_utils.h @@ -14,6 +14,8 @@ limitations under the License. */ #pragma once +#include + #include "paddle/phi/core/dense_tensor.h" #include "paddle/phi/core/device_context.h" #include "paddle/phi/core/selected_rows.h" @@ -144,4 +146,36 @@ inline T GetValue(const Context& dev_ctx, const DenseTensor& x) { return value; } +template +inline std::vector GetVectorFromTensor(const phi::DenseTensor* x) { + std::vector vec_new_data; + if (paddle::framework::TransToProtoVarType(x->dtype()) == + paddle::framework::proto::VarType::INT32) { + auto* data = x->data(); + phi::DenseTensor cpu_attr_tensor; + if (!paddle::platform::is_cpu_place(x->place())) { + paddle::framework::TensorCopySync( + *x, paddle::platform::CPUPlace(), &cpu_attr_tensor); + data = cpu_attr_tensor.data(); + } + vec_new_data = std::vector(data, data + x->numel()); + } else if (paddle::framework::TransToProtoVarType(x->dtype()) == + paddle::framework::proto::VarType::INT64) { + auto* data = x->data(); + phi::DenseTensor cpu_attr_tensor; + if (!paddle::platform::is_cpu_place(x->place())) { + paddle::framework::TensorCopySync( + *x, paddle::platform::CPUPlace(), &cpu_attr_tensor); + data = cpu_attr_tensor.data(); + } + // NOTE: Converting int64 to int32 may cause data overflow. + vec_new_data = std::vector(data, data + x->numel()); + } else { + PADDLE_THROW(phi::errors::InvalidArgument( + "The dtype of Tensor must be int32 or int64, but received: %s", + paddle::framework::TransToProtoVarType(x->dtype()))); + } + return vec_new_data; +} + } // namespace phi diff --git a/paddle/phi/core/utils/get_data_from_tensor.h b/paddle/phi/core/utils/get_data_from_tensor.h deleted file mode 100644 index 4ae202efdee980..00000000000000 --- a/paddle/phi/core/utils/get_data_from_tensor.h +++ /dev/null @@ -1,56 +0,0 @@ -/* 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. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. */ -#pragma once -#include - -#include -#include - -namespace phi { -namespace funcs { - -template -inline std::vector GetDataFromDenseTensor(const phi::DenseTensor* x) { - std::vector vec_new_data; - if (paddle::framework::TransToProtoVarType(x->dtype()) == - paddle::framework::proto::VarType::INT32) { - auto* data = x->data(); - phi::DenseTensor cpu_attr_tensor; - if (!paddle::platform::is_cpu_place(x->place())) { - paddle::framework::TensorCopySync( - *x, paddle::platform::CPUPlace(), &cpu_attr_tensor); - data = cpu_attr_tensor.data(); - } - vec_new_data = std::vector(data, data + x->numel()); - } else if (paddle::framework::TransToProtoVarType(x->dtype()) == - paddle::framework::proto::VarType::INT64) { - auto* data = x->data(); - phi::DenseTensor cpu_attr_tensor; - if (!paddle::platform::is_cpu_place(x->place())) { - paddle::framework::TensorCopySync( - *x, paddle::platform::CPUPlace(), &cpu_attr_tensor); - data = cpu_attr_tensor.data(); - } - // NOTE: Converting int64 to int32 may cause data overflow. - vec_new_data = std::vector(data, data + x->numel()); - } else { - PADDLE_THROW(phi::errors::InvalidArgument( - "The dtype of Tensor must be int32 or int64, but received: %s", - paddle::framework::TransToProtoVarType(x->dtype()))); - } - return vec_new_data; -} - -} // namespace funcs -} // namespace phi diff --git a/paddle/phi/kernels/gpu/rnn_grad_kernel.cu.cc b/paddle/phi/kernels/gpu/rnn_grad_kernel.cu.cc index a6b19380c4ef00..fe45d56bd9d956 100644 --- a/paddle/phi/kernels/gpu/rnn_grad_kernel.cu.cc +++ b/paddle/phi/kernels/gpu/rnn_grad_kernel.cu.cc @@ -16,7 +16,7 @@ #include "paddle/phi/backends/gpu/gpu_context.h" #include "paddle/phi/core/kernel_registry.h" -#include "paddle/phi/core/utils/get_data_from_tensor.h" +#include "paddle/phi/core/tensor_utils.h" #include "paddle/phi/kernels/empty_kernel.h" #include "paddle/phi/kernels/full_kernel.h" #include "paddle/phi/kernels/gpu/rnn_functor.h" @@ -223,8 +223,7 @@ void RnnGradKernel(const Context &dev_ctx, #endif std::vector SequenceLength; if (has_seq_length) { - SequenceLength = - phi::funcs::GetDataFromDenseTensor(sequence_length.get_ptr()); + SequenceLength = phi::GetVectorFromTensor(sequence_length.get_ptr()); } auto input_dims = x.dims(); diff --git a/paddle/phi/kernels/gpu/rnn_kernel.cu.cc b/paddle/phi/kernels/gpu/rnn_kernel.cu.cc index d45a30d67194aa..6b4e8b45fb7ec4 100644 --- a/paddle/phi/kernels/gpu/rnn_kernel.cu.cc +++ b/paddle/phi/kernels/gpu/rnn_kernel.cu.cc @@ -17,7 +17,7 @@ #include "paddle/phi/backends/gpu/gpu_context.h" #include "paddle/phi/core/generator.h" #include "paddle/phi/core/kernel_registry.h" -#include "paddle/phi/core/utils/get_data_from_tensor.h" +#include "paddle/phi/core/tensor_utils.h" #include "paddle/phi/kernels/empty_kernel.h" #include "paddle/phi/kernels/gpu/rnn_functor.h" @@ -205,8 +205,7 @@ void RnnKernel(const Context &dev_ctx, #endif std::vector SequenceLength; if (has_seq_length) { - SequenceLength = - phi::funcs::GetDataFromDenseTensor(sequence_length.get_ptr()); + SequenceLength = phi::GetVectorFromTensor(sequence_length.get_ptr()); } auto handle = dev_ctx.cudnn_handle(); diff --git a/paddle/phi/kernels/xpu/rnn_grad_kernel.cc b/paddle/phi/kernels/xpu/rnn_grad_kernel.cc index f607517000bff2..fe0a8fc56961d2 100644 --- a/paddle/phi/kernels/xpu/rnn_grad_kernel.cc +++ b/paddle/phi/kernels/xpu/rnn_grad_kernel.cc @@ -15,7 +15,7 @@ #include "paddle/phi/kernels/rnn_grad_kernel.h" #include "paddle/phi/backends/xpu/enforce_xpu.h" #include "paddle/phi/core/kernel_registry.h" -#include "paddle/phi/core/utils/get_data_from_tensor.h" +#include "paddle/phi/core/tensor_utils.h" #include "paddle/phi/kernels/funcs/math_function.h" #include "paddle/phi/kernels/xpu/rnn_util.h" @@ -165,8 +165,7 @@ void RnnGradKernel(const Context& dev_ctx, bool has_seq_length = sequence_length.is_initialized(); std::vector seq_len_tensor(batch_size, seq_len); if (has_seq_length) { - seq_len_tensor = - phi::funcs::GetDataFromDenseTensor(sequence_length.get_ptr()); + seq_len_tensor = phi::GetVectorFromTensor(sequence_length.get_ptr()); } for (int i = num_layers - 1; i >= 0; --i) { diff --git a/paddle/phi/kernels/xpu/rnn_kernel.cc b/paddle/phi/kernels/xpu/rnn_kernel.cc index 1b1acff7d809bb..b529423992d495 100644 --- a/paddle/phi/kernels/xpu/rnn_kernel.cc +++ b/paddle/phi/kernels/xpu/rnn_kernel.cc @@ -15,7 +15,7 @@ #include "paddle/phi/kernels/rnn_kernel.h" #include "paddle/phi/backends/xpu/enforce_xpu.h" #include "paddle/phi/core/kernel_registry.h" -#include "paddle/phi/core/utils/get_data_from_tensor.h" +#include "paddle/phi/core/tensor_utils.h" #include "paddle/phi/kernels/funcs/math_function.h" #include "paddle/phi/kernels/xpu/rnn_util.h" @@ -119,8 +119,7 @@ void RnnKernel(const Context& dev_ctx, bool has_seq_length = sequence_length.is_initialized(); if (has_seq_length) { - seq_len_tensor = - phi::funcs::GetDataFromDenseTensor(sequence_length.get_ptr()); + seq_len_tensor = phi::GetVectorFromTensor(sequence_length.get_ptr()); } int state_offset = pre_state[0]->dims()[1] * pre_state[0]->dims()[2]; From 03fa2657a0f899bc6dc77f47d614c3723e1e4185 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BC=A0=E6=98=A5=E4=B9=94?= <83450930+Liyulingyue@users.noreply.github.com> Date: Tue, 21 Feb 2023 17:48:28 +0800 Subject: [PATCH 15/75] Update rnn_functor.h --- paddle/phi/kernels/cpu/rnn_functor.h | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/paddle/phi/kernels/cpu/rnn_functor.h b/paddle/phi/kernels/cpu/rnn_functor.h index cf68d5b2f0c6c1..a45a6548056bf5 100644 --- a/paddle/phi/kernels/cpu/rnn_functor.h +++ b/paddle/phi/kernels/cpu/rnn_functor.h @@ -17,7 +17,6 @@ #include "paddle/phi/core/dense_tensor.h" #include "paddle/phi/core/generator.h" #include "paddle/phi/core/tensor_utils.h" -#include "paddle/phi/core/utils/get_data_from_tensor.h" #include "paddle/phi/kernels/empty_kernel.h" #include "paddle/phi/kernels/funcs/eigen/common.h" #include "paddle/phi/kernels/funcs/eigen/eigen_function.h" @@ -48,7 +47,7 @@ void CreateMaskMatrix(const CPUContext& dev_ctx, const bool& is_reverse, int* min_seq_len) { const auto& seq_len_vec = - phi::funcs::GetDataFromDenseTensor(sequence_length); + phi::GetVectorFromTensor(sequence_length); const int table_width = mask_matrix->dims()[0]; DenseTensor temp = Empty(dev_ctx, {mask_matrix->dims()[1], mask_matrix->dims()[0]}); From e3f94ab2e009db5c23771cc1189b85def9574e85 Mon Sep 17 00:00:00 2001 From: Liyulingyue <852433440@qq.com> Date: Tue, 21 Feb 2023 18:13:15 +0800 Subject: [PATCH 16/75] remove utils --- paddle/phi/core/tensor_utils.h | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/paddle/phi/core/tensor_utils.h b/paddle/phi/core/tensor_utils.h index 3d781a51d4f62a..e83610e22c2940 100644 --- a/paddle/phi/core/tensor_utils.h +++ b/paddle/phi/core/tensor_utils.h @@ -14,8 +14,6 @@ limitations under the License. */ #pragma once -#include - #include "paddle/phi/core/dense_tensor.h" #include "paddle/phi/core/device_context.h" #include "paddle/phi/core/selected_rows.h" @@ -154,8 +152,7 @@ inline std::vector GetVectorFromTensor(const phi::DenseTensor* x) { auto* data = x->data(); phi::DenseTensor cpu_attr_tensor; if (!paddle::platform::is_cpu_place(x->place())) { - paddle::framework::TensorCopySync( - *x, paddle::platform::CPUPlace(), &cpu_attr_tensor); + paddle::framework::TensorCopySync(*x, CPUPlace(), &cpu_attr_tensor); data = cpu_attr_tensor.data(); } vec_new_data = std::vector(data, data + x->numel()); @@ -164,8 +161,7 @@ inline std::vector GetVectorFromTensor(const phi::DenseTensor* x) { auto* data = x->data(); phi::DenseTensor cpu_attr_tensor; if (!paddle::platform::is_cpu_place(x->place())) { - paddle::framework::TensorCopySync( - *x, paddle::platform::CPUPlace(), &cpu_attr_tensor); + paddle::framework::TensorCopySync(*x, CPUPlace(), &cpu_attr_tensor); data = cpu_attr_tensor.data(); } // NOTE: Converting int64 to int32 may cause data overflow. From 2589560b472f00f5b1841f7eabc1539e5f8789ed Mon Sep 17 00:00:00 2001 From: Liyulingyue <852433440@qq.com> Date: Tue, 21 Feb 2023 18:23:07 +0800 Subject: [PATCH 17/75] remove utils --- paddle/fluid/operators/utils.h | 36 +++------------------------------- 1 file changed, 3 insertions(+), 33 deletions(-) diff --git a/paddle/fluid/operators/utils.h b/paddle/fluid/operators/utils.h index f6d3132ef267d5..c06b190f0a5aca 100644 --- a/paddle/fluid/operators/utils.h +++ b/paddle/fluid/operators/utils.h @@ -18,41 +18,11 @@ limitations under the License. */ #include #include +#include "paddle/phi/core/tensor_utils.h" + namespace paddle { namespace operators { -template -inline std::vector GetDataFromTensor(const phi::DenseTensor* x) { - std::vector vec_new_data; - if (framework::TransToProtoVarType(x->dtype()) == - framework::proto::VarType::INT32) { - auto* data = x->data(); - phi::DenseTensor cpu_attr_tensor; - if (!platform::is_cpu_place(x->place())) { - paddle::framework::TensorCopySync( - *x, platform::CPUPlace(), &cpu_attr_tensor); - data = cpu_attr_tensor.data(); - } - vec_new_data = std::vector(data, data + x->numel()); - } else if (framework::TransToProtoVarType(x->dtype()) == - framework::proto::VarType::INT64) { - auto* data = x->data(); - phi::DenseTensor cpu_attr_tensor; - if (!platform::is_cpu_place(x->place())) { - paddle::framework::TensorCopySync( - *x, platform::CPUPlace(), &cpu_attr_tensor); - data = cpu_attr_tensor.data(); - } - // NOTE: Converting int64 to int32 may cause data overflow. - vec_new_data = std::vector(data, data + x->numel()); - } else { - PADDLE_THROW(platform::errors::InvalidArgument( - "The dtype of Tensor must be int32 or int64, but received: %s", - framework::TransToProtoVarType(x->dtype()))); - } - return vec_new_data; -} - template inline std::vector GetDataFromTensorList( const std::vector& list_tensor) { @@ -100,7 +70,7 @@ inline framework::DDim GetShape(const framework::ExecutionContext& ctx) { // 1. shape is a Tensor if (ctx.HasInput("ShapeTensor")) { auto* shape_tensor = ctx.Input("ShapeTensor"); - auto vec_shape = GetDataFromTensor(shape_tensor); + auto vec_shape = phi::GetDataFromTensor(shape_tensor); return phi::make_ddim(vec_shape); } From e486c9308455401598d2921910aed0bc6981f162 Mon Sep 17 00:00:00 2001 From: Liyulingyue <852433440@qq.com> Date: Tue, 21 Feb 2023 18:55:55 +0800 Subject: [PATCH 18/75] remove utils --- paddle/phi/core/tensor_utils.h | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/paddle/phi/core/tensor_utils.h b/paddle/phi/core/tensor_utils.h index e83610e22c2940..6e981c50adf5a9 100644 --- a/paddle/phi/core/tensor_utils.h +++ b/paddle/phi/core/tensor_utils.h @@ -20,6 +20,7 @@ limitations under the License. */ #include "paddle/phi/core/sparse_coo_tensor.h" #include "paddle/phi/core/sparse_csr_tensor.h" #include "paddle/phi/core/tensor_meta.h" +#include "paddle/phi/core/utils/data_type.h" namespace phi { @@ -147,8 +148,7 @@ inline T GetValue(const Context& dev_ctx, const DenseTensor& x) { template inline std::vector GetVectorFromTensor(const phi::DenseTensor* x) { std::vector vec_new_data; - if (paddle::framework::TransToProtoVarType(x->dtype()) == - paddle::framework::proto::VarType::INT32) { + if (phi::TransToProtoVarType(x->dtype()) == ProtoDataType::INT32) { auto* data = x->data(); phi::DenseTensor cpu_attr_tensor; if (!paddle::platform::is_cpu_place(x->place())) { @@ -156,8 +156,7 @@ inline std::vector GetVectorFromTensor(const phi::DenseTensor* x) { data = cpu_attr_tensor.data(); } vec_new_data = std::vector(data, data + x->numel()); - } else if (paddle::framework::TransToProtoVarType(x->dtype()) == - paddle::framework::proto::VarType::INT64) { + } else if (phi::TransToProtoVarType(x->dtype()) == ProtoDataType::INT64) { auto* data = x->data(); phi::DenseTensor cpu_attr_tensor; if (!paddle::platform::is_cpu_place(x->place())) { @@ -169,7 +168,7 @@ inline std::vector GetVectorFromTensor(const phi::DenseTensor* x) { } else { PADDLE_THROW(phi::errors::InvalidArgument( "The dtype of Tensor must be int32 or int64, but received: %s", - paddle::framework::TransToProtoVarType(x->dtype()))); + phi::TransToProtoVarType(x->dtype()))); } return vec_new_data; } From c6bec24001bdd33fe4be78ec76f6ac533e94a97e Mon Sep 17 00:00:00 2001 From: Liyulingyue <852433440@qq.com> Date: Tue, 21 Feb 2023 19:11:09 +0800 Subject: [PATCH 19/75] remove utils --- paddle/phi/core/tensor_utils.h | 1 + 1 file changed, 1 insertion(+) diff --git a/paddle/phi/core/tensor_utils.h b/paddle/phi/core/tensor_utils.h index 6e981c50adf5a9..94cfea0cf58bbd 100644 --- a/paddle/phi/core/tensor_utils.h +++ b/paddle/phi/core/tensor_utils.h @@ -14,6 +14,7 @@ limitations under the License. */ #pragma once +#include "paddle/fluid/framework/tensor_util.h" #include "paddle/phi/core/dense_tensor.h" #include "paddle/phi/core/device_context.h" #include "paddle/phi/core/selected_rows.h" From 815e2c317ee1b0ac8e15013d1eb2aba25875c3b2 Mon Sep 17 00:00:00 2001 From: Liyulingyue <852433440@qq.com> Date: Tue, 21 Feb 2023 19:13:20 +0800 Subject: [PATCH 20/75] remove utils --- paddle/fluid/operators/unsqueeze_op.h | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/paddle/fluid/operators/unsqueeze_op.h b/paddle/fluid/operators/unsqueeze_op.h index 223dcad524cffd..49fcfd09fa2113 100644 --- a/paddle/fluid/operators/unsqueeze_op.h +++ b/paddle/fluid/operators/unsqueeze_op.h @@ -19,6 +19,7 @@ limitations under the License. */ #include "paddle/fluid/framework/op_registry.h" #include "paddle/fluid/operators/utils.h" #include "paddle/fluid/platform/device_context.h" +#include "paddle/phi/core/tensor_utils.h" #include "paddle/phi/kernels/funcs/blas/blas.h" #include "paddle/phi/kernels/funcs/math_function.h" @@ -42,7 +43,7 @@ class UnsqueezeKernel : public framework::OpKernel { axes = GetDataFromTensorList(axes_tensor_list); } else if (context.HasInput("AxesTensor")) { auto *axes_tensor = context.Input("AxesTensor"); - axes = GetDataFromTensor(axes_tensor); + axes = phi::GetDataFromTensor(axes_tensor); } need_resize_out_dims = true; } From e80f3ba237855be78deff45ee9df9eff07a1ec10 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BC=A0=E6=98=A5=E4=B9=94?= <83450930+Liyulingyue@users.noreply.github.com> Date: Tue, 21 Feb 2023 19:41:17 +0800 Subject: [PATCH 21/75] Update rnn_functor.h --- paddle/phi/kernels/cpu/rnn_functor.h | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/paddle/phi/kernels/cpu/rnn_functor.h b/paddle/phi/kernels/cpu/rnn_functor.h index a45a6548056bf5..49b0c7655c6df2 100644 --- a/paddle/phi/kernels/cpu/rnn_functor.h +++ b/paddle/phi/kernels/cpu/rnn_functor.h @@ -46,8 +46,7 @@ void CreateMaskMatrix(const CPUContext& dev_ctx, DenseTensor* mask_matrix, const bool& is_reverse, int* min_seq_len) { - const auto& seq_len_vec = - phi::GetVectorFromTensor(sequence_length); + const auto& seq_len_vec = phi::GetVectorFromTensor(sequence_length); const int table_width = mask_matrix->dims()[0]; DenseTensor temp = Empty(dev_ctx, {mask_matrix->dims()[1], mask_matrix->dims()[0]}); From 431d6a0d4d545109581ee99d9ac26a47b658e9f9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BC=A0=E6=98=A5=E4=B9=94?= <83450930+Liyulingyue@users.noreply.github.com> Date: Tue, 21 Feb 2023 20:09:12 +0800 Subject: [PATCH 22/75] Update unsqueeze_op.h --- paddle/fluid/operators/unsqueeze_op.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/paddle/fluid/operators/unsqueeze_op.h b/paddle/fluid/operators/unsqueeze_op.h index 49fcfd09fa2113..94d8ede8e134c2 100644 --- a/paddle/fluid/operators/unsqueeze_op.h +++ b/paddle/fluid/operators/unsqueeze_op.h @@ -43,7 +43,7 @@ class UnsqueezeKernel : public framework::OpKernel { axes = GetDataFromTensorList(axes_tensor_list); } else if (context.HasInput("AxesTensor")) { auto *axes_tensor = context.Input("AxesTensor"); - axes = phi::GetDataFromTensor(axes_tensor); + axes = phi::GetVectorFromTensor(axes_tensor); } need_resize_out_dims = true; } From 5d0cfe19e8b7b9116d3d07a03384e95bbb720b60 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BC=A0=E6=98=A5=E4=B9=94?= <83450930+Liyulingyue@users.noreply.github.com> Date: Tue, 21 Feb 2023 20:09:56 +0800 Subject: [PATCH 23/75] Update utils.h --- paddle/fluid/operators/utils.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/paddle/fluid/operators/utils.h b/paddle/fluid/operators/utils.h index c06b190f0a5aca..d50c8fe51c96bc 100644 --- a/paddle/fluid/operators/utils.h +++ b/paddle/fluid/operators/utils.h @@ -70,7 +70,7 @@ inline framework::DDim GetShape(const framework::ExecutionContext& ctx) { // 1. shape is a Tensor if (ctx.HasInput("ShapeTensor")) { auto* shape_tensor = ctx.Input("ShapeTensor"); - auto vec_shape = phi::GetDataFromTensor(shape_tensor); + auto vec_shape = phi::GetVectorFromTensor(shape_tensor); return phi::make_ddim(vec_shape); } From 0a59f2d10611682d3f74c837422b7f76ed21e7a8 Mon Sep 17 00:00:00 2001 From: Liyulingyue <852433440@qq.com> Date: Tue, 21 Feb 2023 20:39:05 +0800 Subject: [PATCH 24/75] roll back --- paddle/fluid/operators/unsqueeze_op.h | 3 +-- paddle/fluid/operators/utils.h | 36 ++++++++++++++++++++++++--- 2 files changed, 34 insertions(+), 5 deletions(-) diff --git a/paddle/fluid/operators/unsqueeze_op.h b/paddle/fluid/operators/unsqueeze_op.h index 49fcfd09fa2113..223dcad524cffd 100644 --- a/paddle/fluid/operators/unsqueeze_op.h +++ b/paddle/fluid/operators/unsqueeze_op.h @@ -19,7 +19,6 @@ limitations under the License. */ #include "paddle/fluid/framework/op_registry.h" #include "paddle/fluid/operators/utils.h" #include "paddle/fluid/platform/device_context.h" -#include "paddle/phi/core/tensor_utils.h" #include "paddle/phi/kernels/funcs/blas/blas.h" #include "paddle/phi/kernels/funcs/math_function.h" @@ -43,7 +42,7 @@ class UnsqueezeKernel : public framework::OpKernel { axes = GetDataFromTensorList(axes_tensor_list); } else if (context.HasInput("AxesTensor")) { auto *axes_tensor = context.Input("AxesTensor"); - axes = phi::GetDataFromTensor(axes_tensor); + axes = GetDataFromTensor(axes_tensor); } need_resize_out_dims = true; } diff --git a/paddle/fluid/operators/utils.h b/paddle/fluid/operators/utils.h index c06b190f0a5aca..f6d3132ef267d5 100644 --- a/paddle/fluid/operators/utils.h +++ b/paddle/fluid/operators/utils.h @@ -18,11 +18,41 @@ limitations under the License. */ #include #include -#include "paddle/phi/core/tensor_utils.h" - namespace paddle { namespace operators { +template +inline std::vector GetDataFromTensor(const phi::DenseTensor* x) { + std::vector vec_new_data; + if (framework::TransToProtoVarType(x->dtype()) == + framework::proto::VarType::INT32) { + auto* data = x->data(); + phi::DenseTensor cpu_attr_tensor; + if (!platform::is_cpu_place(x->place())) { + paddle::framework::TensorCopySync( + *x, platform::CPUPlace(), &cpu_attr_tensor); + data = cpu_attr_tensor.data(); + } + vec_new_data = std::vector(data, data + x->numel()); + } else if (framework::TransToProtoVarType(x->dtype()) == + framework::proto::VarType::INT64) { + auto* data = x->data(); + phi::DenseTensor cpu_attr_tensor; + if (!platform::is_cpu_place(x->place())) { + paddle::framework::TensorCopySync( + *x, platform::CPUPlace(), &cpu_attr_tensor); + data = cpu_attr_tensor.data(); + } + // NOTE: Converting int64 to int32 may cause data overflow. + vec_new_data = std::vector(data, data + x->numel()); + } else { + PADDLE_THROW(platform::errors::InvalidArgument( + "The dtype of Tensor must be int32 or int64, but received: %s", + framework::TransToProtoVarType(x->dtype()))); + } + return vec_new_data; +} + template inline std::vector GetDataFromTensorList( const std::vector& list_tensor) { @@ -70,7 +100,7 @@ inline framework::DDim GetShape(const framework::ExecutionContext& ctx) { // 1. shape is a Tensor if (ctx.HasInput("ShapeTensor")) { auto* shape_tensor = ctx.Input("ShapeTensor"); - auto vec_shape = phi::GetDataFromTensor(shape_tensor); + auto vec_shape = GetDataFromTensor(shape_tensor); return phi::make_ddim(vec_shape); } From dbc0540e8b9795afd737d38572c04dbf222476b2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BC=A0=E6=98=A5=E4=B9=94?= <83450930+Liyulingyue@users.noreply.github.com> Date: Wed, 22 Feb 2023 12:42:26 +0800 Subject: [PATCH 25/75] Update tensor_utils.h --- paddle/phi/core/tensor_utils.h | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/paddle/phi/core/tensor_utils.h b/paddle/phi/core/tensor_utils.h index 94cfea0cf58bbd..5434c7a87a0733 100644 --- a/paddle/phi/core/tensor_utils.h +++ b/paddle/phi/core/tensor_utils.h @@ -153,7 +153,13 @@ inline std::vector GetVectorFromTensor(const phi::DenseTensor* x) { auto* data = x->data(); phi::DenseTensor cpu_attr_tensor; if (!paddle::platform::is_cpu_place(x->place())) { - paddle::framework::TensorCopySync(*x, CPUPlace(), &cpu_attr_tensor); + phi::DeviceContext* dev_ctx; + if (CPUPlace().GetType() != AllocationType::CPU) { + dev_ctx = pool.Get(CPUPlace()); + } else { + dev_ctx = pool.Get(*x.place()); + } + phi::Copy(*dev_ctx, *x, CPUPlace(), true, &cpu_attr_tensor); data = cpu_attr_tensor.data(); } vec_new_data = std::vector(data, data + x->numel()); @@ -161,7 +167,13 @@ inline std::vector GetVectorFromTensor(const phi::DenseTensor* x) { auto* data = x->data(); phi::DenseTensor cpu_attr_tensor; if (!paddle::platform::is_cpu_place(x->place())) { - paddle::framework::TensorCopySync(*x, CPUPlace(), &cpu_attr_tensor); + phi::DeviceContext* dev_ctx; + if (CPUPlace().GetType() != AllocationType::CPU) { + dev_ctx = pool.Get(CPUPlace()); + } else { + dev_ctx = pool.Get(*x.place()); + } + phi::Copy(*dev_ctx, *x, CPUPlace(), true, &cpu_attr_tensor); data = cpu_attr_tensor.data(); } // NOTE: Converting int64 to int32 may cause data overflow. From 18d5646b99797cd15432bd4397dd5d2a79265129 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BC=A0=E6=98=A5=E4=B9=94?= <83450930+Liyulingyue@users.noreply.github.com> Date: Wed, 22 Feb 2023 13:07:31 +0800 Subject: [PATCH 26/75] Update tensor_utils.h --- paddle/phi/core/tensor_utils.h | 2 ++ 1 file changed, 2 insertions(+) diff --git a/paddle/phi/core/tensor_utils.h b/paddle/phi/core/tensor_utils.h index 5434c7a87a0733..a58e3634da37f9 100644 --- a/paddle/phi/core/tensor_utils.h +++ b/paddle/phi/core/tensor_utils.h @@ -153,6 +153,7 @@ inline std::vector GetVectorFromTensor(const phi::DenseTensor* x) { auto* data = x->data(); phi::DenseTensor cpu_attr_tensor; if (!paddle::platform::is_cpu_place(x->place())) { + auto& pool = phi::DeviceContextPool::Instance(); phi::DeviceContext* dev_ctx; if (CPUPlace().GetType() != AllocationType::CPU) { dev_ctx = pool.Get(CPUPlace()); @@ -167,6 +168,7 @@ inline std::vector GetVectorFromTensor(const phi::DenseTensor* x) { auto* data = x->data(); phi::DenseTensor cpu_attr_tensor; if (!paddle::platform::is_cpu_place(x->place())) { + auto& pool = phi::DeviceContextPool::Instance(); phi::DeviceContext* dev_ctx; if (CPUPlace().GetType() != AllocationType::CPU) { dev_ctx = pool.Get(CPUPlace()); From a5feb29001f78f727df43e26248253b0fcd9d247 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BC=A0=E6=98=A5=E4=B9=94?= <83450930+Liyulingyue@users.noreply.github.com> Date: Wed, 22 Feb 2023 13:21:34 +0800 Subject: [PATCH 27/75] Update tensor_utils.h --- paddle/phi/core/tensor_utils.h | 13 ++----------- 1 file changed, 2 insertions(+), 11 deletions(-) diff --git a/paddle/phi/core/tensor_utils.h b/paddle/phi/core/tensor_utils.h index a58e3634da37f9..56ad1de5e6e044 100644 --- a/paddle/phi/core/tensor_utils.h +++ b/paddle/phi/core/tensor_utils.h @@ -14,7 +14,6 @@ limitations under the License. */ #pragma once -#include "paddle/fluid/framework/tensor_util.h" #include "paddle/phi/core/dense_tensor.h" #include "paddle/phi/core/device_context.h" #include "paddle/phi/core/selected_rows.h" @@ -155,11 +154,7 @@ inline std::vector GetVectorFromTensor(const phi::DenseTensor* x) { if (!paddle::platform::is_cpu_place(x->place())) { auto& pool = phi::DeviceContextPool::Instance(); phi::DeviceContext* dev_ctx; - if (CPUPlace().GetType() != AllocationType::CPU) { - dev_ctx = pool.Get(CPUPlace()); - } else { - dev_ctx = pool.Get(*x.place()); - } + dev_ctx = pool.Get(CPUPlace()); phi::Copy(*dev_ctx, *x, CPUPlace(), true, &cpu_attr_tensor); data = cpu_attr_tensor.data(); } @@ -170,11 +165,7 @@ inline std::vector GetVectorFromTensor(const phi::DenseTensor* x) { if (!paddle::platform::is_cpu_place(x->place())) { auto& pool = phi::DeviceContextPool::Instance(); phi::DeviceContext* dev_ctx; - if (CPUPlace().GetType() != AllocationType::CPU) { - dev_ctx = pool.Get(CPUPlace()); - } else { - dev_ctx = pool.Get(*x.place()); - } + dev_ctx = pool.Get(CPUPlace()); phi::Copy(*dev_ctx, *x, CPUPlace(), true, &cpu_attr_tensor); data = cpu_attr_tensor.data(); } From 57d858b8d8f9cf716afc69eabbeb8f762cfdf7e9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BC=A0=E6=98=A5=E4=B9=94?= <83450930+Liyulingyue@users.noreply.github.com> Date: Wed, 22 Feb 2023 13:34:18 +0800 Subject: [PATCH 28/75] Update tensor_utils.h --- paddle/phi/core/tensor_utils.h | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/paddle/phi/core/tensor_utils.h b/paddle/phi/core/tensor_utils.h index 56ad1de5e6e044..a901c1a733b5dc 100644 --- a/paddle/phi/core/tensor_utils.h +++ b/paddle/phi/core/tensor_utils.h @@ -14,6 +14,7 @@ limitations under the License. */ #pragma once +#include "paddle/fluid/platform/device_context.h" #include "paddle/phi/core/dense_tensor.h" #include "paddle/phi/core/device_context.h" #include "paddle/phi/core/selected_rows.h" @@ -152,7 +153,7 @@ inline std::vector GetVectorFromTensor(const phi::DenseTensor* x) { auto* data = x->data(); phi::DenseTensor cpu_attr_tensor; if (!paddle::platform::is_cpu_place(x->place())) { - auto& pool = phi::DeviceContextPool::Instance(); + auto& pool = paddle::platform::DeviceContextPool::Instance(); phi::DeviceContext* dev_ctx; dev_ctx = pool.Get(CPUPlace()); phi::Copy(*dev_ctx, *x, CPUPlace(), true, &cpu_attr_tensor); @@ -163,7 +164,7 @@ inline std::vector GetVectorFromTensor(const phi::DenseTensor* x) { auto* data = x->data(); phi::DenseTensor cpu_attr_tensor; if (!paddle::platform::is_cpu_place(x->place())) { - auto& pool = phi::DeviceContextPool::Instance(); + auto& pool = paddle::platform::DeviceContextPool::Instance(); phi::DeviceContext* dev_ctx; dev_ctx = pool.Get(CPUPlace()); phi::Copy(*dev_ctx, *x, CPUPlace(), true, &cpu_attr_tensor); From 9bf4a983a1f9dc53b8b0c74fe46b50473fbe9dee Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BC=A0=E6=98=A5=E4=B9=94?= <83450930+Liyulingyue@users.noreply.github.com> Date: Wed, 22 Feb 2023 17:57:37 +0800 Subject: [PATCH 29/75] Update tensor_utils.h --- paddle/phi/core/tensor_utils.h | 2 -- 1 file changed, 2 deletions(-) diff --git a/paddle/phi/core/tensor_utils.h b/paddle/phi/core/tensor_utils.h index a901c1a733b5dc..f457e0fd290454 100644 --- a/paddle/phi/core/tensor_utils.h +++ b/paddle/phi/core/tensor_utils.h @@ -14,14 +14,12 @@ limitations under the License. */ #pragma once -#include "paddle/fluid/platform/device_context.h" #include "paddle/phi/core/dense_tensor.h" #include "paddle/phi/core/device_context.h" #include "paddle/phi/core/selected_rows.h" #include "paddle/phi/core/sparse_coo_tensor.h" #include "paddle/phi/core/sparse_csr_tensor.h" #include "paddle/phi/core/tensor_meta.h" -#include "paddle/phi/core/utils/data_type.h" namespace phi { From bea088a59bd3b3fc29efb6986110f07a5d0b3e7d Mon Sep 17 00:00:00 2001 From: Liyulingyue <852433440@qq.com> Date: Wed, 22 Feb 2023 18:30:48 +0800 Subject: [PATCH 30/75] use TensorToVector --- paddle/phi/core/tensor_utils.h | 34 -------------------- paddle/phi/kernels/cpu/rnn_functor.h | 3 +- paddle/phi/kernels/gpu/rnn_grad_kernel.cu.cc | 2 +- paddle/phi/kernels/gpu/rnn_kernel.cu.cc | 1 + paddle/phi/kernels/xpu/rnn_grad_kernel.cc | 2 +- 5 files changed, 5 insertions(+), 37 deletions(-) diff --git a/paddle/phi/core/tensor_utils.h b/paddle/phi/core/tensor_utils.h index f457e0fd290454..df6db077f0310d 100644 --- a/paddle/phi/core/tensor_utils.h +++ b/paddle/phi/core/tensor_utils.h @@ -144,38 +144,4 @@ inline T GetValue(const Context& dev_ctx, const DenseTensor& x) { return value; } -template -inline std::vector GetVectorFromTensor(const phi::DenseTensor* x) { - std::vector vec_new_data; - if (phi::TransToProtoVarType(x->dtype()) == ProtoDataType::INT32) { - auto* data = x->data(); - phi::DenseTensor cpu_attr_tensor; - if (!paddle::platform::is_cpu_place(x->place())) { - auto& pool = paddle::platform::DeviceContextPool::Instance(); - phi::DeviceContext* dev_ctx; - dev_ctx = pool.Get(CPUPlace()); - phi::Copy(*dev_ctx, *x, CPUPlace(), true, &cpu_attr_tensor); - data = cpu_attr_tensor.data(); - } - vec_new_data = std::vector(data, data + x->numel()); - } else if (phi::TransToProtoVarType(x->dtype()) == ProtoDataType::INT64) { - auto* data = x->data(); - phi::DenseTensor cpu_attr_tensor; - if (!paddle::platform::is_cpu_place(x->place())) { - auto& pool = paddle::platform::DeviceContextPool::Instance(); - phi::DeviceContext* dev_ctx; - dev_ctx = pool.Get(CPUPlace()); - phi::Copy(*dev_ctx, *x, CPUPlace(), true, &cpu_attr_tensor); - data = cpu_attr_tensor.data(); - } - // NOTE: Converting int64 to int32 may cause data overflow. - vec_new_data = std::vector(data, data + x->numel()); - } else { - PADDLE_THROW(phi::errors::InvalidArgument( - "The dtype of Tensor must be int32 or int64, but received: %s", - phi::TransToProtoVarType(x->dtype()))); - } - return vec_new_data; -} - } // namespace phi diff --git a/paddle/phi/kernels/cpu/rnn_functor.h b/paddle/phi/kernels/cpu/rnn_functor.h index 49b0c7655c6df2..af09eae0ef1898 100644 --- a/paddle/phi/kernels/cpu/rnn_functor.h +++ b/paddle/phi/kernels/cpu/rnn_functor.h @@ -46,7 +46,8 @@ void CreateMaskMatrix(const CPUContext& dev_ctx, DenseTensor* mask_matrix, const bool& is_reverse, int* min_seq_len) { - const auto& seq_len_vec = phi::GetVectorFromTensor(sequence_length); + std::vector seq_len_vec; + phi::TensorToVector(*sequence_length, dev_ctx, &seq_len_vec); const int table_width = mask_matrix->dims()[0]; DenseTensor temp = Empty(dev_ctx, {mask_matrix->dims()[1], mask_matrix->dims()[0]}); diff --git a/paddle/phi/kernels/gpu/rnn_grad_kernel.cu.cc b/paddle/phi/kernels/gpu/rnn_grad_kernel.cu.cc index fe45d56bd9d956..3bc71483222ad9 100644 --- a/paddle/phi/kernels/gpu/rnn_grad_kernel.cu.cc +++ b/paddle/phi/kernels/gpu/rnn_grad_kernel.cu.cc @@ -223,7 +223,7 @@ void RnnGradKernel(const Context &dev_ctx, #endif std::vector SequenceLength; if (has_seq_length) { - SequenceLength = phi::GetVectorFromTensor(sequence_length.get_ptr()); + phi::TensorToVector(*sequence_length, dev_ctx, &SequenceLength); } auto input_dims = x.dims(); diff --git a/paddle/phi/kernels/gpu/rnn_kernel.cu.cc b/paddle/phi/kernels/gpu/rnn_kernel.cu.cc index 6b4e8b45fb7ec4..9f14a2b9c99613 100644 --- a/paddle/phi/kernels/gpu/rnn_kernel.cu.cc +++ b/paddle/phi/kernels/gpu/rnn_kernel.cu.cc @@ -206,6 +206,7 @@ void RnnKernel(const Context &dev_ctx, std::vector SequenceLength; if (has_seq_length) { SequenceLength = phi::GetVectorFromTensor(sequence_length.get_ptr()); + phi::TensorToVector(*sequence_length, dev_ctx, &SequenceLength); } auto handle = dev_ctx.cudnn_handle(); diff --git a/paddle/phi/kernels/xpu/rnn_grad_kernel.cc b/paddle/phi/kernels/xpu/rnn_grad_kernel.cc index fe0a8fc56961d2..3cf88181894af5 100644 --- a/paddle/phi/kernels/xpu/rnn_grad_kernel.cc +++ b/paddle/phi/kernels/xpu/rnn_grad_kernel.cc @@ -165,7 +165,7 @@ void RnnGradKernel(const Context& dev_ctx, bool has_seq_length = sequence_length.is_initialized(); std::vector seq_len_tensor(batch_size, seq_len); if (has_seq_length) { - seq_len_tensor = phi::GetVectorFromTensor(sequence_length.get_ptr()); + phi::TensorToVector(*sequence_length, dev_ctx, &seq_len_tensor); } for (int i = num_layers - 1; i >= 0; --i) { From 07c4dc38b2a7c0bef5535b557f9f9fd98fef793a Mon Sep 17 00:00:00 2001 From: Liyulingyue <852433440@qq.com> Date: Wed, 22 Feb 2023 18:37:13 +0800 Subject: [PATCH 31/75] use TensorToVector --- paddle/phi/kernels/xpu/rnn_kernel.cc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/paddle/phi/kernels/xpu/rnn_kernel.cc b/paddle/phi/kernels/xpu/rnn_kernel.cc index b529423992d495..09138204c3cd20 100644 --- a/paddle/phi/kernels/xpu/rnn_kernel.cc +++ b/paddle/phi/kernels/xpu/rnn_kernel.cc @@ -119,7 +119,7 @@ void RnnKernel(const Context& dev_ctx, bool has_seq_length = sequence_length.is_initialized(); if (has_seq_length) { - seq_len_tensor = phi::GetVectorFromTensor(sequence_length.get_ptr()); + phi::TensorToVector(*sequence_length, dev_ctx, &seq_len_tensor); } int state_offset = pre_state[0]->dims()[1] * pre_state[0]->dims()[2]; From 7bbf25ba348f009862f5b399862caa579926cf15 Mon Sep 17 00:00:00 2001 From: Liyulingyue <852433440@qq.com> Date: Wed, 22 Feb 2023 19:24:11 +0800 Subject: [PATCH 32/75] use TensorToVector --- paddle/phi/kernels/gpu/rnn_kernel.cu.cc | 1 - 1 file changed, 1 deletion(-) diff --git a/paddle/phi/kernels/gpu/rnn_kernel.cu.cc b/paddle/phi/kernels/gpu/rnn_kernel.cu.cc index 9f14a2b9c99613..6155ef6dd035c0 100644 --- a/paddle/phi/kernels/gpu/rnn_kernel.cu.cc +++ b/paddle/phi/kernels/gpu/rnn_kernel.cu.cc @@ -205,7 +205,6 @@ void RnnKernel(const Context &dev_ctx, #endif std::vector SequenceLength; if (has_seq_length) { - SequenceLength = phi::GetVectorFromTensor(sequence_length.get_ptr()); phi::TensorToVector(*sequence_length, dev_ctx, &SequenceLength); } From 950b772e06d7b95747a71ffddaba540b535bb030 Mon Sep 17 00:00:00 2001 From: Liyulingyue <852433440@qq.com> Date: Wed, 22 Feb 2023 22:33:59 +0800 Subject: [PATCH 33/75] use TensorToVector --- paddle/phi/kernels/cpu/rnn_functor.h | 2 +- paddle/phi/kernels/gpu/rnn_grad_kernel.cu.cc | 2 +- paddle/phi/kernels/gpu/rnn_kernel.cu.cc | 2 +- paddle/phi/kernels/xpu/rnn_grad_kernel.cc | 2 +- paddle/phi/kernels/xpu/rnn_kernel.cc | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/paddle/phi/kernels/cpu/rnn_functor.h b/paddle/phi/kernels/cpu/rnn_functor.h index af09eae0ef1898..fcd3493db981e1 100644 --- a/paddle/phi/kernels/cpu/rnn_functor.h +++ b/paddle/phi/kernels/cpu/rnn_functor.h @@ -46,7 +46,7 @@ void CreateMaskMatrix(const CPUContext& dev_ctx, DenseTensor* mask_matrix, const bool& is_reverse, int* min_seq_len) { - std::vector seq_len_vec; + std::vector seq_len_vec; phi::TensorToVector(*sequence_length, dev_ctx, &seq_len_vec); const int table_width = mask_matrix->dims()[0]; DenseTensor temp = diff --git a/paddle/phi/kernels/gpu/rnn_grad_kernel.cu.cc b/paddle/phi/kernels/gpu/rnn_grad_kernel.cu.cc index 3bc71483222ad9..dacb7b16e34d8b 100644 --- a/paddle/phi/kernels/gpu/rnn_grad_kernel.cu.cc +++ b/paddle/phi/kernels/gpu/rnn_grad_kernel.cu.cc @@ -221,7 +221,7 @@ void RnnGradKernel(const Context &dev_ctx, false, phi::errors::InvalidArgument("ROCm do not support SequenceLength yet.")); #endif - std::vector SequenceLength; + std::vector SequenceLength; if (has_seq_length) { phi::TensorToVector(*sequence_length, dev_ctx, &SequenceLength); } diff --git a/paddle/phi/kernels/gpu/rnn_kernel.cu.cc b/paddle/phi/kernels/gpu/rnn_kernel.cu.cc index 6155ef6dd035c0..f40e19efbfc6b9 100644 --- a/paddle/phi/kernels/gpu/rnn_kernel.cu.cc +++ b/paddle/phi/kernels/gpu/rnn_kernel.cu.cc @@ -203,7 +203,7 @@ void RnnKernel(const Context &dev_ctx, false, phi::errors::InvalidArgument("ROCm do not support SequenceLength yet.")); #endif - std::vector SequenceLength; + std::vector SequenceLength; if (has_seq_length) { phi::TensorToVector(*sequence_length, dev_ctx, &SequenceLength); } diff --git a/paddle/phi/kernels/xpu/rnn_grad_kernel.cc b/paddle/phi/kernels/xpu/rnn_grad_kernel.cc index 3cf88181894af5..5dbc9b231c58dc 100644 --- a/paddle/phi/kernels/xpu/rnn_grad_kernel.cc +++ b/paddle/phi/kernels/xpu/rnn_grad_kernel.cc @@ -163,7 +163,7 @@ void RnnGradKernel(const Context& dev_ctx, int state_offset = pre_state[0]->dims()[1] * pre_state[0]->dims()[2]; bool has_seq_length = sequence_length.is_initialized(); - std::vector seq_len_tensor(batch_size, seq_len); + std::vector seq_len_tensor(batch_size, seq_len); if (has_seq_length) { phi::TensorToVector(*sequence_length, dev_ctx, &seq_len_tensor); } diff --git a/paddle/phi/kernels/xpu/rnn_kernel.cc b/paddle/phi/kernels/xpu/rnn_kernel.cc index 09138204c3cd20..c56ba90dff4afa 100644 --- a/paddle/phi/kernels/xpu/rnn_kernel.cc +++ b/paddle/phi/kernels/xpu/rnn_kernel.cc @@ -114,7 +114,7 @@ void RnnKernel(const Context& dev_ctx, i_f_g_o_ptr + num_layers * block_size * 4; // 4 for i_f_g_o offset auto hidden_data_ptr = c_ptr + num_layers * block_size * 1; // 1 for c offset - std::vector seq_len_tensor(batch_size, seq_len); + std::vector seq_len_tensor(batch_size, seq_len); bool has_seq_length = sequence_length.is_initialized(); From c3f77461b27d3d9fb56998974339dca2c73fca27 Mon Sep 17 00:00:00 2001 From: Liyulingyue <852433440@qq.com> Date: Wed, 22 Feb 2023 22:51:45 +0800 Subject: [PATCH 34/75] use TensorToVector --- paddle/phi/kernels/cpu/rnn_functor.h | 7 ++++++- paddle/phi/kernels/gpu/rnn_grad_kernel.cu.cc | 7 ++++++- paddle/phi/kernels/gpu/rnn_kernel.cu.cc | 7 ++++++- paddle/phi/kernels/xpu/rnn_grad_kernel.cc | 2 +- paddle/phi/kernels/xpu/rnn_kernel.cc | 2 +- 5 files changed, 20 insertions(+), 5 deletions(-) diff --git a/paddle/phi/kernels/cpu/rnn_functor.h b/paddle/phi/kernels/cpu/rnn_functor.h index fcd3493db981e1..4bebc7cbc16041 100644 --- a/paddle/phi/kernels/cpu/rnn_functor.h +++ b/paddle/phi/kernels/cpu/rnn_functor.h @@ -46,7 +46,12 @@ void CreateMaskMatrix(const CPUContext& dev_ctx, DenseTensor* mask_matrix, const bool& is_reverse, int* min_seq_len) { - std::vector seq_len_vec; + if (phi::TransToProtoVarType(sequence_length->dtype()) == + ProtoDataType::INT64) { + std::vector seq_len_vec; + } else { + std::vector seq_len_vec; + } phi::TensorToVector(*sequence_length, dev_ctx, &seq_len_vec); const int table_width = mask_matrix->dims()[0]; DenseTensor temp = diff --git a/paddle/phi/kernels/gpu/rnn_grad_kernel.cu.cc b/paddle/phi/kernels/gpu/rnn_grad_kernel.cu.cc index dacb7b16e34d8b..6bea3962d05733 100644 --- a/paddle/phi/kernels/gpu/rnn_grad_kernel.cu.cc +++ b/paddle/phi/kernels/gpu/rnn_grad_kernel.cu.cc @@ -221,7 +221,12 @@ void RnnGradKernel(const Context &dev_ctx, false, phi::errors::InvalidArgument("ROCm do not support SequenceLength yet.")); #endif - std::vector SequenceLength; + if (phi::TransToProtoVarType(sequence_length->dtype()) == + ProtoDataType::INT64) { + std::vector SequenceLength; + } else { + std::vector SequenceLength; + } if (has_seq_length) { phi::TensorToVector(*sequence_length, dev_ctx, &SequenceLength); } diff --git a/paddle/phi/kernels/gpu/rnn_kernel.cu.cc b/paddle/phi/kernels/gpu/rnn_kernel.cu.cc index f40e19efbfc6b9..8a2ae66fe42336 100644 --- a/paddle/phi/kernels/gpu/rnn_kernel.cu.cc +++ b/paddle/phi/kernels/gpu/rnn_kernel.cu.cc @@ -203,7 +203,12 @@ void RnnKernel(const Context &dev_ctx, false, phi::errors::InvalidArgument("ROCm do not support SequenceLength yet.")); #endif - std::vector SequenceLength; + if (phi::TransToProtoVarType(sequence_length->dtype()) == + ProtoDataType::INT64) { + std::vector SequenceLength; + } else { + std::vector SequenceLength; + } if (has_seq_length) { phi::TensorToVector(*sequence_length, dev_ctx, &SequenceLength); } diff --git a/paddle/phi/kernels/xpu/rnn_grad_kernel.cc b/paddle/phi/kernels/xpu/rnn_grad_kernel.cc index 5dbc9b231c58dc..3cf88181894af5 100644 --- a/paddle/phi/kernels/xpu/rnn_grad_kernel.cc +++ b/paddle/phi/kernels/xpu/rnn_grad_kernel.cc @@ -163,7 +163,7 @@ void RnnGradKernel(const Context& dev_ctx, int state_offset = pre_state[0]->dims()[1] * pre_state[0]->dims()[2]; bool has_seq_length = sequence_length.is_initialized(); - std::vector seq_len_tensor(batch_size, seq_len); + std::vector seq_len_tensor(batch_size, seq_len); if (has_seq_length) { phi::TensorToVector(*sequence_length, dev_ctx, &seq_len_tensor); } diff --git a/paddle/phi/kernels/xpu/rnn_kernel.cc b/paddle/phi/kernels/xpu/rnn_kernel.cc index c56ba90dff4afa..09138204c3cd20 100644 --- a/paddle/phi/kernels/xpu/rnn_kernel.cc +++ b/paddle/phi/kernels/xpu/rnn_kernel.cc @@ -114,7 +114,7 @@ void RnnKernel(const Context& dev_ctx, i_f_g_o_ptr + num_layers * block_size * 4; // 4 for i_f_g_o offset auto hidden_data_ptr = c_ptr + num_layers * block_size * 1; // 1 for c offset - std::vector seq_len_tensor(batch_size, seq_len); + std::vector seq_len_tensor(batch_size, seq_len); bool has_seq_length = sequence_length.is_initialized(); From 464489258d6bc7d13233b884c6aac279e7edbb44 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BC=A0=E6=98=A5=E4=B9=94?= <83450930+Liyulingyue@users.noreply.github.com> Date: Wed, 22 Feb 2023 22:58:53 +0800 Subject: [PATCH 35/75] Update rnn_kernel.cc --- paddle/phi/kernels/xpu/rnn_kernel.cc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/paddle/phi/kernels/xpu/rnn_kernel.cc b/paddle/phi/kernels/xpu/rnn_kernel.cc index c56ba90dff4afa..09138204c3cd20 100644 --- a/paddle/phi/kernels/xpu/rnn_kernel.cc +++ b/paddle/phi/kernels/xpu/rnn_kernel.cc @@ -114,7 +114,7 @@ void RnnKernel(const Context& dev_ctx, i_f_g_o_ptr + num_layers * block_size * 4; // 4 for i_f_g_o offset auto hidden_data_ptr = c_ptr + num_layers * block_size * 1; // 1 for c offset - std::vector seq_len_tensor(batch_size, seq_len); + std::vector seq_len_tensor(batch_size, seq_len); bool has_seq_length = sequence_length.is_initialized(); From de02e585f87e8ac114190508205c68afc875873e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BC=A0=E6=98=A5=E4=B9=94?= <83450930+Liyulingyue@users.noreply.github.com> Date: Wed, 22 Feb 2023 22:59:14 +0800 Subject: [PATCH 36/75] Update rnn_grad_kernel.cc --- paddle/phi/kernels/xpu/rnn_grad_kernel.cc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/paddle/phi/kernels/xpu/rnn_grad_kernel.cc b/paddle/phi/kernels/xpu/rnn_grad_kernel.cc index 5dbc9b231c58dc..3cf88181894af5 100644 --- a/paddle/phi/kernels/xpu/rnn_grad_kernel.cc +++ b/paddle/phi/kernels/xpu/rnn_grad_kernel.cc @@ -163,7 +163,7 @@ void RnnGradKernel(const Context& dev_ctx, int state_offset = pre_state[0]->dims()[1] * pre_state[0]->dims()[2]; bool has_seq_length = sequence_length.is_initialized(); - std::vector seq_len_tensor(batch_size, seq_len); + std::vector seq_len_tensor(batch_size, seq_len); if (has_seq_length) { phi::TensorToVector(*sequence_length, dev_ctx, &seq_len_tensor); } From 89fd1ea051a14bd60285d0d3ef3ac8724bc89bd6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BC=A0=E6=98=A5=E4=B9=94?= <83450930+Liyulingyue@users.noreply.github.com> Date: Wed, 22 Feb 2023 23:25:06 +0800 Subject: [PATCH 37/75] Update rnn_functor.h --- paddle/phi/kernels/cpu/rnn_functor.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/paddle/phi/kernels/cpu/rnn_functor.h b/paddle/phi/kernels/cpu/rnn_functor.h index fcd3493db981e1..af09eae0ef1898 100644 --- a/paddle/phi/kernels/cpu/rnn_functor.h +++ b/paddle/phi/kernels/cpu/rnn_functor.h @@ -46,7 +46,7 @@ void CreateMaskMatrix(const CPUContext& dev_ctx, DenseTensor* mask_matrix, const bool& is_reverse, int* min_seq_len) { - std::vector seq_len_vec; + std::vector seq_len_vec; phi::TensorToVector(*sequence_length, dev_ctx, &seq_len_vec); const int table_width = mask_matrix->dims()[0]; DenseTensor temp = From f2e1aa7f3c93422f4f7b6004e54e7bbdc397ffb6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BC=A0=E6=98=A5=E4=B9=94?= <83450930+Liyulingyue@users.noreply.github.com> Date: Wed, 22 Feb 2023 23:25:35 +0800 Subject: [PATCH 38/75] Update rnn_grad_kernel.cu.cc --- paddle/phi/kernels/gpu/rnn_grad_kernel.cu.cc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/paddle/phi/kernels/gpu/rnn_grad_kernel.cu.cc b/paddle/phi/kernels/gpu/rnn_grad_kernel.cu.cc index dacb7b16e34d8b..3bc71483222ad9 100644 --- a/paddle/phi/kernels/gpu/rnn_grad_kernel.cu.cc +++ b/paddle/phi/kernels/gpu/rnn_grad_kernel.cu.cc @@ -221,7 +221,7 @@ void RnnGradKernel(const Context &dev_ctx, false, phi::errors::InvalidArgument("ROCm do not support SequenceLength yet.")); #endif - std::vector SequenceLength; + std::vector SequenceLength; if (has_seq_length) { phi::TensorToVector(*sequence_length, dev_ctx, &SequenceLength); } From 2d9de726eb28f6e60b1637fc68bec8853b2eec64 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BC=A0=E6=98=A5=E4=B9=94?= <83450930+Liyulingyue@users.noreply.github.com> Date: Wed, 22 Feb 2023 23:25:56 +0800 Subject: [PATCH 39/75] Update rnn_kernel.cu.cc --- paddle/phi/kernels/gpu/rnn_kernel.cu.cc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/paddle/phi/kernels/gpu/rnn_kernel.cu.cc b/paddle/phi/kernels/gpu/rnn_kernel.cu.cc index f40e19efbfc6b9..6155ef6dd035c0 100644 --- a/paddle/phi/kernels/gpu/rnn_kernel.cu.cc +++ b/paddle/phi/kernels/gpu/rnn_kernel.cu.cc @@ -203,7 +203,7 @@ void RnnKernel(const Context &dev_ctx, false, phi::errors::InvalidArgument("ROCm do not support SequenceLength yet.")); #endif - std::vector SequenceLength; + std::vector SequenceLength; if (has_seq_length) { phi::TensorToVector(*sequence_length, dev_ctx, &SequenceLength); } From 03b7d38e34ebe09e20bc73604cc7eaf636a94ac4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BC=A0=E6=98=A5=E4=B9=94?= <83450930+Liyulingyue@users.noreply.github.com> Date: Wed, 22 Feb 2023 23:30:55 +0800 Subject: [PATCH 40/75] Update rnn_functor.h --- paddle/phi/kernels/cpu/rnn_functor.h | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/paddle/phi/kernels/cpu/rnn_functor.h b/paddle/phi/kernels/cpu/rnn_functor.h index 4bebc7cbc16041..8b76389b75bfd6 100644 --- a/paddle/phi/kernels/cpu/rnn_functor.h +++ b/paddle/phi/kernels/cpu/rnn_functor.h @@ -46,12 +46,7 @@ void CreateMaskMatrix(const CPUContext& dev_ctx, DenseTensor* mask_matrix, const bool& is_reverse, int* min_seq_len) { - if (phi::TransToProtoVarType(sequence_length->dtype()) == - ProtoDataType::INT64) { - std::vector seq_len_vec; - } else { - std::vector seq_len_vec; - } + std::vector seq_len_vec; phi::TensorToVector(*sequence_length, dev_ctx, &seq_len_vec); const int table_width = mask_matrix->dims()[0]; DenseTensor temp = From 5b112a2c428f79ebfe8e96dda39ed3cc0fd2c8de Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BC=A0=E6=98=A5=E4=B9=94?= <83450930+Liyulingyue@users.noreply.github.com> Date: Wed, 22 Feb 2023 23:31:54 +0800 Subject: [PATCH 41/75] Update rnn_grad_kernel.cu.cc --- paddle/phi/kernels/gpu/rnn_grad_kernel.cu.cc | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/paddle/phi/kernels/gpu/rnn_grad_kernel.cu.cc b/paddle/phi/kernels/gpu/rnn_grad_kernel.cu.cc index 6bea3962d05733..f5b294aed38d13 100644 --- a/paddle/phi/kernels/gpu/rnn_grad_kernel.cu.cc +++ b/paddle/phi/kernels/gpu/rnn_grad_kernel.cu.cc @@ -221,12 +221,7 @@ void RnnGradKernel(const Context &dev_ctx, false, phi::errors::InvalidArgument("ROCm do not support SequenceLength yet.")); #endif - if (phi::TransToProtoVarType(sequence_length->dtype()) == - ProtoDataType::INT64) { - std::vector SequenceLength; - } else { - std::vector SequenceLength; - } + std::vector SequenceLength; if (has_seq_length) { phi::TensorToVector(*sequence_length, dev_ctx, &SequenceLength); } From aa809ab4205b0ab0b78ebe312874c947a80c6a6f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BC=A0=E6=98=A5=E4=B9=94?= <83450930+Liyulingyue@users.noreply.github.com> Date: Wed, 22 Feb 2023 23:32:52 +0800 Subject: [PATCH 42/75] Update rnn_kernel.cu.cc --- paddle/phi/kernels/gpu/rnn_kernel.cu.cc | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/paddle/phi/kernels/gpu/rnn_kernel.cu.cc b/paddle/phi/kernels/gpu/rnn_kernel.cu.cc index 8a2ae66fe42336..d8656e1649d221 100644 --- a/paddle/phi/kernels/gpu/rnn_kernel.cu.cc +++ b/paddle/phi/kernels/gpu/rnn_kernel.cu.cc @@ -203,12 +203,7 @@ void RnnKernel(const Context &dev_ctx, false, phi::errors::InvalidArgument("ROCm do not support SequenceLength yet.")); #endif - if (phi::TransToProtoVarType(sequence_length->dtype()) == - ProtoDataType::INT64) { - std::vector SequenceLength; - } else { - std::vector SequenceLength; - } + std::vector SequenceLength; if (has_seq_length) { phi::TensorToVector(*sequence_length, dev_ctx, &SequenceLength); } From 6466fcad412537691bab82fd86ffe395184884df Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BC=A0=E6=98=A5=E4=B9=94?= <83450930+Liyulingyue@users.noreply.github.com> Date: Wed, 22 Feb 2023 23:52:43 +0800 Subject: [PATCH 43/75] Update rnn_functor.h --- paddle/phi/kernels/cpu/rnn_functor.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/paddle/phi/kernels/cpu/rnn_functor.h b/paddle/phi/kernels/cpu/rnn_functor.h index af09eae0ef1898..cbd601f606edbd 100644 --- a/paddle/phi/kernels/cpu/rnn_functor.h +++ b/paddle/phi/kernels/cpu/rnn_functor.h @@ -47,7 +47,7 @@ void CreateMaskMatrix(const CPUContext& dev_ctx, const bool& is_reverse, int* min_seq_len) { std::vector seq_len_vec; - phi::TensorToVector(*sequence_length, dev_ctx, &seq_len_vec); + phi::TensorToVector(*sequence_length, &seq_len_vec); const int table_width = mask_matrix->dims()[0]; DenseTensor temp = Empty(dev_ctx, {mask_matrix->dims()[1], mask_matrix->dims()[0]}); From c6a90b171aaffe8eaa4fec0172ded720b95f7a45 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BC=A0=E6=98=A5=E4=B9=94?= <83450930+Liyulingyue@users.noreply.github.com> Date: Wed, 22 Feb 2023 23:54:48 +0800 Subject: [PATCH 44/75] Update rnn_grad_kernel.cu.cc --- paddle/phi/kernels/gpu/rnn_grad_kernel.cu.cc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/paddle/phi/kernels/gpu/rnn_grad_kernel.cu.cc b/paddle/phi/kernels/gpu/rnn_grad_kernel.cu.cc index 3bc71483222ad9..7de9439130cc39 100644 --- a/paddle/phi/kernels/gpu/rnn_grad_kernel.cu.cc +++ b/paddle/phi/kernels/gpu/rnn_grad_kernel.cu.cc @@ -223,7 +223,7 @@ void RnnGradKernel(const Context &dev_ctx, #endif std::vector SequenceLength; if (has_seq_length) { - phi::TensorToVector(*sequence_length, dev_ctx, &SequenceLength); + phi::TensorToVector(*sequence_length, &SequenceLength); } auto input_dims = x.dims(); From 2d1dab8bf18d07b3399fc7f63c068299bd8e537a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BC=A0=E6=98=A5=E4=B9=94?= <83450930+Liyulingyue@users.noreply.github.com> Date: Wed, 22 Feb 2023 23:55:08 +0800 Subject: [PATCH 45/75] Update rnn_kernel.cu.cc --- paddle/phi/kernels/gpu/rnn_kernel.cu.cc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/paddle/phi/kernels/gpu/rnn_kernel.cu.cc b/paddle/phi/kernels/gpu/rnn_kernel.cu.cc index 6155ef6dd035c0..724a545c1f1119 100644 --- a/paddle/phi/kernels/gpu/rnn_kernel.cu.cc +++ b/paddle/phi/kernels/gpu/rnn_kernel.cu.cc @@ -205,7 +205,7 @@ void RnnKernel(const Context &dev_ctx, #endif std::vector SequenceLength; if (has_seq_length) { - phi::TensorToVector(*sequence_length, dev_ctx, &SequenceLength); + phi::TensorToVector(*sequence_length, &SequenceLength); } auto handle = dev_ctx.cudnn_handle(); From 787eb8b32761c27ebc0212f944cd5a484ca4ee5f Mon Sep 17 00:00:00 2001 From: Liyulingyue <852433440@qq.com> Date: Thu, 23 Feb 2023 00:11:48 +0800 Subject: [PATCH 46/75] add TensorToVector --- paddle/phi/core/tensor_utils.h | 3 +++ 1 file changed, 3 insertions(+) diff --git a/paddle/phi/core/tensor_utils.h b/paddle/phi/core/tensor_utils.h index df6db077f0310d..c441aef67b8ca9 100644 --- a/paddle/phi/core/tensor_utils.h +++ b/paddle/phi/core/tensor_utils.h @@ -126,6 +126,9 @@ void TensorToVector(const phi::DenseTensor& src, const phi::DeviceContext& ctx, std::vector* dst); +template +void TensorToVector(const phi::DenseTensor& src, std::vector* dst); + phi::DenseTensor ReshapeToMatrix(const phi::DenseTensor& src, int num_col_dims); template From ced35efb528a3976b9302a49c89b993211b8b44c Mon Sep 17 00:00:00 2001 From: Liyulingyue <852433440@qq.com> Date: Thu, 23 Feb 2023 06:26:31 +0800 Subject: [PATCH 47/75] roll back --- paddle/phi/core/tensor_utils.h | 12 +++++++++--- paddle/phi/kernels/cpu/rnn_functor.h | 3 +-- 2 files changed, 10 insertions(+), 5 deletions(-) diff --git a/paddle/phi/core/tensor_utils.h b/paddle/phi/core/tensor_utils.h index 94cfea0cf58bbd..a901c1a733b5dc 100644 --- a/paddle/phi/core/tensor_utils.h +++ b/paddle/phi/core/tensor_utils.h @@ -14,7 +14,7 @@ limitations under the License. */ #pragma once -#include "paddle/fluid/framework/tensor_util.h" +#include "paddle/fluid/platform/device_context.h" #include "paddle/phi/core/dense_tensor.h" #include "paddle/phi/core/device_context.h" #include "paddle/phi/core/selected_rows.h" @@ -153,7 +153,10 @@ inline std::vector GetVectorFromTensor(const phi::DenseTensor* x) { auto* data = x->data(); phi::DenseTensor cpu_attr_tensor; if (!paddle::platform::is_cpu_place(x->place())) { - paddle::framework::TensorCopySync(*x, CPUPlace(), &cpu_attr_tensor); + auto& pool = paddle::platform::DeviceContextPool::Instance(); + phi::DeviceContext* dev_ctx; + dev_ctx = pool.Get(CPUPlace()); + phi::Copy(*dev_ctx, *x, CPUPlace(), true, &cpu_attr_tensor); data = cpu_attr_tensor.data(); } vec_new_data = std::vector(data, data + x->numel()); @@ -161,7 +164,10 @@ inline std::vector GetVectorFromTensor(const phi::DenseTensor* x) { auto* data = x->data(); phi::DenseTensor cpu_attr_tensor; if (!paddle::platform::is_cpu_place(x->place())) { - paddle::framework::TensorCopySync(*x, CPUPlace(), &cpu_attr_tensor); + auto& pool = paddle::platform::DeviceContextPool::Instance(); + phi::DeviceContext* dev_ctx; + dev_ctx = pool.Get(CPUPlace()); + phi::Copy(*dev_ctx, *x, CPUPlace(), true, &cpu_attr_tensor); data = cpu_attr_tensor.data(); } // NOTE: Converting int64 to int32 may cause data overflow. diff --git a/paddle/phi/kernels/cpu/rnn_functor.h b/paddle/phi/kernels/cpu/rnn_functor.h index a45a6548056bf5..49b0c7655c6df2 100644 --- a/paddle/phi/kernels/cpu/rnn_functor.h +++ b/paddle/phi/kernels/cpu/rnn_functor.h @@ -46,8 +46,7 @@ void CreateMaskMatrix(const CPUContext& dev_ctx, DenseTensor* mask_matrix, const bool& is_reverse, int* min_seq_len) { - const auto& seq_len_vec = - phi::GetVectorFromTensor(sequence_length); + const auto& seq_len_vec = phi::GetVectorFromTensor(sequence_length); const int table_width = mask_matrix->dims()[0]; DenseTensor temp = Empty(dev_ctx, {mask_matrix->dims()[1], mask_matrix->dims()[0]}); From 405c0e91d1f6d3bb1d1d7f504970b81dc34df9ea Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BC=A0=E6=98=A5=E4=B9=94?= <83450930+Liyulingyue@users.noreply.github.com> Date: Thu, 23 Feb 2023 06:43:35 +0800 Subject: [PATCH 48/75] Update tensor_utils.h --- paddle/phi/core/tensor_utils.h | 12 +++--------- 1 file changed, 3 insertions(+), 9 deletions(-) diff --git a/paddle/phi/core/tensor_utils.h b/paddle/phi/core/tensor_utils.h index a901c1a733b5dc..94cfea0cf58bbd 100644 --- a/paddle/phi/core/tensor_utils.h +++ b/paddle/phi/core/tensor_utils.h @@ -14,7 +14,7 @@ limitations under the License. */ #pragma once -#include "paddle/fluid/platform/device_context.h" +#include "paddle/fluid/framework/tensor_util.h" #include "paddle/phi/core/dense_tensor.h" #include "paddle/phi/core/device_context.h" #include "paddle/phi/core/selected_rows.h" @@ -153,10 +153,7 @@ inline std::vector GetVectorFromTensor(const phi::DenseTensor* x) { auto* data = x->data(); phi::DenseTensor cpu_attr_tensor; if (!paddle::platform::is_cpu_place(x->place())) { - auto& pool = paddle::platform::DeviceContextPool::Instance(); - phi::DeviceContext* dev_ctx; - dev_ctx = pool.Get(CPUPlace()); - phi::Copy(*dev_ctx, *x, CPUPlace(), true, &cpu_attr_tensor); + paddle::framework::TensorCopySync(*x, CPUPlace(), &cpu_attr_tensor); data = cpu_attr_tensor.data(); } vec_new_data = std::vector(data, data + x->numel()); @@ -164,10 +161,7 @@ inline std::vector GetVectorFromTensor(const phi::DenseTensor* x) { auto* data = x->data(); phi::DenseTensor cpu_attr_tensor; if (!paddle::platform::is_cpu_place(x->place())) { - auto& pool = paddle::platform::DeviceContextPool::Instance(); - phi::DeviceContext* dev_ctx; - dev_ctx = pool.Get(CPUPlace()); - phi::Copy(*dev_ctx, *x, CPUPlace(), true, &cpu_attr_tensor); + paddle::framework::TensorCopySync(*x, CPUPlace(), &cpu_attr_tensor); data = cpu_attr_tensor.data(); } // NOTE: Converting int64 to int32 may cause data overflow. From 23018e802147b822fbd249e0d000e4c02f337f37 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BC=A0=E6=98=A5=E4=B9=94?= <83450930+Liyulingyue@users.noreply.github.com> Date: Thu, 23 Feb 2023 17:13:58 +0800 Subject: [PATCH 49/75] Update rnn_functor.h --- paddle/phi/kernels/cpu/rnn_functor.h | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/paddle/phi/kernels/cpu/rnn_functor.h b/paddle/phi/kernels/cpu/rnn_functor.h index cbd601f606edbd..49b0c7655c6df2 100644 --- a/paddle/phi/kernels/cpu/rnn_functor.h +++ b/paddle/phi/kernels/cpu/rnn_functor.h @@ -46,8 +46,7 @@ void CreateMaskMatrix(const CPUContext& dev_ctx, DenseTensor* mask_matrix, const bool& is_reverse, int* min_seq_len) { - std::vector seq_len_vec; - phi::TensorToVector(*sequence_length, &seq_len_vec); + const auto& seq_len_vec = phi::GetVectorFromTensor(sequence_length); const int table_width = mask_matrix->dims()[0]; DenseTensor temp = Empty(dev_ctx, {mask_matrix->dims()[1], mask_matrix->dims()[0]}); From a9c5d25a2fba7d067a31e1a74c905b6c83e59639 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BC=A0=E6=98=A5=E4=B9=94?= <83450930+Liyulingyue@users.noreply.github.com> Date: Thu, 23 Feb 2023 17:18:15 +0800 Subject: [PATCH 50/75] Update rnn_grad_kernel.cu.cc --- paddle/phi/kernels/gpu/rnn_grad_kernel.cu.cc | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/paddle/phi/kernels/gpu/rnn_grad_kernel.cu.cc b/paddle/phi/kernels/gpu/rnn_grad_kernel.cu.cc index 7de9439130cc39..bd0f9f7bd27fbe 100644 --- a/paddle/phi/kernels/gpu/rnn_grad_kernel.cu.cc +++ b/paddle/phi/kernels/gpu/rnn_grad_kernel.cu.cc @@ -223,7 +223,8 @@ void RnnGradKernel(const Context &dev_ctx, #endif std::vector SequenceLength; if (has_seq_length) { - phi::TensorToVector(*sequence_length, &SequenceLength); + SequenceLength = + phi::GetDataFromTensor(sequence_length.get_ptr()); } auto input_dims = x.dims(); From 2823262ad2f614160953a5d4bdca409761874c68 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BC=A0=E6=98=A5=E4=B9=94?= <83450930+Liyulingyue@users.noreply.github.com> Date: Thu, 23 Feb 2023 17:21:34 +0800 Subject: [PATCH 51/75] Update tensor_utils.h --- paddle/phi/core/tensor_utils.h | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/paddle/phi/core/tensor_utils.h b/paddle/phi/core/tensor_utils.h index fdfdc9ac6a225f..94cfea0cf58bbd 100644 --- a/paddle/phi/core/tensor_utils.h +++ b/paddle/phi/core/tensor_utils.h @@ -14,12 +14,14 @@ limitations under the License. */ #pragma once +#include "paddle/fluid/framework/tensor_util.h" #include "paddle/phi/core/dense_tensor.h" #include "paddle/phi/core/device_context.h" #include "paddle/phi/core/selected_rows.h" #include "paddle/phi/core/sparse_coo_tensor.h" #include "paddle/phi/core/sparse_csr_tensor.h" #include "paddle/phi/core/tensor_meta.h" +#include "paddle/phi/core/utils/data_type.h" namespace phi { @@ -126,9 +128,6 @@ void TensorToVector(const phi::DenseTensor& src, const phi::DeviceContext& ctx, std::vector* dst); -template -void TensorToVector(const phi::DenseTensor& src, std::vector* dst); - phi::DenseTensor ReshapeToMatrix(const phi::DenseTensor& src, int num_col_dims); template From 84b7b126924ba170e90b1f9b230b3546613e40c4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BC=A0=E6=98=A5=E4=B9=94?= <83450930+Liyulingyue@users.noreply.github.com> Date: Thu, 23 Feb 2023 17:22:53 +0800 Subject: [PATCH 52/75] Update rnn_kernel.cu.cc --- paddle/phi/kernels/gpu/rnn_kernel.cu.cc | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/paddle/phi/kernels/gpu/rnn_kernel.cu.cc b/paddle/phi/kernels/gpu/rnn_kernel.cu.cc index 724a545c1f1119..6d37d88fee450d 100644 --- a/paddle/phi/kernels/gpu/rnn_kernel.cu.cc +++ b/paddle/phi/kernels/gpu/rnn_kernel.cu.cc @@ -205,7 +205,8 @@ void RnnKernel(const Context &dev_ctx, #endif std::vector SequenceLength; if (has_seq_length) { - phi::TensorToVector(*sequence_length, &SequenceLength); + SequenceLength = + phi::GetDataFromTensor(sequence_length.get_ptr()); } auto handle = dev_ctx.cudnn_handle(); From 56be7c1e345f07af26711111f4f2453797748464 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BC=A0=E6=98=A5=E4=B9=94?= <83450930+Liyulingyue@users.noreply.github.com> Date: Thu, 23 Feb 2023 17:23:41 +0800 Subject: [PATCH 53/75] Update rnn_grad_kernel.cc --- paddle/phi/kernels/xpu/rnn_grad_kernel.cc | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/paddle/phi/kernels/xpu/rnn_grad_kernel.cc b/paddle/phi/kernels/xpu/rnn_grad_kernel.cc index 3cf88181894af5..f150e8dd5388cf 100644 --- a/paddle/phi/kernels/xpu/rnn_grad_kernel.cc +++ b/paddle/phi/kernels/xpu/rnn_grad_kernel.cc @@ -165,7 +165,8 @@ void RnnGradKernel(const Context& dev_ctx, bool has_seq_length = sequence_length.is_initialized(); std::vector seq_len_tensor(batch_size, seq_len); if (has_seq_length) { - phi::TensorToVector(*sequence_length, dev_ctx, &seq_len_tensor); + seq_len_tensor = + phi::GetDataFromTensor(sequence_length.get_ptr()); } for (int i = num_layers - 1; i >= 0; --i) { From 4cdf203fef4233ef9464dd46d511bd6e49f4de99 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BC=A0=E6=98=A5=E4=B9=94?= <83450930+Liyulingyue@users.noreply.github.com> Date: Thu, 23 Feb 2023 17:24:34 +0800 Subject: [PATCH 54/75] Update rnn_kernel.cc --- paddle/phi/kernels/xpu/rnn_kernel.cc | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/paddle/phi/kernels/xpu/rnn_kernel.cc b/paddle/phi/kernels/xpu/rnn_kernel.cc index 09138204c3cd20..00a881d4702421 100644 --- a/paddle/phi/kernels/xpu/rnn_kernel.cc +++ b/paddle/phi/kernels/xpu/rnn_kernel.cc @@ -119,7 +119,8 @@ void RnnKernel(const Context& dev_ctx, bool has_seq_length = sequence_length.is_initialized(); if (has_seq_length) { - phi::TensorToVector(*sequence_length, dev_ctx, &seq_len_tensor); + seq_len_tensor = + phi::GetDataFromTensor(sequence_length.get_ptr()) } int state_offset = pre_state[0]->dims()[1] * pre_state[0]->dims()[2]; From da37650d423afc842059a914a12fedc3b886bbc9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BC=A0=E6=98=A5=E4=B9=94?= <83450930+Liyulingyue@users.noreply.github.com> Date: Thu, 23 Feb 2023 18:51:54 +0800 Subject: [PATCH 55/75] Update rnn_grad_kernel.cu.cc --- paddle/phi/kernels/gpu/rnn_grad_kernel.cu.cc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/paddle/phi/kernels/gpu/rnn_grad_kernel.cu.cc b/paddle/phi/kernels/gpu/rnn_grad_kernel.cu.cc index bd0f9f7bd27fbe..494c9d750a8a0b 100644 --- a/paddle/phi/kernels/gpu/rnn_grad_kernel.cu.cc +++ b/paddle/phi/kernels/gpu/rnn_grad_kernel.cu.cc @@ -224,7 +224,7 @@ void RnnGradKernel(const Context &dev_ctx, std::vector SequenceLength; if (has_seq_length) { SequenceLength = - phi::GetDataFromTensor(sequence_length.get_ptr()); + phi::GetVectorFromTensor(sequence_length.get_ptr()); } auto input_dims = x.dims(); From 12c47ddae1040918b713d8466c8f09608e7b515a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BC=A0=E6=98=A5=E4=B9=94?= <83450930+Liyulingyue@users.noreply.github.com> Date: Thu, 23 Feb 2023 18:52:59 +0800 Subject: [PATCH 56/75] Update rnn_kernel.cu.cc --- paddle/phi/kernels/gpu/rnn_kernel.cu.cc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/paddle/phi/kernels/gpu/rnn_kernel.cu.cc b/paddle/phi/kernels/gpu/rnn_kernel.cu.cc index 6d37d88fee450d..0c324c86b6d0a9 100644 --- a/paddle/phi/kernels/gpu/rnn_kernel.cu.cc +++ b/paddle/phi/kernels/gpu/rnn_kernel.cu.cc @@ -206,7 +206,7 @@ void RnnKernel(const Context &dev_ctx, std::vector SequenceLength; if (has_seq_length) { SequenceLength = - phi::GetDataFromTensor(sequence_length.get_ptr()); + phi::GetVectorFromTensor(sequence_length.get_ptr()); } auto handle = dev_ctx.cudnn_handle(); From 6fd81b8d6704fce3c9f48051c3a1eebb4eeb91d5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BC=A0=E6=98=A5=E4=B9=94?= <83450930+Liyulingyue@users.noreply.github.com> Date: Thu, 23 Feb 2023 18:53:47 +0800 Subject: [PATCH 57/75] Update rnn_grad_kernel.cc --- paddle/phi/kernels/xpu/rnn_grad_kernel.cc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/paddle/phi/kernels/xpu/rnn_grad_kernel.cc b/paddle/phi/kernels/xpu/rnn_grad_kernel.cc index f150e8dd5388cf..c82839f59ed021 100644 --- a/paddle/phi/kernels/xpu/rnn_grad_kernel.cc +++ b/paddle/phi/kernels/xpu/rnn_grad_kernel.cc @@ -166,7 +166,7 @@ void RnnGradKernel(const Context& dev_ctx, std::vector seq_len_tensor(batch_size, seq_len); if (has_seq_length) { seq_len_tensor = - phi::GetDataFromTensor(sequence_length.get_ptr()); + phi::GetVectorFromTensor(sequence_length.get_ptr()); } for (int i = num_layers - 1; i >= 0; --i) { From 50370c9b2cbf9203562f8b4a64abb0e335951953 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BC=A0=E6=98=A5=E4=B9=94?= <83450930+Liyulingyue@users.noreply.github.com> Date: Thu, 23 Feb 2023 18:54:11 +0800 Subject: [PATCH 58/75] Update rnn_kernel.cc --- paddle/phi/kernels/xpu/rnn_kernel.cc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/paddle/phi/kernels/xpu/rnn_kernel.cc b/paddle/phi/kernels/xpu/rnn_kernel.cc index 00a881d4702421..6bac8058574cf2 100644 --- a/paddle/phi/kernels/xpu/rnn_kernel.cc +++ b/paddle/phi/kernels/xpu/rnn_kernel.cc @@ -120,7 +120,7 @@ void RnnKernel(const Context& dev_ctx, if (has_seq_length) { seq_len_tensor = - phi::GetDataFromTensor(sequence_length.get_ptr()) + phi::GetVectorFromTensor(sequence_length.get_ptr()) } int state_offset = pre_state[0]->dims()[1] * pre_state[0]->dims()[2]; From f7aeb2b66595762da2707ac993fdc5dac4c886ba Mon Sep 17 00:00:00 2001 From: Liyulingyue <852433440@qq.com> Date: Thu, 23 Feb 2023 19:59:27 +0800 Subject: [PATCH 59/75] TensorCopySync to phi::Copy --- paddle/phi/core/tensor_utils.h | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/paddle/phi/core/tensor_utils.h b/paddle/phi/core/tensor_utils.h index 94cfea0cf58bbd..9203621931963a 100644 --- a/paddle/phi/core/tensor_utils.h +++ b/paddle/phi/core/tensor_utils.h @@ -14,7 +14,9 @@ limitations under the License. */ #pragma once -#include "paddle/fluid/framework/tensor_util.h" +#include "paddle/phi/backends/all_context.h" +#include "paddle/phi/backends/cpu/cpu_context.h" +#include "paddle/phi/common/place.h" #include "paddle/phi/core/dense_tensor.h" #include "paddle/phi/core/device_context.h" #include "paddle/phi/core/selected_rows.h" @@ -153,7 +155,9 @@ inline std::vector GetVectorFromTensor(const phi::DenseTensor* x) { auto* data = x->data(); phi::DenseTensor cpu_attr_tensor; if (!paddle::platform::is_cpu_place(x->place())) { - paddle::framework::TensorCopySync(*x, CPUPlace(), &cpu_attr_tensor); + phi::DeviceContextPool& pool = phi::DeviceContextPool::Instance(); + auto dev_ctx = pool.Get(x->place()); + phi::Copy(*dev_ctx, *x, CPUPlace(), true, &cpu_attr_tensor); data = cpu_attr_tensor.data(); } vec_new_data = std::vector(data, data + x->numel()); @@ -161,7 +165,9 @@ inline std::vector GetVectorFromTensor(const phi::DenseTensor* x) { auto* data = x->data(); phi::DenseTensor cpu_attr_tensor; if (!paddle::platform::is_cpu_place(x->place())) { - paddle::framework::TensorCopySync(*x, CPUPlace(), &cpu_attr_tensor); + phi::DeviceContextPool& pool = phi::DeviceContextPool::Instance(); + auto dev_ctx = pool.Get(x->place()); + phi::Copy(*dev_ctx, *x, CPUPlace(), true, &cpu_attr_tensor); data = cpu_attr_tensor.data(); } // NOTE: Converting int64 to int32 may cause data overflow. From 61100348c014de90fe061e1f46ac74437182b11b Mon Sep 17 00:00:00 2001 From: Liyulingyue <852433440@qq.com> Date: Thu, 23 Feb 2023 22:19:15 +0800 Subject: [PATCH 60/75] fix codestyle --- paddle/phi/kernels/gpu/rnn_grad_kernel.cu.cc | 3 +-- paddle/phi/kernels/gpu/rnn_kernel.cu.cc | 3 +-- paddle/phi/kernels/xpu/rnn_grad_kernel.cc | 3 +-- paddle/phi/kernels/xpu/rnn_kernel.cc | 3 +-- 4 files changed, 4 insertions(+), 8 deletions(-) diff --git a/paddle/phi/kernels/gpu/rnn_grad_kernel.cu.cc b/paddle/phi/kernels/gpu/rnn_grad_kernel.cu.cc index 494c9d750a8a0b..fe45d56bd9d956 100644 --- a/paddle/phi/kernels/gpu/rnn_grad_kernel.cu.cc +++ b/paddle/phi/kernels/gpu/rnn_grad_kernel.cu.cc @@ -223,8 +223,7 @@ void RnnGradKernel(const Context &dev_ctx, #endif std::vector SequenceLength; if (has_seq_length) { - SequenceLength = - phi::GetVectorFromTensor(sequence_length.get_ptr()); + SequenceLength = phi::GetVectorFromTensor(sequence_length.get_ptr()); } auto input_dims = x.dims(); diff --git a/paddle/phi/kernels/gpu/rnn_kernel.cu.cc b/paddle/phi/kernels/gpu/rnn_kernel.cu.cc index 0c324c86b6d0a9..6b4e8b45fb7ec4 100644 --- a/paddle/phi/kernels/gpu/rnn_kernel.cu.cc +++ b/paddle/phi/kernels/gpu/rnn_kernel.cu.cc @@ -205,8 +205,7 @@ void RnnKernel(const Context &dev_ctx, #endif std::vector SequenceLength; if (has_seq_length) { - SequenceLength = - phi::GetVectorFromTensor(sequence_length.get_ptr()); + SequenceLength = phi::GetVectorFromTensor(sequence_length.get_ptr()); } auto handle = dev_ctx.cudnn_handle(); diff --git a/paddle/phi/kernels/xpu/rnn_grad_kernel.cc b/paddle/phi/kernels/xpu/rnn_grad_kernel.cc index c82839f59ed021..fe0a8fc56961d2 100644 --- a/paddle/phi/kernels/xpu/rnn_grad_kernel.cc +++ b/paddle/phi/kernels/xpu/rnn_grad_kernel.cc @@ -165,8 +165,7 @@ void RnnGradKernel(const Context& dev_ctx, bool has_seq_length = sequence_length.is_initialized(); std::vector seq_len_tensor(batch_size, seq_len); if (has_seq_length) { - seq_len_tensor = - phi::GetVectorFromTensor(sequence_length.get_ptr()); + seq_len_tensor = phi::GetVectorFromTensor(sequence_length.get_ptr()); } for (int i = num_layers - 1; i >= 0; --i) { diff --git a/paddle/phi/kernels/xpu/rnn_kernel.cc b/paddle/phi/kernels/xpu/rnn_kernel.cc index 6bac8058574cf2..98f4e506a423c3 100644 --- a/paddle/phi/kernels/xpu/rnn_kernel.cc +++ b/paddle/phi/kernels/xpu/rnn_kernel.cc @@ -119,8 +119,7 @@ void RnnKernel(const Context& dev_ctx, bool has_seq_length = sequence_length.is_initialized(); if (has_seq_length) { - seq_len_tensor = - phi::GetVectorFromTensor(sequence_length.get_ptr()) + seq_len_tensor = phi::GetVectorFromTensor(sequence_length.get_ptr()) } int state_offset = pre_state[0]->dims()[1] * pre_state[0]->dims()[2]; From 38fc26aeb0e9dbc1735b7dc981944f21f17f81a2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BC=A0=E6=98=A5=E4=B9=94?= <83450930+Liyulingyue@users.noreply.github.com> Date: Fri, 24 Feb 2023 11:22:55 +0800 Subject: [PATCH 61/75] rnn_kernel.cc: add ; --- paddle/phi/kernels/xpu/rnn_kernel.cc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/paddle/phi/kernels/xpu/rnn_kernel.cc b/paddle/phi/kernels/xpu/rnn_kernel.cc index 98f4e506a423c3..b529423992d495 100644 --- a/paddle/phi/kernels/xpu/rnn_kernel.cc +++ b/paddle/phi/kernels/xpu/rnn_kernel.cc @@ -119,7 +119,7 @@ void RnnKernel(const Context& dev_ctx, bool has_seq_length = sequence_length.is_initialized(); if (has_seq_length) { - seq_len_tensor = phi::GetVectorFromTensor(sequence_length.get_ptr()) + seq_len_tensor = phi::GetVectorFromTensor(sequence_length.get_ptr()); } int state_offset = pre_state[0]->dims()[1] * pre_state[0]->dims()[2]; From 5f7c6f6f7d958f550ef60d77061f405e05a41c21 Mon Sep 17 00:00:00 2001 From: Liyulingyue <852433440@qq.com> Date: Fri, 24 Feb 2023 19:55:01 +0800 Subject: [PATCH 62/75] replace all GetDataFromTensor with phi::GetVectorFromTensor --- paddle/fluid/operators/concat_op_mlu.cc | 5 +-- paddle/fluid/operators/cudnn_lstm_op.cu.cc | 5 +-- .../fluid/operators/interpolate_v2_op_mlu.cc | 9 ++--- paddle/fluid/operators/one_hot_v2_op_mlu.cc | 5 +-- paddle/fluid/operators/reshape_op_mlu.cc | 6 ++-- paddle/fluid/operators/reshape_op_npu.cc | 6 ++-- paddle/fluid/operators/rnn_op_mlu.cc | 5 +-- paddle/fluid/operators/slice_op_mlu.cc | 15 ++++---- paddle/fluid/operators/slice_op_npu.cc | 15 ++++---- paddle/fluid/operators/split_op_mlu.cc | 3 +- .../fluid/operators/strided_slice_op_mlu.cc | 13 +++---- .../fluid/operators/strided_slice_op_npu.cc | 13 +++---- paddle/fluid/operators/unsqueeze_op.h | 3 +- paddle/fluid/operators/utils.h | 36 ++----------------- 14 files changed, 64 insertions(+), 75 deletions(-) diff --git a/paddle/fluid/operators/concat_op_mlu.cc b/paddle/fluid/operators/concat_op_mlu.cc index ebfd2895e783be..26bc2f190ce70e 100644 --- a/paddle/fluid/operators/concat_op_mlu.cc +++ b/paddle/fluid/operators/concat_op_mlu.cc @@ -14,6 +14,7 @@ limitations under the License. */ #include "paddle/fluid/operators/concat_op.h" #include "paddle/fluid/operators/mlu/mlu_baseop.h" +#include "paddle/phi/core/tensor_utils.h" namespace paddle { namespace operators { @@ -32,7 +33,7 @@ class ConcatMLUKernel : public framework::OpKernel { bool need_resize_out_dims = false; if (ctx.HasInput("AxisTensor")) { auto* axis_tensor = ctx.Input("AxisTensor"); - axis = GetDataFromTensor(axis_tensor)[0]; + axis = phi::GetVectorFromTensor(axis_tensor)[0]; need_resize_out_dims = true; } axis = ComputeAxis(static_cast(axis), @@ -97,7 +98,7 @@ class ConcatGradMLUKernel : public framework::OpKernel { if (ctx.HasInput("AxisTensor")) { auto* axis_tensor = ctx.Input("AxisTensor"); - axis = GetDataFromTensor(axis_tensor)[0]; + axis = phi::GetVectorFromTensor(axis_tensor)[0]; } axis = ComputeAxis(static_cast(axis), diff --git a/paddle/fluid/operators/cudnn_lstm_op.cu.cc b/paddle/fluid/operators/cudnn_lstm_op.cu.cc index 2bdf1044d3cfa5..12aa17eef4041d 100644 --- a/paddle/fluid/operators/cudnn_lstm_op.cu.cc +++ b/paddle/fluid/operators/cudnn_lstm_op.cu.cc @@ -15,6 +15,7 @@ limitations under the License. */ #include "paddle/fluid/framework/op_registry.h" #include "paddle/fluid/operators/utils.h" #include "paddle/phi/core/generator.h" +#include "paddle/phi/core/tensor_utils.h" #include "paddle/phi/kernels/funcs/math_function.h" #ifdef PADDLE_WITH_CUDA #include "paddle/fluid/operators/cudnn_lstm_cache.h" @@ -242,7 +243,7 @@ class CudnnLSTMGPUKernel : public framework::OpKernel { std::vector SequenceLength; if (has_seq_length) { auto *sequence_length = ctx.Input("SequenceLength"); - SequenceLength = operators::GetDataFromTensor(sequence_length); + SequenceLength = phi::GetVectorFromTensor(sequence_length); } auto &dev_ctx = ctx.template device_context(); @@ -532,7 +533,7 @@ class CudnnLSTMGPUGradKernel : public framework::OpKernel { std::vector SequenceLength; if (has_seq_length) { auto *sequence_length = ctx.Input("SequenceLength"); - SequenceLength = operators::GetDataFromTensor(sequence_length); + SequenceLength = phi::GetVectorFromTensor(sequence_length); } int seq_length = input_dims[0]; diff --git a/paddle/fluid/operators/interpolate_v2_op_mlu.cc b/paddle/fluid/operators/interpolate_v2_op_mlu.cc index e6f34539b1c010..d80e863fa99de8 100644 --- a/paddle/fluid/operators/interpolate_v2_op_mlu.cc +++ b/paddle/fluid/operators/interpolate_v2_op_mlu.cc @@ -16,6 +16,7 @@ limitations under the License. */ #include "paddle/fluid/operators/interpolate_op.h" #include "paddle/fluid/operators/mlu/mlu_baseop.h" #include "paddle/fluid/operators/utils.h" +#include "paddle/phi/core/tensor_utils.h" namespace paddle { namespace operators { @@ -96,7 +97,7 @@ class InterpolateV2MLUKernel : public framework::OpKernel { auto scale = ctx.Attr>("scale"); if (scale_tensor != nullptr) { std::vector scale_data; - scale_data = GetDataFromTensor(scale_tensor); + scale_data = phi::GetVectorFromTensor(scale_tensor); if (scale_data.size() > 1 && scale_data.size() <= 2) { scale_h = scale_data[0]; @@ -147,7 +148,7 @@ class InterpolateV2MLUKernel : public framework::OpKernel { auto out_size = ctx.Input("OutSize"); if (out_size != nullptr) { std::vector out_size_data; - out_size_data = GetDataFromTensor(out_size); + out_size_data = phi::GetVectorFromTensor(out_size); if (out_size_data.size() <= 2) { out_h = out_size_data[0]; out_w = out_size_data[1]; @@ -398,7 +399,7 @@ class InterpolateV2GradMLUKernel : public framework::OpKernel { auto scale = ctx.Attr>("scale"); if (scale_tensor != nullptr) { std::vector scale_data; - scale_data = GetDataFromTensor(scale_tensor); + scale_data = phi::GetVectorFromTensor(scale_tensor); if (scale_data.size() > 1) { scale_h = scale_data[0]; scale_w = scale_data[1]; @@ -430,7 +431,7 @@ class InterpolateV2GradMLUKernel : public framework::OpKernel { auto out_size = ctx.Input("OutSize"); if (out_size != nullptr) { std::vector out_size_data; - out_size_data = GetDataFromTensor(out_size); + out_size_data = phi::GetVectorFromTensor(out_size); out_h = out_size_data[0]; out_w = out_size_data[1]; } diff --git a/paddle/fluid/operators/one_hot_v2_op_mlu.cc b/paddle/fluid/operators/one_hot_v2_op_mlu.cc index 0b2fbfe85d4035..2f78cdc3f58b52 100644 --- a/paddle/fluid/operators/one_hot_v2_op_mlu.cc +++ b/paddle/fluid/operators/one_hot_v2_op_mlu.cc @@ -16,6 +16,7 @@ limitations under the License. */ #include "paddle/fluid/framework/op_registry.h" #include "paddle/fluid/operators/mlu/mlu_baseop.h" #include "paddle/fluid/operators/utils.h" +#include "paddle/phi/core/tensor_utils.h" namespace paddle { namespace operators { @@ -31,8 +32,8 @@ class OneHotV2MLUKernel : public framework::OpKernel { int depth = ctx.Attr("depth"); if (ctx.HasInput("depth_tensor")) { std::vector depth_data; - depth_data = - GetDataFromTensor(ctx.Input("depth_tensor")); + depth_data = phi::GetVectorFromTensor( + ctx.Input("depth_tensor")); depth = depth_data[0]; auto out_dims = out->dims(); diff --git a/paddle/fluid/operators/reshape_op_mlu.cc b/paddle/fluid/operators/reshape_op_mlu.cc index 870f9fb7a1d9f3..190a1e409b710e 100644 --- a/paddle/fluid/operators/reshape_op_mlu.cc +++ b/paddle/fluid/operators/reshape_op_mlu.cc @@ -14,6 +14,7 @@ limitations under the License. */ #include "paddle/fluid/framework/op_registry.h" #include "paddle/fluid/operators/utils.h" +#include "paddle/phi/core/tensor_utils.h" namespace paddle { namespace operators { @@ -38,14 +39,15 @@ class Reshape2MLUKernel : public framework::OpKernel { "shape is [%d]", shape_tensor->dims().size())); - target_shape_vector.push_back(GetDataFromTensor(shape_tensor)[0]); + target_shape_vector.push_back( + phi::GetVectorFromTensor(shape_tensor)[0]); } } else { auto* shape_tensor = ctx.HasInput("Shape") ? ctx.Input("Shape") : nullptr; if (shape_tensor) { - target_shape_vector = GetDataFromTensor(shape_tensor); + target_shape_vector = phi::GetVectorFromTensor(shape_tensor); } else { target_shape_vector = ctx.Attr>("shape"); PADDLE_ENFORCE_GT( diff --git a/paddle/fluid/operators/reshape_op_npu.cc b/paddle/fluid/operators/reshape_op_npu.cc index d82fa9e366d9a3..4d4d4d1ee3cd68 100644 --- a/paddle/fluid/operators/reshape_op_npu.cc +++ b/paddle/fluid/operators/reshape_op_npu.cc @@ -18,6 +18,7 @@ limitations under the License. */ #include "paddle/fluid/framework/op_registry.h" #include "paddle/fluid/operators/utils.h" #include "paddle/fluid/platform/device/npu/npu_op_runner.h" +#include "paddle/phi/core/tensor_utils.h" namespace paddle { namespace operators { @@ -46,14 +47,15 @@ class Reshape2NPUKernel : public framework::OpKernel { "shape is [%d]", shape_tensor->dims().size())); - target_shape_vector.push_back(GetDataFromTensor(shape_tensor)[0]); + target_shape_vector.push_back( + phi::GetVectorFromTensor(shape_tensor)[0]); } } else { auto* shape_tensor = ctx.HasInput("Shape") ? ctx.Input("Shape") : nullptr; if (shape_tensor) { - target_shape_vector = GetDataFromTensor(shape_tensor); + target_shape_vector = phi::GetVectorFromTensor(shape_tensor); } else { target_shape_vector = ctx.Attr>("shape"); PADDLE_ENFORCE_GT( diff --git a/paddle/fluid/operators/rnn_op_mlu.cc b/paddle/fluid/operators/rnn_op_mlu.cc index 1773c526b46353..5675a6e7b5f7a4 100644 --- a/paddle/fluid/operators/rnn_op_mlu.cc +++ b/paddle/fluid/operators/rnn_op_mlu.cc @@ -15,6 +15,7 @@ limitations under the License. */ #include "paddle/fluid/platform/device/device_wrapper.h" #include "paddle/fluid/platform/device/xpu/xpu_header.h" #include "paddle/fluid/platform/device_context.h" +#include "paddle/phi/core/tensor_utils.h" #include "paddle/phi/kernels/funcs/math_function.h" namespace paddle { @@ -97,7 +98,7 @@ class RNNMLUKernel : public framework::OpKernel { std::vector seq_len_vec(batch_size, seq_len); if (has_seq_length) { // set seq_len if no padding, otherwise seq_len for // each element. - seq_len_vec = operators::GetDataFromTensor(sequence_length); + seq_len_vec = phi::GetVectorFromTensor(sequence_length); } cnnlDirectionMode_t direction = is_bidirec ? CNNL_RNN_BIDIRECTIONAL : CNNL_RNN_UNIDIRECTIONAL; @@ -480,7 +481,7 @@ class RNNMLUGradKernel : public framework::OpKernel { std::vector seq_len_vec(batch_size, seq_len); if (has_seq_length) { - seq_len_vec = operators::GetDataFromTensor(sequence_length); + seq_len_vec = phi::GetVectorFromTensor(sequence_length); } cnnlDirectionMode_t direction = is_bidirec ? CNNL_RNN_BIDIRECTIONAL : CNNL_RNN_UNIDIRECTIONAL; diff --git a/paddle/fluid/operators/slice_op_mlu.cc b/paddle/fluid/operators/slice_op_mlu.cc index 771fca6a5ef18d..107907ecc76426 100644 --- a/paddle/fluid/operators/slice_op_mlu.cc +++ b/paddle/fluid/operators/slice_op_mlu.cc @@ -15,6 +15,7 @@ limitations under the License. */ #include "paddle/fluid/framework/op_registry.h" #include "paddle/fluid/operators/mlu/mlu_baseop.h" #include "paddle/fluid/operators/utils.h" +#include "paddle/phi/core/tensor_utils.h" #include "paddle/phi/kernels/funcs/slice_utils.h" namespace paddle { @@ -38,15 +39,16 @@ class SliceMLUKernel : public framework::OpKernel { auto starts_tensor_list = ctx.MultiInput("StartsTensorList"); if (ctx.HasInput("StartsTensor")) { - starts = - GetDataFromTensor(ctx.Input("StartsTensor")); + starts = phi::GetVectorFromTensor( + ctx.Input("StartsTensor")); } else if (starts_tensor_list.size() > 0) { starts = GetDataFromTensorList(starts_tensor_list); } auto ends_tensor_list = ctx.MultiInput("EndsTensorList"); if (ctx.HasInput("EndsTensor")) { - ends = GetDataFromTensor(ctx.Input("EndsTensor")); + ends = phi::GetVectorFromTensor( + ctx.Input("EndsTensor")); } else if (ends_tensor_list.size() > 0) { ends = GetDataFromTensorList(ends_tensor_list); } @@ -141,15 +143,16 @@ class SliceGradMLUKernel : public framework::OpKernel { auto starts_tensor_list = ctx.MultiInput("StartsTensorList"); if (ctx.HasInput("StartsTensor")) { - starts = - GetDataFromTensor(ctx.Input("StartsTensor")); + starts = phi::GetVectorFromTensor( + ctx.Input("StartsTensor")); } else if (starts_tensor_list.size() > 0) { starts = GetDataFromTensorList(starts_tensor_list); } auto ends_tensor_list = ctx.MultiInput("EndsTensorList"); if (ctx.HasInput("EndsTensor")) { - ends = GetDataFromTensor(ctx.Input("EndsTensor")); + ends = phi::GetVectorFromTensor( + ctx.Input("EndsTensor")); } else if (ends_tensor_list.size() > 0) { ends = GetDataFromTensorList(ends_tensor_list); } diff --git a/paddle/fluid/operators/slice_op_npu.cc b/paddle/fluid/operators/slice_op_npu.cc index 59d6e2c2e42c15..88bf695d07f605 100644 --- a/paddle/fluid/operators/slice_op_npu.cc +++ b/paddle/fluid/operators/slice_op_npu.cc @@ -15,6 +15,7 @@ limitations under the License. */ #include "paddle/fluid/framework/op_registry.h" #include "paddle/fluid/operators/utils.h" #include "paddle/fluid/platform/device/npu/npu_op_runner.h" +#include "paddle/phi/core/tensor_utils.h" #include "paddle/phi/kernels/funcs/slice_utils.h" namespace paddle { @@ -77,15 +78,16 @@ class SliceNPUKernel : public framework::OpKernel { auto starts_tensor_list = ctx.MultiInput("StartsTensorList"); if (ctx.HasInput("StartsTensor")) { - starts = - GetDataFromTensor(ctx.Input("StartsTensor")); + starts = phi::GetVectorFromTensor( + ctx.Input("StartsTensor")); } else if (starts_tensor_list.size() > 0) { starts = GetDataFromTensorList(starts_tensor_list); } auto ends_tensor_list = ctx.MultiInput("EndsTensorList"); if (ctx.HasInput("EndsTensor")) { - ends = GetDataFromTensor(ctx.Input("EndsTensor")); + ends = phi::GetVectorFromTensor( + ctx.Input("EndsTensor")); } else if (ends_tensor_list.size() > 0) { ends = GetDataFromTensorList(ends_tensor_list); } @@ -172,15 +174,16 @@ class SliceGradNPUKernel : public framework::OpKernel { auto starts_tensor_list = ctx.MultiInput("StartsTensorList"); if (ctx.HasInput("StartsTensor")) { - starts = - GetDataFromTensor(ctx.Input("StartsTensor")); + starts = phi::GetVectorFromTensor( + ctx.Input("StartsTensor")); } else if (starts_tensor_list.size() > 0) { starts = GetDataFromTensorList(starts_tensor_list); } auto ends_tensor_list = ctx.MultiInput("EndsTensorList"); if (ctx.HasInput("EndsTensor")) { - ends = GetDataFromTensor(ctx.Input("EndsTensor")); + ends = phi::GetVectorFromTensor( + ctx.Input("EndsTensor")); } else if (ends_tensor_list.size() > 0) { ends = GetDataFromTensorList(ends_tensor_list); } diff --git a/paddle/fluid/operators/split_op_mlu.cc b/paddle/fluid/operators/split_op_mlu.cc index 77928c7efc8da0..af547afd032943 100644 --- a/paddle/fluid/operators/split_op_mlu.cc +++ b/paddle/fluid/operators/split_op_mlu.cc @@ -14,6 +14,7 @@ limitations under the License. */ #include "paddle/fluid/operators/mlu/mlu_baseop.h" #include "paddle/fluid/operators/split_op.h" +#include "paddle/phi/core/tensor_utils.h" namespace paddle { namespace operators { @@ -35,7 +36,7 @@ class SplitMLUKernel : public framework::OpKernel { bool need_resize_outs_dims = false; if (ctx.HasInput("AxisTensor")) { auto* axis_tensor = ctx.Input("AxisTensor"); - axis = GetDataFromTensor(axis_tensor)[0]; + axis = phi::GetVectorFromTensor(axis_tensor)[0]; need_resize_outs_dims = true; } auto sections_tensor_list = diff --git a/paddle/fluid/operators/strided_slice_op_mlu.cc b/paddle/fluid/operators/strided_slice_op_mlu.cc index 21eb47f187b007..ea4adbfe678c62 100644 --- a/paddle/fluid/operators/strided_slice_op_mlu.cc +++ b/paddle/fluid/operators/strided_slice_op_mlu.cc @@ -15,6 +15,7 @@ limitations under the License. */ #include "paddle/fluid/framework/op_registry.h" #include "paddle/fluid/operators/mlu/mlu_baseop.h" #include "paddle/fluid/operators/utils.h" +#include "paddle/phi/core/tensor_utils.h" #include "paddle/phi/kernels/funcs/strided_slice.h" namespace paddle { @@ -168,21 +169,21 @@ class StridedSliceMLUKernel : public framework::OpKernel { starts = GetDataFromTensorList(list_new_starts_tensor); } else if (ctx.HasInput("StartsTensor")) { auto* starts_tensor = ctx.Input("StartsTensor"); - starts = GetDataFromTensor(starts_tensor); + starts = phi::GetVectorFromTensor(starts_tensor); } if (list_new_ends_tensor.size() > 0) { ends = GetDataFromTensorList(list_new_ends_tensor); } else if (ctx.HasInput("EndsTensor")) { auto* ends_tensor = ctx.Input("EndsTensor"); - ends = GetDataFromTensor(ends_tensor); + ends = phi::GetVectorFromTensor(ends_tensor); } if (list_new_strides_tensor.size() > 0) { strides = GetDataFromTensorList(list_new_strides_tensor); } else if (ctx.HasInput("StridesTensor")) { auto* strides_tensor = ctx.Input("StridesTensor"); - strides = GetDataFromTensor(strides_tensor); + strides = phi::GetVectorFromTensor(strides_tensor); } // out dims calculation @@ -336,21 +337,21 @@ class StridedSliceGradMLUKernel : public framework::OpKernel { starts = GetDataFromTensorList(list_new_starts_tensor); } else if (ctx.HasInput("StartsTensor")) { auto* starts_tensor = ctx.Input("StartsTensor"); - starts = GetDataFromTensor(starts_tensor); + starts = phi::GetVectorFromTensor(starts_tensor); } if (list_new_ends_tensor.size() > 0) { ends = GetDataFromTensorList(list_new_ends_tensor); } else if (ctx.HasInput("EndsTensor")) { auto* ends_tensor = ctx.Input("EndsTensor"); - ends = GetDataFromTensor(ends_tensor); + ends = phi::GetVectorFromTensor(ends_tensor); } if (list_new_strides_tensor.size() > 0) { strides = GetDataFromTensorList(list_new_strides_tensor); } else if (ctx.HasInput("StridesTensor")) { auto* strides_tensor = ctx.Input("StridesTensor"); - strides = GetDataFromTensor(strides_tensor); + strides = phi::GetVectorFromTensor(strides_tensor); } std::vector out_dims_vector(input_dims.size(), -1); diff --git a/paddle/fluid/operators/strided_slice_op_npu.cc b/paddle/fluid/operators/strided_slice_op_npu.cc index 23bf6ea689602e..0a7861f255fa25 100644 --- a/paddle/fluid/operators/strided_slice_op_npu.cc +++ b/paddle/fluid/operators/strided_slice_op_npu.cc @@ -15,6 +15,7 @@ limitations under the License. */ #include "paddle/fluid/framework/op_registry.h" #include "paddle/fluid/operators/utils.h" #include "paddle/fluid/platform/device/npu/npu_op_runner.h" +#include "paddle/phi/core/tensor_utils.h" #include "paddle/phi/kernels/funcs/strided_slice.h" namespace paddle { @@ -99,21 +100,21 @@ class StridedSliceNPUKernel : public framework::OpKernel { starts = GetDataFromTensorList(list_new_starts_tensor); } else if (ctx.HasInput("StartsTensor")) { auto* starts_tensor = ctx.Input("StartsTensor"); - starts = GetDataFromTensor(starts_tensor); + starts = phi::GetVectorFromTensor(starts_tensor); } if (list_new_ends_tensor.size() > 0) { ends = GetDataFromTensorList(list_new_ends_tensor); } else if (ctx.HasInput("EndsTensor")) { auto* ends_tensor = ctx.Input("EndsTensor"); - ends = GetDataFromTensor(ends_tensor); + ends = phi::GetVectorFromTensor(ends_tensor); } if (list_new_strides_tensor.size() > 0) { strides = GetDataFromTensorList(list_new_strides_tensor); } else if (ctx.HasInput("StridesTensor")) { auto* strides_tensor = ctx.Input("StridesTensor"); - strides = GetDataFromTensor(strides_tensor); + strides = phi::GetVectorFromTensor(strides_tensor); } // out dims calculation @@ -325,21 +326,21 @@ class StridedSliceGradNPUKernel : public framework::OpKernel { starts = GetDataFromTensorList(list_new_starts_tensor); } else if (ctx.HasInput("StartsTensor")) { auto* starts_tensor = ctx.Input("StartsTensor"); - starts = GetDataFromTensor(starts_tensor); + starts = phi::GetVectorFromTensor(starts_tensor); } if (list_new_ends_tensor.size() > 0) { ends = GetDataFromTensorList(list_new_ends_tensor); } else if (ctx.HasInput("EndsTensor")) { auto* ends_tensor = ctx.Input("EndsTensor"); - ends = GetDataFromTensor(ends_tensor); + ends = phi::GetVectorFromTensor(ends_tensor); } if (list_new_strides_tensor.size() > 0) { strides = GetDataFromTensorList(list_new_strides_tensor); } else if (ctx.HasInput("StridesTensor")) { auto* strides_tensor = ctx.Input("StridesTensor"); - strides = GetDataFromTensor(strides_tensor); + strides = phi::GetVectorFromTensor(strides_tensor); } std::vector out_dims_vector(input_dims.size(), -1); diff --git a/paddle/fluid/operators/unsqueeze_op.h b/paddle/fluid/operators/unsqueeze_op.h index 223dcad524cffd..94d8ede8e134c2 100644 --- a/paddle/fluid/operators/unsqueeze_op.h +++ b/paddle/fluid/operators/unsqueeze_op.h @@ -19,6 +19,7 @@ limitations under the License. */ #include "paddle/fluid/framework/op_registry.h" #include "paddle/fluid/operators/utils.h" #include "paddle/fluid/platform/device_context.h" +#include "paddle/phi/core/tensor_utils.h" #include "paddle/phi/kernels/funcs/blas/blas.h" #include "paddle/phi/kernels/funcs/math_function.h" @@ -42,7 +43,7 @@ class UnsqueezeKernel : public framework::OpKernel { axes = GetDataFromTensorList(axes_tensor_list); } else if (context.HasInput("AxesTensor")) { auto *axes_tensor = context.Input("AxesTensor"); - axes = GetDataFromTensor(axes_tensor); + axes = phi::GetVectorFromTensor(axes_tensor); } need_resize_out_dims = true; } diff --git a/paddle/fluid/operators/utils.h b/paddle/fluid/operators/utils.h index f6d3132ef267d5..d50c8fe51c96bc 100644 --- a/paddle/fluid/operators/utils.h +++ b/paddle/fluid/operators/utils.h @@ -18,41 +18,11 @@ limitations under the License. */ #include #include +#include "paddle/phi/core/tensor_utils.h" + namespace paddle { namespace operators { -template -inline std::vector GetDataFromTensor(const phi::DenseTensor* x) { - std::vector vec_new_data; - if (framework::TransToProtoVarType(x->dtype()) == - framework::proto::VarType::INT32) { - auto* data = x->data(); - phi::DenseTensor cpu_attr_tensor; - if (!platform::is_cpu_place(x->place())) { - paddle::framework::TensorCopySync( - *x, platform::CPUPlace(), &cpu_attr_tensor); - data = cpu_attr_tensor.data(); - } - vec_new_data = std::vector(data, data + x->numel()); - } else if (framework::TransToProtoVarType(x->dtype()) == - framework::proto::VarType::INT64) { - auto* data = x->data(); - phi::DenseTensor cpu_attr_tensor; - if (!platform::is_cpu_place(x->place())) { - paddle::framework::TensorCopySync( - *x, platform::CPUPlace(), &cpu_attr_tensor); - data = cpu_attr_tensor.data(); - } - // NOTE: Converting int64 to int32 may cause data overflow. - vec_new_data = std::vector(data, data + x->numel()); - } else { - PADDLE_THROW(platform::errors::InvalidArgument( - "The dtype of Tensor must be int32 or int64, but received: %s", - framework::TransToProtoVarType(x->dtype()))); - } - return vec_new_data; -} - template inline std::vector GetDataFromTensorList( const std::vector& list_tensor) { @@ -100,7 +70,7 @@ inline framework::DDim GetShape(const framework::ExecutionContext& ctx) { // 1. shape is a Tensor if (ctx.HasInput("ShapeTensor")) { auto* shape_tensor = ctx.Input("ShapeTensor"); - auto vec_shape = GetDataFromTensor(shape_tensor); + auto vec_shape = phi::GetVectorFromTensor(shape_tensor); return phi::make_ddim(vec_shape); } From 1573f14630e75917976bf480c3fac96ea602dc51 Mon Sep 17 00:00:00 2001 From: Liyulingyue <852433440@qq.com> Date: Fri, 24 Feb 2023 23:20:01 +0800 Subject: [PATCH 63/75] rollback unsqueeze_op.h and utils.h --- paddle/fluid/operators/unsqueeze_op.h | 2 +- paddle/fluid/operators/utils.h | 32 +++++++++++++++++++++++++++ 2 files changed, 33 insertions(+), 1 deletion(-) diff --git a/paddle/fluid/operators/unsqueeze_op.h b/paddle/fluid/operators/unsqueeze_op.h index 94d8ede8e134c2..30d30a24a7a6c4 100644 --- a/paddle/fluid/operators/unsqueeze_op.h +++ b/paddle/fluid/operators/unsqueeze_op.h @@ -43,7 +43,7 @@ class UnsqueezeKernel : public framework::OpKernel { axes = GetDataFromTensorList(axes_tensor_list); } else if (context.HasInput("AxesTensor")) { auto *axes_tensor = context.Input("AxesTensor"); - axes = phi::GetVectorFromTensor(axes_tensor); + axes = GetDataFromTensor(axes_tensor); } need_resize_out_dims = true; } diff --git a/paddle/fluid/operators/utils.h b/paddle/fluid/operators/utils.h index d50c8fe51c96bc..425e605929e7e7 100644 --- a/paddle/fluid/operators/utils.h +++ b/paddle/fluid/operators/utils.h @@ -23,6 +23,38 @@ limitations under the License. */ namespace paddle { namespace operators { +template +inline std::vector GetDataFromTensor(const phi::DenseTensor* x) { + std::vector vec_new_data; + if (framework::TransToProtoVarType(x->dtype()) == + framework::proto::VarType::INT32) { + auto* data = x->data(); + phi::DenseTensor cpu_attr_tensor; + if (!platform::is_cpu_place(x->place())) { + paddle::framework::TensorCopySync( + *x, platform::CPUPlace(), &cpu_attr_tensor); + data = cpu_attr_tensor.data(); + } + vec_new_data = std::vector(data, data + x->numel()); + } else if (framework::TransToProtoVarType(x->dtype()) == + framework::proto::VarType::INT64) { + auto* data = x->data(); + phi::DenseTensor cpu_attr_tensor; + if (!platform::is_cpu_place(x->place())) { + paddle::framework::TensorCopySync( + *x, platform::CPUPlace(), &cpu_attr_tensor); + data = cpu_attr_tensor.data(); + } + // NOTE: Converting int64 to int32 may cause data overflow. + vec_new_data = std::vector(data, data + x->numel()); + } else { + PADDLE_THROW(platform::errors::InvalidArgument( + "The dtype of Tensor must be int32 or int64, but received: %s", + framework::TransToProtoVarType(x->dtype()))); + } + return vec_new_data; +} + template inline std::vector GetDataFromTensorList( const std::vector& list_tensor) { From 13ce91fc8ad64da8d909b8a7d6c78a8d6123a2f6 Mon Sep 17 00:00:00 2001 From: Liyulingyue <852433440@qq.com> Date: Sat, 25 Feb 2023 00:06:14 +0800 Subject: [PATCH 64/75] rollback everything; remain changes in slice_op, split_op, stride_op, reshape_op --- paddle/fluid/operators/concat_op_mlu.cc | 4 ++-- paddle/fluid/operators/cudnn_lstm_op.cu.cc | 4 ++-- paddle/fluid/operators/interpolate_v2_op_mlu.cc | 8 ++++---- paddle/fluid/operators/one_hot_v2_op_mlu.cc | 4 ++-- paddle/fluid/operators/rnn_op_mlu.cc | 4 ++-- 5 files changed, 12 insertions(+), 12 deletions(-) diff --git a/paddle/fluid/operators/concat_op_mlu.cc b/paddle/fluid/operators/concat_op_mlu.cc index 26bc2f190ce70e..0603bd5d6b0ebd 100644 --- a/paddle/fluid/operators/concat_op_mlu.cc +++ b/paddle/fluid/operators/concat_op_mlu.cc @@ -33,7 +33,7 @@ class ConcatMLUKernel : public framework::OpKernel { bool need_resize_out_dims = false; if (ctx.HasInput("AxisTensor")) { auto* axis_tensor = ctx.Input("AxisTensor"); - axis = phi::GetVectorFromTensor(axis_tensor)[0]; + axis = GetDataFromTensor(axis_tensor)[0]; need_resize_out_dims = true; } axis = ComputeAxis(static_cast(axis), @@ -98,7 +98,7 @@ class ConcatGradMLUKernel : public framework::OpKernel { if (ctx.HasInput("AxisTensor")) { auto* axis_tensor = ctx.Input("AxisTensor"); - axis = phi::GetVectorFromTensor(axis_tensor)[0]; + axis = GetDataFromTensor(axis_tensor)[0]; } axis = ComputeAxis(static_cast(axis), diff --git a/paddle/fluid/operators/cudnn_lstm_op.cu.cc b/paddle/fluid/operators/cudnn_lstm_op.cu.cc index 12aa17eef4041d..7a4d35a46ed0fd 100644 --- a/paddle/fluid/operators/cudnn_lstm_op.cu.cc +++ b/paddle/fluid/operators/cudnn_lstm_op.cu.cc @@ -243,7 +243,7 @@ class CudnnLSTMGPUKernel : public framework::OpKernel { std::vector SequenceLength; if (has_seq_length) { auto *sequence_length = ctx.Input("SequenceLength"); - SequenceLength = phi::GetVectorFromTensor(sequence_length); + SequenceLength = operators::GetDataFromTensor(sequence_length); } auto &dev_ctx = ctx.template device_context(); @@ -533,7 +533,7 @@ class CudnnLSTMGPUGradKernel : public framework::OpKernel { std::vector SequenceLength; if (has_seq_length) { auto *sequence_length = ctx.Input("SequenceLength"); - SequenceLength = phi::GetVectorFromTensor(sequence_length); + SequenceLength = operators::GetDataFromTensor(sequence_length); } int seq_length = input_dims[0]; diff --git a/paddle/fluid/operators/interpolate_v2_op_mlu.cc b/paddle/fluid/operators/interpolate_v2_op_mlu.cc index d80e863fa99de8..7384e050a7a6bd 100644 --- a/paddle/fluid/operators/interpolate_v2_op_mlu.cc +++ b/paddle/fluid/operators/interpolate_v2_op_mlu.cc @@ -97,7 +97,7 @@ class InterpolateV2MLUKernel : public framework::OpKernel { auto scale = ctx.Attr>("scale"); if (scale_tensor != nullptr) { std::vector scale_data; - scale_data = phi::GetVectorFromTensor(scale_tensor); + scale_data = GetDataFromTensor(scale_tensor); if (scale_data.size() > 1 && scale_data.size() <= 2) { scale_h = scale_data[0]; @@ -148,7 +148,7 @@ class InterpolateV2MLUKernel : public framework::OpKernel { auto out_size = ctx.Input("OutSize"); if (out_size != nullptr) { std::vector out_size_data; - out_size_data = phi::GetVectorFromTensor(out_size); + out_size_data = GetDataFromTensor(out_size); if (out_size_data.size() <= 2) { out_h = out_size_data[0]; out_w = out_size_data[1]; @@ -399,7 +399,7 @@ class InterpolateV2GradMLUKernel : public framework::OpKernel { auto scale = ctx.Attr>("scale"); if (scale_tensor != nullptr) { std::vector scale_data; - scale_data = phi::GetVectorFromTensor(scale_tensor); + scale_data = GetDataFromTensor(scale_tensor); if (scale_data.size() > 1) { scale_h = scale_data[0]; scale_w = scale_data[1]; @@ -431,7 +431,7 @@ class InterpolateV2GradMLUKernel : public framework::OpKernel { auto out_size = ctx.Input("OutSize"); if (out_size != nullptr) { std::vector out_size_data; - out_size_data = phi::GetVectorFromTensor(out_size); + out_size_data = GetDataFromTensor(out_size); out_h = out_size_data[0]; out_w = out_size_data[1]; } diff --git a/paddle/fluid/operators/one_hot_v2_op_mlu.cc b/paddle/fluid/operators/one_hot_v2_op_mlu.cc index 2f78cdc3f58b52..ad7ec0740052ac 100644 --- a/paddle/fluid/operators/one_hot_v2_op_mlu.cc +++ b/paddle/fluid/operators/one_hot_v2_op_mlu.cc @@ -32,8 +32,8 @@ class OneHotV2MLUKernel : public framework::OpKernel { int depth = ctx.Attr("depth"); if (ctx.HasInput("depth_tensor")) { std::vector depth_data; - depth_data = phi::GetVectorFromTensor( - ctx.Input("depth_tensor")); + depth_data = + GetDataFromTensor(ctx.Input("depth_tensor")); depth = depth_data[0]; auto out_dims = out->dims(); diff --git a/paddle/fluid/operators/rnn_op_mlu.cc b/paddle/fluid/operators/rnn_op_mlu.cc index 5675a6e7b5f7a4..c8e8954a369d26 100644 --- a/paddle/fluid/operators/rnn_op_mlu.cc +++ b/paddle/fluid/operators/rnn_op_mlu.cc @@ -98,7 +98,7 @@ class RNNMLUKernel : public framework::OpKernel { std::vector seq_len_vec(batch_size, seq_len); if (has_seq_length) { // set seq_len if no padding, otherwise seq_len for // each element. - seq_len_vec = phi::GetVectorFromTensor(sequence_length); + seq_len_vec = operators::GetDataFromTensor(sequence_length); } cnnlDirectionMode_t direction = is_bidirec ? CNNL_RNN_BIDIRECTIONAL : CNNL_RNN_UNIDIRECTIONAL; @@ -481,7 +481,7 @@ class RNNMLUGradKernel : public framework::OpKernel { std::vector seq_len_vec(batch_size, seq_len); if (has_seq_length) { - seq_len_vec = phi::GetVectorFromTensor(sequence_length); + seq_len_vec = operators::GetDataFromTensor(sequence_length); } cnnlDirectionMode_t direction = is_bidirec ? CNNL_RNN_BIDIRECTIONAL : CNNL_RNN_UNIDIRECTIONAL; From fa6b7d3f0b3670f3e358efa79398ebdf5120a60b Mon Sep 17 00:00:00 2001 From: Liyulingyue <852433440@qq.com> Date: Sat, 25 Feb 2023 05:36:30 +0800 Subject: [PATCH 65/75] utils.h: use GetDataFromTensor in it GetShape --- paddle/fluid/operators/utils.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/paddle/fluid/operators/utils.h b/paddle/fluid/operators/utils.h index 425e605929e7e7..7525f4dd21b1ac 100644 --- a/paddle/fluid/operators/utils.h +++ b/paddle/fluid/operators/utils.h @@ -102,7 +102,7 @@ inline framework::DDim GetShape(const framework::ExecutionContext& ctx) { // 1. shape is a Tensor if (ctx.HasInput("ShapeTensor")) { auto* shape_tensor = ctx.Input("ShapeTensor"); - auto vec_shape = phi::GetVectorFromTensor(shape_tensor); + auto vec_shape = GetDataFromTensor(shape_tensor); return phi::make_ddim(vec_shape); } From 3dbd23e69d34874303ff96892a87883f129eecb2 Mon Sep 17 00:00:00 2001 From: Liyulingyue <852433440@qq.com> Date: Sat, 25 Feb 2023 06:51:45 +0800 Subject: [PATCH 66/75] delete the import of tensor_utils.h in unsqueeze_op.h; remain using of tensor_utils in slice, split, stride, reshape --- paddle/fluid/operators/unsqueeze_op.h | 1 - 1 file changed, 1 deletion(-) diff --git a/paddle/fluid/operators/unsqueeze_op.h b/paddle/fluid/operators/unsqueeze_op.h index 30d30a24a7a6c4..223dcad524cffd 100644 --- a/paddle/fluid/operators/unsqueeze_op.h +++ b/paddle/fluid/operators/unsqueeze_op.h @@ -19,7 +19,6 @@ limitations under the License. */ #include "paddle/fluid/framework/op_registry.h" #include "paddle/fluid/operators/utils.h" #include "paddle/fluid/platform/device_context.h" -#include "paddle/phi/core/tensor_utils.h" #include "paddle/phi/kernels/funcs/blas/blas.h" #include "paddle/phi/kernels/funcs/math_function.h" From 706b9a1ef91d788802d2daf5c63ac84b0c23993d Mon Sep 17 00:00:00 2001 From: Liyulingyue <852433440@qq.com> Date: Sat, 25 Feb 2023 13:41:28 +0800 Subject: [PATCH 67/75] remove all include of phi in fluid; remain the change of split; add change of one_hot_v2_op_mlu.cc --- paddle/fluid/operators/concat_op_mlu.cc | 1 - paddle/fluid/operators/cudnn_lstm_op.cu.cc | 1 - paddle/fluid/operators/interpolate_v2_op_mlu.cc | 1 - paddle/fluid/operators/one_hot_v2_op_mlu.cc | 5 ++--- paddle/fluid/operators/reshape_op_mlu.cc | 6 ++---- paddle/fluid/operators/reshape_op_npu.cc | 6 ++---- paddle/fluid/operators/rnn_op_mlu.cc | 1 - paddle/fluid/operators/slice_op_mlu.cc | 15 ++++++--------- paddle/fluid/operators/slice_op_npu.cc | 15 ++++++--------- paddle/fluid/operators/strided_slice_op_mlu.cc | 11 +++++------ paddle/fluid/operators/strided_slice_op_npu.cc | 13 ++++++------- paddle/fluid/operators/utils.h | 2 -- 12 files changed, 29 insertions(+), 48 deletions(-) diff --git a/paddle/fluid/operators/concat_op_mlu.cc b/paddle/fluid/operators/concat_op_mlu.cc index 0603bd5d6b0ebd..ebfd2895e783be 100644 --- a/paddle/fluid/operators/concat_op_mlu.cc +++ b/paddle/fluid/operators/concat_op_mlu.cc @@ -14,7 +14,6 @@ limitations under the License. */ #include "paddle/fluid/operators/concat_op.h" #include "paddle/fluid/operators/mlu/mlu_baseop.h" -#include "paddle/phi/core/tensor_utils.h" namespace paddle { namespace operators { diff --git a/paddle/fluid/operators/cudnn_lstm_op.cu.cc b/paddle/fluid/operators/cudnn_lstm_op.cu.cc index 7a4d35a46ed0fd..2bdf1044d3cfa5 100644 --- a/paddle/fluid/operators/cudnn_lstm_op.cu.cc +++ b/paddle/fluid/operators/cudnn_lstm_op.cu.cc @@ -15,7 +15,6 @@ limitations under the License. */ #include "paddle/fluid/framework/op_registry.h" #include "paddle/fluid/operators/utils.h" #include "paddle/phi/core/generator.h" -#include "paddle/phi/core/tensor_utils.h" #include "paddle/phi/kernels/funcs/math_function.h" #ifdef PADDLE_WITH_CUDA #include "paddle/fluid/operators/cudnn_lstm_cache.h" diff --git a/paddle/fluid/operators/interpolate_v2_op_mlu.cc b/paddle/fluid/operators/interpolate_v2_op_mlu.cc index 7384e050a7a6bd..e6f34539b1c010 100644 --- a/paddle/fluid/operators/interpolate_v2_op_mlu.cc +++ b/paddle/fluid/operators/interpolate_v2_op_mlu.cc @@ -16,7 +16,6 @@ limitations under the License. */ #include "paddle/fluid/operators/interpolate_op.h" #include "paddle/fluid/operators/mlu/mlu_baseop.h" #include "paddle/fluid/operators/utils.h" -#include "paddle/phi/core/tensor_utils.h" namespace paddle { namespace operators { diff --git a/paddle/fluid/operators/one_hot_v2_op_mlu.cc b/paddle/fluid/operators/one_hot_v2_op_mlu.cc index ad7ec0740052ac..92c76e14e1a848 100644 --- a/paddle/fluid/operators/one_hot_v2_op_mlu.cc +++ b/paddle/fluid/operators/one_hot_v2_op_mlu.cc @@ -15,7 +15,6 @@ limitations under the License. */ #include "paddle/fluid/framework/op_registry.h" #include "paddle/fluid/operators/mlu/mlu_baseop.h" -#include "paddle/fluid/operators/utils.h" #include "paddle/phi/core/tensor_utils.h" namespace paddle { @@ -32,8 +31,8 @@ class OneHotV2MLUKernel : public framework::OpKernel { int depth = ctx.Attr("depth"); if (ctx.HasInput("depth_tensor")) { std::vector depth_data; - depth_data = - GetDataFromTensor(ctx.Input("depth_tensor")); + depth_data = phi::GetVectorFromTensor( + ctx.Input("depth_tensor")); depth = depth_data[0]; auto out_dims = out->dims(); diff --git a/paddle/fluid/operators/reshape_op_mlu.cc b/paddle/fluid/operators/reshape_op_mlu.cc index 190a1e409b710e..870f9fb7a1d9f3 100644 --- a/paddle/fluid/operators/reshape_op_mlu.cc +++ b/paddle/fluid/operators/reshape_op_mlu.cc @@ -14,7 +14,6 @@ limitations under the License. */ #include "paddle/fluid/framework/op_registry.h" #include "paddle/fluid/operators/utils.h" -#include "paddle/phi/core/tensor_utils.h" namespace paddle { namespace operators { @@ -39,15 +38,14 @@ class Reshape2MLUKernel : public framework::OpKernel { "shape is [%d]", shape_tensor->dims().size())); - target_shape_vector.push_back( - phi::GetVectorFromTensor(shape_tensor)[0]); + target_shape_vector.push_back(GetDataFromTensor(shape_tensor)[0]); } } else { auto* shape_tensor = ctx.HasInput("Shape") ? ctx.Input("Shape") : nullptr; if (shape_tensor) { - target_shape_vector = phi::GetVectorFromTensor(shape_tensor); + target_shape_vector = GetDataFromTensor(shape_tensor); } else { target_shape_vector = ctx.Attr>("shape"); PADDLE_ENFORCE_GT( diff --git a/paddle/fluid/operators/reshape_op_npu.cc b/paddle/fluid/operators/reshape_op_npu.cc index 4d4d4d1ee3cd68..d82fa9e366d9a3 100644 --- a/paddle/fluid/operators/reshape_op_npu.cc +++ b/paddle/fluid/operators/reshape_op_npu.cc @@ -18,7 +18,6 @@ limitations under the License. */ #include "paddle/fluid/framework/op_registry.h" #include "paddle/fluid/operators/utils.h" #include "paddle/fluid/platform/device/npu/npu_op_runner.h" -#include "paddle/phi/core/tensor_utils.h" namespace paddle { namespace operators { @@ -47,15 +46,14 @@ class Reshape2NPUKernel : public framework::OpKernel { "shape is [%d]", shape_tensor->dims().size())); - target_shape_vector.push_back( - phi::GetVectorFromTensor(shape_tensor)[0]); + target_shape_vector.push_back(GetDataFromTensor(shape_tensor)[0]); } } else { auto* shape_tensor = ctx.HasInput("Shape") ? ctx.Input("Shape") : nullptr; if (shape_tensor) { - target_shape_vector = phi::GetVectorFromTensor(shape_tensor); + target_shape_vector = GetDataFromTensor(shape_tensor); } else { target_shape_vector = ctx.Attr>("shape"); PADDLE_ENFORCE_GT( diff --git a/paddle/fluid/operators/rnn_op_mlu.cc b/paddle/fluid/operators/rnn_op_mlu.cc index c8e8954a369d26..1773c526b46353 100644 --- a/paddle/fluid/operators/rnn_op_mlu.cc +++ b/paddle/fluid/operators/rnn_op_mlu.cc @@ -15,7 +15,6 @@ limitations under the License. */ #include "paddle/fluid/platform/device/device_wrapper.h" #include "paddle/fluid/platform/device/xpu/xpu_header.h" #include "paddle/fluid/platform/device_context.h" -#include "paddle/phi/core/tensor_utils.h" #include "paddle/phi/kernels/funcs/math_function.h" namespace paddle { diff --git a/paddle/fluid/operators/slice_op_mlu.cc b/paddle/fluid/operators/slice_op_mlu.cc index 107907ecc76426..771fca6a5ef18d 100644 --- a/paddle/fluid/operators/slice_op_mlu.cc +++ b/paddle/fluid/operators/slice_op_mlu.cc @@ -15,7 +15,6 @@ limitations under the License. */ #include "paddle/fluid/framework/op_registry.h" #include "paddle/fluid/operators/mlu/mlu_baseop.h" #include "paddle/fluid/operators/utils.h" -#include "paddle/phi/core/tensor_utils.h" #include "paddle/phi/kernels/funcs/slice_utils.h" namespace paddle { @@ -39,16 +38,15 @@ class SliceMLUKernel : public framework::OpKernel { auto starts_tensor_list = ctx.MultiInput("StartsTensorList"); if (ctx.HasInput("StartsTensor")) { - starts = phi::GetVectorFromTensor( - ctx.Input("StartsTensor")); + starts = + GetDataFromTensor(ctx.Input("StartsTensor")); } else if (starts_tensor_list.size() > 0) { starts = GetDataFromTensorList(starts_tensor_list); } auto ends_tensor_list = ctx.MultiInput("EndsTensorList"); if (ctx.HasInput("EndsTensor")) { - ends = phi::GetVectorFromTensor( - ctx.Input("EndsTensor")); + ends = GetDataFromTensor(ctx.Input("EndsTensor")); } else if (ends_tensor_list.size() > 0) { ends = GetDataFromTensorList(ends_tensor_list); } @@ -143,16 +141,15 @@ class SliceGradMLUKernel : public framework::OpKernel { auto starts_tensor_list = ctx.MultiInput("StartsTensorList"); if (ctx.HasInput("StartsTensor")) { - starts = phi::GetVectorFromTensor( - ctx.Input("StartsTensor")); + starts = + GetDataFromTensor(ctx.Input("StartsTensor")); } else if (starts_tensor_list.size() > 0) { starts = GetDataFromTensorList(starts_tensor_list); } auto ends_tensor_list = ctx.MultiInput("EndsTensorList"); if (ctx.HasInput("EndsTensor")) { - ends = phi::GetVectorFromTensor( - ctx.Input("EndsTensor")); + ends = GetDataFromTensor(ctx.Input("EndsTensor")); } else if (ends_tensor_list.size() > 0) { ends = GetDataFromTensorList(ends_tensor_list); } diff --git a/paddle/fluid/operators/slice_op_npu.cc b/paddle/fluid/operators/slice_op_npu.cc index 88bf695d07f605..59d6e2c2e42c15 100644 --- a/paddle/fluid/operators/slice_op_npu.cc +++ b/paddle/fluid/operators/slice_op_npu.cc @@ -15,7 +15,6 @@ limitations under the License. */ #include "paddle/fluid/framework/op_registry.h" #include "paddle/fluid/operators/utils.h" #include "paddle/fluid/platform/device/npu/npu_op_runner.h" -#include "paddle/phi/core/tensor_utils.h" #include "paddle/phi/kernels/funcs/slice_utils.h" namespace paddle { @@ -78,16 +77,15 @@ class SliceNPUKernel : public framework::OpKernel { auto starts_tensor_list = ctx.MultiInput("StartsTensorList"); if (ctx.HasInput("StartsTensor")) { - starts = phi::GetVectorFromTensor( - ctx.Input("StartsTensor")); + starts = + GetDataFromTensor(ctx.Input("StartsTensor")); } else if (starts_tensor_list.size() > 0) { starts = GetDataFromTensorList(starts_tensor_list); } auto ends_tensor_list = ctx.MultiInput("EndsTensorList"); if (ctx.HasInput("EndsTensor")) { - ends = phi::GetVectorFromTensor( - ctx.Input("EndsTensor")); + ends = GetDataFromTensor(ctx.Input("EndsTensor")); } else if (ends_tensor_list.size() > 0) { ends = GetDataFromTensorList(ends_tensor_list); } @@ -174,16 +172,15 @@ class SliceGradNPUKernel : public framework::OpKernel { auto starts_tensor_list = ctx.MultiInput("StartsTensorList"); if (ctx.HasInput("StartsTensor")) { - starts = phi::GetVectorFromTensor( - ctx.Input("StartsTensor")); + starts = + GetDataFromTensor(ctx.Input("StartsTensor")); } else if (starts_tensor_list.size() > 0) { starts = GetDataFromTensorList(starts_tensor_list); } auto ends_tensor_list = ctx.MultiInput("EndsTensorList"); if (ctx.HasInput("EndsTensor")) { - ends = phi::GetVectorFromTensor( - ctx.Input("EndsTensor")); + ends = GetDataFromTensor(ctx.Input("EndsTensor")); } else if (ends_tensor_list.size() > 0) { ends = GetDataFromTensorList(ends_tensor_list); } diff --git a/paddle/fluid/operators/strided_slice_op_mlu.cc b/paddle/fluid/operators/strided_slice_op_mlu.cc index ea4adbfe678c62..430270e033dae2 100644 --- a/paddle/fluid/operators/strided_slice_op_mlu.cc +++ b/paddle/fluid/operators/strided_slice_op_mlu.cc @@ -15,7 +15,6 @@ limitations under the License. */ #include "paddle/fluid/framework/op_registry.h" #include "paddle/fluid/operators/mlu/mlu_baseop.h" #include "paddle/fluid/operators/utils.h" -#include "paddle/phi/core/tensor_utils.h" #include "paddle/phi/kernels/funcs/strided_slice.h" namespace paddle { @@ -169,21 +168,21 @@ class StridedSliceMLUKernel : public framework::OpKernel { starts = GetDataFromTensorList(list_new_starts_tensor); } else if (ctx.HasInput("StartsTensor")) { auto* starts_tensor = ctx.Input("StartsTensor"); - starts = phi::GetVectorFromTensor(starts_tensor); + starts = GetDataFromTensor(starts_tensor); } if (list_new_ends_tensor.size() > 0) { ends = GetDataFromTensorList(list_new_ends_tensor); } else if (ctx.HasInput("EndsTensor")) { auto* ends_tensor = ctx.Input("EndsTensor"); - ends = phi::GetVectorFromTensor(ends_tensor); + ends = GetDataFromTensor(ends_tensor); } if (list_new_strides_tensor.size() > 0) { strides = GetDataFromTensorList(list_new_strides_tensor); } else if (ctx.HasInput("StridesTensor")) { auto* strides_tensor = ctx.Input("StridesTensor"); - strides = phi::GetVectorFromTensor(strides_tensor); + strides = GetDataFromTensor(strides_tensor); } // out dims calculation @@ -337,14 +336,14 @@ class StridedSliceGradMLUKernel : public framework::OpKernel { starts = GetDataFromTensorList(list_new_starts_tensor); } else if (ctx.HasInput("StartsTensor")) { auto* starts_tensor = ctx.Input("StartsTensor"); - starts = phi::GetVectorFromTensor(starts_tensor); + starts = GetDataFromTensor(starts_tensor); } if (list_new_ends_tensor.size() > 0) { ends = GetDataFromTensorList(list_new_ends_tensor); } else if (ctx.HasInput("EndsTensor")) { auto* ends_tensor = ctx.Input("EndsTensor"); - ends = phi::GetVectorFromTensor(ends_tensor); + ends = GetDataFromTensor(ends_tensor); } if (list_new_strides_tensor.size() > 0) { diff --git a/paddle/fluid/operators/strided_slice_op_npu.cc b/paddle/fluid/operators/strided_slice_op_npu.cc index 0a7861f255fa25..23bf6ea689602e 100644 --- a/paddle/fluid/operators/strided_slice_op_npu.cc +++ b/paddle/fluid/operators/strided_slice_op_npu.cc @@ -15,7 +15,6 @@ limitations under the License. */ #include "paddle/fluid/framework/op_registry.h" #include "paddle/fluid/operators/utils.h" #include "paddle/fluid/platform/device/npu/npu_op_runner.h" -#include "paddle/phi/core/tensor_utils.h" #include "paddle/phi/kernels/funcs/strided_slice.h" namespace paddle { @@ -100,21 +99,21 @@ class StridedSliceNPUKernel : public framework::OpKernel { starts = GetDataFromTensorList(list_new_starts_tensor); } else if (ctx.HasInput("StartsTensor")) { auto* starts_tensor = ctx.Input("StartsTensor"); - starts = phi::GetVectorFromTensor(starts_tensor); + starts = GetDataFromTensor(starts_tensor); } if (list_new_ends_tensor.size() > 0) { ends = GetDataFromTensorList(list_new_ends_tensor); } else if (ctx.HasInput("EndsTensor")) { auto* ends_tensor = ctx.Input("EndsTensor"); - ends = phi::GetVectorFromTensor(ends_tensor); + ends = GetDataFromTensor(ends_tensor); } if (list_new_strides_tensor.size() > 0) { strides = GetDataFromTensorList(list_new_strides_tensor); } else if (ctx.HasInput("StridesTensor")) { auto* strides_tensor = ctx.Input("StridesTensor"); - strides = phi::GetVectorFromTensor(strides_tensor); + strides = GetDataFromTensor(strides_tensor); } // out dims calculation @@ -326,21 +325,21 @@ class StridedSliceGradNPUKernel : public framework::OpKernel { starts = GetDataFromTensorList(list_new_starts_tensor); } else if (ctx.HasInput("StartsTensor")) { auto* starts_tensor = ctx.Input("StartsTensor"); - starts = phi::GetVectorFromTensor(starts_tensor); + starts = GetDataFromTensor(starts_tensor); } if (list_new_ends_tensor.size() > 0) { ends = GetDataFromTensorList(list_new_ends_tensor); } else if (ctx.HasInput("EndsTensor")) { auto* ends_tensor = ctx.Input("EndsTensor"); - ends = phi::GetVectorFromTensor(ends_tensor); + ends = GetDataFromTensor(ends_tensor); } if (list_new_strides_tensor.size() > 0) { strides = GetDataFromTensorList(list_new_strides_tensor); } else if (ctx.HasInput("StridesTensor")) { auto* strides_tensor = ctx.Input("StridesTensor"); - strides = phi::GetVectorFromTensor(strides_tensor); + strides = GetDataFromTensor(strides_tensor); } std::vector out_dims_vector(input_dims.size(), -1); diff --git a/paddle/fluid/operators/utils.h b/paddle/fluid/operators/utils.h index 7525f4dd21b1ac..f6d3132ef267d5 100644 --- a/paddle/fluid/operators/utils.h +++ b/paddle/fluid/operators/utils.h @@ -18,8 +18,6 @@ limitations under the License. */ #include #include -#include "paddle/phi/core/tensor_utils.h" - namespace paddle { namespace operators { From ac02dbbd9db9ec2c93fcf2c7dec530ad9d1ecebd Mon Sep 17 00:00:00 2001 From: Liyulingyue <852433440@qq.com> Date: Sat, 25 Feb 2023 14:11:58 +0800 Subject: [PATCH 68/75] remove phi in strided_slice_op_mlu.cc(which should done in previous change) --- paddle/fluid/operators/strided_slice_op_mlu.cc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/paddle/fluid/operators/strided_slice_op_mlu.cc b/paddle/fluid/operators/strided_slice_op_mlu.cc index 430270e033dae2..21eb47f187b007 100644 --- a/paddle/fluid/operators/strided_slice_op_mlu.cc +++ b/paddle/fluid/operators/strided_slice_op_mlu.cc @@ -350,7 +350,7 @@ class StridedSliceGradMLUKernel : public framework::OpKernel { strides = GetDataFromTensorList(list_new_strides_tensor); } else if (ctx.HasInput("StridesTensor")) { auto* strides_tensor = ctx.Input("StridesTensor"); - strides = phi::GetVectorFromTensor(strides_tensor); + strides = GetDataFromTensor(strides_tensor); } std::vector out_dims_vector(input_dims.size(), -1); From 01704fbfce45a12136c5d5a1707c24ef1bbb8f87 Mon Sep 17 00:00:00 2001 From: Liyulingyue <852433440@qq.com> Date: Sat, 25 Feb 2023 16:07:01 +0800 Subject: [PATCH 69/75] add phi in concat_op_mlu.cc, cudnn_lstm_op.cu.cc, reshape_op_mlu.cc, interpolate_v2_op_mlu.cc --- paddle/fluid/operators/concat_op_mlu.cc | 5 +++-- paddle/fluid/operators/cudnn_lstm_op.cu.cc | 6 +++--- paddle/fluid/operators/interpolate_v2_op_mlu.cc | 10 +++++----- paddle/fluid/operators/reshape_op_mlu.cc | 7 ++++--- 4 files changed, 15 insertions(+), 13 deletions(-) diff --git a/paddle/fluid/operators/concat_op_mlu.cc b/paddle/fluid/operators/concat_op_mlu.cc index ebfd2895e783be..26bc2f190ce70e 100644 --- a/paddle/fluid/operators/concat_op_mlu.cc +++ b/paddle/fluid/operators/concat_op_mlu.cc @@ -14,6 +14,7 @@ limitations under the License. */ #include "paddle/fluid/operators/concat_op.h" #include "paddle/fluid/operators/mlu/mlu_baseop.h" +#include "paddle/phi/core/tensor_utils.h" namespace paddle { namespace operators { @@ -32,7 +33,7 @@ class ConcatMLUKernel : public framework::OpKernel { bool need_resize_out_dims = false; if (ctx.HasInput("AxisTensor")) { auto* axis_tensor = ctx.Input("AxisTensor"); - axis = GetDataFromTensor(axis_tensor)[0]; + axis = phi::GetVectorFromTensor(axis_tensor)[0]; need_resize_out_dims = true; } axis = ComputeAxis(static_cast(axis), @@ -97,7 +98,7 @@ class ConcatGradMLUKernel : public framework::OpKernel { if (ctx.HasInput("AxisTensor")) { auto* axis_tensor = ctx.Input("AxisTensor"); - axis = GetDataFromTensor(axis_tensor)[0]; + axis = phi::GetVectorFromTensor(axis_tensor)[0]; } axis = ComputeAxis(static_cast(axis), diff --git a/paddle/fluid/operators/cudnn_lstm_op.cu.cc b/paddle/fluid/operators/cudnn_lstm_op.cu.cc index 2bdf1044d3cfa5..5f22f1853732a3 100644 --- a/paddle/fluid/operators/cudnn_lstm_op.cu.cc +++ b/paddle/fluid/operators/cudnn_lstm_op.cu.cc @@ -13,8 +13,8 @@ See the License for the specific language governing permissions and limitations under the License. */ #include "paddle/fluid/framework/op_registry.h" -#include "paddle/fluid/operators/utils.h" #include "paddle/phi/core/generator.h" +#include "paddle/phi/core/tensor_utils.h" #include "paddle/phi/kernels/funcs/math_function.h" #ifdef PADDLE_WITH_CUDA #include "paddle/fluid/operators/cudnn_lstm_cache.h" @@ -242,7 +242,7 @@ class CudnnLSTMGPUKernel : public framework::OpKernel { std::vector SequenceLength; if (has_seq_length) { auto *sequence_length = ctx.Input("SequenceLength"); - SequenceLength = operators::GetDataFromTensor(sequence_length); + SequenceLength = phi::GetVectorFromTensor(sequence_length); } auto &dev_ctx = ctx.template device_context(); @@ -532,7 +532,7 @@ class CudnnLSTMGPUGradKernel : public framework::OpKernel { std::vector SequenceLength; if (has_seq_length) { auto *sequence_length = ctx.Input("SequenceLength"); - SequenceLength = operators::GetDataFromTensor(sequence_length); + SequenceLength = phi::GetVectorFromTensor(sequence_length); } int seq_length = input_dims[0]; diff --git a/paddle/fluid/operators/interpolate_v2_op_mlu.cc b/paddle/fluid/operators/interpolate_v2_op_mlu.cc index e6f34539b1c010..7072f050681f10 100644 --- a/paddle/fluid/operators/interpolate_v2_op_mlu.cc +++ b/paddle/fluid/operators/interpolate_v2_op_mlu.cc @@ -15,7 +15,7 @@ limitations under the License. */ #include "paddle/fluid/framework/op_registry.h" #include "paddle/fluid/operators/interpolate_op.h" #include "paddle/fluid/operators/mlu/mlu_baseop.h" -#include "paddle/fluid/operators/utils.h" +#include "paddle/phi/core/tensor_utils.h" namespace paddle { namespace operators { @@ -96,7 +96,7 @@ class InterpolateV2MLUKernel : public framework::OpKernel { auto scale = ctx.Attr>("scale"); if (scale_tensor != nullptr) { std::vector scale_data; - scale_data = GetDataFromTensor(scale_tensor); + scale_data = phi::GetVectorFromTensor(scale_tensor); if (scale_data.size() > 1 && scale_data.size() <= 2) { scale_h = scale_data[0]; @@ -147,7 +147,7 @@ class InterpolateV2MLUKernel : public framework::OpKernel { auto out_size = ctx.Input("OutSize"); if (out_size != nullptr) { std::vector out_size_data; - out_size_data = GetDataFromTensor(out_size); + out_size_data = phi::GetVectorFromTensor(out_size); if (out_size_data.size() <= 2) { out_h = out_size_data[0]; out_w = out_size_data[1]; @@ -398,7 +398,7 @@ class InterpolateV2GradMLUKernel : public framework::OpKernel { auto scale = ctx.Attr>("scale"); if (scale_tensor != nullptr) { std::vector scale_data; - scale_data = GetDataFromTensor(scale_tensor); + scale_data = phi::GetVectorFromTensor(scale_tensor); if (scale_data.size() > 1) { scale_h = scale_data[0]; scale_w = scale_data[1]; @@ -430,7 +430,7 @@ class InterpolateV2GradMLUKernel : public framework::OpKernel { auto out_size = ctx.Input("OutSize"); if (out_size != nullptr) { std::vector out_size_data; - out_size_data = GetDataFromTensor(out_size); + out_size_data = phi::GetVectorFromTensor(out_size); out_h = out_size_data[0]; out_w = out_size_data[1]; } diff --git a/paddle/fluid/operators/reshape_op_mlu.cc b/paddle/fluid/operators/reshape_op_mlu.cc index 870f9fb7a1d9f3..acba35f1bce2e0 100644 --- a/paddle/fluid/operators/reshape_op_mlu.cc +++ b/paddle/fluid/operators/reshape_op_mlu.cc @@ -13,7 +13,7 @@ See the License for the specific language governing permissions and limitations under the License. */ #include "paddle/fluid/framework/op_registry.h" -#include "paddle/fluid/operators/utils.h" +#include "paddle/phi/core/tensor_utils.h" namespace paddle { namespace operators { @@ -38,14 +38,15 @@ class Reshape2MLUKernel : public framework::OpKernel { "shape is [%d]", shape_tensor->dims().size())); - target_shape_vector.push_back(GetDataFromTensor(shape_tensor)[0]); + target_shape_vector.push_back( + phi::GetVectorFromTensor(shape_tensor)[0]); } } else { auto* shape_tensor = ctx.HasInput("Shape") ? ctx.Input("Shape") : nullptr; if (shape_tensor) { - target_shape_vector = GetDataFromTensor(shape_tensor); + target_shape_vector = phi::GetVectorFromTensor(shape_tensor); } else { target_shape_vector = ctx.Attr>("shape"); PADDLE_ENFORCE_GT( From 3087abc7488fec41edb36e3dd810ac89937c8a39 Mon Sep 17 00:00:00 2001 From: Liyulingyue <852433440@qq.com> Date: Sat, 25 Feb 2023 17:30:29 +0800 Subject: [PATCH 70/75] add phi in slice_op_npu.cc --- paddle/fluid/operators/slice_op_npu.cc | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/paddle/fluid/operators/slice_op_npu.cc b/paddle/fluid/operators/slice_op_npu.cc index 59d6e2c2e42c15..88bf695d07f605 100644 --- a/paddle/fluid/operators/slice_op_npu.cc +++ b/paddle/fluid/operators/slice_op_npu.cc @@ -15,6 +15,7 @@ limitations under the License. */ #include "paddle/fluid/framework/op_registry.h" #include "paddle/fluid/operators/utils.h" #include "paddle/fluid/platform/device/npu/npu_op_runner.h" +#include "paddle/phi/core/tensor_utils.h" #include "paddle/phi/kernels/funcs/slice_utils.h" namespace paddle { @@ -77,15 +78,16 @@ class SliceNPUKernel : public framework::OpKernel { auto starts_tensor_list = ctx.MultiInput("StartsTensorList"); if (ctx.HasInput("StartsTensor")) { - starts = - GetDataFromTensor(ctx.Input("StartsTensor")); + starts = phi::GetVectorFromTensor( + ctx.Input("StartsTensor")); } else if (starts_tensor_list.size() > 0) { starts = GetDataFromTensorList(starts_tensor_list); } auto ends_tensor_list = ctx.MultiInput("EndsTensorList"); if (ctx.HasInput("EndsTensor")) { - ends = GetDataFromTensor(ctx.Input("EndsTensor")); + ends = phi::GetVectorFromTensor( + ctx.Input("EndsTensor")); } else if (ends_tensor_list.size() > 0) { ends = GetDataFromTensorList(ends_tensor_list); } @@ -172,15 +174,16 @@ class SliceGradNPUKernel : public framework::OpKernel { auto starts_tensor_list = ctx.MultiInput("StartsTensorList"); if (ctx.HasInput("StartsTensor")) { - starts = - GetDataFromTensor(ctx.Input("StartsTensor")); + starts = phi::GetVectorFromTensor( + ctx.Input("StartsTensor")); } else if (starts_tensor_list.size() > 0) { starts = GetDataFromTensorList(starts_tensor_list); } auto ends_tensor_list = ctx.MultiInput("EndsTensorList"); if (ctx.HasInput("EndsTensor")) { - ends = GetDataFromTensor(ctx.Input("EndsTensor")); + ends = phi::GetVectorFromTensor( + ctx.Input("EndsTensor")); } else if (ends_tensor_list.size() > 0) { ends = GetDataFromTensorList(ends_tensor_list); } From 834ddcf6efa3206de16c4a8e268884fac58acf98 Mon Sep 17 00:00:00 2001 From: Liyulingyue <852433440@qq.com> Date: Sat, 25 Feb 2023 21:39:44 +0800 Subject: [PATCH 71/75] add phi in rnn_op_mlu.cc, slice_op_mlu.cc, strided_slice_op_mlu.cc, unsqueeze_op.h --- paddle/fluid/operators/rnn_op_mlu.cc | 6 +++--- paddle/fluid/operators/slice_op_mlu.cc | 15 +++++++++------ paddle/fluid/operators/strided_slice_op_mlu.cc | 13 +++++++------ paddle/fluid/operators/unsqueeze_op.h | 3 ++- 4 files changed, 21 insertions(+), 16 deletions(-) diff --git a/paddle/fluid/operators/rnn_op_mlu.cc b/paddle/fluid/operators/rnn_op_mlu.cc index 1773c526b46353..0f4c81d25d8cc8 100644 --- a/paddle/fluid/operators/rnn_op_mlu.cc +++ b/paddle/fluid/operators/rnn_op_mlu.cc @@ -11,10 +11,10 @@ limitations under the License. */ #include "paddle/fluid/framework/op_registry.h" #include "paddle/fluid/operators/mlu/mlu_baseop.h" -#include "paddle/fluid/operators/utils.h" #include "paddle/fluid/platform/device/device_wrapper.h" #include "paddle/fluid/platform/device/xpu/xpu_header.h" #include "paddle/fluid/platform/device_context.h" +#include "paddle/phi/core/tensor_utils.h" #include "paddle/phi/kernels/funcs/math_function.h" namespace paddle { @@ -97,7 +97,7 @@ class RNNMLUKernel : public framework::OpKernel { std::vector seq_len_vec(batch_size, seq_len); if (has_seq_length) { // set seq_len if no padding, otherwise seq_len for // each element. - seq_len_vec = operators::GetDataFromTensor(sequence_length); + seq_len_vec = phi::GetVectorFromTensor(sequence_length); } cnnlDirectionMode_t direction = is_bidirec ? CNNL_RNN_BIDIRECTIONAL : CNNL_RNN_UNIDIRECTIONAL; @@ -480,7 +480,7 @@ class RNNMLUGradKernel : public framework::OpKernel { std::vector seq_len_vec(batch_size, seq_len); if (has_seq_length) { - seq_len_vec = operators::GetDataFromTensor(sequence_length); + seq_len_vec = phi::GetVectorFromTensor(sequence_length); } cnnlDirectionMode_t direction = is_bidirec ? CNNL_RNN_BIDIRECTIONAL : CNNL_RNN_UNIDIRECTIONAL; diff --git a/paddle/fluid/operators/slice_op_mlu.cc b/paddle/fluid/operators/slice_op_mlu.cc index 771fca6a5ef18d..107907ecc76426 100644 --- a/paddle/fluid/operators/slice_op_mlu.cc +++ b/paddle/fluid/operators/slice_op_mlu.cc @@ -15,6 +15,7 @@ limitations under the License. */ #include "paddle/fluid/framework/op_registry.h" #include "paddle/fluid/operators/mlu/mlu_baseop.h" #include "paddle/fluid/operators/utils.h" +#include "paddle/phi/core/tensor_utils.h" #include "paddle/phi/kernels/funcs/slice_utils.h" namespace paddle { @@ -38,15 +39,16 @@ class SliceMLUKernel : public framework::OpKernel { auto starts_tensor_list = ctx.MultiInput("StartsTensorList"); if (ctx.HasInput("StartsTensor")) { - starts = - GetDataFromTensor(ctx.Input("StartsTensor")); + starts = phi::GetVectorFromTensor( + ctx.Input("StartsTensor")); } else if (starts_tensor_list.size() > 0) { starts = GetDataFromTensorList(starts_tensor_list); } auto ends_tensor_list = ctx.MultiInput("EndsTensorList"); if (ctx.HasInput("EndsTensor")) { - ends = GetDataFromTensor(ctx.Input("EndsTensor")); + ends = phi::GetVectorFromTensor( + ctx.Input("EndsTensor")); } else if (ends_tensor_list.size() > 0) { ends = GetDataFromTensorList(ends_tensor_list); } @@ -141,15 +143,16 @@ class SliceGradMLUKernel : public framework::OpKernel { auto starts_tensor_list = ctx.MultiInput("StartsTensorList"); if (ctx.HasInput("StartsTensor")) { - starts = - GetDataFromTensor(ctx.Input("StartsTensor")); + starts = phi::GetVectorFromTensor( + ctx.Input("StartsTensor")); } else if (starts_tensor_list.size() > 0) { starts = GetDataFromTensorList(starts_tensor_list); } auto ends_tensor_list = ctx.MultiInput("EndsTensorList"); if (ctx.HasInput("EndsTensor")) { - ends = GetDataFromTensor(ctx.Input("EndsTensor")); + ends = phi::GetVectorFromTensor( + ctx.Input("EndsTensor")); } else if (ends_tensor_list.size() > 0) { ends = GetDataFromTensorList(ends_tensor_list); } diff --git a/paddle/fluid/operators/strided_slice_op_mlu.cc b/paddle/fluid/operators/strided_slice_op_mlu.cc index 21eb47f187b007..ea4adbfe678c62 100644 --- a/paddle/fluid/operators/strided_slice_op_mlu.cc +++ b/paddle/fluid/operators/strided_slice_op_mlu.cc @@ -15,6 +15,7 @@ limitations under the License. */ #include "paddle/fluid/framework/op_registry.h" #include "paddle/fluid/operators/mlu/mlu_baseop.h" #include "paddle/fluid/operators/utils.h" +#include "paddle/phi/core/tensor_utils.h" #include "paddle/phi/kernels/funcs/strided_slice.h" namespace paddle { @@ -168,21 +169,21 @@ class StridedSliceMLUKernel : public framework::OpKernel { starts = GetDataFromTensorList(list_new_starts_tensor); } else if (ctx.HasInput("StartsTensor")) { auto* starts_tensor = ctx.Input("StartsTensor"); - starts = GetDataFromTensor(starts_tensor); + starts = phi::GetVectorFromTensor(starts_tensor); } if (list_new_ends_tensor.size() > 0) { ends = GetDataFromTensorList(list_new_ends_tensor); } else if (ctx.HasInput("EndsTensor")) { auto* ends_tensor = ctx.Input("EndsTensor"); - ends = GetDataFromTensor(ends_tensor); + ends = phi::GetVectorFromTensor(ends_tensor); } if (list_new_strides_tensor.size() > 0) { strides = GetDataFromTensorList(list_new_strides_tensor); } else if (ctx.HasInput("StridesTensor")) { auto* strides_tensor = ctx.Input("StridesTensor"); - strides = GetDataFromTensor(strides_tensor); + strides = phi::GetVectorFromTensor(strides_tensor); } // out dims calculation @@ -336,21 +337,21 @@ class StridedSliceGradMLUKernel : public framework::OpKernel { starts = GetDataFromTensorList(list_new_starts_tensor); } else if (ctx.HasInput("StartsTensor")) { auto* starts_tensor = ctx.Input("StartsTensor"); - starts = GetDataFromTensor(starts_tensor); + starts = phi::GetVectorFromTensor(starts_tensor); } if (list_new_ends_tensor.size() > 0) { ends = GetDataFromTensorList(list_new_ends_tensor); } else if (ctx.HasInput("EndsTensor")) { auto* ends_tensor = ctx.Input("EndsTensor"); - ends = GetDataFromTensor(ends_tensor); + ends = phi::GetVectorFromTensor(ends_tensor); } if (list_new_strides_tensor.size() > 0) { strides = GetDataFromTensorList(list_new_strides_tensor); } else if (ctx.HasInput("StridesTensor")) { auto* strides_tensor = ctx.Input("StridesTensor"); - strides = GetDataFromTensor(strides_tensor); + strides = phi::GetVectorFromTensor(strides_tensor); } std::vector out_dims_vector(input_dims.size(), -1); diff --git a/paddle/fluid/operators/unsqueeze_op.h b/paddle/fluid/operators/unsqueeze_op.h index 223dcad524cffd..94d8ede8e134c2 100644 --- a/paddle/fluid/operators/unsqueeze_op.h +++ b/paddle/fluid/operators/unsqueeze_op.h @@ -19,6 +19,7 @@ limitations under the License. */ #include "paddle/fluid/framework/op_registry.h" #include "paddle/fluid/operators/utils.h" #include "paddle/fluid/platform/device_context.h" +#include "paddle/phi/core/tensor_utils.h" #include "paddle/phi/kernels/funcs/blas/blas.h" #include "paddle/phi/kernels/funcs/math_function.h" @@ -42,7 +43,7 @@ class UnsqueezeKernel : public framework::OpKernel { axes = GetDataFromTensorList(axes_tensor_list); } else if (context.HasInput("AxesTensor")) { auto *axes_tensor = context.Input("AxesTensor"); - axes = GetDataFromTensor(axes_tensor); + axes = phi::GetVectorFromTensor(axes_tensor); } need_resize_out_dims = true; } From be670d7f759d920fbd17950984f90b206879e9f4 Mon Sep 17 00:00:00 2001 From: Liyulingyue <852433440@qq.com> Date: Sat, 25 Feb 2023 22:32:31 +0800 Subject: [PATCH 72/75] rollback unsqueeze_op.h, and import phi in utils.h --- paddle/fluid/operators/unsqueeze_op.h | 3 +-- paddle/fluid/operators/utils.h | 4 +++- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/paddle/fluid/operators/unsqueeze_op.h b/paddle/fluid/operators/unsqueeze_op.h index 94d8ede8e134c2..223dcad524cffd 100644 --- a/paddle/fluid/operators/unsqueeze_op.h +++ b/paddle/fluid/operators/unsqueeze_op.h @@ -19,7 +19,6 @@ limitations under the License. */ #include "paddle/fluid/framework/op_registry.h" #include "paddle/fluid/operators/utils.h" #include "paddle/fluid/platform/device_context.h" -#include "paddle/phi/core/tensor_utils.h" #include "paddle/phi/kernels/funcs/blas/blas.h" #include "paddle/phi/kernels/funcs/math_function.h" @@ -43,7 +42,7 @@ class UnsqueezeKernel : public framework::OpKernel { axes = GetDataFromTensorList(axes_tensor_list); } else if (context.HasInput("AxesTensor")) { auto *axes_tensor = context.Input("AxesTensor"); - axes = phi::GetVectorFromTensor(axes_tensor); + axes = GetDataFromTensor(axes_tensor); } need_resize_out_dims = true; } diff --git a/paddle/fluid/operators/utils.h b/paddle/fluid/operators/utils.h index f6d3132ef267d5..425e605929e7e7 100644 --- a/paddle/fluid/operators/utils.h +++ b/paddle/fluid/operators/utils.h @@ -18,6 +18,8 @@ limitations under the License. */ #include #include +#include "paddle/phi/core/tensor_utils.h" + namespace paddle { namespace operators { @@ -100,7 +102,7 @@ inline framework::DDim GetShape(const framework::ExecutionContext& ctx) { // 1. shape is a Tensor if (ctx.HasInput("ShapeTensor")) { auto* shape_tensor = ctx.Input("ShapeTensor"); - auto vec_shape = GetDataFromTensor(shape_tensor); + auto vec_shape = phi::GetVectorFromTensor(shape_tensor); return phi::make_ddim(vec_shape); } From e3cc185474ec8c677e5b6fcc5305d473aa8748b2 Mon Sep 17 00:00:00 2001 From: Liyulingyue <852433440@qq.com> Date: Sun, 26 Feb 2023 04:58:50 +0800 Subject: [PATCH 73/75] rollback util.h, and import phi in strided_slice_op_npu.cc --- paddle/fluid/operators/strided_slice_op_npu.cc | 13 +++++++------ paddle/fluid/operators/utils.h | 4 +--- 2 files changed, 8 insertions(+), 9 deletions(-) diff --git a/paddle/fluid/operators/strided_slice_op_npu.cc b/paddle/fluid/operators/strided_slice_op_npu.cc index 23bf6ea689602e..0a7861f255fa25 100644 --- a/paddle/fluid/operators/strided_slice_op_npu.cc +++ b/paddle/fluid/operators/strided_slice_op_npu.cc @@ -15,6 +15,7 @@ limitations under the License. */ #include "paddle/fluid/framework/op_registry.h" #include "paddle/fluid/operators/utils.h" #include "paddle/fluid/platform/device/npu/npu_op_runner.h" +#include "paddle/phi/core/tensor_utils.h" #include "paddle/phi/kernels/funcs/strided_slice.h" namespace paddle { @@ -99,21 +100,21 @@ class StridedSliceNPUKernel : public framework::OpKernel { starts = GetDataFromTensorList(list_new_starts_tensor); } else if (ctx.HasInput("StartsTensor")) { auto* starts_tensor = ctx.Input("StartsTensor"); - starts = GetDataFromTensor(starts_tensor); + starts = phi::GetVectorFromTensor(starts_tensor); } if (list_new_ends_tensor.size() > 0) { ends = GetDataFromTensorList(list_new_ends_tensor); } else if (ctx.HasInput("EndsTensor")) { auto* ends_tensor = ctx.Input("EndsTensor"); - ends = GetDataFromTensor(ends_tensor); + ends = phi::GetVectorFromTensor(ends_tensor); } if (list_new_strides_tensor.size() > 0) { strides = GetDataFromTensorList(list_new_strides_tensor); } else if (ctx.HasInput("StridesTensor")) { auto* strides_tensor = ctx.Input("StridesTensor"); - strides = GetDataFromTensor(strides_tensor); + strides = phi::GetVectorFromTensor(strides_tensor); } // out dims calculation @@ -325,21 +326,21 @@ class StridedSliceGradNPUKernel : public framework::OpKernel { starts = GetDataFromTensorList(list_new_starts_tensor); } else if (ctx.HasInput("StartsTensor")) { auto* starts_tensor = ctx.Input("StartsTensor"); - starts = GetDataFromTensor(starts_tensor); + starts = phi::GetVectorFromTensor(starts_tensor); } if (list_new_ends_tensor.size() > 0) { ends = GetDataFromTensorList(list_new_ends_tensor); } else if (ctx.HasInput("EndsTensor")) { auto* ends_tensor = ctx.Input("EndsTensor"); - ends = GetDataFromTensor(ends_tensor); + ends = phi::GetVectorFromTensor(ends_tensor); } if (list_new_strides_tensor.size() > 0) { strides = GetDataFromTensorList(list_new_strides_tensor); } else if (ctx.HasInput("StridesTensor")) { auto* strides_tensor = ctx.Input("StridesTensor"); - strides = GetDataFromTensor(strides_tensor); + strides = phi::GetVectorFromTensor(strides_tensor); } std::vector out_dims_vector(input_dims.size(), -1); diff --git a/paddle/fluid/operators/utils.h b/paddle/fluid/operators/utils.h index 425e605929e7e7..f6d3132ef267d5 100644 --- a/paddle/fluid/operators/utils.h +++ b/paddle/fluid/operators/utils.h @@ -18,8 +18,6 @@ limitations under the License. */ #include #include -#include "paddle/phi/core/tensor_utils.h" - namespace paddle { namespace operators { @@ -102,7 +100,7 @@ inline framework::DDim GetShape(const framework::ExecutionContext& ctx) { // 1. shape is a Tensor if (ctx.HasInput("ShapeTensor")) { auto* shape_tensor = ctx.Input("ShapeTensor"); - auto vec_shape = phi::GetVectorFromTensor(shape_tensor); + auto vec_shape = GetDataFromTensor(shape_tensor); return phi::make_ddim(vec_shape); } From a03b7d72bddb1b439ac9733b860545f88407083e Mon Sep 17 00:00:00 2001 From: Liyulingyue <852433440@qq.com> Date: Sun, 26 Feb 2023 05:57:03 +0800 Subject: [PATCH 74/75] import phi in reshape_op_npu.cc --- paddle/fluid/operators/reshape_op_npu.cc | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/paddle/fluid/operators/reshape_op_npu.cc b/paddle/fluid/operators/reshape_op_npu.cc index d82fa9e366d9a3..50dbb7a7cf6d22 100644 --- a/paddle/fluid/operators/reshape_op_npu.cc +++ b/paddle/fluid/operators/reshape_op_npu.cc @@ -16,8 +16,8 @@ limitations under the License. */ #include #include "paddle/fluid/framework/op_registry.h" -#include "paddle/fluid/operators/utils.h" #include "paddle/fluid/platform/device/npu/npu_op_runner.h" +#include "paddle/phi/core/tensor_utils.h" namespace paddle { namespace operators { @@ -46,14 +46,15 @@ class Reshape2NPUKernel : public framework::OpKernel { "shape is [%d]", shape_tensor->dims().size())); - target_shape_vector.push_back(GetDataFromTensor(shape_tensor)[0]); + target_shape_vector.push_back( + phi::GetVectorFromTensor(shape_tensor)[0]); } } else { auto* shape_tensor = ctx.HasInput("Shape") ? ctx.Input("Shape") : nullptr; if (shape_tensor) { - target_shape_vector = GetDataFromTensor(shape_tensor); + target_shape_vector = phi::GetVectorFromTensor(shape_tensor); } else { target_shape_vector = ctx.Attr>("shape"); PADDLE_ENFORCE_GT( From fb4e7a85723cc8b401c0f825df84617dc86b89e0 Mon Sep 17 00:00:00 2001 From: Liyulingyue <852433440@qq.com> Date: Sun, 26 Feb 2023 09:05:56 +0800 Subject: [PATCH 75/75] add phi in utils.h, not delete the GetDataFromTensor --- paddle/fluid/operators/utils.h | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/paddle/fluid/operators/utils.h b/paddle/fluid/operators/utils.h index f6d3132ef267d5..425e605929e7e7 100644 --- a/paddle/fluid/operators/utils.h +++ b/paddle/fluid/operators/utils.h @@ -18,6 +18,8 @@ limitations under the License. */ #include #include +#include "paddle/phi/core/tensor_utils.h" + namespace paddle { namespace operators { @@ -100,7 +102,7 @@ inline framework::DDim GetShape(const framework::ExecutionContext& ctx) { // 1. shape is a Tensor if (ctx.HasInput("ShapeTensor")) { auto* shape_tensor = ctx.Input("ShapeTensor"); - auto vec_shape = GetDataFromTensor(shape_tensor); + auto vec_shape = phi::GetVectorFromTensor(shape_tensor); return phi::make_ddim(vec_shape); }