From e24a1f57e35f3f3894a5612bb8b4e34bf68ebb26 Mon Sep 17 00:00:00 2001 From: mehdi-goli Date: Mon, 2 Nov 2020 11:13:37 +0000 Subject: [SYCL Function pointer Issue]: SYCL does not support function pointer inside the kernel, due to the portability issue of a function pointer and memory address space among host and accelerators. To fix the issue, function pointers have been replaced by function objects. --- Eigen/src/Core/arch/SYCL/InteropHeaders.h | 3 +++ Eigen/src/Core/arch/SYCL/MathFunctions.h | 4 +--- 2 files changed, 4 insertions(+), 3 deletions(-) (limited to 'Eigen/src/Core/arch/SYCL') diff --git a/Eigen/src/Core/arch/SYCL/InteropHeaders.h b/Eigen/src/Core/arch/SYCL/InteropHeaders.h index 710059d50..10856ff5e 100644 --- a/Eigen/src/Core/arch/SYCL/InteropHeaders.h +++ b/Eigen/src/Core/arch/SYCL/InteropHeaders.h @@ -59,6 +59,9 @@ struct sycl_packet_traits : default_packet_traits { HasIGammac = 0, HasBetaInc = 0, HasBlend = has_blend, + // This flag is used to indicate whether packet comparison is supported. + // pcmp_eq, pcmp_lt and pcmp_le should be defined for it to be true. + HasCmp = 1, HasMax = 1, HasMin = 1, HasMul = 1, diff --git a/Eigen/src/Core/arch/SYCL/MathFunctions.h b/Eigen/src/Core/arch/SYCL/MathFunctions.h index 7d8cd132b..2ab0f2a76 100644 --- a/Eigen/src/Core/arch/SYCL/MathFunctions.h +++ b/Eigen/src/Core/arch/SYCL/MathFunctions.h @@ -20,7 +20,6 @@ #ifndef EIGEN_MATH_FUNCTIONS_SYCL_H #define EIGEN_MATH_FUNCTIONS_SYCL_H - namespace Eigen { namespace internal { @@ -238,7 +237,7 @@ SYCL_PROUND(cl::sycl::cl_double2) #undef SYCL_PROUND #define SYCL_PRINT(packet_type) \ - template<> \ + template <> \ EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE packet_type print( \ const packet_type& a) { \ return cl::sycl::rint(a); \ @@ -295,7 +294,6 @@ SYCL_PLDEXP(cl::sycl::cl_double2) #undef SYCL_PLDEXP #endif - } // end namespace internal } // end namespace Eigen -- cgit v1.2.3