diff --git a/SetupBLT.cmake b/SetupBLT.cmake index 460c8d75c..c642a9ee5 100644 --- a/SetupBLT.cmake +++ b/SetupBLT.cmake @@ -80,6 +80,12 @@ if (NOT BLT_LOADED) cmake_policy(SET CMP0076 OLD) endif() + # Sets CUDA_ARCHITECTURES target property based on CMAKE_CUDA_ARCHITECTURES + # Policy added in 3.18+ + if(POLICY CMP0104) + cmake_policy(SET CMP0104 NEW) + endif() + ################################ # Invoke CMake Fortran setup # if ENABLE_FORTRAN == ON diff --git a/cmake/BLTMacros.cmake b/cmake/BLTMacros.cmake index a17c87ddc..ecaf31808 100644 --- a/cmake/BLTMacros.cmake +++ b/cmake/BLTMacros.cmake @@ -361,7 +361,7 @@ macro(blt_register_library) mark_as_advanced(_BLT_${uppercase_name}_IS_OBJECT_LIBRARY) # PGI does not support -isystem - if( (${arg_TREAT_INCLUDES_AS_SYSTEM}) AND (NOT "${CMAKE_CXX_COMPILER_ID}" STREQUAL "PGI")) + if( (${arg_TREAT_INCLUDES_AS_SYSTEM}) AND (NOT ${C_COMPILER_FAMILY_IS_PGI})) set(_BLT_${uppercase_name}_TREAT_INCLUDES_AS_SYSTEM TRUE CACHE BOOL "" FORCE) else() set(_BLT_${uppercase_name}_TREAT_INCLUDES_AS_SYSTEM FALSE CACHE BOOL "" FORCE) @@ -480,7 +480,7 @@ macro(blt_patch_target) endif() # PGI does not support -isystem - if( (${arg_TREAT_INCLUDES_AS_SYSTEM}) AND (NOT "${CMAKE_CXX_COMPILER_ID}" STREQUAL "PGI")) + if( (${arg_TREAT_INCLUDES_AS_SYSTEM}) AND (NOT ${C_COMPILER_FAMILY_IS_PGI})) get_target_property(_target_includes ${arg_NAME} INTERFACE_INCLUDE_DIRECTORIES) # Don't copy if the target had no include directories if(_target_includes) diff --git a/cmake/BLTPrivateMacros.cmake b/cmake/BLTPrivateMacros.cmake index 42a69037c..c454accbc 100644 --- a/cmake/BLTPrivateMacros.cmake +++ b/cmake/BLTPrivateMacros.cmake @@ -255,10 +255,13 @@ macro(blt_inherit_target_info) blt_determine_scope(TARGET ${arg_TO} OUT _scope) - get_target_property(_interface_system_includes - ${arg_FROM} INTERFACE_SYSTEM_INCLUDE_DIRECTORIES) - if ( _interface_system_includes ) - target_include_directories(${arg_TO} SYSTEM ${_scope} ${_interface_system_includes}) + # PGI does not support -isystem + if(NOT ${C_COMPILER_FAMILY_IS_PGI}) + get_target_property(_interface_system_includes + ${arg_FROM} INTERFACE_SYSTEM_INCLUDE_DIRECTORIES) + if ( _interface_system_includes ) + target_include_directories(${arg_TO} SYSTEM ${_scope} ${_interface_system_includes}) + endif() endif() get_target_property(_interface_includes diff --git a/cmake/thirdparty/SetupCUDA.cmake b/cmake/thirdparty/SetupCUDA.cmake index dfe8b4045..acd6ffbaa 100644 --- a/cmake/thirdparty/SetupCUDA.cmake +++ b/cmake/thirdparty/SetupCUDA.cmake @@ -91,6 +91,7 @@ if( ${CMAKE_VERSION} VERSION_GREATER_EQUAL "3.9.0" ) else() message(STATUS "CUDA Host Compiler: ${CUDA_HOST_COMPILER}") endif() +message(STATUS "CUDA Architectures: ${CMAKE_CUDA_ARCHITECTURES}") message(STATUS "CUDA Include Path: ${CUDAToolkit_INCLUDE_DIRS}") message(STATUS "CUDA Compile Flags: ${CMAKE_CUDA_FLAGS}") message(STATUS "CUDA Link Flags: ${CMAKE_CUDA_LINK_FLAGS}") @@ -123,6 +124,7 @@ endif () blt_import_library(NAME blt_cuda LINK_FLAGS "${CMAKE_CUDA_LINK_FLAGS}" + TREAT_INCLUDES_AS_SYSTEM ON EXPORTABLE ${BLT_EXPORT_THIRDPARTY} GLOBAL ${_blt_cuda_is_global}) diff --git a/host-configs/llnl/blueos_3_ppc64le_ib_p9/pgi@20.4_nvcc.cmake b/host-configs/llnl/blueos_3_ppc64le_ib_p9/pgi@20.4_nvcc.cmake index 5750e57fc..346356dc7 100644 --- a/host-configs/llnl/blueos_3_ppc64le_ib_p9/pgi@20.4_nvcc.cmake +++ b/host-configs/llnl/blueos_3_ppc64le_ib_p9/pgi@20.4_nvcc.cmake @@ -6,20 +6,14 @@ #------------------------------------------------------------------------------ # Example host-config file for using PGI and CUDA #------------------------------------------------------------------------------ -set (CMAKE_CXX_COMPILER "/usr/tce/packages/pgi/pgi-20.4/bin/pgc++" CACHE PATH "") -set (CMAKE_C_COMPILER "/usr/tce/packages/pgi/pgi-20.4/bin/pgcc" CACHE PATH "") +set(CMAKE_CXX_COMPILER "/usr/tce/packages/pgi/pgi-20.4/bin/pgc++" CACHE PATH "") +set(CMAKE_C_COMPILER "/usr/tce/packages/pgi/pgi-20.4/bin/pgcc" CACHE PATH "") set(ENABLE_FORTRAN OFF CACHE BOOL "") set(ENABLE_MPI OFF CACHE BOOL "") set(ENABLE_OPENMP OFF CACHE BOOL "") set(ENABLE_CUDA ON CACHE BOOL "") - set(CUDA_TOOLKIT_ROOT_DIR "/usr/tce/packages/cuda/cuda-11.1.1" CACHE PATH "") -set(CMAKE_CUDA_COMPILER "${CUDA_TOOLKIT_ROOT_DIR}/bin/nvcc" CACHE PATH "") -set(CMAKE_CUDA_HOST_COMPILER ${CMAKE_CXX_COMPILER} CACHE PATH "") - -set(CUDA_SEPARABLE_COMPILATION ON CACHE BOOL "" ) - -set (_cuda_arch "sm_70") -set (CMAKE_CUDA_FLAGS "-restrict -arch ${_cuda_arch} -std=c++11 --expt-extended-lambda -G" CACHE STRING "" ) +set(CUDA_SEPARABLE_COMPILATION ON CACHE BOOL "") +set(CMAKE_CUDA_ARCHITECTURES "70" CACHE BOOL "")