如何验证CuDNN安装?

alf*_*dox 128 cuda computer-vision caffe conv-neural-network cudnn

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

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

Mar*_*oma 159

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

安装CuDNN

步骤1:注册一个nvidia开发者帐户并在此处下载cudnn(大约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*
Run Code Online (Sandbox Code Playgroud)

检查版本

您可能需要调整路径.请参阅安装的第2步.

$ cat /usr/local/cuda/include/cudnn.h | grep CUDNN_MAJOR -A 2
Run Code Online (Sandbox Code Playgroud)

笔记

当你收到错误时

F tensorflow/stream_executor/cuda/cuda_dnn.cc:427] could not set cudnn filter descriptor: CUDNN_STATUS_BAD_PARAM
Run Code Online (Sandbox Code Playgroud)

使用TensorFlow,您可以考虑使用CuDNN v4而不是v5.

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

  • 修改路径稍微适用于我的安装`cat /usr/include/cudnn.h | grep CUDNN_MAJOR -A 2` (6认同)
  • 对我来说,`CUDNN_MAJOR`变量包含在 /usr/local/cuda/include/cudnn_version.h 我正在使用 CuDNN 8.0.5 (5认同)
  • 我赞同 @spurra 的评论,新版本的 cudnn 有一个 `cudnn_version.h` 文件。因此整个命令看起来像:`cat /usr/local/cuda/include/cudnn_version.h | grep CUDNN_MAJOR -A 2` (3认同)
  • CuDNN 的这些步骤很好。如果副本保留符号链接(-av 标志),您会说它们可以稍微改进吗? (2认同)
  • 最近,要获取版本,请执行以下操作。猫 /usr/include/x86_64-linux-gnu/cudnn_v7.h | grep CUDNN_MAJOR -A 2 (2认同)

Jon*_*han 88

Debian和Ubuntu

从CuDNN v5开始(至少在通过${CUDNN_H_PATH}软件包安装时),看起来您可能需要使用以下内容:

whereis cudnn.h
CUDNN_H_PATH=$(whereis cudnn.h)
Run Code Online (Sandbox Code Playgroud)

例如:

cat ${CUDNN_H_PATH} | grep CUDNN_MAJOR -A 2
Run Code Online (Sandbox Code Playgroud)

表示已安装CuDNN版本6.0.21.

Redhat发行版

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

#define CUDNN_MAJOR 7
#define CUDNN_MINOR 5
#define CUDNN_PATCHLEVEL 0
--
#define CUDNN_VERSION (CUDNN_MAJOR * 1000 + CUDNN_MINOR * 100 + CUDNN_PATCHLEVEL)
Run Code Online (Sandbox Code Playgroud)

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

CUDNN_H_PATH=/usr/include/cudnn.h
cat ${CUDNN_H_PATH} | grep CUDNN_MAJOR -A 2
Run Code Online (Sandbox Code Playgroud)

  • 不再; 现在在 cudnn_version.h 中找到。 (6认同)

She*_*ock 39

要检查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
Run Code Online (Sandbox Code Playgroud)

要检查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 
Run Code Online (Sandbox Code Playgroud)

要么

您可以从任何目录运行以下命令

nvcc -V
Run Code Online (Sandbox Code Playgroud)

它应该给出这样的输出

 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
Run Code Online (Sandbox Code Playgroud)

  • 运行“nvcc -V”与 cudnn 有什么关系?正如您的示例中所示,它似乎没有显示 cudnn 版本...... (4认同)

小智 36

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

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

-- 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
Run Code Online (Sandbox Code Playgroud)

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

  • 有没有办法找到是否在不使用Caffe的情况下安装了cuDNN.像你用CUDA得到的例子? (64认同)
  • @gokul_uf每个马丁的答案如下,你可以使用以下(假设你已经将/ usr/local/cuda符号链接到/usr/local/cuda-#.#):`cat/usr/local/cuda/include/cudnn. h | grep CUDNN_MAJOR -A 2` (5认同)
  • @Boooooooooms 他只是获取编程语言 C 的“头文件”的内容,并使用程序“grep”为我们读出特定变量 (2认同)
  • grep 不再起作用,因为版本已从 cudnn.h 中取出并放入 cudnn_version.h 中。但您仍然可以使用 cat 命令验证文件是否存在,只需忽略 | 中的所有内容即可。grep 管道开始。 (2认同)

Shi*_*hah 23

获取cuDNN版本[Linux]

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

$ whereis cuda
cuda: /usr/local/cuda
Run Code Online (Sandbox Code Playgroud)

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

$ cat /usr/local/cuda/include/cudnn.h | grep CUDNN_MAJOR -A 2
Run Code Online (Sandbox Code Playgroud)

获取cuDNN版本[Windows]

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

C:\>where cudnn*
C:\Program Files\cuDNN6\cuda\bin\cudnn64_6.dll
Run Code Online (Sandbox Code Playgroud)

然后使用它从头文件转储版本,

type "%PROGRAMFILES%\cuDNN6\cuda\include\cudnn.h" | findstr "CUDNN_MAJOR CUDNN_MINOR CUDNN_PATCHLEVEL"
Run Code Online (Sandbox Code Playgroud)

获得CUDA版本

这适用于Linux和Windows:

nvcc --version
Run Code Online (Sandbox Code Playgroud)

  • 只是添加一个用户案例:我在 cuda 安装中找不到 `cudnn.h` 文件,我以为我没有安装 cudnn。但是我后来运行从官网下载的cuda示例代码,就通过了…… (2认同)
  • 我用来查找完整版本号的完整命令是:`type "C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v9.0\include\cudnn.h" | findstr "CUDNN_MAJOR CUDNN_MINOR CUDNN_PATCHLEVEL"` (2认同)

小智 14

torch.backends.cudnn.version()
Run Code Online (Sandbox Code Playgroud)

应该能解决问题

  • 请记住,这可能会显示 pytorch 中包含的 cudnn 版本,而不是您可能按照 nvidia 指南手动安装的系统范围 cudnn。事实上,您可以安装 pytorch 中包含的 cuda/cudnn 或 nvidia 提供的 cuda/cudnn 独立版本,这会引起很多混乱,但这个答案使一切变得清晰:https://superuser.com/a/1572762/ 105024 (7认同)

Vla*_*lad 13

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


Jac*_*ern 11

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

cat /usr/include/cudnn_version.h | grep CUDNN_MAJOR -A 2
Run Code Online (Sandbox Code Playgroud)

成功了。

  • 对我来说,带有 cuDNN 8 的 Ubuntu 20.04.1 LTS 中的路径是这样的.. `/usr/local/cuda/include/cudnn_version.h` 希望它可以帮助任何人。 (2认同)

小智 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
Run Code Online (Sandbox Code Playgroud)

  • 实际上,这是一个不错的建议,除非有错误之处。`mnistCUDNN`不应位于该目录中,因为该目录不应被写为可写目录。而是应该将样本作为子目录复制到用户的主目录并在那里构建。因此,如果已根据Nvidia网站上的说明正确安装和构建了它,则mnistCUDNN将位于〜/ cudnn_samples_v7中。 (3认同)

She*_*zod 6

如何检查python代码:

from tensorflow.python.platform import build_info as tf_build_info

print(tf_build_info.cudnn_version_number)
# 7 in v1.10.0
Run Code Online (Sandbox Code Playgroud)

  • 可能是 `print(tf_build_info.build_info)` (5认同)

小智 6

在 Ubuntu 20.04LTS 上:

cat /usr/local/cuda/include/cudnn_version.h | grep CUDNN_MAJOR
Run Code Online (Sandbox Code Playgroud)

返回了预期的结果

  • 惊人的答案。这是测试 CuDNN 最简单的方法 (3认同)

小智 6

对于 CUDnn 8.1 及更高版本,请使用以下命令:

cat /usr/local/cuda/include/cudnn_version.h | grep CUDNN_MAJOR -A 2
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述