From b984950d3ad2ac5ebd2f5348cac7d785fa6de875 Mon Sep 17 00:00:00 2001 From: Jon Rood Date: Mon, 31 Jul 2023 15:25:43 -0600 Subject: [PATCH] Remove hard coding of cuda_architectures (#52) * Remove hard coding of cmake_cuda_architectures. * Add EXAWIND_CUDA_ARCH variable. --- CMakeLists.txt | 3 ++- cmake/exawind-utils.cmake | 2 +- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 5d4b819..7111329 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -3,7 +3,6 @@ cmake_minimum_required(VERSION 3.14.0 FATAL_ERROR) project(exawind CXX C) set(CMAKE_EXPORT_COMPILE_COMMANDS ON CACHE INTERNAL "") list(APPEND CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/cmake") -include(exawind-utils) set(CMAKE_CXX_STANDARD 17) set(CMAKE_CXX_EXTENSIONS OFF) @@ -18,6 +17,7 @@ option(EXAWIND_ENABLE_UMPIRE "Enable Umpire GPU memory pools" OFF) if(EXAWIND_ENABLE_CUDA) enable_language(CUDA) find_package(CUDAToolkit REQUIRED) + set(EXAWIND_CUDA_ARCH "70" CACHE STRING "CUDA architecture (Use 'Auto' for automatic detection)") endif() if(EXAWIND_ENABLE_ROCM) @@ -70,6 +70,7 @@ add_executable(${EXAWIND_EXE_NAME}) add_subdirectory(app/exawind) if(EXAWIND_ENABLE_CUDA) + include(exawind-utils) set(ewtargets "${EXAWIND_LIB_NAME};${EXAWIND_EXE_NAME}") foreach(tgt IN LISTS ewtargets) set_cuda_build_properties(${tgt}) diff --git a/cmake/exawind-utils.cmake b/cmake/exawind-utils.cmake index 055656c..1d2b3ea 100644 --- a/cmake/exawind-utils.cmake +++ b/cmake/exawind-utils.cmake @@ -3,7 +3,7 @@ function(set_cuda_build_properties target) list(FILTER _tgt_src INCLUDE REGEX "\\.cpp") set_source_files_properties(${_tgt_src} PROPERTIES LANGUAGE CUDA) set_target_properties(${target} PROPERTIES CUDA_SEPARABLE_COMPILATION ON) - set_target_properties(${target} PROPERTIES CUDA_ARCHITECTURES "70") + set_target_properties(${target} PROPERTIES CUDA_ARCHITECTURES "${EXAWIND_CUDA_ARCH") set_target_properties(${target} PROPERTIES CUDA_RESOLVE_DEVICE_SYMBOLS ON) #set_target_properties(${target} PROPERTIES LINKER_LANGUAGE CUDA) endfunction(set_cuda_build_properties)