Cuda 如何验证CuDNN安装?

Cuda 如何验证CuDNN安装?,cuda,computer-vision,caffe,conv-neural-network,cudnn,Cuda,Computer Vision,Caffe,Conv Neural Network,Cudnn,我已经搜索了很多地方,但我得到的只是如何安装它,而不是如何验证它是否已安装。我可以验证是否安装了NVIDIA驱动程序,是否安装了CUDA,但我不知道如何验证是否安装了CuDNN。非常感谢您的帮助,谢谢 PS. 这是针对caffe实现的。目前,在未启用CuDNN的情况下,一切正常。安装CuDNN只需将文件放在CUDA目录中即可。如果在安装caffe时正确指定了路由和CuDNN选项,则将使用CuDNN进行编译 您可以使用cmake检查。创建一个目录caffe/build,然后从那里运行cmake..

我已经搜索了很多地方,但我得到的只是如何安装它,而不是如何验证它是否已安装。我可以验证是否安装了NVIDIA驱动程序,是否安装了CUDA,但我不知道如何验证是否安装了CuDNN。非常感谢您的帮助,谢谢

PS.

这是针对caffe实现的。目前,在未启用CuDNN的情况下,一切正常。

安装CuDNN只需将文件放在CUDA目录中即可。如果在安装caffe时正确指定了路由和CuDNN选项,则将使用CuDNN进行编译

您可以使用
cmake
检查。创建一个目录
caffe/build
,然后从那里运行
cmake..
。如果配置正确,您将看到以下行:

-- Found cuDNN (include: /usr/local/cuda-7.0/include, library: /usr/local/cuda-7.0/lib64/libcudnn.so)

-- NVIDIA CUDA:
--   Target GPU(s)     :   Auto
--   GPU arch(s)       :   sm_30
--   cuDNN             :   Yes

如果一切正常,只需运行
make
命令从那里安装caffe。

CuDNN的安装只是复制一些文件。因此,要检查是否安装了CuDNN(以及您的版本),只需检查这些文件

安装CuDNN 第1步:注册一个nvidia开发人员帐户,大约80MB。您可能需要
nvcc--version
来获取cuda版本

步骤2:检查cuda安装位置。对于大多数人来说,这将是
/usr/local/cuda/
。您可以使用
哪个nvcc
进行检查

步骤3:复制文件:

$ cd folder/extracted/contents
$ sudo cp include/cudnn.h /usr/local/cuda/include
$ sudo cp lib64/libcudnn* /usr/local/cuda/lib64
$ sudo chmod a+r /usr/local/cuda/lib64/libcudnn*
检查版本 您可能需要调整路径。请参阅安装步骤2

$ cat /usr/local/cuda/include/cudnn.h | grep CUDNN_MAJOR -A 2
笔记 当你遇到这样的错误时

F tensorflow/stream_executor/cuda/cuda_dnn.cc:427] could not set cudnn filter descriptor: CUDNN_STATUS_BAD_PARAM

使用TensorFlow,您可以考虑使用CUDNN V4而不是V5..P/>


通过
apt安装它的Ubuntu用户:

我的回答显示了如何检查安装的CuDNN版本,这通常也是您需要验证的。首先需要找到已安装的cudnn文件,然后解析该文件。要查找该文件,您可以使用:

whereis cudnn.h
CUDNN_H_PATH=$(whereis cudnn.h)
如果这不起作用,请参阅下面的“Redhat发行版”

找到此位置后,可以执行以下操作(用路径替换
${CUDNN_H_PATH}
):

结果应该如下所示:

#define CUDNN_MAJOR 7
#define CUDNN_MINOR 5
#define CUDNN_PATCHLEVEL 0
--
#define CUDNN_VERSION (CUDNN_MAJOR * 1000 + CUDNN_MINOR * 100 + CUDNN_PATCHLEVEL)
这意味着版本是7.5.0

Ubuntu 18.04(通过sudo apt安装nvidia cuda工具包) 此安装方法将cuda安装在/usr/include和/usr/lib/cuda/lib64中,因此需要查看的文件位于/usr/include/cudnn.h中

CUDNN_H_PATH=/usr/include/cudnn.h
cat ${CUDNN_H_PATH} | grep CUDNN_MAJOR -A 2
Debian和Ubuntu 从CuDNN v5开始(至少当您通过
sudo dpkg-i.deb
软件包安装时),您可能需要使用以下功能:

cat /usr/include/x86_64-linux-gnu/cudnn_v*.h | grep CUDNN_MAJOR -A 2
例如:

$ cat /usr/include/x86_64-linux-gnu/cudnn_v*.h | grep CUDNN_MAJOR -A 2                                                         
#define CUDNN_MAJOR      6
#define CUDNN_MINOR      0
#define CUDNN_PATCHLEVEL 21
--
#define CUDNN_VERSION    (CUDNN_MAJOR * 1000 + CUDNN_MINOR * 100 + CUDNN_PATCHLEVEL)

#include "driver_types.h"
                      
表示已安装CuDNN版本6.0.21

红帽分布 在CentOS上,我通过以下信息找到了CUDA的位置:

$ whereis cuda
cuda: /usr/local/cuda
然后,我在从该位置找到的cudnn.h文件中使用了关于的过程:

$ cat /usr/local/cuda/include/cudnn.h | grep CUDNN_MAJOR -A 2

要检查CUDA的安装,请运行下面的命令,如果安装正确,下面的命令将不会抛出任何错误,并将打印正确版本的库

function lib_installed() { /sbin/ldconfig -N -v $(sed 's/:/ /' <<< $LD_LIBRARY_PATH) 2>/dev/null | grep $1; }
function check() { lib_installed $1 && echo "$1 is installed" || echo "ERROR: $1 is NOT installed"; }
check libcuda
check libcudart
它应该给出类似这样的输出

 nvcc: NVIDIA (R) Cuda compiler driver
 Copyright (c) 2005-2016 NVIDIA Corporation
 Built on Tue_Jan_10_13:22:03_CST_2017
 Cuda compilation tools, release 8.0, V8.0.61

/usr/src/cudnn\u samples\u v7/mnistCUDNN
中运行
/mnistCUDNN
以下是一个例子:

cudnnGetVersion() : 7005 , CUDNN_VERSION from cudnn.h : 7005 (7.0.5)
Host compiler version : GCC 5.4.0
There are 1 CUDA capable devices on your machine :
device 0 : sms 30  Capabilities 6.1, SmClock 1645.0 Mhz, MemSize (Mb) 24446, MemClock 4513.0 Mhz, Ecc=0,    boardGroupID=0
Using device 0

通过
.deb
在ubuntu上安装时,您可以使用
sudo-apt-search-cudnn | grep-installed
获取cudnn版本[Linux]

使用以下命令查找cuDNN的路径:

cat $(whereis cudnn.h) | grep CUDNN_MAJOR -A 2
C:\>where cudnn*
C:\Program Files\cuDNN6\cuda\bin\cudnn64_6.dll
如果上述方法无效,请尝试以下方法:

cat $(whereis cuda)/include/cudnn.h | grep CUDNN_MAJOR -A 2

获取cuDNN版本[Windows]

使用以下命令查找cuDNN的路径:

cat $(whereis cudnn.h) | grep CUDNN_MAJOR -A 2
C:\>where cudnn*
C:\Program Files\cuDNN6\cuda\bin\cudnn64_6.dll
然后使用此命令从头文件转储版本

type "%PROGRAMFILES%\cuDNN6\cuda\include\cudnn.h" | findstr "CUDNN_MAJOR CUDNN_MINOR CUDNN_PATCHLEVEL"
获取CUDA版本

这适用于Linux和Windows:

nvcc --version

使用
python
code检查如何:

from tensorflow.python.platform import build_info as tf_build_info

print(tf_build_info.cudnn_version_number)
# 7 in v1.10.0

我有cuDNN 8.0,上面的建议都不适合我。所需信息位于
/usr/include/cudnn_version.h
,因此

cat /usr/include/cudnn_version.h | grep CUDNN_MAJOR -A 2
成功了。

在Ubuntu 20.04LTS上:

cat /usr/local/cuda/include/cudnn_version.h | grep CUDNN_MAJOR

返回了预期结果

您是否尝试在启用和未启用
USE_CUDNN
的情况下运行一些示例?如何验证您的NVIDIA和CUDA驱动程序是否已安装?@CharlieParker验证CUDA只需键入
nvcc-V
真棒,谢谢您的回答。在make文件中启用cuDNN并重新编译后,我确实启用了cuDNN:D.有没有办法确定cuDNN是否在不使用Caffe的情况下安装的。类似于CUDA的例子?@gokul_uf根据martin下面的回答,您可以使用以下内容(假设您已将/usr/local/CUDA符号链接到/usr/local/CUDA-#.#):
cat/usr/local/CUDA/include/cudnn.h | grep cudnnMAJOR-A 2
@boooooooms他只是将“头文件”的内容作为编程语言C,使用程序“grep”读取usI的特定变量时,没有Caffe。这些步骤对于CuDNN是很好的。如果副本保留符号链接(-av标志),您会说它们可以稍微改进吗?修改路径对我的安装稍微有效
cat/usr/include/cudnn.h | grep cudnn_MAJOR-A 2
我必须将路径更改为
/usr/local/cuda/***.h
您发布的链接,以将cudnn链接下载到deb文件。这里是您可以下载tar文件的地方:最近,为了获得版本,下面的工作。cat/usr/include/x86_64-linux-gnu/cudnn_v7.h | grep cudnn_MAJOR-这实际上是一个不错的建议,除非它是错误的
mnistCUDNN
不应位于该目录中,因为该目录不应为可写目录。相反,示例应该作为子目录复制到用户主目录并在那里构建。因此,如果它是根据英伟达网站上的指令正确安装和构建的,则代码> MnistCudNN将在<代码> ~/CUnnnSAMPLESESV7<代码>中。我的
cudnn.h
安装在
/usr/include/cudnn.h
,不知道为什么,但是
cat /usr/local/cuda/include/cudnn_version.h | grep CUDNN_MAJOR