diff --git a/kokkos-testing/fd_catalog/CMakeLists.txt b/kokkos-testing/fd_catalog/CMakeLists.txt index f1af9fdc9f938a54535c74b28c5571faaa1cd6af..8d3d2f2493c4b30d8d3f7b544274d3eacc8d90d7 100644 --- a/kokkos-testing/fd_catalog/CMakeLists.txt +++ b/kokkos-testing/fd_catalog/CMakeLists.txt @@ -8,11 +8,6 @@ set (CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${CMAKE_CURRENT_SOURCE_DIR}/cmake) set(CMAKE_CXX_STANDARD 14) set(CMAKE_CXX_STANDARD_REQUIRED ON) -set(THREADS_PREFER_PTHREAD_FLAG ON) -find_package(Threads REQUIRED) -set(LINK_LIBS ${LINK_LIBS} Threads::Threads) - - ###################################################################### if (CMAKE_CXX_COMPILER_ID MATCHES "Clang") set(COMPILER_IS_CLANG TRUE) @@ -24,6 +19,13 @@ elseif (CMAKE_CXX_COMPILER_ID STREQUAL "PGI") set(COMPILER_IS_PGI) endif () + +set(THREADS_PREFER_PTHREAD_FLAG ON) +find_package(Threads REQUIRED) +if (COMPILER_IS_CLANG OR COMPILER_IS_INTEL OR COMPILER_IS_GNU) + set(LINK_LIBS ${LINK_LIBS} Threads::Threads) +endif() + find_package(SILO) if (SILO_FOUND) add_definitions(-DHAVE_SILO) @@ -138,7 +140,17 @@ endif() option(ENABLE_OPENMP "Enable OpenMP" OFF) if (ENABLE_OPENMP) - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fopenmp") + if (CMAKE_CXX_COMPILER_ID STREQUAL "Clang" OR CMAKE_CXX_COMPILER_ID STREQUAL "AppleClang") + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fopenmp") + endif() + + if (CMAKE_CXX_COMPILER_ID STREQUAL "Intel") + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -qopenmp") + endif() + + if (CMAKE_CXX_COMPILER_ID STREQUAL "GNU") + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fopenmp") + endif() endif() set(CMAKE_CXX_FLAGS_DEBUG "-g") diff --git a/kokkos-testing/fd_catalog/fd_kokkos.cpp b/kokkos-testing/fd_catalog/fd_kokkos.cpp index 338d388e1426a625164c9be4be96c29ce21b673d..824cd636e9f86425e1e66d9fd45d527022e83966 100644 --- a/kokkos-testing/fd_catalog/fd_kokkos.cpp +++ b/kokkos-testing/fd_catalog/fd_kokkos.cpp @@ -188,6 +188,7 @@ double solve_kokkos(wave_equation_context_kokkos<T>& wec) static const T w4 = -1.0/560.0; static const T w[9] = { w4, w3, w2, w1, w0, w1, w2, w3, w4 }; + /* Find a way to disable this when compiling Kokkos/GPU */ #ifdef DISALLOW_DENORMALS _MM_SET_FLUSH_ZERO_MODE(_MM_FLUSH_ZERO_ON); _MM_SET_DENORMALS_ZERO_MODE(_MM_DENORMALS_ZERO_ON);