Skip to content

Commit 479ce5e

Browse files
cyyeverpytorchmergebot
authored andcommitted
Remove outdated CUDA code from CMake (pytorch#128801)
It's possible to simplify some CUDA handling logic in CMake. Pull Request resolved: pytorch#128801 Approved by: https://github.com/r-barnes, https://github.com/malfet
1 parent 2c7c286 commit 479ce5e

File tree

5 files changed

+8
-44
lines changed

5 files changed

+8
-44
lines changed

caffe2/CMakeLists.txt

+1-1
Original file line numberDiff line numberDiff line change
@@ -548,7 +548,7 @@ if(USE_CUDA)
548548
set(DELAY_LOAD_FLAGS "")
549549
endif()
550550

551-
target_link_libraries(caffe2_nvrtc ${CUDA_CUDA_LIB} ${CUDA_NVRTC_LIB} ${DELAY_LOAD_FLAGS})
551+
target_link_libraries(caffe2_nvrtc PRIVATE caffe2::nvrtc ${DELAY_LOAD_FLAGS})
552552
install(TARGETS caffe2_nvrtc DESTINATION "${TORCH_INSTALL_LIB_DIR}")
553553
if(USE_NCCL)
554554
list(APPEND Caffe2_GPU_SRCS

cmake/Dependencies.cmake

+1-3
Original file line numberDiff line numberDiff line change
@@ -46,9 +46,7 @@ if(USE_CUDA)
4646
# torch::cudart is dealt with separately, due to CUDA_ADD_LIBRARY
4747
# design reason (it adds CUDA_LIBRARIES itself).
4848
set(Caffe2_PUBLIC_CUDA_DEPENDENCY_LIBS )
49-
if(CAFFE2_USE_NVRTC)
50-
list(APPEND Caffe2_PUBLIC_CUDA_DEPENDENCY_LIBS caffe2::cuda caffe2::nvrtc)
51-
else()
49+
if(NOT CAFFE2_USE_NVRTC)
5250
caffe2_update_option(USE_NVRTC OFF)
5351
endif()
5452
list(APPEND Caffe2_CUDA_DEPENDENCY_LIBS caffe2::curand caffe2::cufft caffe2::cublas)

cmake/TorchConfig.cmake.in

+3-24
Original file line numberDiff line numberDiff line change
@@ -122,35 +122,14 @@ endif()
122122

123123
if(@USE_CUDA@)
124124
if(MSVC)
125-
if(NOT NVTOOLEXT_HOME)
126-
set(NVTOOLEXT_HOME "C:/Program Files/NVIDIA Corporation/NvToolsExt")
127-
endif()
128-
if(DEFINED ENV{NVTOOLSEXT_PATH})
129-
set(NVTOOLEXT_HOME $ENV{NVTOOLSEXT_PATH})
130-
endif()
131-
set(TORCH_CUDA_LIBRARIES
132-
${NVTOOLEXT_HOME}/lib/x64/nvToolsExt64_1.lib
133-
${CUDA_LIBRARIES})
134-
list(APPEND TORCH_INCLUDE_DIRS ${NVTOOLEXT_HOME}/include)
135125
find_library(CAFFE2_NVRTC_LIBRARY caffe2_nvrtc PATHS "${TORCH_INSTALL_PREFIX}/lib")
136-
list(APPEND TORCH_CUDA_LIBRARIES ${CAFFE2_NVRTC_LIBRARY})
137-
elseif(APPLE)
138-
set(TORCH_CUDA_LIBRARIES
139-
${CUDA_TOOLKIT_ROOT_DIR}/lib/libcudart.dylib
140-
${CUDA_TOOLKIT_ROOT_DIR}/lib/libnvrtc.dylib
141-
${CUDA_TOOLKIT_ROOT_DIR}/lib/libnvToolsExt.dylib
142-
${CUDA_LIBRARIES})
126+
list(APPEND TORCH_CUDA_LIBRARIES ${CAFFE2_NVRTC_LIBRARY} torch::nvtoolsext)
143127
else()
144-
find_library(LIBNVTOOLSEXT libnvToolsExt.so PATHS ${CUDA_TOOLKIT_ROOT_DIR}/lib64/)
145-
set(TORCH_CUDA_LIBRARIES
146-
${CUDA_CUDA_LIB}
147-
${CUDA_NVRTC_LIB}
148-
${LIBNVTOOLSEXT}
149-
${CUDA_LIBRARIES})
128+
set(TORCH_CUDA_LIBRARIES ${CUDA_NVRTC_LIB} torch::nvtoolsext)
150129
endif()
151130
if(@BUILD_SHARED_LIBS@)
152131
find_library(C10_CUDA_LIBRARY c10_cuda PATHS "${TORCH_INSTALL_PREFIX}/lib")
153-
list(APPEND TORCH_CUDA_LIBRARIES ${C10_CUDA_LIBRARY})
132+
list(APPEND TORCH_CUDA_LIBRARIES ${C10_CUDA_LIBRARY} ${Caffe2_PUBLIC_CUDA_DEPENDENCY_LIBS})
154133
endif()
155134
list(APPEND TORCH_LIBRARIES ${TORCH_CUDA_LIBRARIES})
156135
endif()

cmake/public/cuda.cmake

+3-13
Original file line numberDiff line numberDiff line change
@@ -131,21 +131,11 @@ endif()
131131

132132
# ---[ CUDA libraries wrapper
133133

134-
# find libcuda.so and lbnvrtc.so
135-
# For libcuda.so, we will find it under lib, lib64, and then the
136-
# stubs folder, in case we are building on a system that does not
137-
# have cuda driver installed. On windows, we also search under the
138-
# folder lib/x64.
139-
set(CUDA_CUDA_LIB "${CUDA_cuda_driver_LIBRARY}" CACHE FILEPATH "")
134+
# find lbnvrtc.so
140135
set(CUDA_NVRTC_LIB "${CUDA_nvrtc_LIBRARY}" CACHE FILEPATH "")
141136
if(CUDA_NVRTC_LIB AND NOT CUDA_NVRTC_SHORTHASH)
142-
if("${Python_EXECUTABLE}" STREQUAL "")
143-
set(_python_exe "python3")
144-
else()
145-
set(_python_exe "${Python_EXECUTABLE}")
146-
endif()
147137
execute_process(
148-
COMMAND "${_python_exe}" -c
138+
COMMAND Python::Interpreter -c
149139
"import hashlib;hash=hashlib.sha256();hash.update(open('${CUDA_NVRTC_LIB}','rb').read());print(hash.hexdigest()[:8])"
150140
RESULT_VARIABLE _retval
151141
OUTPUT_VARIABLE CUDA_NVRTC_SHORTHASH)
@@ -281,7 +271,7 @@ endif()
281271
add_library(caffe2::nvrtc INTERFACE IMPORTED)
282272
set_property(
283273
TARGET caffe2::nvrtc PROPERTY INTERFACE_LINK_LIBRARIES
284-
CUDA::nvrtc)
274+
CUDA::nvrtc caffe2::cuda)
285275

286276
# Add onnx namepsace definition to nvcc
287277
if(ONNX_NAMESPACE)

setup.py

-3
Original file line numberDiff line numberDiff line change
@@ -972,9 +972,6 @@ def configure_extension_build():
972972
main_libraries = ["torch"]
973973
main_sources = []
974974

975-
if cmake_cache_vars["USE_CUDA"]:
976-
library_dirs.append(os.path.dirname(cmake_cache_vars["CUDA_CUDA_LIB"]))
977-
978975
if build_type.is_debug():
979976
if IS_WINDOWS:
980977
extra_compile_args.append("/Z7")

0 commit comments

Comments
 (0)