From d71615dc2b07dc92034256fd705187d08d9436e1 Mon Sep 17 00:00:00 2001 From: csy0225 <78470701+csy0225@users.noreply.github.com> Date: Mon, 24 Apr 2023 14:54:49 +0800 Subject: [PATCH] shared_external mermory add xpu (#53240) --- paddle/fluid/inference/api/details/zero_copy_tensor.cc | 9 ++++++++- paddle/phi/kernels/xpu/linspace_kernel.cc | 6 +++++- 2 files changed, 13 insertions(+), 2 deletions(-) diff --git a/paddle/fluid/inference/api/details/zero_copy_tensor.cc b/paddle/fluid/inference/api/details/zero_copy_tensor.cc index 147db87a101..c10e6b4a43f 100644 --- a/paddle/fluid/inference/api/details/zero_copy_tensor.cc +++ b/paddle/fluid/inference/api/details/zero_copy_tensor.cc @@ -345,9 +345,16 @@ void Tensor::ShareExternalData(const T *data, const_cast(data), size, paddle::platform::CUDAPlace(device_)), meta); *tensor = std::move(dtensor); + } else if (place == PlaceType::kXPU) { + phi::DenseTensor dtensor( + std::make_shared( + const_cast(data), size, paddle::platform::XPUPlace(device_)), + meta); + *tensor = std::move(dtensor); } else { PADDLE_THROW(paddle::platform::errors::InvalidArgument( - "PlaceType must be PlaceType::kCPU or PlaceType::kGPU.")); + "PlaceType must be one of [PlaceType::kCPU, PlaceType::kGPU, " + "PlaceType::kXPU].")); } } diff --git a/paddle/phi/kernels/xpu/linspace_kernel.cc b/paddle/phi/kernels/xpu/linspace_kernel.cc index e33a6d73f1c..e61676bae49 100644 --- a/paddle/phi/kernels/xpu/linspace_kernel.cc +++ b/paddle/phi/kernels/xpu/linspace_kernel.cc @@ -81,4 +81,8 @@ void LinspaceKernel(const Context& ctx, } // namespace phi PD_REGISTER_KERNEL( - linspace, XPU, ALL_LAYOUT, phi::LinspaceKernel, float, int32_t) {} + linspace, XPU, ALL_LAYOUT, phi::LinspaceKernel, float, int32_t) { + kernel->InputAt(0).SetBackend(phi::Backend::ALL_BACKEND); + kernel->InputAt(1).SetBackend(phi::Backend::ALL_BACKEND); + kernel->InputAt(2).SetBackend(phi::Backend::ALL_BACKEND); +} -- GitLab