From 03f713f74faf6578d18511de2c615556bafdc89b Mon Sep 17 00:00:00 2001 From: Sam Mish Date: Wed, 2 Jul 2025 09:16:24 -0700 Subject: [PATCH] trying to make build system work with Blackwell --- CMakeLists.txt | 12 +----------- Tools/CMake/AMReXCUDAOptions.cmake | 9 --------- Tools/CMake/AMReXParallelBackends.cmake | 10 ++++++++-- 3 files changed, 9 insertions(+), 22 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index d3d99f6e7c8..2c25a70ccfc 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,4 +1,4 @@ -cmake_minimum_required(VERSION 3.18) +cmake_minimum_required(VERSION 3.24) # # Setting a cmake_policy to OLD is deprecated by definition and will raise a @@ -24,16 +24,6 @@ if(POLICY CMP0127) cmake_policy(SET CMP0127 NEW) endif() -# -# CMake 3.18+: CMAKE_CUDA_ARCHITECTURES -# https://cmake.org/cmake/help/latest/policy/CMP0104.html -# We have to migrate there, but maybe the new "native" option (CMake 3.24+) -# is what we want to wait for: -# https://cmake.org/cmake/help/v3.24/prop_tgt/CUDA_ARCHITECTURES.html -if(POLICY CMP0104) - cmake_policy(SET CMP0104 OLD) -endif() - # # Prevent in-source builds # diff --git a/Tools/CMake/AMReXCUDAOptions.cmake b/Tools/CMake/AMReXCUDAOptions.cmake index 71a6eb389f9..79b06caee90 100644 --- a/Tools/CMake/AMReXCUDAOptions.cmake +++ b/Tools/CMake/AMReXCUDAOptions.cmake @@ -17,15 +17,6 @@ endmacro () # message(STATUS "Enabled CUDA options:") -set(AMReX_CUDA_ARCH_DEFAULT "Auto") -if(DEFINED CMAKE_CUDA_ARCHITECTURES) - set(AMReX_CUDA_ARCH_DEFAULT "${CMAKE_CUDA_ARCHITECTURES}") -endif () -if(DEFINED ENV{AMREX_CUDA_ARCH}) - set(AMReX_CUDA_ARCH_DEFAULT "$ENV{AMREX_CUDA_ARCH}") -endif() -set(AMReX_CUDA_ARCH ${AMReX_CUDA_ARCH_DEFAULT} CACHE STRING "CUDA architecture (Use 'Auto' for automatic detection)") - option(AMReX_CUDA_FASTMATH "Enable CUDA fastmath" ON) cuda_print_option( AMReX_CUDA_FASTMATH ) diff --git a/Tools/CMake/AMReXParallelBackends.cmake b/Tools/CMake/AMReXParallelBackends.cmake index 271e04a826a..5169872995f 100644 --- a/Tools/CMake/AMReXParallelBackends.cmake +++ b/Tools/CMake/AMReXParallelBackends.cmake @@ -97,8 +97,14 @@ if ( AMReX_GPU_BACKEND STREQUAL "CUDA" ) endforeach() - # Take care of cuda archs - set_cuda_architectures(AMReX_CUDA_ARCH) + # default to building for the architecture of the available GPU + set(AMREX_CUDA_ARCHS native) + + # but, if the user specifies architectures explicitly then use that instead + if (DEFINED CMAKE_CUDA_ARCHITECTURES) + set(AMREX_CUDA_ARCHS ${CMAKE_CUDA_ARCHITECTURES}) + endif() + foreach(D IN LISTS AMReX_SPACEDIM) set_target_properties(amrex_${D}d PROPERTIES