Fix RAJA > v0.14.1 compatibility
This commit is contained in:
parent
7643de8d09
commit
e81f6c2889
@ -8,6 +8,8 @@ register_flag_optional(RAJA_IN_TREE
|
|||||||
Make sure to use the release version of RAJA or clone RAJA recursively with submodules.
|
Make sure to use the release version of RAJA or clone RAJA recursively with submodules.
|
||||||
Remember to append RAJA specific flags as well, for example:
|
Remember to append RAJA specific flags as well, for example:
|
||||||
-DRAJA_IN_TREE=... -DENABLE_OPENMP=ON -DENABLE_CUDA=ON ...
|
-DRAJA_IN_TREE=... -DENABLE_OPENMP=ON -DENABLE_CUDA=ON ...
|
||||||
|
For RAJA >= v2022.03.0, remember to use the RAJA prefixed CMake options:
|
||||||
|
-DRAJA_IN_TREE=... -DRAJA_ENABLE_OPENMP=ON -DRAJA_ENABLE_CUDA=ON ...
|
||||||
See https://github.com/LLNL/RAJA/blob/08cbbafd2d21589ebf341f7275c229412d0fe903/CMakeLists.txt#L44 for all available options
|
See https://github.com/LLNL/RAJA/blob/08cbbafd2d21589ebf341f7275c229412d0fe903/CMakeLists.txt#L44 for all available options
|
||||||
" "")
|
" "")
|
||||||
|
|
||||||
@ -20,7 +22,7 @@ register_flag_optional(TARGET
|
|||||||
CPU)
|
CPU)
|
||||||
|
|
||||||
register_flag_optional(CUDA_TOOLKIT_ROOT_DIR
|
register_flag_optional(CUDA_TOOLKIT_ROOT_DIR
|
||||||
"[TARGET==NVIDIA only] Path to the CUDA toolkit directory (e.g `/opt/cuda-11.2`) if the ENABLE_CUDA flag is specified for RAJA" "")
|
"[TARGET==NVIDIA only] Path to the CUDA toolkit directory (e.g `/opt/cuda-11.2`) if the RAJA_ENABLE_CUDA or ENABLE_CUDA flag is specified for RAJA" "")
|
||||||
|
|
||||||
# XXX CMake 3.18 supports CMAKE_CUDA_ARCHITECTURES/CUDA_ARCHITECTURES but we support older CMakes
|
# XXX CMake 3.18 supports CMAKE_CUDA_ARCHITECTURES/CUDA_ARCHITECTURES but we support older CMakes
|
||||||
register_flag_optional(CUDA_ARCH
|
register_flag_optional(CUDA_ARCH
|
||||||
@ -58,7 +60,20 @@ macro(setup)
|
|||||||
set(ENABLE_BENCHMARKS OFF CACHE BOOL "")
|
set(ENABLE_BENCHMARKS OFF CACHE BOOL "")
|
||||||
set(ENABLE_CUDA ${ENABLE_CUDA} CACHE BOOL "" FORCE)
|
set(ENABLE_CUDA ${ENABLE_CUDA} CACHE BOOL "" FORCE)
|
||||||
|
|
||||||
if (ENABLE_CUDA)
|
# RAJA >= v2022.03.0 switched to prefixed variables, we keep the legacy ones for backwards compatibiity
|
||||||
|
set(RAJA_ENABLE_TESTS OFF CACHE BOOL "")
|
||||||
|
set(RAJA_ENABLE_EXAMPLES OFF CACHE BOOL "")
|
||||||
|
set(RAJA_ENABLE_REPRODUCERS OFF CACHE BOOL "")
|
||||||
|
set(RAJA_ENABLE_EXERCISES OFF CACHE BOOL "")
|
||||||
|
set(RAJA_ENABLE_DOCUMENTATION OFF CACHE BOOL "")
|
||||||
|
set(RAJA_ENABLE_BENCHMARKS OFF CACHE BOOL "")
|
||||||
|
set(RAJA_ENABLE_CUDA ${RAJA_ENABLE_CUDA} CACHE BOOL "" FORCE)
|
||||||
|
|
||||||
|
if (ENABLE_CUDA OR RAJA_ENABLE_CUDA)
|
||||||
|
|
||||||
|
# RAJA still needs ENABLE_CUDA for internal use, so if either is on, assert both.
|
||||||
|
set(RAJA_ENABLE_CUDA ON)
|
||||||
|
set(ENABLE_CUDA ON)
|
||||||
|
|
||||||
# XXX CMake 3.18 supports CMAKE_CUDA_ARCHITECTURES/CUDA_ARCHITECTURES but we support older CMakes
|
# XXX CMake 3.18 supports CMAKE_CUDA_ARCHITECTURES/CUDA_ARCHITECTURES but we support older CMakes
|
||||||
if(POLICY CMP0104)
|
if(POLICY CMP0104)
|
||||||
@ -70,6 +85,10 @@ macro(setup)
|
|||||||
set(CMAKE_CUDA_FLAGS ${CMAKE_CUDA_FLAGS} "-forward-unknown-to-host-compiler -extended-lambda -arch=${CUDA_ARCH}" ${CUDA_EXTRA_FLAGS})
|
set(CMAKE_CUDA_FLAGS ${CMAKE_CUDA_FLAGS} "-forward-unknown-to-host-compiler -extended-lambda -arch=${CUDA_ARCH}" ${CUDA_EXTRA_FLAGS})
|
||||||
list(APPEND CMAKE_CUDA_FLAGS)
|
list(APPEND CMAKE_CUDA_FLAGS)
|
||||||
|
|
||||||
|
# See https://github.com/LLNL/RAJA/pull/1302
|
||||||
|
# And https://github.com/LLNL/RAJA/pull/1339
|
||||||
|
set(RAJA_ENABLE_VECTORIZATION OFF CACHE BOOL "")
|
||||||
|
|
||||||
message(STATUS "NVCC flags: ${CMAKE_CUDA_FLAGS}")
|
message(STATUS "NVCC flags: ${CMAKE_CUDA_FLAGS}")
|
||||||
endif ()
|
endif ()
|
||||||
|
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user