如何验证CuDNN安装?

时间:2015-07-09 18:58:40

标签: cuda computer-vision caffe conv-neural-network cudnn

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

PS。
这是为了实现caffe。目前一切正常,没有启用CuDNN。

10 个答案:

答案 0 :(得分:142)

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

安装CuDNN

第1步:注册一个nvidia开发者帐户和download cudnn here(约80 MB)。您可能需要nvcc --version才能获得cuda版本。

步骤2:检查您的cuda安装位置。对于大多数人来说,它将是/usr/local/cuda/。您可以使用which 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。

通过apt 安装的Ubuntu用户:https://askubuntu.com/a/767270/10425

答案 1 :(得分:73)

首先需要找到已安装的cudnn文件,然后解析此文件。要查找文件,您可以使用:

whereis cudnn.h
CUDNN_H_PATH=$(whereis cudnn.h)

如果不起作用,请参阅下面的“Redhat发行版”。

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

cat ${CUDNN_H_PATH} | grep CUDNN_MAJOR -A 2

结果应如下所示:

#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 install nvidia-cuda-toolkit)

这种安装方法在/ usr / include和/ usr / lib / cuda / lib64中安装cuda,因此您需要查看的文件位于/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 <library_name>.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。

Redhat发行版

在CentOS上,我找到了CUDA的位置:

$ whereis cuda
cuda: /usr/local/cuda

然后我在这个位置找到了cudnn.h文件中的程序:

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

答案 2 :(得分:33)

安装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。

答案 3 :(得分:32)

要检查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

要检查CuDNN的安装,请运行以下命令,如果CuDNN安装正确,则不会出现任何错误。

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 libcudnn 

您可以从任何目录

运行以下命令
nvcc -V

它应该输出类似这样的输出

 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

答案 4 :(得分:19)

获取cuDNN版本[Linux]

使用以下内容查找cuDNN的路径:

$ whereis cuda
cuda: /usr/local/cuda

然后使用它从头文件获取版本,

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

获取cuDNN版本[Windows]

使用以下内容查找cuDNN的路径:

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

答案 5 :(得分:11)

通过.deb在ubuntu上安装时,您可以使用sudo apt search cudnn | grep installed

答案 6 :(得分:6)

在 Ubuntu 20.04LTS 上:

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

返回预期结果

答案 7 :(得分:5)

./mnistCUDNN中运行/usr/src/cudnn_samples_v7/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

答案 8 :(得分:4)

我有cuDNN 8.0,上面的建议对我都不起作用。所需信息在/usr/include/cudnn_version.h中,所以

cat /usr/include/cudnn_version.h | grep CUDNN_MAJOR -A 2

成功了!

答案 9 :(得分:3)

如何使用python代码进行检查:

from tensorflow.python.platform import build_info as tf_build_info

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