diff --git a/paddle/fluid/framework/new_executor/interpreter/data_transfer.cc b/paddle/fluid/framework/new_executor/interpreter/data_transfer.cc index 6261177b5f8e1cc5ecde5c082a88b284e079e7a6..333ceab4413ef3b6b72e1d174398680a2c720693 100644 --- a/paddle/fluid/framework/new_executor/interpreter/data_transfer.cc +++ b/paddle/fluid/framework/new_executor/interpreter/data_transfer.cc @@ -585,7 +585,9 @@ void ApplyDataTransform(const OpKernelType& expected_kernel_key, tensor_backend == phi::Backend::XPU) && !(def_backend == phi::Backend::ONEDNN && tensor_backend == phi::Backend::CPU)) || - tensor_in->place().GetType() == AllocationType::GPUPINNED) { + tensor_in->place().GetType() == AllocationType::GPUPINNED || + (platform::is_xpu_place(expected_kernel_key.place_) && + def_backend == tensor_backend)) { expected_kernel_key_for_argument_def = std::make_unique( def_backend,