如何验证CuDNN安装?

问题描述 投票:106回答:7

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

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

cuda computer-vision caffe conv-neural-network cudnn
7个回答
37
投票

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


149
投票

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


77
投票

首先需要找到已安装的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 (via 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 and 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 distributions

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

$ whereis cuda
cuda: /usr/local/cuda

然后我使用了从这个位置找到的cudnn.h文件中的过程:

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

33
投票

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

20
投票

获取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

11
投票

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


6
投票

./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
© www.soinside.com 2019 - 2024. All rights reserved.