From b4a500bcb27ac37cac41a204766c7573f5ab9327 Mon Sep 17 00:00:00 2001 From: Ryan <44900829+DrRyanHuang@users.noreply.github.com> Date: Wed, 8 Mar 2023 20:27:06 +0800 Subject: [PATCH] [phi] add register of is_finite (#51322) * add isfinite * add isnan & isinf * add xpu isNaN --- .../new_executor/interpreter/interpreter_util.cc | 1 - paddle/phi/kernels/cpu/isfinite_kernel.cc | 12 +++++++++--- paddle/phi/kernels/gpu/isfinite_kernel.cu | 12 +++++++++--- paddle/phi/kernels/xpu/isfinite_kernel.cc | 4 +++- 4 files changed, 21 insertions(+), 8 deletions(-) diff --git a/paddle/fluid/framework/new_executor/interpreter/interpreter_util.cc b/paddle/fluid/framework/new_executor/interpreter/interpreter_util.cc index 2e1e8cf8763..c3ef0454129 100644 --- a/paddle/fluid/framework/new_executor/interpreter/interpreter_util.cc +++ b/paddle/fluid/framework/new_executor/interpreter/interpreter_util.cc @@ -81,7 +81,6 @@ static std::set OpsNeedSetOutputDtypeWhenRegisterPhiKernel = { "histogram", "instance_norm", "is_empty", - "is_finite", "kthvalue", "lamb", "layer_norm", diff --git a/paddle/phi/kernels/cpu/isfinite_kernel.cc b/paddle/phi/kernels/cpu/isfinite_kernel.cc index e3cc3c83598..85d12579487 100644 --- a/paddle/phi/kernels/cpu/isfinite_kernel.cc +++ b/paddle/phi/kernels/cpu/isfinite_kernel.cc @@ -26,7 +26,9 @@ PD_REGISTER_KERNEL(isinf, double, phi::dtype::float16, int, - int64_t) {} + int64_t) { + kernel->OutputAt(0).SetDataType(phi::DataType::BOOL); +} PD_REGISTER_KERNEL(isnan, CPU, @@ -36,7 +38,9 @@ PD_REGISTER_KERNEL(isnan, double, phi::dtype::float16, int, - int64_t) {} + int64_t) { + kernel->OutputAt(0).SetDataType(phi::DataType::BOOL); +} PD_REGISTER_KERNEL(isfinite, CPU, @@ -46,4 +50,6 @@ PD_REGISTER_KERNEL(isfinite, double, phi::dtype::float16, int, - int64_t) {} + int64_t) { + kernel->OutputAt(0).SetDataType(phi::DataType::BOOL); +} diff --git a/paddle/phi/kernels/gpu/isfinite_kernel.cu b/paddle/phi/kernels/gpu/isfinite_kernel.cu index c7dde29101b..e8c2fa022ec 100644 --- a/paddle/phi/kernels/gpu/isfinite_kernel.cu +++ b/paddle/phi/kernels/gpu/isfinite_kernel.cu @@ -26,7 +26,9 @@ PD_REGISTER_KERNEL(isinf, double, phi::dtype::float16, int, - int64_t) {} + int64_t) { + kernel->OutputAt(0).SetDataType(phi::DataType::BOOL); +} PD_REGISTER_KERNEL(isnan, GPU, @@ -36,7 +38,9 @@ PD_REGISTER_KERNEL(isnan, double, phi::dtype::float16, int, - int64_t) {} + int64_t) { + kernel->OutputAt(0).SetDataType(phi::DataType::BOOL); +} PD_REGISTER_KERNEL(isfinite, GPU, @@ -46,4 +50,6 @@ PD_REGISTER_KERNEL(isfinite, double, phi::dtype::float16, int, - int64_t) {} + int64_t) { + kernel->OutputAt(0).SetDataType(phi::DataType::BOOL); +} diff --git a/paddle/phi/kernels/xpu/isfinite_kernel.cc b/paddle/phi/kernels/xpu/isfinite_kernel.cc index 27013496600..0639a5907fc 100644 --- a/paddle/phi/kernels/xpu/isfinite_kernel.cc +++ b/paddle/phi/kernels/xpu/isfinite_kernel.cc @@ -34,4 +34,6 @@ void IsnanKernel(const Context& ctx, const DenseTensor& x, DenseTensor* out) { } // namespace phi PD_REGISTER_KERNEL( - isnan, XPU, ALL_LAYOUT, phi::IsnanKernel, float, phi::dtype::float16) {} + isnan, XPU, ALL_LAYOUT, phi::IsnanKernel, float, phi::dtype::float16) { + kernel->OutputAt(0).SetDataType(phi::DataType::BOOL); +} -- GitLab