diff --git a/paddle/fluid/framework/new_executor/interpreter/interpreter_util.cc b/paddle/fluid/framework/new_executor/interpreter/interpreter_util.cc index a2fcb4a2282f7b7a8a176b4bc6ec44663a6aa5be..992937c1b3328623734cae094e7f4dabb6ef0190 100644 --- a/paddle/fluid/framework/new_executor/interpreter/interpreter_util.cc +++ b/paddle/fluid/framework/new_executor/interpreter/interpreter_util.cc @@ -55,7 +55,6 @@ static std::set OpsNeedSetOutputDtypeWhenRegisterPhiKernel = { "adamw", "any_raw", "arg_sort", - "atan2", "clip_by_norm", "eig_grad", "eigh", diff --git a/paddle/phi/infermeta/binary.cc b/paddle/phi/infermeta/binary.cc index b00930064d3078dad70f6a6bdeefb59ad3a1e6a0..64ba5d7cbb3ac495b5149b409abb607a8c93bbf9 100644 --- a/paddle/phi/infermeta/binary.cc +++ b/paddle/phi/infermeta/binary.cc @@ -166,6 +166,8 @@ void Atan2InferMeta(const MetaTensor& x, const MetaTensor& y, MetaTensor* out) { if (x.dtype() == DataType::INT32 || x.dtype() == DataType::INT64 || y.dtype() == DataType::INT32 || y.dtype() == DataType::INT64) { out->set_dtype(DataType::FLOAT64); + } else { + out->set_dtype(x.dtype()); } } diff --git a/paddle/phi/kernels/cpu/atan2_kernel.cc b/paddle/phi/kernels/cpu/atan2_kernel.cc index 4cb96ad8b6c6cdff384924f3e1ba4fa83900d1b1..640e4f479e0fa556cf61933861d6eca17149a163 100644 --- a/paddle/phi/kernels/cpu/atan2_kernel.cc +++ b/paddle/phi/kernels/cpu/atan2_kernel.cc @@ -24,4 +24,6 @@ PD_REGISTER_KERNEL(atan2, double, phi::dtype::float16, int, - int64_t) {} + int64_t) { + kernel->OutputAt(0).SetDataType(phi::DataType::UNDEFINED); +} diff --git a/paddle/phi/kernels/gpu/atan2_kernel.cu b/paddle/phi/kernels/gpu/atan2_kernel.cu index 887c11c7e7ff14461a0368c928584c653e88864e..d77c21473b4c44d3a54a549a8c5a0391fcf7c5dd 100644 --- a/paddle/phi/kernels/gpu/atan2_kernel.cu +++ b/paddle/phi/kernels/gpu/atan2_kernel.cu @@ -24,4 +24,6 @@ PD_REGISTER_KERNEL(atan2, double, phi::dtype::float16, int, - int64_t) {} + int64_t) { + kernel->OutputAt(0).SetDataType(phi::DataType::UNDEFINED); +}