opencv

Форк
0
/
FindCUDNN.cmake 
104 строки · 2.7 Кб
1
# template taken from https://cmake.org/cmake/help/v3.14/manual/cmake-developer.7.html
2

3
# Distributed under the OSI-approved BSD 3-Clause License.  See accompanying
4
# file Copyright.txt or https://cmake.org/licensing for details.
5

6
#[=======================================================================[.rst:
7
FindCUDNN
8
---------
9

10
Finds the cuDNN library.
11

12
Requires:
13
^^^^^^^^^
14

15
find_cuda_helper_libs from FindCUDA.cmake
16
i.e. CUDA module should be found using FindCUDA.cmake before attempting to find cuDNN
17

18
Result Variables
19
^^^^^^^^^^^^^^^^
20

21
This will define the following variables:
22

23
``CUDNN_FOUND``
24
``CUDNN_INCLUDE_DIRS``    location of cudnn.h
25
``CUDNN_LIBRARIES``       location of cudnn library
26

27
Cache Variables
28
^^^^^^^^^^^^^^^
29

30
The following cache variables will be set if cuDNN was found. They may also be set on failure.
31

32
``CUDNN_LIBRARY``
33
``CUDNN_INCLUDE_DIR``
34
``CUDNN_VERSION``
35

36
``CUDNN_VERSION_MAJOR`` INTERNAL
37
``CUDNN_VERSION_MINOR`` INTERNAL
38
``CUDNN_VERSION_PATCH`` INTERNAL
39

40
#]=======================================================================]
41

42
# find the library
43
if(CUDA_FOUND)
44
  find_cuda_helper_libs(cudnn)
45
  set(CUDNN_LIBRARY ${CUDA_cudnn_LIBRARY} CACHE FILEPATH "location of the cuDNN library")
46
  unset(CUDA_cudnn_LIBRARY CACHE)
47
endif()
48

49
# find the include
50
if(CUDNN_LIBRARY)
51
  find_path(CUDNN_INCLUDE_DIR
52
    cudnn.h
53
    PATHS ${CUDA_TOOLKIT_INCLUDE}
54
    DOC "location of cudnn.h"
55
    NO_DEFAULT_PATH
56
  )
57

58
  if(NOT CUDNN_INCLUDE_DIR)
59
    find_path(CUDNN_INCLUDE_DIR
60
      cudnn.h
61
      DOC "location of cudnn.h"
62
    )
63
  endif()
64
endif()
65

66
# extract version from the include
67
if(CUDNN_INCLUDE_DIR)
68
  if(EXISTS "${CUDNN_INCLUDE_DIR}/cudnn_version.h")
69
    file(READ "${CUDNN_INCLUDE_DIR}/cudnn_version.h" CUDNN_H_CONTENTS)
70
  else()
71
    file(READ "${CUDNN_INCLUDE_DIR}/cudnn.h" CUDNN_H_CONTENTS)
72
  endif()
73

74
  string(REGEX MATCH "define CUDNN_MAJOR ([0-9]+)" _ "${CUDNN_H_CONTENTS}")
75
  set(CUDNN_VERSION_MAJOR ${CMAKE_MATCH_1} CACHE INTERNAL "")
76
  string(REGEX MATCH "define CUDNN_MINOR ([0-9]+)" _ "${CUDNN_H_CONTENTS}")
77
  set(CUDNN_VERSION_MINOR ${CMAKE_MATCH_1} CACHE INTERNAL "")
78
  string(REGEX MATCH "define CUDNN_PATCHLEVEL ([0-9]+)" _ "${CUDNN_H_CONTENTS}")
79
  set(CUDNN_VERSION_PATCH ${CMAKE_MATCH_1} CACHE INTERNAL "")
80

81
  set(CUDNN_VERSION "${CUDNN_VERSION_MAJOR}.${CUDNN_VERSION_MINOR}.${CUDNN_VERSION_PATCH}")
82

83
  unset(CUDNN_H_CONTENTS)
84
endif()
85

86
include(FindPackageHandleStandardArgs)
87
find_package_handle_standard_args(CUDNN
88
  FOUND_VAR CUDNN_FOUND
89
  REQUIRED_VARS
90
    CUDNN_LIBRARY
91
    CUDNN_INCLUDE_DIR
92
  VERSION_VAR CUDNN_VERSION
93
)
94

95
if(CUDNN_FOUND)
96
  set(CUDNN_LIBRARIES ${CUDNN_LIBRARY})
97
  set(CUDNN_INCLUDE_DIRS ${CUDNN_INCLUDE_DIR})
98
endif()
99

100
mark_as_advanced(
101
  CUDNN_LIBRARY
102
  CUDNN_INCLUDE_DIR
103
  CUDNN_VERSION
104
)
105

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.