Initial SYCL support:

The core and some ext functions should work.
This commit is contained in:
rhoarau
2019-06-09 16:05:09 +02:00
parent fce2abd01c
commit 8fb71ffd07
3 changed files with 51 additions and 0 deletions

View File

@@ -410,6 +410,7 @@
#if GLM_COMPILER & GLM_COMPILER_CUDA
# define GLM_CUDA_FUNC_DEF __device__ __host__
# define GLM_CUDA_FUNC_DECL __device__ __host__
#error "oops cuda shit"
#else
# define GLM_CUDA_FUNC_DEF
# define GLM_CUDA_FUNC_DECL
@@ -529,6 +530,48 @@
# define GLM_EXPLICIT
#endif
///////////////////////////////////////////////////////////////////////////////////
// SYCL
#if GLM_COMPILER==GLM_COMPILER_SYCL
#include <CL/sycl.hpp>
#include <limits>
namespace glm {
namespace std {
// import sycl function into the namespace glm::std to force their usages.
// It's important to use the builtin intrinsics (sin, exp, ...)
// of sycl instead the std ones.
using namespace cl::sycl;
///////////////////////////////////////////////////////////////////////////////
// Import some "harmless" std's stuffs used by glm into
// the new glm::std namespace.
template<typename T>
using numeric_limits = ::std::numeric_limits<T>;
using ::std::size_t;
using ::std::uint8_t;
using ::std::uint16_t;
using ::std::uint32_t;
using ::std::uint64_t;
using ::std::int8_t;
using ::std::int16_t;
using ::std::int32_t;
using ::std::int64_t;
using ::std::make_unsigned;
///////////////////////////////////////////////////////////////////////////////
} //namespace std
} //namespace glm
#endif
///////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////
// Length type: all length functions returns a length_t type.
// When GLM_FORCE_SIZE_T_LENGTH is defined, length_t is a typedef of size_t otherwise

View File

@@ -81,6 +81,9 @@
#define GLM_COMPILER_CUDA75 0x100000B0
#define GLM_COMPILER_CUDA80 0x100000C0
// SYCL
#define GLM_COMPILER_SYCL 0x00300000
// Clang
#define GLM_COMPILER_CLANG 0x20000000
#define GLM_COMPILER_CLANG34 0x20000050
@@ -129,6 +132,10 @@
# error "GLM requires CUDA 7.0 or higher"
# endif
// SYCL
#elif defined(__SYCL_DEVICE_ONLY__)
# define GLM_COMPILER GLM_COMPILER_SYCL
// Clang
#elif defined(__clang__)
# if defined(__apple_build_version__)