aboutsummaryrefslogtreecommitdiff
path: root/ports/cudnn
diff options
context:
space:
mode:
authorBilly O'Neal <bion@microsoft.com>2021-04-26 10:27:45 -0700
committerGitHub <noreply@github.com>2021-04-26 10:27:45 -0700
commita9b27ed5dffbf70b135eddb0c4729f3ca87f106c (patch)
treecc562b219c82e40567925a48248cbc17b2cc2b59 /ports/cudnn
parent84e5852cfaa8e7875027e79a29a5534bb5d4a475 (diff)
downloadvcpkg-a9b27ed5dffbf70b135eddb0c4729f3ca87f106c.tar.gz
vcpkg-a9b27ed5dffbf70b135eddb0c4729f3ca87f106c.zip
Update VMs, CMake to 3.20.1, CUDA to 11.3, and pwsh to 7.1.3 (#17331)
* Update to CUDA 11.3 on Windows. * Update PowerShell to 7.1.3. * Update CUDA to 11.3 on Linux. * "Explode" VM provisioning scripts for more consistent feedback during deploy. This resolves the deployment script often hanging with no feedback as to why. * [libdatachannel] Fix use of deprecated result_type typedef. Submitted upstream as https://github.com/paullouisageneau/libdatachannel/pull/413 * [libvpx] Get the libvpx outputs from the correct place. (Perhaps VS2019 version 16.10 moved where these are placed? I've been defensive and left an attempt to find from the old location in place.) * [chromaprint] Support implementations where lrintf is an intrinsic. * Add provision-entire-image script. * [cudnn] Disable download-on-the-fly due to licensing concerns. * Add libnccl to Linux VMs. * [wangle] Disable x64-windows due to an ICE. * [cmake] Update cmake to 3.20.1 to avoid https://gitlab.kitware.com/cmake/cmake/-/issues/21571 race * [libudis86] Fix passing a bogus working directory which fails on CMake 3.20.x * [dartsim] Disable unit tests, examples, and tutorials, some of which have CMake authoring errors rejected by 3.20.1. * Add thrust to the cuda installees. * [tensorflow] Put .bzl in CURRENT_BUILDTREES_DIR to avoid running out of disk space in CI and to respect --clean-after-build. * [dimcli] Skip port broken by changes in VS2019 project system. * [upb] Disable an additional warning. * [libhv] Fix typo DISABLE_PARALLEL => DISABLE_PARALLEL_CONFIGURE * Update pools
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()