CuDNN 설치를 확인하는 방법?


145

많은 장소를 검색했지만 설치 방법을 확인하는 방법이 아니라 설치하는 방법 만 있으면됩니다. NVIDIA 드라이버가 설치되어 있고 CUDA가 설치되어 있는지 확인할 수 있지만 CuDNN이 설치되어 있는지 확인하는 방법을 모르겠습니다. 도움을 주셔서 감사합니다. 감사합니다.

추신.
이것은 카페 구현을위한 것입니다. 현재 모든 것은 CuDNN을 사용하지 않고 작동합니다.


1
USE_CUDNN사용 여부에 관계없이 예제를 실행 해 보셨습니까?
pQB

NVIDIA 및 CUDA 드라이버가 설치되었는지 어떻게 확인합니까?
Charlie Parker

답변:


43

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주문을 실행하여 카페를 설치하십시오.


굉장합니다. 답변 감사합니다. make 파일에서 cuDNN을 활성화하고 다시 컴파일 한 후 작동했습니다 : D.
alfredox

72
Caffe를 사용하지 않고 cuDNN이 설치되어 있는지 확인하는 방법이 있습니까? CUDA로 얻은 예제와 같은 것이 있습니까?
gokul_uf

6
아래에서 martin의 대답에 따라 @gokul_uf를 사용하면 다음을 사용할 수 있습니다 (/ usr / local / cuda를 /usr/local/cuda-#.#에 심볼릭 링크했다고 가정).cat /usr/local/cuda/include/cudnn.h | grep CUDNN_MAJOR -A 2
matt matt

2
@Boooooooooms 그는 단순히 프로그래밍 언어 C에 대한 "헤더 파일"의 내용을 취하고 "grep"프로그램을 사용하여 특정 변수를 읽습니다
Greg Hilston

나는 카페가 없습니다.
rjurney

167

CuDNN을 설치하면 일부 파일 만 복사됩니다. 따라서 CuDNN이 설치되어 있고 버전이 있는지 확인하려면 해당 파일 만 확인하면됩니다.

CuDNN 설치

1 단계 : nvidia 개발자 계정을 등록하고 여기에서 cudnn을 다운로드하십시오 (약 80MB). nvcc --versioncuda 버전을 얻어야 할 수도 있습니다 .

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를 사용하면 v5 대신 CuDNN v4 사용을 고려할 수 있습니다.

통해 설치 우분투 사용자apt : https://askubuntu.com/a/767270/10425


2
CuDNN에 대한이 단계는 좋습니다. 사본이 symlink-preserving (-av 플래그) 인 경우 약간 개선 될 수 있다고 말 하시겠습니까?
auro

8
경로를 약간 수정하면 설치에 효과가 cat /usr/include/cudnn.h | grep CUDNN_MAJOR -A 2
Micah Stubbs

나는 내 경로를 변경해야했다/usr/local/cuda/**/*.h
bwest87

cudnn을 다운로드하기 위해 게시 한 링크는 deb 파일에 대한 링크입니다. tar 파일을 다운로드 할 수있는 위치는 다음과 같습니다. developer.nvidia.com/rdp/cudnn-archive
BourbonCreams

최신 버전을 얻으려면 다음이 작동합니다. 고양이 /usr/include/x86_64-linux-gnu/cudnn_v7.h | grep CUDNN_MAJOR -A 2
auro

106

먼저 설치된 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임을 의미합니다.

우분투 18.04 (sudo apt install nvidia-cuda-toolkit을 통해)

이 설치 방법은 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이 설치되었음을 나타냅니다.

Redhat 배포

CentOS에서 CUDA의 위치는 다음과 같습니다.

$ whereis cuda
cuda: /usr/local/cuda

그런 다음이 위치에서 찾은 cudnn.h 파일에 대한 절차를 사용했습니다.

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

47

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 -V 명령을 실행했는데 오류가 발생했습니다. 그러한 명령을 찾을 수 없습니다.
무한 루프

@InfiniteLoops nvidia cuda 툴킷이 설치되어 있습니까?
Sherlock

@Sherlock 저는 TensorFlow의 설치 안내서에서 cmd를 직접 실행합니다 .Cuda n cudnn을 설치한다고 가정합니다. Nvidia 패키지 저장소를 추가하고 cuda 및 도구를 설치한다고 말합니다. 그러나 앞에서 언급 한 기능이 작동합니다. 그것은 libcudnn.so.7 같은 것을 표시 -> libcudnn.so.7.2.1
무한 루프

@InfiniteLoops nvidia 툴킷이 설치되지 않았다는 "그런 명령을 찾을 수 없습니다"라는 오류가 발생하는 경우 명령을 시도 nvcc하고 출력을 확인하십시오. 아래 링크 확인 또한 devtalk.nvidia.com/default/topic/457664/…
Sherlock

32

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

1
사용자 사례를 추가하려면 cudnn.hcuda 설치에서 파일을 찾을 수 없으며 cudnn이 설치되지 않았다고 생각했습니다. 그러나 나중에 공식 웹 사이트에서 다운로드 한 cuda 샘플 코드를 실행하고 통과했습니다.
yuqli

2
정식 버전 번호를 찾는 데 사용한 전체 명령은 다음과 같습니다.type "C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v9.0\include\cudnn.h" | findstr "CUDNN_MAJOR CUDNN_MINOR CUDNN_PATCHLEVEL"
Taran

멋있는! 답변을 업데이트하여 이제 세부 정보를 인쇄합니다.
Shital Shah

16

통해 우분투에 설치할 때 .deb사용할 수 있습니다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

4
이것은 실제로 잘못된 곳을 제외하고는 나쁜 조언이 아닙니다. mnistCUDNN쓰기 가능한 디렉토리가 아니어야하므로 해당 디렉토리에 있으면 안됩니다. 오히려 샘플은 사용자 홈 디렉토리에 서브 디렉토리로 복사되어 빌드되어야합니다. 따라서 Nvidia 사이트의 지침에 따라 올바르게 설치 및 구축 mnistCUDNN 된 경우~/cudnn_samples_v7
Mike Wise

설치 및 확인 방법에 대한 지침 ( docs.nvidia.com/deeplearning/sdk/cudnn-install/… )에 따라 공식 NVIDIA 웹 사이트에서 코드 샘플을 얻을 수 있습니다 .
yuqli

1
내가 참조. 내가 cudnn.h설치 한 /usr/include/cudnn.h이 내가와 CUDA를 설치할 때 이전에 발생하지 않도록 왜하지만, apt-get뿐만 아니라. 이번에 나는 사용 dpkg하고 있었고 아무것도 바꾸지 않았습니다 ...
yuqli
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.