@@ -10,7 +10,25 @@ option(USE_HIP "Build with HIP for AMD GPUs" OFF)
1010if (USE_HIP)
1111 project (cupdlpx LANGUAGES C CXX HIP )
1212else ()
13- project (cupdlpx LANGUAGES C CXX CUDA )
13+ project (cupdlpx LANGUAGES C CXX )
14+
15+ # Default CUDA architectures: SASS for every current arch, PTX only for the newest one as a forward-compat fallback.
16+ find_package (CUDAToolkit REQUIRED )
17+ if (NOT DEFINED CMAKE_CUDA_ARCHITECTURES AND NOT DEFINED ENV{CUDAARCHS})
18+ if (CUDAToolkit_VERSION VERSION_GREATER_EQUAL 13)
19+ set (CMAKE_CUDA_ARCHITECTURES 75-real 80-real 86-real 89-real 90-real
20+ 100-real 120-real 120-virtual)
21+ elseif (CUDAToolkit_VERSION VERSION_GREATER_EQUAL 12.8)
22+ set (CMAKE_CUDA_ARCHITECTURES 60-real 70-real 75-real 80-real 86-real
23+ 89-real 90-real 100-real 120-real 120-virtual)
24+ else ()
25+ set (CMAKE_CUDA_ARCHITECTURES 60-real 70-real 75-real 80-real 86-real
26+ 89-real 90-real 90-virtual)
27+ endif ()
28+ endif ()
29+
30+ enable_language (CUDA )
31+ message (STATUS "CUDA architectures: ${CMAKE_CUDA_ARCHITECTURES} " )
1432endif ()
1533
1634set (CUPDLPX_VERSION_MAJOR 0)
@@ -45,10 +63,6 @@ if(USE_HIP)
4563 if (NOT DEFINED CMAKE_HIP_ARCHITECTURES OR CMAKE_HIP_ARCHITECTURES STREQUAL "" )
4664 set (CMAKE_HIP_ARCHITECTURES "gfx90a" )
4765 endif ()
48- else ()
49- if (NOT DEFINED CMAKE_CUDA_ARCHITECTURES)
50- set (CMAKE_CUDA_ARCHITECTURES 60 70 75 80 86 89 90)
51- endif ()
5266endif ()
5367
5468# -----------------------------------------------------------------------------
@@ -112,8 +126,6 @@ if(USE_HIP)
112126 find_package (hipsparse REQUIRED )
113127 find_package (hipcub REQUIRED )
114128 find_package (rocprim REQUIRED )
115- else ()
116- find_package (CUDAToolkit REQUIRED )
117129endif ()
118130include (FetchContent )
119131
0 commit comments