Skip to content
Merged
Show file tree
Hide file tree
Changes from all 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
6 changes: 6 additions & 0 deletions source/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -246,6 +246,12 @@ set(DP_VARIANT "cpu")
if(USE_CUDA_TOOLKIT)
cmake_minimum_required(VERSION 3.25.2)
find_package(CUDAToolkit REQUIRED)
# CUDA 13.0+ requires C++17
if(CUDAToolkit_VERSION VERSION_GREATER_EQUAL "13.0")
set_if_higher(CMAKE_CXX_STANDARD 17)
message(
STATUS "CUDA ${CUDAToolkit_VERSION} detected, setting C++ standard to 17")
endif()
if(NOT DEFINED CMAKE_CUDA_COMPILER)
set(CMAKE_CUDA_COMPILER ${CUDAToolkit_NVCC_EXECUTABLE})
endif()
Expand Down
13 changes: 11 additions & 2 deletions source/lib/src/gpu/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ if(USE_CUDA_TOOLKIT)

# cub has been included in CUDA Toolkit 11, we do not need to include it any
# more see https://github.com/NVIDIA/cub
if(${CMAKE_CUDA_COMPILER_VERSION} VERSION_LESS "11")
if(CMAKE_CUDA_COMPILER_VERSION VERSION_LESS "11")
include(FetchContent)
FetchContent_Declare(
cub_download
Expand All @@ -39,10 +39,19 @@ if(USE_CUDA_TOOLKIT)
endif()
include_directories(${CUB_SOURCE_ROOT})
endif()
if(${CMAKE_CUDA_COMPILER_VERSION} VERSION_LESS "9")
if(CMAKE_CUDA_COMPILER_VERSION VERSION_LESS "9")
message(FATAL_ERROR "CUDA version must be >= 9.0")
endif()

# CUDA 13.0+ requires C++17
if(CMAKE_CUDA_COMPILER_VERSION VERSION_GREATER_EQUAL "13.0")
set(CMAKE_CUDA_STANDARD 17)
message(
STATUS
"CUDA ${CMAKE_CUDA_COMPILER_VERSION} detected, setting C++ standard to 17"
)
endif()

message(STATUS "NVCC version is " ${CMAKE_CUDA_COMPILER_VERSION})

# arch will be configured by CMAKE_CUDA_ARCHITECTURES
Expand Down