diff options
author | Rasmus Munk Larsen <rmlarsen@google.com> | 2016-11-01 15:37:00 -0700 |
---|---|---|
committer | Rasmus Munk Larsen <rmlarsen@google.com> | 2016-11-01 15:37:00 -0700 |
commit | 0a6ae4155597c9df28cac36b6fdfdcf70d70bf00 (patch) | |
tree | a864ee62e11b7b8ee163321aef4705926ddd20ce | |
parent | b730952414b19b988abae2a2ba2be86fb13cff88 (diff) | |
parent | 7a0e96b80dc622e3802ec158a12c63b728d7fce9 (diff) |
Merged eigen/eigen into default
-rw-r--r-- | Eigen/src/Core/arch/CUDA/PacketMathHalf.h | 2 | ||||
-rw-r--r-- | unsupported/Eigen/CXX11/src/Tensor/TensorEvalTo.h | 4 | ||||
-rw-r--r-- | unsupported/Eigen/CXX11/src/Tensor/TensorForcedEval.h | 7 | ||||
-rw-r--r-- | unsupported/Eigen/CXX11/src/Tensor/TensorTraits.h | 28 | ||||
-rw-r--r-- | unsupported/test/cxx11_tensor_contract_cuda.cu | 2 | ||||
-rw-r--r-- | unsupported/test/cxx11_tensor_cuda.cu | 4 | ||||
-rw-r--r-- | unsupported/test/cxx11_tensor_image_patch.cpp | 24 | ||||
-rw-r--r-- | unsupported/test/cxx11_tensor_scan_cuda.cu | 2 |
8 files changed, 38 insertions, 35 deletions
diff --git a/Eigen/src/Core/arch/CUDA/PacketMathHalf.h b/Eigen/src/Core/arch/CUDA/PacketMathHalf.h index 9dd89e07f..de905bbf4 100644 --- a/Eigen/src/Core/arch/CUDA/PacketMathHalf.h +++ b/Eigen/src/Core/arch/CUDA/PacketMathHalf.h @@ -15,7 +15,7 @@ namespace Eigen { namespace internal { // Most of the following operations require arch >= 3.0 -#if defined(EIGEN_HAS_CUDA_FP16) && defined(__CUDA_ARCH__) && __CUDA_ARCH__ >= 300 +#if defined(EIGEN_HAS_CUDA_FP16) && defined(__CUDACC__) && defined(__CUDA_ARCH__) && __CUDA_ARCH__ >= 300 template<> struct is_arithmetic<half2> { enum { value = true }; }; diff --git a/unsupported/Eigen/CXX11/src/Tensor/TensorEvalTo.h b/unsupported/Eigen/CXX11/src/Tensor/TensorEvalTo.h index 9d5cf1a8c..68d14a7e5 100644 --- a/unsupported/Eigen/CXX11/src/Tensor/TensorEvalTo.h +++ b/unsupported/Eigen/CXX11/src/Tensor/TensorEvalTo.h @@ -38,7 +38,9 @@ struct traits<TensorEvalToOp<XprType, MakePointer_> > }; template <class T> struct MakePointer { - typedef typename MakePointer_<T>::Type Type; + // Intermediate typedef to workaround MSVC issue. + typedef MakePointer_<T> MakePointerT; + typedef typename MakePointerT::Type Type; }; }; diff --git a/unsupported/Eigen/CXX11/src/Tensor/TensorForcedEval.h b/unsupported/Eigen/CXX11/src/Tensor/TensorForcedEval.h index 9cf4a07e5..bbd5eb374 100644 --- a/unsupported/Eigen/CXX11/src/Tensor/TensorForcedEval.h +++ b/unsupported/Eigen/CXX11/src/Tensor/TensorForcedEval.h @@ -42,9 +42,10 @@ struct traits<TensorForcedEvalOp<XprType, MakePointer_> > enum { Flags = 0 }; - template <class T> - struct MakePointer { - typedef typename MakePointer_<T>::Type Type; + template <class T> struct MakePointer { + // Intermediate typedef to workaround MSVC issue. + typedef MakePointer_<T> MakePointerT; + typedef typename MakePointerT::Type Type; }; }; diff --git a/unsupported/Eigen/CXX11/src/Tensor/TensorTraits.h b/unsupported/Eigen/CXX11/src/Tensor/TensorTraits.h index 428d32d41..ffcf8b00f 100644 --- a/unsupported/Eigen/CXX11/src/Tensor/TensorTraits.h +++ b/unsupported/Eigen/CXX11/src/Tensor/TensorTraits.h @@ -80,8 +80,8 @@ struct traits<TensorFixedSize<Scalar_, Dimensions, Options_, IndexType_> > }; -template<typename PlainObjectType, int Options_ , template <class> class MakePointer_> -struct traits<TensorMap<PlainObjectType, Options_ , MakePointer_> > +template<typename PlainObjectType, int Options_, template <class> class MakePointer_> +struct traits<TensorMap<PlainObjectType, Options_, MakePointer_> > : public traits<PlainObjectType> { typedef traits<PlainObjectType> BaseTraits; @@ -142,16 +142,16 @@ struct eval<const TensorFixedSize<Scalar_, Dimensions, Options, IndexType_>, Eig typedef const TensorFixedSize<Scalar_, Dimensions, Options, IndexType_>& type; }; -template<typename PlainObjectType, int Options> -struct eval<TensorMap<PlainObjectType, Options>, Eigen::Dense> +template<typename PlainObjectType, int Options, template <class> class MakePointer> +struct eval<TensorMap<PlainObjectType, Options, MakePointer>, Eigen::Dense> { - typedef const TensorMap<PlainObjectType, Options>& type; + typedef const TensorMap<PlainObjectType, Options, MakePointer>& type; }; -template<typename PlainObjectType, int Options> -struct eval<const TensorMap<PlainObjectType, Options>, Eigen::Dense> +template<typename PlainObjectType, int Options, template <class> class MakePointer> +struct eval<const TensorMap<PlainObjectType, Options, MakePointer>, Eigen::Dense> { - typedef const TensorMap<PlainObjectType, Options>& type; + typedef const TensorMap<PlainObjectType, Options, MakePointer>& type; }; template<typename PlainObjectType> @@ -197,16 +197,16 @@ struct nested<const TensorFixedSize<Scalar_, Dimensions, Options, IndexType_> > }; -template <typename PlainObjectType, int Options> -struct nested<TensorMap<PlainObjectType, Options> > +template <typename PlainObjectType, int Options, template <class> class MakePointer> +struct nested<TensorMap<PlainObjectType, Options, MakePointer> > { - typedef const TensorMap<PlainObjectType, Options>& type; + typedef const TensorMap<PlainObjectType, Options, MakePointer>& type; }; -template <typename PlainObjectType, int Options> -struct nested<const TensorMap<PlainObjectType, Options> > +template <typename PlainObjectType, int Options, template <class> class MakePointer> +struct nested<const TensorMap<PlainObjectType, Options, MakePointer> > { - typedef const TensorMap<PlainObjectType, Options>& type; + typedef const TensorMap<PlainObjectType, Options, MakePointer>& type; }; template <typename PlainObjectType> diff --git a/unsupported/test/cxx11_tensor_contract_cuda.cu b/unsupported/test/cxx11_tensor_contract_cuda.cu index 767e9c678..dd68430ce 100644 --- a/unsupported/test/cxx11_tensor_contract_cuda.cu +++ b/unsupported/test/cxx11_tensor_contract_cuda.cu @@ -69,7 +69,7 @@ void test_cuda_contraction(int m_size, int k_size, int n_size) t_result = t_left.contract(t_right, dims); cudaMemcpy(t_result_gpu.data(), d_t_result, t_result_bytes, cudaMemcpyDeviceToHost); - for (size_t i = 0; i < t_result.size(); i++) { + for (DenseIndex i = 0; i < t_result.size(); i++) { if (fabs(t_result(i) - t_result_gpu(i)) < 1e-4f) { continue; } diff --git a/unsupported/test/cxx11_tensor_cuda.cu b/unsupported/test/cxx11_tensor_cuda.cu index bf216587a..0ba9d52e9 100644 --- a/unsupported/test/cxx11_tensor_cuda.cu +++ b/unsupported/test/cxx11_tensor_cuda.cu @@ -303,8 +303,8 @@ void test_cuda_contraction() cudaMemcpy(t_result.data(), d_t_result, t_result_bytes, cudaMemcpyDeviceToHost); - for (size_t i = 0; i < t_result.dimensions().TotalSize(); i++) { - if (fabs(t_result.data()[i] - m_result.data()[i]) >= 1e-4) { + for (DenseIndex i = 0; i < t_result.size(); i++) { + if (fabs(t_result.data()[i] - m_result.data()[i]) >= 1e-4f) { std::cout << "mismatch detected at index " << i << ": " << t_result.data()[i] << " vs " << m_result.data()[i] << std::endl; assert(false); } diff --git a/unsupported/test/cxx11_tensor_image_patch.cpp b/unsupported/test/cxx11_tensor_image_patch.cpp index 988b01481..475c59651 100644 --- a/unsupported/test/cxx11_tensor_image_patch.cpp +++ b/unsupported/test/cxx11_tensor_image_patch.cpp @@ -13,7 +13,7 @@ using Eigen::Tensor; -static void test_simple_patch() +void test_simple_patch() { Tensor<float, 4> tensor(2,3,5,7); tensor.setRandom(); @@ -180,7 +180,7 @@ static void test_simple_patch() } // Verifies VALID padding (no padding) with incrementing values. -static void test_patch_padding_valid() +void test_patch_padding_valid() { int input_depth = 3; int input_rows = 3; @@ -256,7 +256,7 @@ static void test_patch_padding_valid() } // Verifies VALID padding (no padding) with the same value. -static void test_patch_padding_valid_same_value() +void test_patch_padding_valid_same_value() { int input_depth = 1; int input_rows = 5; @@ -329,7 +329,7 @@ static void test_patch_padding_valid_same_value() } // Verifies SAME padding. -static void test_patch_padding_same() +void test_patch_padding_same() { int input_depth = 3; int input_rows = 4; @@ -405,7 +405,7 @@ static void test_patch_padding_same() } } -static void test_patch_no_extra_dim() +void test_patch_no_extra_dim() { Tensor<float, 3> tensor(2,3,5); tensor.setRandom(); @@ -553,7 +553,7 @@ static void test_patch_no_extra_dim() } } -static void test_imagenet_patches() +void test_imagenet_patches() { // Test the code on typical configurations used by the 'imagenet' benchmarks at // https://github.com/soumith/convnet-benchmarks @@ -748,10 +748,10 @@ static void test_imagenet_patches() void test_cxx11_tensor_image_patch() { - CALL_SUBTEST(test_simple_patch()); - CALL_SUBTEST(test_patch_no_extra_dim()); - CALL_SUBTEST(test_patch_padding_valid()); - CALL_SUBTEST(test_patch_padding_valid_same_value()); - CALL_SUBTEST(test_patch_padding_same()); - CALL_SUBTEST(test_imagenet_patches()); + CALL_SUBTEST_1(test_simple_patch()); + CALL_SUBTEST_2(test_patch_no_extra_dim()); + CALL_SUBTEST_3(test_patch_padding_valid()); + CALL_SUBTEST_4(test_patch_padding_valid_same_value()); + CALL_SUBTEST_5(test_patch_padding_same()); + CALL_SUBTEST_6(test_imagenet_patches()); } diff --git a/unsupported/test/cxx11_tensor_scan_cuda.cu b/unsupported/test/cxx11_tensor_scan_cuda.cu index 761d11fd1..5f146f3c9 100644 --- a/unsupported/test/cxx11_tensor_scan_cuda.cu +++ b/unsupported/test/cxx11_tensor_scan_cuda.cu @@ -55,7 +55,7 @@ void test_cuda_cumsum(int m_size, int k_size, int n_size) t_result = t_input.cumsum(1); cudaMemcpy(t_result_gpu.data(), d_t_result, t_result_bytes, cudaMemcpyDeviceToHost); - for (size_t i = 0; i < t_result.size(); i++) { + for (DenseIndex i = 0; i < t_result.size(); i++) { if (fabs(t_result(i) - t_result_gpu(i)) < 1e-4f) { continue; } |