Merged in benoitsteiner/opencl (pull request PR-244)
Disable vectorization on device only when compiling for sycl
This commit is contained in:
		
						commit
						3e37166d0b
					
				
							
								
								
									
										10
									
								
								Eigen/Core
									
									
									
									
									
								
							
							
						
						
									
										10
									
								
								Eigen/Core
									
									
									
									
									
								
							| @ -35,17 +35,17 @@ | ||||
|   #undef EIGEN_INTERNAL_DEBUGGING | ||||
|   #endif | ||||
| 
 | ||||
|   // Do not try to vectorize on CUDA and SYCL! | ||||
|   #ifndef EIGEN_DONT_VECTORIZE | ||||
|   #define EIGEN_DONT_VECTORIZE | ||||
|   #endif | ||||
| 
 | ||||
|   #ifdef EIGEN_EXCEPTIONS | ||||
|   #undef EIGEN_EXCEPTIONS | ||||
|   #endif | ||||
| 
 | ||||
|   // All functions callable from CUDA code must be qualified with __device__ | ||||
|   #ifdef __CUDACC__ | ||||
|     // Do not try to vectorize on CUDA and SYCL! | ||||
|     #ifndef EIGEN_DONT_VECTORIZE | ||||
|     #define EIGEN_DONT_VECTORIZE | ||||
|     #endif | ||||
| 
 | ||||
|     #define EIGEN_DEVICE_FUNC __host__ __device__ | ||||
|     // We need math_functions.hpp to ensure that that EIGEN_USING_STD_MATH macro | ||||
|     // works properly on the device side | ||||
|  | ||||
| @ -83,6 +83,27 @@ struct PacketType<half, GpuDevice> { | ||||
| }; | ||||
| #endif | ||||
| 
 | ||||
| #if defined(EIGEN_USE_SYCL) | ||||
| template <typename T> | ||||
|   struct PacketType<T, SyclDevice> { | ||||
|   typedef T type; | ||||
|   static const int size = 1; | ||||
|   enum { | ||||
|     HasAdd    = 0, | ||||
|     HasSub    = 0, | ||||
|     HasMul    = 0, | ||||
|     HasNegate = 0, | ||||
|     HasAbs    = 0, | ||||
|     HasArg    = 0, | ||||
|     HasAbs2   = 0, | ||||
|     HasMin    = 0, | ||||
|     HasMax    = 0, | ||||
|     HasConj   = 0, | ||||
|     HasSetLinear = 0, | ||||
|     HasBlend  = 0 | ||||
|   }; | ||||
| }; | ||||
| #endif | ||||
| 
 | ||||
| 
 | ||||
| // Tuple mimics std::pair but works on e.g. nvcc.
 | ||||
|  | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user
	 Benoit Steiner
						Benoit Steiner