我已经在很多地方搜索了,但是所有的结果都只是如何安装,而没有关于如何验证已经安装的信息。我可以验证我的NVIDIA驱动已经安装,并且CUDA也已经安装好了,但是我不知道如何验证CuDNN是否已经安装。非常感谢您的帮助!
PS.
这是用于caffe实现的。目前一切正常,没有启用CuDNN。
我已经在很多地方搜索了,但是所有的结果都只是如何安装,而没有关于如何验证已经安装的信息。我可以验证我的NVIDIA驱动已经安装,并且CUDA也已经安装好了,但是我不知道如何验证CuDNN是否已经安装。非常感谢您的帮助!
PS.
这是用于caffe实现的。目前一切正常,没有启用CuDNN。
nvcc --version
来获取您的cuda版本。 /usr/local/cuda/
。您可以使用 which nvcc
进行检查。$ 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
编辑:在后续版本中,可能会是以下内容(感谢Aris)
$ cat /usr/local/cuda/include/cudnn_version.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
apt
安装的Ubuntu用户:https://askubuntu.com/a/767270/10425
cat /usr/include/cudnn.h | grep CUDNN_MAJOR -A 2
。 - Micah Stubbscudnn_version.h
文件。因此整个命令看起来应该是这样的:cat /usr/local/cuda/include/cudnn_version.h | grep CUDNN_MAJOR -A 2
。 - Ari我的答案展示了如何检查已安装的CuDNN版本,通常这也是您想要验证的内容。首先,您需要找到已安装的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。
此安装方法会在/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
从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。
在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
检查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
nvcc
命令并检查输出。
同时,请参考以下链接:
https://devtalk.nvidia.com/default/topic/457664/nvcc-quot-no-command-39-nvcc-39-found-quot-/ - Sherlocknvcc -V
和 cudnn 有什么关系?就像你的例子一样,它似乎没有显示 cudnn 的版本... - Redoman安装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。cat /usr/local/cuda/include/cudnn.h | grep CUDNN_MAJOR -A 2
。 - matt获取cuDNN版本[Linux]
使用以下命令查找cuDNN路径:
cat $(whereis cudnn.h) | grep CUDNN_MAJOR -A 2
如果上述方法不起作用,请尝试以下方法:
cat $(whereis 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
cudnn.h
文件,我以为我没有安装cudnn。但后来我运行了从官方网站下载的cuda示例代码,它通过了... - yuqlitype "C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v9.0\include\cudnn.h" | findstr "CUDNN_MAJOR CUDNN_MINOR CUDNN_PATCHLEVEL"
- Taran在Ubuntu上通过.deb
安装时,您可以使用sudo apt search cudnn | grep installed
命令。
我有cuDNN 8.0,但上述建议都没有帮助我解决问题。所需信息在/usr/include/cudnn_version.h
中。
cat /usr/include/cudnn_version.h | grep CUDNN_MAJOR -A 2
事情成功解决了。
/usr/local/cuda/include/cudnn_version.h
希望能帮到其他人。 - b00r00x0cat /usr/local/cuda/include/cudnn_version.h | grep CUDNN_MAJOR
返回了预期的结果
cudnn.h
上的内容,以删除我们正在寻找的CUDNN_MAJOR
字符串。 - dmmdtorch.backends.cudnn.version()
应该就能解决问题了
torch
cuDNN 绑定并不能说明,比如对于 tensorflow
用户(或者 OP 所使用的 caffe
用户),因为 Python torch
包可以随附其自己的 cuDNN 库,可以通过运行 $ cd / && find | grep site-packages | grep libcudnn
查看。 - mirekphd您可以通过以下 Python 代码来检查:
from tensorflow.python.platform import build_info as tf_build_info
print(tf_build_info.cudnn_version_number)
# 7 in v1.10.0
print(tf_build_info.build_info)
。 - hafiz031print(tf_build_info.build_info['cudnn_version'])
- smartsl
USE_CUDNN
的情况下运行一些示例吗? - pQBnvcc -V
- KansaiRobot