From cb2d8b8fa6e37b9023919ee3d2ef759fcf400e0f Mon Sep 17 00:00:00 2001 From: Benoit Steiner Date: Wed, 29 Jun 2016 15:42:01 -0700 Subject: Made it possible to compile reductions for an old cuda architecture and run them on a recent gpu. --- unsupported/Eigen/CXX11/src/Tensor/TensorReductionCuda.h | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) (limited to 'unsupported/Eigen/CXX11/src/Tensor/TensorReductionCuda.h') diff --git a/unsupported/Eigen/CXX11/src/Tensor/TensorReductionCuda.h b/unsupported/Eigen/CXX11/src/Tensor/TensorReductionCuda.h index 5e512490c..d3894e625 100644 --- a/unsupported/Eigen/CXX11/src/Tensor/TensorReductionCuda.h +++ b/unsupported/Eigen/CXX11/src/Tensor/TensorReductionCuda.h @@ -336,9 +336,11 @@ struct FullReducer { static const bool HasOptimizedImplementation = !Op::IsStateful && (internal::is_same::value || (internal::is_same::value && reducer_traits::PacketAccess)); -#else +#elif __CUDA_ARCH__ >= 300 static const bool HasOptimizedImplementation = !Op::IsStateful && internal::is_same::value; +#else + static const bool HasOptimizedImplementation = false; #endif template @@ -617,9 +619,11 @@ struct InnerReducer { static const bool HasOptimizedImplementation = !Op::IsStateful && (internal::is_same::value || (internal::is_same::value && reducer_traits::PacketAccess)); -#else +#elif __CUDA_ARCH__ >= 300 static const bool HasOptimizedImplementation = !Op::IsStateful && internal::is_same::value; +#else + static const bool HasOptimizedImplementation = false; #endif template @@ -674,8 +678,12 @@ struct OuterReducer { // Unfortunately nvidia doesn't support well exotic types such as complex, // so reduce the scope of the optimized version of the code to the simple case // of floats. +#if __CUDA_ARCH__ >= 300 static const bool HasOptimizedImplementation = !Op::IsStateful && internal::is_same::value; +#else + static const bool HasOptimizedImplementation = false; +#endif template static EIGEN_DEVICE_FUNC bool run(const Self&, Op&, const Device&, OutputType*, typename Self::Index, typename Self::Index) { -- cgit v1.2.3