Answers:
安装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
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*
您可能需要调整路径。请参阅安装的步骤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
cat /usr/include/cudnn.h | grep CUDNN_MAJOR -A 2
/usr/local/cuda/**/*.h
您首先需要找到已安装的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。
这种安装方法会将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
从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
并检查您的输出。检查下面的链接也devtalk.nvidia.com/default/topic/457664/…–
获取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
在cuda安装中找不到该文件,我以为我没有安装cudnn。但是我后来运行了从官方网站下载的cuda示例代码,它通过了……
type "C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v9.0\include\cudnn.h" | findstr "CUDNN_MAJOR CUDNN_MINOR CUDNN_PATCHLEVEL"
跑./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
mnistCUDNN
不应位于该目录中,因为不应将其视为可写目录。而是应该将样本作为子目录复制到用户的主目录并在那里构建。因此,如果按照Nvidia网站上的说明正确地安装和建造了该产品, mnistCUDNN
它将位于~/cudnn_samples_v7
cudnn.h
安装位置为/usr/include/cudnn.h
,不知道为什么,但是在我同时安装CUDA之前apt-get
也发生了。这次我使用的dpkg
是什么,什么也没改变...
USE_CUDNN
启用和未启用示例?