Skip to content

Commit b98fbf7

Browse files
committed
Add support for staticly linking nvrtc starting CUDA 11.5
1 parent b76b127 commit b98fbf7

File tree

1 file changed

+36
-21
lines changed

1 file changed

+36
-21
lines changed

src/backend/cuda/CMakeLists.txt

Lines changed: 36 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -60,13 +60,24 @@ set(CUDA_NVCC_FLAGS ${CUDA_NVCC_FLAGS};${cuda_architecture_flags})
6060

6161
find_cuda_helper_libs(nvrtc)
6262
find_cuda_helper_libs(nvrtc-builtins)
63+
list(APPEND nvrtc_libs ${CUDA_nvrtc_LIBRARY})
64+
6365
if(UNIX AND AF_WITH_STATIC_CUDA_NUMERIC_LIBS)
6466
af_find_static_cuda_libs(culibos)
6567
af_find_static_cuda_libs(cublas_static PRUNE)
6668
af_find_static_cuda_libs(cublasLt_static PRUNE)
6769
af_find_static_cuda_libs(cufft_static)
6870
af_find_static_cuda_libs(cusparse_static PRUNE)
6971

72+
if(CUDA_VERSION VERSION_GREATER 11.4)
73+
af_find_static_cuda_libs(nvrtc_static)
74+
af_find_static_cuda_libs(nvrtc-builtins_static)
75+
af_find_static_cuda_libs(nvptxcompiler_static)
76+
set(nvrtc_libs ${AF_CUDA_nvrtc_static_LIBRARY}
77+
${AF_CUDA_nvrtc-builtins_static_LIBRARY}
78+
${AF_CUDA_nvptxcompiler_static_LIBRARY})
79+
endif()
80+
7081
# FIXME When NVCC resolves this particular issue.
7182
# NVCC doesn't like -l<full_path_static_lib>, hence we cannot
7283
# use ${CMAKE_*_LIBRARY} variables in the following flags.
@@ -328,9 +339,10 @@ if(UNIX AND AF_WITH_STATIC_CUDA_NUMERIC_LIBS)
328339
${START_GROUP}
329340
${CUDA_culibos_LIBRARY} #also a static libary
330341
${AF_CUDA_cublas_static_LIBRARY}
342+
${AF_CUDA_cublasLt_static_LIBRARY}
331343
${AF_CUDA_cufft_static_LIBRARY}
332344
${AF_CUDA_cusparse_static_LIBRARY}
333-
${AF_CUDA_cublasLt_static_LIBRARY}
345+
${nvrtc_libs}
334346
${cusolver_static_lib}
335347
${END_GROUP}
336348
)
@@ -340,6 +352,7 @@ if(UNIX AND AF_WITH_STATIC_CUDA_NUMERIC_LIBS)
340352
PRIVATE
341353
${AF_CUDA_cublasLt_static_LIBRARY})
342354
endif()
355+
343356
if(CUDA_VERSION VERSION_GREATER 9.5)
344357
target_link_libraries(af_cuda_static_cuda_library
345358
PRIVATE
@@ -355,6 +368,7 @@ else()
355368
${CUDA_CUFFT_LIBRARIES}
356369
${CUDA_cusolver_LIBRARY}
357370
${CUDA_cusparse_LIBRARY}
371+
${nvrtc_libs}
358372
)
359373
endif()
360374
@@ -712,7 +726,6 @@ target_link_libraries(afcuda
712726
cpp_api_interface
713727
afcommon_interface
714728
${CMAKE_DL_LIBS}
715-
${CUDA_nvrtc_LIBRARY}
716729
af_cuda_static_cuda_library
717730
)
718731
@@ -860,26 +873,28 @@ if(AF_INSTALL_STANDALONE)
860873
afcu_collect_libs(cusolver)
861874
endif()
862875
863-
afcu_collect_libs(nvrtc FULL_VERSION)
864-
if(CUDA_VERSION VERSION_GREATER 10.0)
865-
afcu_collect_libs(nvrtc-builtins FULL_VERSION)
866-
else()
867-
if(APPLE)
868-
afcu_collect_libs(cudart)
869-
870-
get_filename_component(nvrtc_outpath "${dlib_path_prefix}/${PX}nvrtc-builtins.${CUDA_VERSION_MAJOR}.${CUDA_VERSION_MINOR}${SX}" REALPATH)
871-
install(FILES ${nvrtc_outpath}
872-
DESTINATION ${AF_INSTALL_BIN_DIR}
873-
RENAME "${PX}nvrtc-builtins${SX}"
874-
COMPONENT cuda_dependencies)
875-
elseif(UNIX)
876-
get_filename_component(nvrtc_outpath "${dlib_path_prefix}/${PX}nvrtc-builtins${SX}" REALPATH)
877-
install(FILES ${nvrtc_outpath}
878-
DESTINATION ${AF_INSTALL_LIB_DIR}
879-
RENAME "${PX}nvrtc-builtins${SX}"
880-
COMPONENT cuda_dependencies)
876+
if(WIN32 OR CUDA_VERSION VERSION_LESS 11.5 OR NOT AF_WITH_STATIC_CUDA_NUMERIC_LIBS)
877+
afcu_collect_libs(nvrtc FULL_VERSION)
878+
if(CUDA_VERSION VERSION_GREATER 10.0)
879+
afcu_collect_libs(nvrtc-builtins FULL_VERSION)
881880
else()
882-
afcu_collect_libs(nvrtc-builtins)
881+
if(APPLE)
882+
afcu_collect_libs(cudart)
883+
884+
get_filename_component(nvrtc_outpath "${dlib_path_prefix}/${PX}nvrtc-builtins.${CUDA_VERSION_MAJOR}.${CUDA_VERSION_MINOR}${SX}" REALPATH)
885+
install(FILES ${nvrtc_outpath}
886+
DESTINATION ${AF_INSTALL_BIN_DIR}
887+
RENAME "${PX}nvrtc-builtins${SX}"
888+
COMPONENT cuda_dependencies)
889+
elseif(UNIX)
890+
get_filename_component(nvrtc_outpath "${dlib_path_prefix}/${PX}nvrtc-builtins${SX}" REALPATH)
891+
install(FILES ${nvrtc_outpath}
892+
DESTINATION ${AF_INSTALL_LIB_DIR}
893+
RENAME "${PX}nvrtc-builtins${SX}"
894+
COMPONENT cuda_dependencies)
895+
else()
896+
afcu_collect_libs(nvrtc-builtins)
897+
endif()
883898
endif()
884899
endif()
885900
endif()

0 commit comments

Comments
 (0)