aboutsummaryrefslogtreecommitdiffhomepage
path: root/Eigen/src/Core/arch/SYCL
diff options
context:
space:
mode:
authorGravatar mehdi-goli <mehdi.goli@codeplay.com>2020-11-02 11:13:37 +0000
committerGravatar Rasmus Munk Larsen <rmlarsen@google.com>2020-11-12 01:50:28 +0000
commite24a1f57e35f3f3894a5612bb8b4e34bf68ebb26 (patch)
tree139bffe997b4d81877cf717ad292fa40baede126 /Eigen/src/Core/arch/SYCL
parent6961468915b4b3a1b96cbfcac18f533abd82c549 (diff)
[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.
Diffstat (limited to 'Eigen/src/Core/arch/SYCL')
-rw-r--r--Eigen/src/Core/arch/SYCL/InteropHeaders.h3
-rw-r--r--Eigen/src/Core/arch/SYCL/MathFunctions.h4
2 files changed, 4 insertions, 3 deletions
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<packet_type>( \
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