Skip to content
Merged
Show file tree
Hide file tree
Changes from 2 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
32 changes: 20 additions & 12 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -86,23 +86,31 @@ if(${XMIPP_USE_CUDA})
if(CUDAToolkit_FOUND)
file(APPEND ${XMIPP_VERSIONS_FILE} "CUDA=${CUDAToolkit_VERSION}\n")

set(CMAKE_CUDA_STANDARD 14)
set(CMAKE_CUDA_STANDARD 17)

string(APPEND CMAKE_CUDA_FLAGS " --expt-extended-lambda")

if(CMAKE_VERSION VERSION_GREATER_EQUAL "3.18")
list(APPEND CMAKE_CUDA_ARCHITECTURES 60 75)
# 1. Define base architectures supported by almost everyone (Turing, Ampere)
set(XMIPP_CUDA_ARCHS 75 86)

# 2. Conditionally add Pascal (compute_60) ONLY if CUDA is older than 12.0
if(${CUDAToolkit_VERSION} VERSION_LESS "12.0")
Comment thread
albertmena marked this conversation as resolved.
Outdated
list(APPEND XMIPP_CUDA_ARCHS 60)
endif()

if(${CUDAToolkit_VERSION} VERSION_GREATER_EQUAL "11")
list(APPEND CMAKE_CUDA_ARCHITECTURES 86)
endif()
# 3. Add newer architectures for CUDA 11.8+ (Ada, Hopper)
if(${CUDAToolkit_VERSION} VERSION_GREATER_EQUAL "11.8")
Comment thread
albertmena marked this conversation as resolved.
Outdated
list(APPEND XMIPP_CUDA_ARCHS 89 90)
endif()

if(CMAKE_VERSION VERSION_GREATER_EQUAL "3.18")
# Modern CMake approach: Just pass the list
set(CMAKE_CUDA_ARCHITECTURES ${XMIPP_CUDA_ARCHS})
else()
string(APPEND CMAKE_CUDA_FLAGS " -gencode arch=compute_60,code=sm_60")
string(APPEND CMAKE_CUDA_FLAGS " -gencode arch=compute_75,code=sm_75")

if(${CUDAToolkit_VERSION} VERSION_GREATER_EQUAL "11")
string(APPEND CMAKE_CUDA_FLAGS " -gencode arch=compute_86,code=sm_86")
endif()
# Fallback for older CMake: Manual flags construction
foreach(arch ${XMIPP_CUDA_ARCHS})
string(APPEND CMAKE_CUDA_FLAGS " -gencode arch=compute_${arch},code=sm_${arch}")
endforeach()
endif()

else()
Expand Down
2 changes: 1 addition & 1 deletion cmake/fetch_cuFFTAdvisor.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ function(fetch_cuFFTAdvisor)

ExternalProject_Add(
build_cuFFTAdvisor
GIT_REPOSITORY https://github.com/HiPerCoRe/cuFFTAdvisor.git
GIT_REPOSITORY https://github.com/I2PC/cuFFTAdvisor.git
GIT_TAG master
SOURCE_DIR ${SOURCE_DIR}
UPDATE_COMMAND ""
Expand Down