Update Kokkos library in LAMMPS to v3.3.0
This commit is contained in:
@ -25,6 +25,18 @@ IF (KOKKOS_ENABLE_PTHREAD)
|
||||
SET(KOKKOS_ENABLE_THREADS ON)
|
||||
ENDIF()
|
||||
|
||||
# detect clang++ / cl / clang-cl clashes
|
||||
IF (CMAKE_CXX_COMPILER_ID STREQUAL Clang AND "x${CMAKE_CXX_SIMULATE_ID}" STREQUAL "xMSVC")
|
||||
# this specific test requires CMake >= 3.15
|
||||
IF ("x${CMAKE_CXX_COMPILER_FRONTEND_VARIANT}" STREQUAL "xGNU")
|
||||
# use pure clang++ instead of clang-cl
|
||||
SET(KOKKOS_COMPILER_CLANG_MSVC OFF)
|
||||
ELSE()
|
||||
# it defaults to clang-cl
|
||||
SET(KOKKOS_COMPILER_CLANG_MSVC ON)
|
||||
ENDIF()
|
||||
ENDIF()
|
||||
|
||||
IF(Trilinos_ENABLE_Kokkos AND Trilinos_ENABLE_OpenMP)
|
||||
SET(OMP_DEFAULT ON)
|
||||
ELSE()
|
||||
@ -39,13 +51,16 @@ IF(KOKKOS_ENABLE_OPENMP)
|
||||
IF(KOKKOS_CLANG_IS_INTEL)
|
||||
SET(ClangOpenMPFlag -fiopenmp)
|
||||
ENDIF()
|
||||
IF(KOKKOS_CXX_COMPILER_ID STREQUAL Clang AND "x${CMAKE_CXX_SIMULATE_ID}" STREQUAL "xMSVC")
|
||||
#expression /openmp yields error, so add a specific Clang flag
|
||||
COMPILER_SPECIFIC_OPTIONS(Clang /clang:-fopenmp)
|
||||
#link omp library from LLVM lib dir
|
||||
IF(KOKKOS_COMPILER_CLANG_MSVC)
|
||||
#for clang-cl expression /openmp yields an error, so directly add the specific Clang flag
|
||||
SET(ClangOpenMPFlag /clang:-fopenmp=libomp)
|
||||
ENDIF()
|
||||
IF(WIN32 AND CMAKE_CXX_COMPILER_ID STREQUAL Clang)
|
||||
#link omp library from LLVM lib dir, no matter if it is clang-cl or clang++
|
||||
get_filename_component(LLVM_BIN_DIR ${CMAKE_CXX_COMPILER_AR} DIRECTORY)
|
||||
COMPILER_SPECIFIC_LIBS(Clang "${LLVM_BIN_DIR}/../lib/libomp.lib")
|
||||
ELSEIF(KOKKOS_CXX_COMPILER_ID STREQUAL NVIDIA)
|
||||
ENDIF()
|
||||
IF(KOKKOS_CXX_COMPILER_ID STREQUAL NVIDIA)
|
||||
COMPILER_SPECIFIC_FLAGS(
|
||||
COMPILER_ID KOKKOS_CXX_HOST_COMPILER_ID
|
||||
Clang -Xcompiler ${ClangOpenMPFlag}
|
||||
@ -71,7 +86,7 @@ ENDIF()
|
||||
|
||||
KOKKOS_DEVICE_OPTION(OPENMPTARGET OFF DEVICE "Whether to build the OpenMP target backend")
|
||||
IF (KOKKOS_ENABLE_OPENMPTARGET)
|
||||
SET(ClangOpenMPFlag -fopenmp=libomp)
|
||||
SET(ClangOpenMPFlag -fopenmp=libomp)
|
||||
IF(KOKKOS_CLANG_IS_CRAY)
|
||||
SET(ClangOpenMPFlag -fopenmp)
|
||||
ENDIF()
|
||||
@ -105,9 +120,11 @@ KOKKOS_DEVICE_OPTION(CUDA ${CUDA_DEFAULT} DEVICE "Whether to build CUDA backend"
|
||||
|
||||
IF (KOKKOS_ENABLE_CUDA)
|
||||
GLOBAL_SET(KOKKOS_DONT_ALLOW_EXTENSIONS "CUDA enabled")
|
||||
IF(WIN32)
|
||||
IF(WIN32 AND NOT KOKKOS_CXX_COMPILER_ID STREQUAL Clang)
|
||||
GLOBAL_APPEND(KOKKOS_COMPILE_OPTIONS -x cu)
|
||||
ENDIF()
|
||||
## Cuda has extra setup requirements, turn on Kokkos_Setup_Cuda.hpp in macros
|
||||
LIST(APPEND DEVICE_SETUP_LIST Cuda)
|
||||
ENDIF()
|
||||
|
||||
# We want this to default to OFF for cache reasons, but if no
|
||||
@ -128,3 +145,10 @@ KOKKOS_DEVICE_OPTION(SERIAL ${SERIAL_DEFAULT} HOST "Whether to build serial back
|
||||
KOKKOS_DEVICE_OPTION(HPX OFF HOST "Whether to build HPX backend (experimental)")
|
||||
|
||||
KOKKOS_DEVICE_OPTION(HIP OFF DEVICE "Whether to build HIP backend")
|
||||
|
||||
## HIP has extra setup requirements, turn on Kokkos_Setup_HIP.hpp in macros
|
||||
IF (KOKKOS_ENABLE_HIP)
|
||||
LIST(APPEND DEVICE_SETUP_LIST HIP)
|
||||
ENDIF()
|
||||
|
||||
KOKKOS_DEVICE_OPTION(SYCL OFF DEVICE "Whether to build SYCL backend")
|
||||
|
||||
Reference in New Issue
Block a user