Update Kokkos library in LAMMPS to v4.1.0
This commit is contained in:
@ -11,7 +11,7 @@
|
||||
FUNCTION(KOKKOS_ENABLE_OPTION SUFFIX DEFAULT DOCSTRING)
|
||||
KOKKOS_OPTION(ENABLE_${SUFFIX} ${DEFAULT} BOOL ${DOCSTRING})
|
||||
STRING(TOUPPER ${SUFFIX} UC_NAME)
|
||||
IF (KOKKOS_ENABLE_${UC_NAME})
|
||||
IF (KOKKOS_ENABLE_${UC_NAME} AND NOT "Kokkos_ENABLE_${UC_NAME}" IN_LIST Kokkos_OPTIONS_NOT_TO_EXPORT)
|
||||
LIST(APPEND KOKKOS_ENABLED_OPTIONS ${UC_NAME})
|
||||
#I hate that CMake makes me do this
|
||||
SET(KOKKOS_ENABLED_OPTIONS ${KOKKOS_ENABLED_OPTIONS} PARENT_SCOPE)
|
||||
@ -26,19 +26,29 @@ KOKKOS_CFG_DEPENDS(OPTIONS COMPILER_ID)
|
||||
# Put a check in just in case people are using this option
|
||||
KOKKOS_DEPRECATED_LIST(OPTIONS ENABLE)
|
||||
|
||||
# Set the Default for Desul Atomics usage.
|
||||
set(_DESUL_ATOMICS_DEFAULT ON)
|
||||
|
||||
KOKKOS_ENABLE_OPTION(CUDA_RELOCATABLE_DEVICE_CODE OFF "Whether to enable relocatable device code (RDC) for CUDA")
|
||||
KOKKOS_ENABLE_OPTION(CUDA_UVM OFF "Whether to use unified memory (UM) for CUDA by default")
|
||||
KOKKOS_ENABLE_OPTION(CUDA_LDG_INTRINSIC OFF "Whether to use CUDA LDG intrinsics")
|
||||
# In contrast to other CUDA-dependent, options CUDA_LAMBDA is ON by default.
|
||||
# That is problematic when CUDA is not enabled because this not only yields a
|
||||
# bogus warning, but also exports the Kokkos_ENABLE_CUDA_LAMBDA variable and
|
||||
# sets it to ON. This if-clause is a crutch that delays the refactoring of the
|
||||
# way we declare all options until after we get rid of TriBITS.
|
||||
IF (Trilinos_ENABLE_Kokkos AND TPL_ENABLE_CUDA)
|
||||
SET(CUDA_LAMBDA_DEFAULT ON)
|
||||
ELSEIF (KOKKOS_ENABLE_CUDA)
|
||||
SET(CUDA_LAMBDA_DEFAULT ON)
|
||||
ELSE()
|
||||
SET(CUDA_LAMBDA_DEFAULT OFF)
|
||||
ENDIF()
|
||||
KOKKOS_ENABLE_OPTION(CUDA_LAMBDA ${CUDA_LAMBDA_DEFAULT} "Whether to allow lambda expressions on the device with NVCC **DEPRECATED**")
|
||||
|
||||
# As of 08/12/2021 CudaMallocAsync causes issues if UCX is used as MPI communication layer.
|
||||
KOKKOS_ENABLE_OPTION(IMPL_CUDA_MALLOC_ASYNC OFF "Whether to enable CudaMallocAsync (requires CUDA Toolkit 11.2)")
|
||||
KOKKOS_ENABLE_OPTION(DEPRECATED_CODE_3 OFF "Whether code deprecated in major release 3 is available" )
|
||||
KOKKOS_ENABLE_OPTION(DEPRECATED_CODE_4 ON "Whether code deprecated in major release 4 is available" )
|
||||
KOKKOS_ENABLE_OPTION(DEPRECATION_WARNINGS ON "Whether to emit deprecation warnings" )
|
||||
KOKKOS_ENABLE_OPTION(HIP_RELOCATABLE_DEVICE_CODE OFF "Whether to enable relocatable device code (RDC) for HIP")
|
||||
KOKKOS_ENABLE_OPTION(HPX_ASYNC_DISPATCH OFF "Whether HPX supports asynchronous dispatch")
|
||||
KOKKOS_ENABLE_OPTION(TESTS OFF "Whether to build the unit tests")
|
||||
KOKKOS_ENABLE_OPTION(BENCHMARKS OFF "Whether to build the benchmarks")
|
||||
KOKKOS_ENABLE_OPTION(EXAMPLES OFF "Whether to build the examples")
|
||||
@ -54,15 +64,12 @@ UNSET(_UPPERCASE_CMAKE_BUILD_TYPE)
|
||||
KOKKOS_ENABLE_OPTION(LARGE_MEM_TESTS OFF "Whether to perform extra large memory tests")
|
||||
KOKKOS_ENABLE_OPTION(DEBUG_BOUNDS_CHECK OFF "Whether to use bounds checking - will increase runtime")
|
||||
KOKKOS_ENABLE_OPTION(COMPILER_WARNINGS OFF "Whether to print all compiler warnings")
|
||||
KOKKOS_ENABLE_OPTION(PROFILING_LOAD_PRINT OFF "Whether to print information about which profiling tools got loaded")
|
||||
KOKKOS_ENABLE_OPTION(TUNING OFF "Whether to create bindings for tuning tools")
|
||||
KOKKOS_ENABLE_OPTION(AGGRESSIVE_VECTORIZATION OFF "Whether to aggressively vectorize loops")
|
||||
KOKKOS_ENABLE_OPTION(LAUNCH_COMPILER ON "Whether to potentially use the launch compiler")
|
||||
KOKKOS_ENABLE_OPTION(COMPILE_AS_CMAKE_LANGUAGE OFF "Whether to use native cmake language support")
|
||||
KOKKOS_ENABLE_OPTION(HIP_MULTIPLE_KERNEL_INSTANTIATIONS OFF "Whether multiple kernels are instantiated at compile time - improve performance but increase compile time")
|
||||
|
||||
# This option will go away eventually, but allows fallback to old implementation when needed.
|
||||
KOKKOS_ENABLE_OPTION(IMPL_DESUL_ATOMICS ON "Whether to use desul based atomics - option only during beta")
|
||||
KOKKOS_ENABLE_OPTION(DESUL_ATOMICS_EXTERNAL OFF "Whether to use an external desul installation")
|
||||
|
||||
KOKKOS_ENABLE_OPTION(IMPL_MDSPAN OFF "Whether to enable experimental mdspan support")
|
||||
@ -72,14 +79,6 @@ mark_as_advanced(Kokkos_ENABLE_IMPL_MDSPAN)
|
||||
mark_as_advanced(Kokkos_ENABLE_MDSPAN_EXTERNAL)
|
||||
mark_as_advanced(Kokkos_ENABLE_IMPL_SKIP_COMPILER_MDSPAN)
|
||||
|
||||
IF (Trilinos_ENABLE_Kokkos AND TPL_ENABLE_CUDA)
|
||||
SET(CUDA_LAMBDA_DEFAULT ON)
|
||||
ELSEIF (KOKKOS_ENABLE_CUDA)
|
||||
SET(CUDA_LAMBDA_DEFAULT ON)
|
||||
ELSE()
|
||||
SET(CUDA_LAMBDA_DEFAULT OFF)
|
||||
ENDIF()
|
||||
KOKKOS_ENABLE_OPTION(CUDA_LAMBDA ${CUDA_LAMBDA_DEFAULT} "Whether to activate experimental lambda features")
|
||||
IF (Trilinos_ENABLE_Kokkos)
|
||||
SET(COMPLEX_ALIGN_DEFAULT OFF)
|
||||
ELSE()
|
||||
@ -104,6 +103,13 @@ ELSE()
|
||||
ENDIF()
|
||||
KOKKOS_ENABLE_OPTION(CUDA_CONSTEXPR ${CUDA_CONSTEXPR_DEFAULT} "Whether to activate experimental relaxed constexpr functions")
|
||||
|
||||
IF (KOKKOS_ENABLE_HPX)
|
||||
SET(HPX_ASYNC_DISPATCH_DEFAULT ON)
|
||||
ELSE()
|
||||
SET(HPX_ASYNC_DISPATCH_DEFAULT OFF)
|
||||
ENDIF()
|
||||
KOKKOS_ENABLE_OPTION(IMPL_HPX_ASYNC_DISPATCH ${HPX_ASYNC_DISPATCH_DEFAULT} "Whether HPX supports asynchronous dispatch")
|
||||
|
||||
Kokkos_ENABLE_OPTION(UNSUPPORTED_ARCHS OFF "Whether to allow architectures in backends Kokkos doesn't optimize for")
|
||||
|
||||
FUNCTION(check_device_specific_options)
|
||||
@ -123,7 +129,7 @@ ENDFUNCTION()
|
||||
|
||||
CHECK_DEVICE_SPECIFIC_OPTIONS(DEVICE CUDA OPTIONS CUDA_UVM CUDA_RELOCATABLE_DEVICE_CODE CUDA_LAMBDA CUDA_CONSTEXPR CUDA_LDG_INTRINSIC)
|
||||
CHECK_DEVICE_SPECIFIC_OPTIONS(DEVICE HIP OPTIONS HIP_RELOCATABLE_DEVICE_CODE)
|
||||
CHECK_DEVICE_SPECIFIC_OPTIONS(DEVICE HPX OPTIONS HPX_ASYNC_DISPATCH)
|
||||
CHECK_DEVICE_SPECIFIC_OPTIONS(DEVICE HPX OPTIONS IMPL_HPX_ASYNC_DISPATCH)
|
||||
|
||||
# Needed due to change from deprecated name to new header define name
|
||||
IF (KOKKOS_ENABLE_AGGRESSIVE_VECTORIZATION)
|
||||
@ -166,3 +172,17 @@ IF(Kokkos_ENABLE_CUDA_LDG_INTRINSIC)
|
||||
MESSAGE(FATAL_ERROR "Kokkos_ENABLE_CUDA_LDG_INTRINSIC has been removed. LDG intrinsics are always enabled.")
|
||||
ENDIF()
|
||||
ENDIF()
|
||||
IF(Kokkos_ENABLE_CUDA AND NOT Kokkos_ENABLE_CUDA_LAMBDA)
|
||||
IF(KOKKOS_ENABLE_DEPRECATED_CODE_4)
|
||||
MESSAGE(DEPRECATION "Setting Kokkos_ENABLE_CUDA_LAMBDA is deprecated. Lambda expressions in device code are always enabled. Forcing -DKokkos_ENABLE_CUDA_LAMBDA=ON")
|
||||
set(Kokkos_ENABLE_CUDA_LAMBDA ON CACHE BOOL "Kokkos turned Cuda lambda support ON!" FORCE)
|
||||
set(KOKKOS_ENABLE_CUDA_LAMBDA ON)
|
||||
ELSE()
|
||||
MESSAGE(FATAL_ERROR "Kokkos_ENABLE_CUDA_LAMBDA has been removed. Lambda expressions in device code always enabled.")
|
||||
ENDIF()
|
||||
ENDIF()
|
||||
|
||||
|
||||
IF(DEFINED Kokkos_ENABLE_IMPL_DESUL_ATOMICS)
|
||||
MESSAGE(WARNING "Kokkos_ENABLE_IMPL_DESUL_ATOMICS option has been removed. Desul atomics cannot be disabled.")
|
||||
ENDIF()
|
||||
|
||||
Reference in New Issue
Block a user