From 73220d2bb044e5f01b3eee4838c5b32ca679f027 Mon Sep 17 00:00:00 2001 From: Eugene Brevdo Date: Tue, 8 Mar 2016 17:28:21 -0800 Subject: Resolve bad merge. --- cmake/EigenTesting.cmake | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) (limited to 'cmake/EigenTesting.cmake') diff --git a/cmake/EigenTesting.cmake b/cmake/EigenTesting.cmake index 5022397a7..5ca800cfe 100644 --- a/cmake/EigenTesting.cmake +++ b/cmake/EigenTesting.cmake @@ -19,12 +19,15 @@ macro(ei_add_test_internal testname testname_with_suffix) endif() if(EIGEN_ADD_TEST_FILENAME_EXTENSION STREQUAL cu) - cuda_add_executable(${targetname} ${filename}) + if (${ARGC} GREATER 2) + cuda_add_executable(${targetname} ${filename} OPTIONS ${ARGV2}) + else() + cuda_add_executable(${targetname} ${filename}) + endif() else() add_executable(${targetname} ${filename}) endif() - if (targetname MATCHES "^eigen2_") add_dependencies(eigen2_buildtests ${targetname}) else() -- cgit v1.2.3 From bb0e73c1914c675755e8fab2a6db168b65a4de51 Mon Sep 17 00:00:00 2001 From: Benoit Steiner Date: Fri, 18 Mar 2016 12:17:37 -0700 Subject: Gate all the CUDA tests under the EIGEN_TEST_NVCC option --- cmake/EigenTesting.cmake | 6 ++++++ unsupported/test/CMakeLists.txt | 2 +- 2 files changed, 7 insertions(+), 1 deletion(-) (limited to 'cmake/EigenTesting.cmake') diff --git a/cmake/EigenTesting.cmake b/cmake/EigenTesting.cmake index 5ca800cfe..c70ec2c24 100644 --- a/cmake/EigenTesting.cmake +++ b/cmake/EigenTesting.cmake @@ -309,6 +309,12 @@ macro(ei_testing_print_summary) message(STATUS "C++11: OFF") endif() + if(EIGEN_TEST_NVCC) + message(STATUS "CUDA: ON") + else() + message(STATUS "CUDA: OFF") + endif() + endif() # vectorization / alignment options message(STATUS "\n${EIGEN_TESTING_SUMMARY}") diff --git a/unsupported/test/CMakeLists.txt b/unsupported/test/CMakeLists.txt index 79c26fb72..19893cc25 100644 --- a/unsupported/test/CMakeLists.txt +++ b/unsupported/test/CMakeLists.txt @@ -174,7 +174,7 @@ endif() # These tests needs nvcc find_package(CUDA 7.0) -if(CUDA_FOUND) +if(CUDA_FOUND AND EIGEN_TEST_NVCC) # Mke sure to compile without the -pedantic and -Wundef flags since they trigger thousands of compilation warnings in the CUDA runtime string(REPLACE "-pedantic" "" CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}") string(REPLACE "-Wundef" "" CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}") -- cgit v1.2.3 From a9a6710e151ccd5d4fa9a6178db4413ed0c74911 Mon Sep 17 00:00:00 2001 From: Konstantinos Margaritis Date: Mon, 21 Mar 2016 13:46:47 -0400 Subject: add initial s390x(zEC13) ZVECTOR support --- CMakeLists.txt | 6 +++++- cmake/EigenTesting.cmake | 10 +++++++++- 2 files changed, 14 insertions(+), 2 deletions(-) (limited to 'cmake/EigenTesting.cmake') diff --git a/CMakeLists.txt b/CMakeLists.txt index 95f4c8d7c..51beba118 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -250,7 +250,11 @@ if(NOT MSVC) message(STATUS "Enabling NEON in tests/examples") endif() - + option(EIGEN_TEST_ZVECTOR "Enable/Disable S390X(zEC13) ZVECTOR in tests/examples" OFF) + if(EIGEN_TEST_ZVECTOR) + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -march=z13 -mzvector") + message(STATUS "Enabling S390X(zEC13) ZVECTOR in tests/examples") + endif() check_cxx_compiler_flag("-fopenmp" COMPILER_SUPPORT_OPENMP) if(COMPILER_SUPPORT_OPENMP) diff --git a/cmake/EigenTesting.cmake b/cmake/EigenTesting.cmake index c70ec2c24..1709e0334 100644 --- a/cmake/EigenTesting.cmake +++ b/cmake/EigenTesting.cmake @@ -302,7 +302,13 @@ macro(ei_testing_print_summary) else() message(STATUS "ARMv8 NEON: Using architecture defaults") endif() - + + if(EIGEN_TEST_ZVECTOR) + message(STATUS "S390X ZVECTOR: ON") + else() + message(STATUS "S390X ZVECTOR: Using architecture defaults") + endif() + if(EIGEN_TEST_CXX11) message(STATUS "C++11: ON") else() @@ -446,6 +452,8 @@ macro(ei_get_cxxflags VAR) set(${VAR} NEON) elseif(EIGEN_TEST_NEON64) set(${VAR} NEON) + elseif(EIGEN_TEST_ZVECTOR) + set(${VAR} ZVECTOR) elseif(EIGEN_TEST_VSX) set(${VAR} VSX) elseif(EIGEN_TEST_ALTIVEC) -- cgit v1.2.3 From 7781f865cb6cc3faff3b1dfce557439abe3b56b9 Mon Sep 17 00:00:00 2001 From: Benoit Steiner Date: Wed, 6 Apr 2016 09:35:23 -0700 Subject: Renamed the EIGEN_TEST_NVCC cmake option into EIGEN_TEST_CUDA per the discussion in bug #1173. --- cmake/EigenTesting.cmake | 2 +- test/CMakeLists.txt | 8 ++++---- unsupported/test/CMakeLists.txt | 2 +- 3 files changed, 6 insertions(+), 6 deletions(-) (limited to 'cmake/EigenTesting.cmake') diff --git a/cmake/EigenTesting.cmake b/cmake/EigenTesting.cmake index 1709e0334..d5e3972b5 100644 --- a/cmake/EigenTesting.cmake +++ b/cmake/EigenTesting.cmake @@ -315,7 +315,7 @@ macro(ei_testing_print_summary) message(STATUS "C++11: OFF") endif() - if(EIGEN_TEST_NVCC) + if(EIGEN_TEST_CUDA) message(STATUS "CUDA: ON") else() message(STATUS "CUDA: OFF") diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt index 4420e0c51..841c4572b 100644 --- a/test/CMakeLists.txt +++ b/test/CMakeLists.txt @@ -325,9 +325,9 @@ if(EIGEN_TEST_EIGEN2) endif() -# NVCC unit tests -option(EIGEN_TEST_NVCC "Enable NVCC support in unit tests" OFF) -if(EIGEN_TEST_NVCC) +# CUDA unit tests +option(EIGEN_TEST_CUDA "Enable CUDA support in unit tests" OFF) +if(EIGEN_TEST_CUDA) find_package(CUDA 5.0) if(CUDA_FOUND) @@ -345,7 +345,7 @@ if(CUDA_FOUND) endif(CUDA_FOUND) -endif(EIGEN_TEST_NVCC) +endif(EIGEN_TEST_CUDA) file(MAKE_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/failtests) diff --git a/unsupported/test/CMakeLists.txt b/unsupported/test/CMakeLists.txt index 6bd8cfb92..7972e6776 100644 --- a/unsupported/test/CMakeLists.txt +++ b/unsupported/test/CMakeLists.txt @@ -175,7 +175,7 @@ endif() # These tests needs nvcc find_package(CUDA 7.0) -if(CUDA_FOUND AND EIGEN_TEST_NVCC) +if(CUDA_FOUND AND EIGEN_TEST_CUDA) # Make sure to compile without the -pedantic, -Wundef, -Wnon-virtual-dtor # and -fno-check-new flags since they trigger thousands of compilation warnings # in the CUDA runtime -- cgit v1.2.3 From 0d2a532fc3b25199af03106b6d4ade0f92a30dfc Mon Sep 17 00:00:00 2001 From: Benoit Steiner Date: Fri, 8 Apr 2016 13:16:08 -0700 Subject: Created the new EIGEN_TEST_CUDA_CLANG option to compile the CUDA tests using clang instead of nvcc --- cmake/EigenTesting.cmake | 27 +++++++++++++++++++++++---- test/CMakeLists.txt | 11 ++++++++++- unsupported/test/CMakeLists.txt | 4 ++++ 3 files changed, 37 insertions(+), 5 deletions(-) (limited to 'cmake/EigenTesting.cmake') diff --git a/cmake/EigenTesting.cmake b/cmake/EigenTesting.cmake index d5e3972b5..6f3661921 100644 --- a/cmake/EigenTesting.cmake +++ b/cmake/EigenTesting.cmake @@ -19,10 +19,25 @@ macro(ei_add_test_internal testname testname_with_suffix) endif() if(EIGEN_ADD_TEST_FILENAME_EXTENSION STREQUAL cu) - if (${ARGC} GREATER 2) - cuda_add_executable(${targetname} ${filename} OPTIONS ${ARGV2}) + if(EIGEN_TEST_CUDA_CLANG) + set_source_files_properties(${filename} PROPERTIES LANGUAGE CXX) + if(CUDA_64_BIT_DEVICE_CODE) + link_directories("${CUDA_TOOLKIT_ROOT_DIR}/lib64") + else() + link_directories("${CUDA_TOOLKIT_ROOT_DIR}/lib") + endif() + if (${ARGC} GREATER 2) + add_executable(${targetname} ${filename}) + else() + add_executable(${targetname} ${filename} OPTIONS ${ARGV2}) + endif() + target_link_libraries(${targetname} "cudart_static" "cuda" "dl" "rt" "pthread") else() - cuda_add_executable(${targetname} ${filename}) + if (${ARGC} GREATER 2) + cuda_add_executable(${targetname} ${filename} OPTIONS ${ARGV2}) + else() + cuda_add_executable(${targetname} ${filename}) + endif() endif() else() add_executable(${targetname} ${filename}) @@ -316,7 +331,11 @@ macro(ei_testing_print_summary) endif() if(EIGEN_TEST_CUDA) - message(STATUS "CUDA: ON") + if(EIGEN_TEST_CUDA_CLANG) + message(STATUS "CUDA: ON (using clang)") + else() + message(STATUS "CUDA: ON (using nvcc)") + endif() else() message(STATUS "CUDA: OFF") endif() diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt index 841c4572b..7bed6a45c 100644 --- a/test/CMakeLists.txt +++ b/test/CMakeLists.txt @@ -327,8 +327,14 @@ endif() # CUDA unit tests option(EIGEN_TEST_CUDA "Enable CUDA support in unit tests" OFF) +option(EIGEN_TEST_CUDA_CLANG "Use clang instead of nvcc to compile the CUDA tests" OFF) + +if(EIGEN_TEST_CUDA_CLANG AND NOT CMAKE_CXX_COMPILER MATCHES "clang") + message(WARNING "EIGEN_TEST_CUDA_CLANG is set, but CMAKE_CXX_COMPILER does not appear to be clang.") +endif() + if(EIGEN_TEST_CUDA) - + find_package(CUDA 5.0) if(CUDA_FOUND) @@ -336,6 +342,9 @@ if(CUDA_FOUND) if("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang") set(CUDA_NVCC_FLAGS "-ccbin /usr/bin/clang" CACHE STRING "nvcc flags" FORCE) endif() + if(EIGEN_TEST_CUDA_CLANG) + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11 --cuda-gpu-arch=sm_30") + endif() cuda_include_directories(${CMAKE_CURRENT_BINARY_DIR}) set(EIGEN_ADD_TEST_FILENAME_EXTENSION "cu") diff --git a/unsupported/test/CMakeLists.txt b/unsupported/test/CMakeLists.txt index c6a92fe73..b1931d80a 100644 --- a/unsupported/test/CMakeLists.txt +++ b/unsupported/test/CMakeLists.txt @@ -190,6 +190,10 @@ if(CUDA_FOUND AND EIGEN_TEST_CUDA) if("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang") set(CUDA_NVCC_FLAGS "-ccbin /usr/bin/clang" CACHE STRING "nvcc flags" FORCE) endif() + if(EIGEN_TEST_CUDA_CLANG) + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11 --cuda-gpu-arch=sm_${EIGEN_CUDA_COMPUTE_ARCH}") + endif() + set(CUDA_NVCC_FLAGS "-std=c++11 --relaxed-constexpr -arch compute_${EIGEN_CUDA_COMPUTE_ARCH} -Xcudafe \"--display_error_number\"") cuda_include_directories("${CMAKE_CURRENT_BINARY_DIR}" "${CUDA_TOOLKIT_ROOT_DIR}/include") set(EIGEN_ADD_TEST_FILENAME_EXTENSION "cu") -- cgit v1.2.3