From 15b8a504e379fb0fe44f85735ca3e9a2bd6a2f00 Mon Sep 17 00:00:00 2001 From: Pietro Incardona <incardon@mpi-cbg.de> Date: Thu, 21 Mar 2019 13:26:57 +0100 Subject: [PATCH] Fixing for CUDA 10 --- CMakeLists.txt | 12 ++++++++++++ src/CMakeLists.txt | 2 +- src/VCluster/VCluster_base.hpp | 8 ++++---- 3 files changed, 17 insertions(+), 5 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 55a6a54..47d4854 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -17,6 +17,18 @@ set (CMAKE_CUDA_STANDARD 11) if (ENABLE_GPU) enable_language(CUDA) find_package(CUDA) + + if (CUDA_VERSION_MAJOR EQUAL 9 AND CUDA_VERSION_MINOR EQUAL 2) + message("CUDA is compatible") + set(WARNING_SUPPRESSION_AND_OPTION_NVCC -Xcudafe "--display_error_number --diag_suppress=611 --diag_suppress=2885 --diag_suppress=2886 --diag_suppress=2887 --diag_suppress=2888 --diag_suppress=186 --diag_suppress=111" --expt-extended-lambda) + elseif ( CUDA_VERSION_MAJOR EQUAL 10 AND CUDA_VERSION_MINOR EQUAL 1 ) + message("CUDA is compatible") + set(WARNING_SUPPRESSION_AND_OPTION_NVCC -Xcudafe "--display_error_number --diag_suppress=2915 --diag_suppress=2912 --diag_suppress=2913 --diag_suppress=111 --diag_suppress=186 --diag_suppress=611 " --expt-extended-lambda) + + else() + message(FATAL_ERROR "CUDA is incompatible, version 9.2 is only supported") + endif() + endif() find_package(Boost 1.66.0 REQUIRED COMPONENTS unit_test_framework iostreams program_options) diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 8b0dc66..e3e1dbc 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -20,7 +20,7 @@ add_library(vcluster STATIC VCluster/VCluster.cpp) ########################### if(CUDA_FOUND) - target_compile_options(vcluster_test PUBLIC $<$<COMPILE_LANGUAGE:CUDA>:-Xcudafe "--display_error_number --diag_suppress=611 --diag_suppress=2885 --diag_suppress=2886 --diag_suppress=2887 --diag_suppress=2888 --diag_suppress=186 --diag_suppress=111" --expt-extended-lambda>) + target_compile_options(vcluster_test PUBLIC $<$<COMPILE_LANGUAGE:CUDA>: ${WARNING_SUPPRESSION_AND_OPTION_NVCC} >) target_include_directories (vcluster_test PUBLIC ${MPI_C_INCLUDE_DIRS}) if (TEST_COVERAGE) target_compile_options(mem PRIVATE $<$<COMPILE_LANGUAGE:CUDA>: -Xcompiler "-fprofile-arcs -ftest-coverage">) diff --git a/src/VCluster/VCluster_base.hpp b/src/VCluster/VCluster_base.hpp index 1ace18b..a6588d9 100644 --- a/src/VCluster/VCluster_base.hpp +++ b/src/VCluster/VCluster_base.hpp @@ -320,19 +320,19 @@ public: // if T is a primitive like int, long int, float, double, ... make sense // (pointers, l-references and r-references are not fundamentals) if (std::is_fundamental<T>::value == true) - return; + {return;} // if it is a pointer make no sense if (std::is_pointer<T>::value == true) - std::cerr << "Error: " << __FILE__ << ":" << __LINE__ << " the type " << demangle(typeid(T).name()) << " is a pointer, sending pointers values has no sense\n"; + {std::cerr << "Error: " << __FILE__ << ":" << __LINE__ << " the type " << demangle(typeid(T).name()) << " is a pointer, sending pointers values has no sense\n";} // if it is an l-value reference make no send if (std::is_lvalue_reference<T>::value == true) - std::cerr << "Error: " << __FILE__ << ":" << __LINE__ << " the type " << demangle(typeid(T).name()) << " is a pointer, sending pointers values has no sense\n"; + {std::cerr << "Error: " << __FILE__ << ":" << __LINE__ << " the type " << demangle(typeid(T).name()) << " is a pointer, sending pointers values has no sense\n";} // if it is an r-value reference make no send if (std::is_rvalue_reference<T>::value == true) - std::cerr << "Error: " << __FILE__ << ":" << __LINE__ << " the type " << demangle(typeid(T).name()) << " is a pointer, sending pointers values has no sense\n"; + {std::cerr << "Error: " << __FILE__ << ":" << __LINE__ << " the type " << demangle(typeid(T).name()) << " is a pointer, sending pointers values has no sense\n";} // ... if not, check that T has a method called noPointers switch (check_no_pointers<T>::value()) -- GitLab