Created
April 30, 2020 22:06
-
-
Save WurmD/26af2940d8dec7cc48d38bc30fd1b3ef to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# template taken from https://cmake.org/cmake/help/v3.14/manual/cmake-developer.7.html | |
# Distributed under the OSI-approved BSD 3-Clause License. See accompanying | |
# file Copyright.txt or https://cmake.org/licensing for details. | |
#[=======================================================================[.rst: | |
FindCUDNN | |
--------- | |
Finds the cuDNN library. | |
Requires: | |
^^^^^^^^^ | |
find_cuda_helper_libs from FindCUDA.cmake | |
i.e. CUDA module should be found using FindCUDA.cmake before attempting to find cuDNN | |
Result Variables | |
^^^^^^^^^^^^^^^^ | |
This will define the following variables: | |
``CUDNN_FOUND`` | |
``CUDNN_INCLUDE_DIRS`` location of cudnn.h | |
``CUDNN_LIBRARIES`` location of cudnn library | |
Cache Variables | |
^^^^^^^^^^^^^^^ | |
The following cache variables will be set if cuDNN was found. They may also be set on failure. | |
``CUDNN_LIBRARY`` | |
``CUDNN_INCLUDE_DIR`` | |
``CUDNN_VERSION`` | |
``CUDNN_VERSION_MAJOR`` INTERNAL | |
``CUDNN_VERSION_MINOR`` INTERNAL | |
``CUDNN_VERSION_PATCH`` INTERNAL | |
#]=======================================================================] | |
# find the library | |
if(CUDA_FOUND) | |
message(CUDA FOUND) | |
find_cuda_helper_libs(cudnn) | |
set(CUDNN_LIBRARY ${CUDA_cudnn_LIBRARY} CACHE FILEPATH "location of the cuDNN library") | |
message("CUDNN_LIBRARY: ${CUDNN_LIBRARY}") | |
unset(CUDA_cudnn_LIBRARY CACHE) | |
endif() | |
# find the include | |
if(CUDNN_LIBRARY) | |
find_path(CUDNN_INCLUDE_DIR | |
cudnn.h | |
PATHS ${CUDA_TOOLKIT_INCLUDE} | |
DOC "location of cudnn.h" | |
NO_DEFAULT_PATH | |
) | |
if(NOT CUDNN_INCLUDE_DIR) | |
find_path(CUDNN_INCLUDE_DIR | |
cudnn.h | |
DOC "location of cudnn.h" | |
) | |
endif() | |
endif() | |
# extract version from the include | |
if(CUDNN_INCLUDE_DIR) | |
file(READ "${CUDNN_INCLUDE_DIR}/cudnn.h" CUDNN_H_CONTENTS) | |
string(REGEX MATCH "define CUDNN_MAJOR ([0-9]+)" _ "${CUDNN_H_CONTENTS}") | |
set(CUDNN_MAJOR_VERSION ${CMAKE_MATCH_1} CACHE INTERNAL "") | |
string(REGEX MATCH "define CUDNN_MINOR ([0-9]+)" _ "${CUDNN_H_CONTENTS}") | |
set(CUDNN_MINOR_VERSION ${CMAKE_MATCH_1} CACHE INTERNAL "") | |
string(REGEX MATCH "define CUDNN_PATCHLEVEL ([0-9]+)" _ "${CUDNN_H_CONTENTS}") | |
set(CUDNN_PATCH_VERSION ${CMAKE_MATCH_1} CACHE INTERNAL "") | |
set(CUDNN_VERSION | |
"${CUDNN_MAJOR_VERSION}.${CUDNN_MINOR_VERSION}.${CUDNN_PATCH_VERSION}" | |
CACHE | |
STRING | |
"cuDNN version" | |
) | |
unset(CUDNN_H_CONTENTS) | |
endif() | |
include(FindPackageHandleStandardArgs) | |
find_package_handle_standard_args(CUDNN | |
FOUND_VAR CUDNN_FOUND | |
REQUIRED_VARS | |
CUDNN_LIBRARY | |
CUDNN_INCLUDE_DIR | |
VERSION_VAR CUDNN_VERSION | |
) | |
if(CUDNN_FOUND) | |
set(CUDNN_LIBRARIES ${CUDNN_LIBRARY}) | |
set(CUDNN_INCLUDE_DIRS ${CUDNN_INCLUDE_DIR}) | |
endif() | |
mark_as_advanced( | |
CUDNN_LIBRARY | |
CUDNN_INCLUDE_DIR | |
CUDNN_VERSION | |
) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment