@@ -200,32 +200,28 @@ if(__INTEGRATE_OPENCL)
200200endif ()
201201
202202if (USE_CUDA)
203- find_package (CUDA 11.0 REQUIRED)
204- include_directories (${CUDA_INCLUDE_DIRS } )
203+ find_package (CUDAToolkit 11.0 REQUIRED)
204+ include_directories (${CUDAToolkit_INCLUDE_DIRS } )
205205 set (CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -Xcompiler=${OpenMP_CXX_FLAGS} -Xcompiler=-fPIC -Xcompiler=-Wall" )
206206
207207 # reference for mapping of CUDA toolkit component versions to supported architectures ("compute capabilities"):
208208 # https://en.wikipedia.org/wiki/CUDA#GPUs_supported
209- set (CUDA_ARCHS "6.0 " "6.1 " "6.2 " "7.0 " "7.5 " )
210- if (CUDA_VERSION VERSION_GREATER_EQUAL "11.0 " )
211- list (APPEND CUDA_ARCHS "8.0 " )
209+ set (CUDA_ARCHS "60 " "61 " "62 " "70 " "75 " )
210+ if (CUDA_VERSION VERSION_GREATER_EQUAL "110 " )
211+ list (APPEND CUDA_ARCHS "80 " )
212212 endif ()
213- if (CUDA_VERSION VERSION_GREATER_EQUAL "11.1 " )
214- list (APPEND CUDA_ARCHS "8.6 " )
213+ if (CUDA_VERSION VERSION_GREATER_EQUAL "111 " )
214+ list (APPEND CUDA_ARCHS "86 " )
215215 endif ()
216- if (CUDA_VERSION VERSION_GREATER_EQUAL "11.5 " )
217- list (APPEND CUDA_ARCHS "8.7 " )
216+ if (CUDA_VERSION VERSION_GREATER_EQUAL "115 " )
217+ list (APPEND CUDA_ARCHS "87 " )
218218 endif ()
219- if (CUDA_VERSION VERSION_GREATER_EQUAL "11.8 " )
220- list (APPEND CUDA_ARCHS "8.9 " )
221- list (APPEND CUDA_ARCHS "9.0 " )
219+ if (CUDA_VERSION VERSION_GREATER_EQUAL "118 " )
220+ list (APPEND CUDA_ARCHS "89 " )
221+ list (APPEND CUDA_ARCHS "90 " )
222222 endif ()
223223 list (POP_BACK CUDA_ARCHS CUDA_LAST_SUPPORTED_ARCH)
224224 list (APPEND CUDA_ARCHS "${CUDA_LAST_SUPPORTED_ARCH} +PTX" )
225- cuda_select_nvcc_arch_flags(CUDA_ARCH_FLAGS ${CUDA_ARCHS} )
226- string (REPLACE ";" " " CUDA_ARCH_FLAGS "${CUDA_ARCH_FLAGS} " )
227-
228- set (CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} ${CUDA_ARCH_FLAGS} " )
229225 if (USE_DEBUG)
230226 set (CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -g" )
231227 else ()
@@ -262,7 +258,7 @@ if(USE_CUDA)
262258 function (add_histogram hsize hname hadd hconst hdir)
263259 add_library (histo${hsize}${hname} OBJECT src/treelearner/kernels/histogram${hsize} .cu)
264260 set_target_properties (histo${hsize}${hname} PROPERTIES CUDA_SEPARABLE_COMPILATION ON )
265- set_target_properties (histo${hsize}${hname} PROPERTIES CUDA_ARCHITECTURES OFF )
261+ set_target_properties (histo${hsize}${hname} PROPERTIES CUDA_ARCHITECTURES ${CUDA_ARCHS} )
266262 if (hadd)
267263 list (APPEND histograms histo${hsize}${hname} )
268264 set (histograms ${histograms} PARENT_SCOPE)
@@ -608,13 +604,10 @@ if(__INTEGRATE_OPENCL)
608604endif ()
609605
610606if (USE_CUDA)
611- # Disable cmake warning about policy CMP0104. Refer to issue #3754 and PR #4268.
612- # Custom target properties does not propagate, thus we need to specify for
613- # each target that contains or depends on cuda source.
614- set_target_properties (lightgbm_objs PROPERTIES CUDA_ARCHITECTURES OFF )
615- set_target_properties (_lightgbm PROPERTIES CUDA_ARCHITECTURES OFF )
607+ set_target_properties (lightgbm_objs PROPERTIES CUDA_ARCHITECTURES ${CUDA_ARCHS} )
608+ set_target_properties (_lightgbm PROPERTIES CUDA_ARCHITECTURES ${CUDA_ARCHS} )
616609 if (BUILD_CLI)
617- set_target_properties (lightgbm PROPERTIES CUDA_ARCHITECTURES OFF )
610+ set_target_properties (lightgbm PROPERTIES CUDA_ARCHITECTURES ${CUDA_ARCHS} )
618611 endif ()
619612
620613 set_target_properties (lightgbm_objs PROPERTIES CUDA_SEPARABLE_COMPILATION ON )
0 commit comments