aboutsummaryrefslogtreecommitdiff
path: root/ports/cudnn
diff options
context:
space:
mode:
Diffstat (limited to 'ports/cudnn')
-rw-r--r--ports/cudnn/CONTROL2
-rw-r--r--ports/cudnn/portfile.cmake73
2 files changed, 5 insertions, 70 deletions
diff --git a/ports/cudnn/CONTROL b/ports/cudnn/CONTROL
index ebb814349..db910a7bc 100644
--- a/ports/cudnn/CONTROL
+++ b/ports/cudnn/CONTROL
@@ -1,6 +1,6 @@
Source: cudnn
Version: 7.6.5
-Port-Version: 1
+Port-Version: 2
Description: NVIDIA's cuDNN deep neural network acceleration library
Build-Depends: cuda
Supports: (windows|linux)&x64
diff --git a/ports/cudnn/portfile.cmake b/ports/cudnn/portfile.cmake
index 1c1f0641e..6a0083130 100644
--- a/ports/cudnn/portfile.cmake
+++ b/ports/cudnn/portfile.cmake
@@ -7,7 +7,6 @@ if(NOT VCPKG_TARGET_ARCHITECTURE STREQUAL "x64")
endif()
vcpkg_check_linkage(ONLY_DYNAMIC_LIBRARY ONLY_DYNAMIC_CRT)
-set(VCPKG_POLICY_MISMATCHED_NUMBER_OF_BINARIES enabled) # only release bits are provided
set(MINIMUM_CUDNN_VERSION "7.6.5")
@@ -64,74 +63,10 @@ if(CUDNN_HEADER_CONTENTS)
endif()
if (CUDNN_INCLUDE_DIR AND CUDNN_LIBRARY AND _CUDNN_VERSION VERSION_GREATER_EQUAL MINIMUM_CUDNN_VERSION)
- set(CUDNN_FOUND TRUE)
-else()
- set(CUDNN_FOUND FALSE)
-endif()
-
-# Download CUDNN if not found
-if (CUDNN_FOUND)
message(STATUS "Found CUDNN ${_CUDNN_VERSION} located on system: (include ${CUDNN_INCLUDE_DIR} lib: ${CUDNN_LIBRARY})")
set(VCPKG_POLICY_EMPTY_PACKAGE enabled)
-elseif(CUDA_VERSION VERSION_EQUAL "10.1" OR CUDA_VERSION VERSION_EQUAL "10.2")
- message(STATUS "CUDNN not found on system - downloading a version compatible with your CUDA v${CUDA_VERSION}...")
- if(${CUDA_VERSION} VERSION_EQUAL "10.1")
- set(CUDNN_VERSION "7.6.5")
- set(CUDNN_VERSION_MAJOR "7")
- set(CUDNN_FULL_VERSION "7.6.5-cuda10.1_0")
- if(VCPKG_TARGET_IS_WINDOWS)
- set(CUDNN_DOWNLOAD_LINK "https://anaconda.org/anaconda/cudnn/${CUDNN_VERSION}/download/win-64/cudnn-${CUDNN_FULL_VERSION}.tar.bz2")
- set(SHA512_CUDNN "0fb18dd49de877ad6bae24b53ffe007a99915cc9601697a556897e018cc6d99d3aa68716ea99248cf6a9dfaeeb1a551453c606d04e8bbb3e9315bf768184f15b")
- set(CUDNN_OS "windows")
- elseif(VCPKG_TARGET_IS_LINUX)
- set(CUDNN_DOWNLOAD_LINK "https://anaconda.org/anaconda/cudnn/${CUDNN_VERSION}/download/linux-64/cudnn-${CUDNN_FULL_VERSION}.tar.bz2")
- set(SHA512_CUDNN "4d901d96ee8f37e3977240b9e6e6eeecb33848388db953a789be47de8f357d815c3a106ceab04297c4df0d8ed9c2795b2a22304e93cd1e53322307d3f3cd668e")
- set(CUDNN_OS "linux")
- endif()
- elseif(${CUDA_VERSION} VERSION_EQUAL "10.2")
- set(CUDNN_VERSION "7.6.5")
- set(CUDNN_VERSION_MAJOR "7")
- set(CUDNN_FULL_VERSION "7.6.5-cuda10.2_0")
- if(VCPKG_TARGET_IS_WINDOWS)
- set(CUDNN_DOWNLOAD_LINK "https://anaconda.org/anaconda/cudnn/${CUDNN_VERSION}/download/win-64/cudnn-${CUDNN_FULL_VERSION}.tar.bz2")
- set(SHA512_CUDNN "86ca2f5f510d4fbeb37548d0bcab42474a1c4041be2cf96c4964f1e51c3641dc4bf25e8434cd5ff99fac9f53946e5f0e83bd845613144731d136cd60913d4aaa")
- set(CUDNN_OS "windows")
- elseif(VCPKG_TARGET_IS_LINUX)
- set(CUDNN_DOWNLOAD_LINK "https://anaconda.org/anaconda/cudnn/${CUDNN_VERSION}/download/linux-64/cudnn-${CUDNN_FULL_VERSION}.tar.bz2")
- set(SHA512_CUDNN "b15b554c2ec004105cec8ee2a99f33fab0f9aed12128522730be4fa6204a5b2dff29e42901b5c4840b5ebf35607e8a54f35eb30525885067165b05dd95aa391b")
- set(CUDNN_OS "linux")
- endif()
- endif()
-
- vcpkg_download_distfile(ARCHIVE
- URLS ${CUDNN_DOWNLOAD_LINK}
- FILENAME "cudnn-${CUDNN_FULL_VERSION}-${CUDNN_OS}.tar.bz2"
- SHA512 ${SHA512_CUDNN}
- )
-
- vcpkg_extract_source_archive_ex(
- OUT_SOURCE_PATH SOURCE_PATH
- ARCHIVE ${ARCHIVE}
- NO_REMOVE_ONE_LEVEL
- )
-
- if(VCPKG_TARGET_IS_WINDOWS)
- file(INSTALL "${SOURCE_PATH}/Library/include/cudnn.h" DESTINATION ${CURRENT_PACKAGES_DIR}/include)
- file(INSTALL "${SOURCE_PATH}/Library/lib/x64/cudnn.lib" DESTINATION ${CURRENT_PACKAGES_DIR}/lib)
- file(INSTALL "${SOURCE_PATH}/Library/bin/cudnn64_${CUDNN_VERSION_MAJOR}.dll" DESTINATION ${CURRENT_PACKAGES_DIR}/bin)
- set(LICENSE_PATH "${SOURCE_PATH}/info/LICENSE.txt")
- elseif(VCPKG_TARGET_IS_LINUX)
- file(INSTALL "${SOURCE_PATH}/include/cudnn.h" DESTINATION ${CURRENT_PACKAGES_DIR}/include)
- file(INSTALL "${SOURCE_PATH}/lib/libcudnn.so.${CUDNN_VERSION}" DESTINATION ${CURRENT_PACKAGES_DIR}/lib)
- file(INSTALL "${SOURCE_PATH}/lib/libcudnn.so.${CUDNN_VERSION_MAJOR}" DESTINATION ${CURRENT_PACKAGES_DIR}/lib)
- file(INSTALL "${SOURCE_PATH}/lib/libcudnn.so" DESTINATION ${CURRENT_PACKAGES_DIR}/lib)
- set(LICENSE_PATH "${SOURCE_PATH}/info/licenses/NVIDIA_SLA_cuDNN_Support.txt")
- endif()
-
- file(INSTALL "${LICENSE_PATH}" DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT} RENAME copyright)
- file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/FindCUDNN.cmake" DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT})
- file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/vcpkg-cmake-wrapper.cmake" DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT})
-
-else() # CUDNN NOT FOUND AND NOT AUTO-DOWNLOADABLE
- message(FATAL_ERROR "Please install manually cuDNN for your CUDA v${CUDA_VERSION}")
+elseif(VCPKG_TARGET_IS_WINDOWS)
+ message(FATAL_ERROR "Please download CUDNN from official sources (such as https://developer.nvidia.com/rdp/cudnn-download ) and extract the zip into your CUDA_TOOLKIT_ROOT (${CUDA_TOOLKIT_ROOT}). (For example: tar.exe -xvf cudnn-11.2-windows-x64-v8.1.1.33.zip --strip 1 --directory \"${CUDA_TOOLKIT_ROOT}\"")
+else()
+ message(FATAL_ERROR "Please install CUDNN using your system package manager (the same way you installed CUDA). For example: apt install libcudnn8-dev.")
endif()