Add USE_WHOLE_CUDNN option (#59744)

Summary:
It is only enabled if USE_STATIC_CUDNN is enabled

Next step after https://github.com/pytorch/pytorch/pull/59721 towards resolving fast kernels stripping reported in https://github.com/pytorch/pytorch/issues/50153

Pull Request resolved: https://github.com/pytorch/pytorch/pull/59744

Reviewed By: seemethere, ngimel

Differential Revision: D29007314

Pulled By: malfet

fbshipit-source-id: 7091e299c0c6cc2a8aa82fbf49312cecf3bb861a
This commit is contained in:
Nikita Shulga 2021-06-09 21:11:31 -07:00 committed by Facebook GitHub Bot
parent bb19dc14cc
commit 1ea5c19c19
2 changed files with 12 additions and 3 deletions

View File

@ -194,6 +194,9 @@ cmake_dependent_option(
cmake_dependent_option( cmake_dependent_option(
USE_STATIC_CUDNN "Use cuDNN static libraries" OFF USE_STATIC_CUDNN "Use cuDNN static libraries" OFF
"USE_CUDNN" OFF) "USE_CUDNN" OFF)
cmake_dependent_option(
USE_WHOLE_CUDNN "Use whole-library linking for cuDNN" OFF
"USE_STATIC_CUDNN" OFF)
cmake_dependent_option( cmake_dependent_option(
USE_EXPERIMENTAL_CUDNN_V8_API "Use experimental cuDNN v8 API" OFF USE_EXPERIMENTAL_CUDNN_V8_API "Use experimental cuDNN v8 API" OFF
"USE_CUDNN" OFF) "USE_CUDNN" OFF)

View File

@ -315,9 +315,15 @@ if(CAFFE2_USE_CUDNN)
TARGET caffe2::cudnn-private PROPERTY INTERFACE_INCLUDE_DIRECTORIES TARGET caffe2::cudnn-private PROPERTY INTERFACE_INCLUDE_DIRECTORIES
${CUDNN_INCLUDE_PATH}) ${CUDNN_INCLUDE_PATH})
if(CUDNN_STATIC AND NOT WIN32) if(CUDNN_STATIC AND NOT WIN32)
set_property( if(USE_WHOLE_CUDNN)
TARGET caffe2::cudnn-private PROPERTY INTERFACE_LINK_LIBRARIES set_property(
${CUDNN_LIBRARY_PATH}) TARGET caffe2::cudnn-private PROPERTY INTERFACE_LINK_LIBRARIES
"-Wl,--whole-archive,\"${CUDNN_LIBRARY_PATH}\" -Wl,--no-whole-archive")
else()
set_property(
TARGET caffe2::cudnn-private PROPERTY INTERFACE_LINK_LIBRARIES
${CUDNN_LIBRARY_PATH})
endif()
set_property( set_property(
TARGET caffe2::cudnn-private APPEND PROPERTY INTERFACE_LINK_LIBRARIES TARGET caffe2::cudnn-private APPEND PROPERTY INTERFACE_LINK_LIBRARIES
"${CUDA_TOOLKIT_ROOT_DIR}/lib64/libculibos.a" dl) "${CUDA_TOOLKIT_ROOT_DIR}/lib64/libculibos.a" dl)