Skip to content

Commit 555c6df

Browse files
committed
Replace cub::Max() with cuda::maximum<> in kernel reductions
1 parent 528299d commit 555c6df

File tree

1 file changed

+28
-46
lines changed

1 file changed

+28
-46
lines changed

CMakeLists.txt

Lines changed: 28 additions & 46 deletions
Original file line numberDiff line numberDiff line change
@@ -106,53 +106,35 @@ if(BUILD_CUDA)
106106

107107
if(CMAKE_CUDA_COMPILER_VERSION VERSION_LESS "11.4")
108108
message(FATAL_ERROR "CUDA Version < 11.4 is not supported")
109+
elseif(CMAKE_CUDA_COMPILER_VERSION VERSION_GREATER_EQUAL "13.0")
110+
message(FATAL_ERROR "CUDA Version > 12 is not supported")
109111
endif()
110112

111-
# For CMake < 3.23.0: manually determine supported CUDA architectures
112-
if (CMAKE_VERSION VERSION_GREATER_EQUAL "3.23.0")
113-
message(STATUS "CMake < 3.23.0; determining CUDA architectures supported...")
114-
115-
# Base (CUDA 11.4+)
116-
set(CMAKE_CUDA_ARCHITECTURES_ALL 80 86 87)
117-
set(CMAKE_CUDA_ARCHITECTURES_ALL_MAJOR 80)
118-
119-
# CUDA 11.8 adds Ada/Hopper
120-
if (CMAKE_CUDA_COMPILER_VERSION VERSION_GREATER_EQUAL "11.8")
121-
list(APPEND CMAKE_CUDA_ARCHITECTURES_ALL 89 90)
122-
list(APPEND CMAKE_CUDA_ARCHITECTURES_ALL_MAJOR 90)
123-
endif()
124-
125-
# CUDA 12.8 adds Blackwell
126-
if (CMAKE_CUDA_COMPILER_VERSION VERSION_GREATER_EQUAL "12.8")
127-
list(APPEND CMAKE_CUDA_ARCHITECTURES_ALL 100 120)
128-
list(APPEND CMAKE_CUDA_ARCHITECTURES_ALL_MAJOR 100 120)
129-
endif()
130-
131-
# CUDA 13: drop all architectures <= 80-series
132-
if (CMAKE_CUDA_COMPILER_VERSION VERSION_GREATER_EQUAL "13.0")
133-
# Add new SMs introduced in CUDA 13
134-
list(APPEND CMAKE_CUDA_ARCHITECTURES_ALL 103 110 121)
135-
136-
# Remove all SMs below 80
137-
list(REMOVE_ITEM CMAKE_CUDA_ARCHITECTURES_ALL
138-
50 52 53 60 61 62 70 72 75)
139-
140-
# Remove majors below 90
141-
list(REMOVE_ITEM CMAKE_CUDA_ARCHITECTURES_ALL_MAJOR 50 60 70)
142-
143-
# Optionally, keep majors as round numbers only in CUDA 13+
144-
list(APPEND CMAKE_CUDA_ARCHITECTURES_ALL_MAJOR 90 100 120)
145-
endif()
146-
147-
# Cleanup: remove duplicates and sort naturally
148-
list(REMOVE_DUPLICATES CMAKE_CUDA_ARCHITECTURES_ALL)
149-
list(REMOVE_DUPLICATES CMAKE_CUDA_ARCHITECTURES_ALL_MAJOR)
150-
list(SORT CMAKE_CUDA_ARCHITECTURES_ALL COMPARE NATURAL)
151-
list(SORT CMAKE_CUDA_ARCHITECTURES_ALL_MAJOR COMPARE NATURAL)
152-
153-
# (Optional) Use these SMs directly for compilation
154-
# set(CMAKE_CUDA_ARCHITECTURES "${CMAKE_CUDA_ARCHITECTURES_ALL}" CACHE STRING "" FORCE)
155-
endif()
113+
# CMake < 3.23.0 does not define CMAKE_CUDA_ARCHITECTURES_ALL.
114+
if(CMAKE_VERSION VERSION_LESS "3.23.0")
115+
message(STATUS "CMake < 3.23.0; determining CUDA architectures supported...")
116+
117+
# 11.4+ supports these at a minimum.
118+
if (CMAKE_CUDA_COMPILER_VERSION VERSION_LESS "13.0")
119+
set(CMAKE_CUDA_ARCHITECTURES_ALL 50 52 53 60 61 62 70 72 75 80 86 87)
120+
set(CMAKE_CUDA_ARCHITECTURES_ALL_MAJOR 50 60 70 80)
121+
else()
122+
set(CMAKE_CUDA_ARCHITECTURES_ALL 75 80 86 87)
123+
set(CMAKE_CUDA_ARCHITECTURES_ALL_MAJOR 70 80)
124+
endif()
125+
126+
# CUDA 11.8 adds support for Ada and Hopper.
127+
if (CMAKE_CUDA_COMPILER_VERSION VERSION_GREATER_EQUAL "11.8")
128+
list(APPEND CMAKE_CUDA_ARCHITECTURES_ALL 89 90)
129+
list(APPEND CMAKE_CUDA_ARCHITECTURES_ALL_MAJOR 90)
130+
endif()
131+
132+
# CUDA 12.8 adds support for Blackwell.
133+
if (CMAKE_CUDA_COMPILER_VERSION VERSION_GREATER_EQUAL "12.8")
134+
list(APPEND CMAKE_CUDA_ARCHITECTURES_ALL 100 101 120)
135+
list(APPEND CMAKE_CUDA_ARCHITECTURES_ALL_MAJOR 100 120)
136+
endif()
137+
endif()
156138

157139
string(APPEND CMAKE_CUDA_FLAGS " --use_fast_math")
158140

@@ -161,7 +143,7 @@ if(BUILD_CUDA)
161143
string(APPEND CMAKE_CUDA_FLAGS " -Xptxas=-v")
162144
endif()
163145

164-
foreach(capability ${CMAKE_CUDA_ARCHITECTURES_ALL})
146+
foreach(capability ${CMAKE_CUDA_ARCHITECTURES_ALL})
165147
# Most of the items here are like: `xx-real`, so we just extract the `xx` portion
166148
string(REGEX MATCH "[0-9]+" capability_id "${capability}")
167149
if(capability_id GREATER 0)

0 commit comments

Comments
 (0)