如何在CMake中寻找CUDNN?

3
显然,我已经正确安装了CUDA和CUDNN,但是FindCUDA可以找到CUDA,但FindCUDNN.cmake无法找到CUDNN。
我需要检查什么以调试这个问题? 操作系统:Windows 10 cmake版本:3.17.2 CUDA版本:10.2 CUDNN版本:cudnn-10.2-windows10-x64-v7.6.5.32
使用安装程序安装了CUDA,路径为C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.2 根据指示设置了PATH
将CUDNN文件复制到了相应的bin、include和lib文件夹中。

enter image description here

enter image description here

enter image description here

[cmake] -- Found CUDA: C:/Program Files/NVIDIA GPU Computing Toolkit/CUDA/v10.2 (found version "10.2") 
[cmake] CMake Error at C:/Program Files/CMake/share/cmake-3.17/Modules/FindPackageHandleStandardArgs.cmake:164 (message):
[cmake]   Could NOT find CUDNN (missing: CUDNN_LIBRARY CUDNN_INCLUDE_DIR)
[cmake] Call Stack (most recent call first):
[cmake]   C:/Program Files/CMake/share/cmake-3.17/Modules/FindPackageHandleStandardArgs.cmake:445 (_FPHSA_FAILURE_MESSAGE)
[cmake]   cmake/FindCUDNN.cmake:90 (find_package_handle_standard_args)
[cmake]   CMakeLists.txt:17 (find_package)

FindCUDNN.cmake: https://gist.github.com/WurmD/26af2940d8dec7cc48d38bc30fd1b3ef 的翻译:
4个回答

3
...
set "cudaRoot=C:/Program Files/NVIDIA GPU Computing Toolkit/CUDA/v11.3"
...
-DCUDNN_LIBRARY="%cudaRoot%\lib" ^
-DCUDNN_INCLUDE_DIR="%cudaRoot%\include" ^
...

1
我正在使用Visual Studio 2019编译OpenCV;因为我已经解决了这个问题,所以我会假设你也在用 - 因为我很累。
  1. 确保在安装CUDNN后重新启动计算机
  2. 新克隆opencv和opencv_contrib的GIT存储库
  3. 确保在opencv目录中创建BUILD文件夹
  4. 设置所需的环境变量;类似于以下内容,但请填写您的路径:



    set "CUDA_PATH=............/NVIDIA GPU Computing Toolkit/CUDA/v11.0"
    set "opencvSource=opencv"
    set "opencvExtraModules=opencv_contrib\modules"
    set "opencvBuild=%opencvSource%\build"
    set "compiler=Visual Studio 16 2019"
    set "buildType=Release"
    set "python3_executable=............/AppData/Local/Programs/Python/Python38/python.exe"
    set "python3_include_dir=............/AppData/Local/Programs/Python/Python38/include"
    set "python3_library=............/AppData/Local/Programs/Python/Python38/libs/python38.lib"
    set "python3_numpy_include_dirs=............/AppData/Local/Programs/Python/Python38/Lib/site-packages/numpy/core/include"
    set "python3_packages_path=............/AppData/Local/Programs/Python/Python38/Lib/site-packages"

  1. 重新运行CMAKE(显然需要根据您的选项进行更改),我的选项是:


    cmake ^
    -B"%opencvBuild%/" ^
    -H"%opencvSource%/" ^
    -G"%compiler%" ^
    -Ax64 ^
    -DCMAKE_BUILD_TYPE=%buildType% ^
    -DBUILD_opencv_python3=ON ^
    -DBUILD_opencv_world=ON ^
    -DBUILD_EXAMPLES=OFF ^
    -DBUILD_opencv_python_bindings_generator=ON ^
    -DOPENCV_PYTHON3_VERSION=3.8.3 ^
    -DPYTHON3_EXECUTABLE="%python3_executable%" ^
    -DPYTHON3_INCLUDE_DIR="%python3_include_dir%" ^
    -DPYTHON3_LIBRARY="%python3_library%" ^
    -DPYTHON3_NUMPY_INCLUDE_DIRS="%python3_numpy_include_dirs%" ^
    -DPYTHON3_PACKAGES_PATH="%python3_packages_path%" ^
    -DINSTALL_TESTS=OFF ^
    -DINSTALL_C_EXAMPLES=OFF ^
    -DOPENCV_EXTRA_MODULES_PATH="%opencvExtraModules%/" ^
    -DWITH_CUDA=ON ^
    -DCUDA_ARCH_BIN=6.1^
    -DCUDA_ARCH_PTX=7.5^
    -DCUDA_FAST_MATH=ON ^
    -DBUILD_PROTOBUF=ON 

0

我也遇到过这个问题。将Win32更改为x64对我有帮助。 我猜在尝试为Win32构建时,它正在查看不同的路径。


0

在安装新版CuDNN时,请确保通过“文件”菜单和“删除缓存”选项来清除CMake的缓存。这将删除所有设置,但可以识别新版CuDNN。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接