diff --git a/CMakeLists.txt b/CMakeLists.txt index 66d3ef91dab94bf1dd9aa4a7f865e338f6c96c0b..e7e0a17c5cdbde969cffcfb5f4674088d74e3b56 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -9,6 +9,8 @@ list(APPEND CMAKE_MODULE_PATH ${CMAKE_CURRENT_LIST_DIR}/cmake_modules/ /opt/rocm set (CMAKE_CXX_STANDARD 14) set (CMAKE_CUDA_STANDARD 14) +set (ENV{BOOST_ROOT} ${BOOST_ROOT}) +set (Boost_NO_BOOST_CMAKE OFF) find_package(Boost 1.72.0 REQUIRED COMPONENTS unit_test_framework iostreams program_options OPTIONAL_COMPONENTS fiber context) find_package(OpenMP) @@ -27,7 +29,6 @@ if (CUDA_ON_BACKEND STREQUAL "HIP" AND NOT HIP_FOUND) if (CUDA_ON_BACKEND="HIP") set(CMAKE_CXX_EXTENSIONS OFF) endif() - set(DEFINE_CUDA_GPU "#define CUDA_GPU" PARENT_SCOPE) set(DEFINE_CUDA_GPU "#define CUDA_GPU") endif() @@ -37,44 +38,26 @@ if (CUDA_ON_BACKEND STREQUAL "CUDA") find_package(CUDA) if (CUDA_VERSION_MAJOR EQUAL 9 AND CUDA_VERSION_MINOR EQUAL 2) message("CUDA is compatible 9.2") - 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 PARENT_SCOPE) - set(WARNING_SUPPRESSION_AND_OPTION_NVCC_TEXT "-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 " PARENT_SCOPE) elseif ( CUDA_VERSION_MAJOR EQUAL 10 AND CUDA_VERSION_MINOR EQUAL 1 ) message("CUDA is compatible 10.1") - set(WARNING_SUPPRESSION_AND_OPTION_NVCC -Xcudafe "--display_error_number --diag_suppress=2931 --diag_suppress=2930 --diag_suppress=2929 --diag_suppress=2928 --diag_suppress=2915 --diag_suppress=2912 --diag_suppress=2913 --diag_suppress=111 --diag_suppress=186 --diag_suppress=611 --diag_suppress=128" --expt-extended-lambda PARENT_SCOPE) - set(WARNING_SUPPRESSION_AND_OPTION_NVCC_TEXT "-Xcudafe \"--display_error_number --display_error_number --diag_suppress=2931 --diag_suppress=2930 --diag_suppress=2929 --diag_suppress=2928 --diag_suppress=2915 --diag_suppress=2912 --diag_suppress=2913 --diag_suppress=111 --diag_suppress=186 --diag_suppress=611 --diag_suppress=128 \" --expt-extended-lambda" PARENT_SCOPE) elseif ( CUDA_VERSION_MAJOR EQUAL 10 AND CUDA_VERSION_MINOR EQUAL 2 ) message("CUDA is compatible 10.2") - set(WARNING_SUPPRESSION_AND_OPTION_NVCC -Xcudafe "--display_error_number --diag_suppress=2976 --diag_suppress=2977 --diag_suppress=2978 --diag_suppress=2979 --diag_suppress=1835 --diag_suppress=611 --diag_suppress=186 --diag_suppress=128" --expt-extended-lambda PARENT_SCOPE) - set(WARNING_SUPPRESSION_AND_OPTION_NVCC_TEXT "-Xcudafe \"--display_error_number --diag_suppress=2976 --diag_suppress=2977 --diag_suppress=2978 --diag_suppress=2979 --diag_suppress=1835 --diag_suppress=611 --diag_suppress=186 --diag_suppress=128\" --expt-extended-lambda" PARENT_SCOPE) elseif ( CUDA_VERSION_MAJOR EQUAL 11 AND CUDA_VERSION_MINOR EQUAL 0 ) message("CUDA is compatible 11.0") - set(WARNING_SUPPRESSION_AND_OPTION_NVCC -Xcudafe "--display_error_number --diag_suppress=3056 --diag_suppress=3057 --diag_suppress=3058 --diag_suppress=3059 --diag_suppress=611 --diag_suppress=186 --diag_suppress=128" --expt-extended-lambda PARENT_SCOPE) - set(WARNING_SUPPRESSION_AND_OPTION_NVCC_TEXT "-Xcudafe \"--display_error_number --diag_suppress=3056 --diag_suppress=3057 --diag_suppress=3058 --diag_suppress=3059 --diag_suppress=611 --diag_suppress=186 --diag_suppress=128\" --expt-extended-lambda" PARENT_SCOPE) elseif ( CUDA_VERSION_MAJOR EQUAL 11 AND CUDA_VERSION_MINOR EQUAL 1 ) message("CUDA is compatible 11.1") - set(WARNING_SUPPRESSION_AND_OPTION_NVCC -Xcudafe "--display_error_number --diag_suppress=3124 --diag_suppress=3126 --diag_suppress=3125 --diag_suppress=3123 --diag_suppress=611 --diag_suppress=186 --diag_suppress=128" --expt-extended-lambda PARENT_SCOPE) - set(WARNING_SUPPRESSION_AND_OPTION_NVCC_TEXT "-Xcudafe \"--display_error_number --diag_suppress=3124 --diag_suppress=3126 --diag_suppress=3125 --diag_suppress=3123 --diag_suppress=611 --diag_suppress=186 --diag_suppress=128\" --expt-extended-lambda" PARENT_SCOPE) elseif ( CUDA_VERSION_MAJOR EQUAL 11 AND (CUDA_VERSION_MINOR EQUAL 2 OR CUDA_VERSION_MINOR EQUAL 3 OR CUDA_VERSION_MINOR EQUAL 4 )) message("CUDA is compatible 11.2/3/4") - set(WARNING_SUPPRESSION_AND_OPTION_NVCC -Xcudafe "--display_error_number --diag_suppress=20014 --diag_suppress=20013 --diag_suppress=20012 --diag_suppress=20011 --diag_suppress=611 --diag_suppress=550 --diag_suppress=186 --diag_suppress=128" --expt-extended-lambda PARENT_SCOPE) - set(WARNING_SUPPRESSION_AND_OPTION_NVCC_TEXT "-Xcudafe \"--display_error_number --diag_suppress=20014 --diag_suppress=20013 --diag_suppress=20012 --diag_suppress=20011 --diag_suppress=611 --diag_suppress=550 --diag_suppress=186 --diag_suppress=128\" --expt-extended-lambda" PARENT_SCOPE) else() message(FATAL_ERROR "CUDA is incompatible, version 9.2 10.1 10.2 11.1 11.2 11.3 11.4 is only supported") endif() - set(DEFINE_CUDIFY_BACKEND "#define CUDIFY_USE_CUDA" PARENT_SCOPE) set(DEFINE_CUDIFY_BACKEND "#define CUDIFY_USE_CUDA") - set(DEFINE_CUDA_GPU "#define CUDA_GPU" PARENT_SCOPE) set(DEFINE_CUDA_GPU "#define CUDA_GPU") elseif (CUDA_ON_BACKEND STREQUAL "OpenMP") - set(DEFINE_CUDIFY_BACKEND "#define CUDIFY_USE_OPENMP" PARENT_SCOPE) set(DEFINE_CUDIFY_BACKEND "#define CUDIFY_USE_OPENMP") - set(DEFINE_CUDA_GPU "#define CUDA_GPU" PARENT_SCOPE) set(DEFINE_CUDA_GPU "#define CUDA_GPU") elseif (CUDA_ON_BACKEND STREQUAL "SEQUENTIAL") - set(DEFINE_CUDIFY_BACKEND "#define CUDIFY_USE_SEQUENTIAL" PARENT_SCOPE) set(DEFINE_CUDIFY_BACKEND "#define CUDIFY_USE_SEQUENTIAL") - set(DEFINE_CUDA_GPU "#define CUDA_GPU" PARENT_SCOPE) set(DEFINE_CUDA_GPU "#define CUDA_GPU") else() find_package(alpaka) @@ -83,43 +66,32 @@ endif() ###### CONFIG.h FILE ###### if(HIP_FOUND) - set(DEFINE_HIP_GPU "#define HIP_GPU" PARENT_SCOPE) - set(DEFINE_CUDIFY_USE_HIP "#define CUDIFY_USE_HIP" PARENT_SCOPE) set(DEFINE_HIP_GPU "#define HIP_GPU") set(DEFINE_CUDIFY_USE_HIP "#define CUDIFY_USE_HIP") endif() if (Boost_FOUND) - set(DEFINE_HAVE_BOOST "#define HAVE_BOOST" PARENT_SCOPE) - set(DEFINE_HAVE_BOOST_IOSTREAMS "#define HAVE_BOOST_IOSTREAMS" PARENT_SCOPE) - set(DEFINE_HAVE_BOOST_PROGRAM_OPTIONS "#define HAVE_BOOST_PROGRAM_OPTIONS" PARENT_SCOPE) - set(DEFINE_HAVE_BOOST_UNIT_TEST_FRAMEWORK "#define HAVE_BOOST_UNIT_TEST_FRAMEWORK" PARENT_SCOPE) set(DEFINE_HAVE_BOOST "#define HAVE_BOOST") set(DEFINE_HAVE_BOOST_IOSTREAMS "#define HAVE_BOOST_IOSTREAMS") set(DEFINE_HAVE_BOOST_PROGRAM_OPTIONS "#define HAVE_BOOST_PROGRAM_OPTIONS") set(DEFINE_HAVE_BOOST_UNIT_TEST_FRAMEWORK "#define HAVE_BOOST_UNIT_TEST_FRAMEWORK") if (Boost_CONTEXT_FOUND) - set(DEFINE_HAVE_BOOST_CONTEXT "#define HAVE_BOOST_CONTEXT" PARENT_SCOPE) set(DEFINE_HAVE_BOOST_CONTEXT "#define HAVE_BOOST_CONTEXT") set(OPTIONAL_BOOST_LIBS "-lboost_context") endif() if (Boost_FIBER_FOUND) - set(DEFINE_HAVE_BOOST_FIBER "#define HAVE_BOOST_FIBER" PARENT_SCOPE) set(DEFINE_HAVE_BOOST_FIBER "#define HAVE_BOOST_FIBER") string(CONCAT OPTIONAL_BOOST_LIBS ${OPTIONAL_BOOST_LIBS} " -lboost_fiber") endif() - set(OPTIONAL_BOOST_LIBS ${OPTIONAL_BOOST_LIBS} PARENT_SCOPE) endif() if (OPENMP_FOUND) - set(DEFINE_HAVE_OPENMP "#define HAVE_OPENMP" PARENT_SCOPE) set(DEFINE_HAVE_OPENMP "#define HAVE_OPENMP") endif() if (ALPAKA_ROOT) - set(DEFINE_HAVE_ALPAKA "#define HAVE_ALPAKA" PARENT_SCOPE) set(DEFINE_HAVE_ALPAKA "#define HAVE_ALPAKA") endif() @@ -158,3 +130,23 @@ configure_file(${CMAKE_CURRENT_SOURCE_DIR}/src/config/config_cmake.h.in ${CMAKE_ add_subdirectory (src) +get_directory_property(hasParent PARENT_DIRECTORY) +if(hasParent) + set(DEFINE_CUDA_GPU ${DEFINE_CUDA_GPU} PARENT_SCOPE) + set(WARNING_SUPPRESSION_AND_OPTION_NVCC ${WARNING_SUPPRESSION_AND_OPTION_NVCC} PARENT_SCOPE) + set(WARNING_SUPPRESSION_AND_OPTION_NVCC_TEXT ${WARNING_SUPPRESSION_AND_OPTION_NVCC_TEXT} PARENT_SCOPE) + set(DEFINE_HIP_GPU ${DEFINE_HIP_GPU} PARENT_SCOPE) + set(DEFINE_CUDIFY_USE_HIP ${DEFINE_CUDIFY_USE_HIP} PARENT_SCOPE) + set(DEFINE_HAVE_BOOST ${DEFINE_HAVE_BOOST} PARENT_SCOPE) + set(DEFINE_HAVE_BOOST_IOSTREAMS ${DEFINE_HAVE_BOOST_IOSTREAMS} PARENT_SCOPE) + set(DEFINE_HAVE_BOOST_PROGRAM_OPTIONS ${DEFINE_HAVE_BOOST_PROGRAM_OPTIONS} PARENT_SCOPE) + set(DEFINE_HAVE_BOOST_UNIT_TEST_FRAMEWORK ${DEFINE_HAVE_BOOST_UNIT_TEST_FRAMEWORK} PARENT_SCOPE) + set(DEFINE_HAVE_BOOST_CONTEXT ${DEFINE_HAVE_BOOST_CONTEXT} PARENT_SCOPE) + set(DEFINE_HAVE_BOOST_FIBER ${DEFINE_HAVE_BOOST_FIBER} PARENT_SCOPE) + set(DEFINE_CUDIFY_BACKEND ${DEFINE_CUDIFY_BACKEND} PARENT_SCOPE) + set(DEFINE_CUDA_GPU ${DEFINE_CUDA_GPU} PARENT_SCOPE) + set(OPTIONAL_BOOST_LIBS ${OPTIONAL_BOOST_LIBS} PARENT_SCOPE) + set(DEFINE_HAVE_OPENMP ${DEFINE_HAVE_OPENMP} PARENT_SCOPE) + set(DEFINE_HAVE_ALPAKA ${DEFINE_HAVE_ALPAKA} PARENT_SCOPE) +endif() + diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 59cf7a5b45aa82973d3153562bffc597d15ae771..0b36892a08b0b949bf280056958111b610253a01 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -37,10 +37,11 @@ if ( CUDA_ON_BACKEND STREQUAL "HIP" AND HIP_FOUND ) else() add_executable(mem main.cpp memory/HeapMemory.cpp util/cudify/cudify_vars.cpp util/cudify/cudify_unit_test.cu memory/mem_conf.cpp ${CUDA_SOURCES} ${CUDA_SOURCES_TEST}) - + set_property(TARGET mem PROPERTY CUDA_ARCHITECTURES OFF) add_library(ofpmmemory STATIC memory/HeapMemory.cpp util/cudify/cudify_vars.cpp memory/PtrMemory.cpp memory/mem_conf.cpp ${CUDA_SOURCES}) + set_property(TARGET ofpmmemory PROPERTY CUDA_ARCHITECTURES OFF) add_library(ofpmmemory_dl SHARED memory/HeapMemory.cpp util/cudify/cudify_vars.cpp memory/PtrMemory.cpp memory/mem_conf.cpp ${CUDA_SOURCES}) - + set_property(TARGET ofpmmemory_dl PROPERTY CUDA_ARCHITECTURES OFF) endif() set_property(TARGET mem PROPERTY CUDA_ARCHITECTURES OFF) @@ -53,9 +54,6 @@ if (HIP_FOUND) SET(CMAKE_SHARED_LINKER_FLAGS "--amdgpu-target=${AMD_ARCH_COMPILE}") endif() -if(OpenMP_CXX_FOUND) - target_compile_options(mem PUBLIC ${OpenMP_CXX_FLAGS}) -endif() if ( CMAKE_COMPILER_IS_GNUCC ) target_compile_options(mem PRIVATE "-Wno-deprecated-declarations")