CuDNN स्थापना को कैसे सत्यापित करें?


144

मैंने कई स्थानों पर खोज की है लेकिन सभी को मैं इसे कैसे स्थापित करूं, यह कैसे सत्यापित किया जाए कि यह स्थापित है। मैं सत्यापित कर सकता हूं कि मेरा NVIDIA ड्राइवर स्थापित है, और वह CUDA स्थापित है, लेकिन मुझे नहीं पता कि CuDNN को कैसे सत्यापित किया जाए। मदद बहुत सराहना की जाएगी, धन्यवाद!

पुनश्च।
यह एक कैफीन कार्यान्वयन के लिए है। वर्तमान में सब कुछ CuDNN सक्षम के बिना काम कर रहा है।


1
क्या आपने बिना USE_CUDNNसक्षम के साथ कुछ उदाहरण चलाने की कोशिश की ?
pQB

आप यह कैसे सत्यापित करते हैं कि आपका NVIDIA और CUDA ड्राइवर स्थापित है?
चार्ली पार्कर

जवाबों:


43

CuDNN को स्थापित करने में सिर्फ CUDA निर्देशिका में फ़ाइलों को रखना शामिल है। यदि आपने कैफ स्थापित करते समय मार्गों और 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वहां से कैफ स्थापित करने के आदेश चलाएं ।


बहुत बढ़िया, उत्तर के लिए धन्यवाद। मेरे पास cuDNN मेक फाइल में सक्षम करने और इसे पुनः काम करने के बाद सक्षम होना चाहिए: D।
अल्फ्रेडॉक्स

72
क्या Caffe के उपयोग के बिना cuDNN स्थापित है या नहीं, इसका पता लगाने का एक तरीका है। कुछ उदाहरण आपको CUDA के साथ मिलते हैं?
gokul_uf

6
@gokul_uf प्रति मार्टिन के उत्तर के नीचे, आप निम्नलिखित का उपयोग कर सकते हैं (यह मानकर कि आपने सहानुभूति / usr / स्थानीय / cuda to /usr/local/cuda-#.#):cat /usr/local/cuda/include/cudnn.h | grep CUDNN_MAJOR -A 2
मैट

2
@Boooooooooms वह केवल प्रोग्रामिंग भाषा C के लिए "हेडर फ़ाइल" की सामग्री ले रहा है, और प्रोग्राम "grep" का उपयोग करके हमारे लिए एक विशिष्ट चर पढ़ रहा है
ग्रेग हिल्स्टन

मेरे पास कैफ नहीं है।
rjurney

167

CuDNN की स्थापना केवल कुछ फ़ाइलों की प्रतिलिपि बना रही है। इसलिए यह जांचने के लिए कि क्या CuDNN स्थापित है (और आपके पास कौन सा संस्करण है), आपको केवल उन फ़ाइलों की जांच करने की आवश्यकता है।

CuDNN स्थापित करें

चरण 1: एक nvidia डेवलपर खाते को पंजीकृत करें और यहाँ cudnn (लगभग 80 MB) डाउनलोड करें । आपको nvcc --versionअपना कोडा संस्करण प्राप्त करने की आवश्यकता हो सकती है।

चरण 2: जांचें कि आपका क्यूडा इंस्टॉलेशन कहां है। ज्यादातर लोगों के लिए, यह होगा /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 के लिए ये चरण अच्छे हैं। क्या आप कहेंगे कि वे कभी भी थोड़े सुधारे जा सकते हैं यदि प्रतियाँ सहानुभूति-संरक्षण (-व झंडे) थीं?
आउर

8
मेरे cat /usr/include/cudnn.h | grep CUDNN_MAJOR -A 2
मीका स्टब्स

मुझे अपना रास्ता बदलना था/usr/local/cuda/**/*.h
bwest87

जिस लिंक को आपने डिडने फाइल्स में cudnn लिंक डाउनलोड करने के लिए पोस्ट किया है। यहां आप टार फाइल्स डाउनलोड कर सकते हैं: developer.nvidia.com/rdp/cudnn-archive
BourbonCreams

हाल ही में, संस्करण प्राप्त करने के लिए, निम्नलिखित कार्य करता है। cat /usr/include/x86_64-linux-gnu/cudnn_v7.h | grep CUDNN_MAJOR -A 2
auro

106

आपको पहले इंस्टॉल की गई कॉडन फाइल ढूंढनी होगी और फिर इस फाइल को पार्स करना होगा। फ़ाइल खोजने के लिए, आप इसका उपयोग कर सकते हैं:

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 (sudo apt install nvidia-cuda-toolkit के माध्यम से)

स्थापना का यह तरीका / usr / / और / 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

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 कमांड चलाता हूं और यह एरर फेंक देता है। ऐसा आदेश नहीं मिला।
अनंत लूप्स

@ यदि आप नेवीडिया क्यूडा टूलकिट स्थापित किया है?
शर्लक

@ शेरॉक मैं सीधे TensorFlow के इंस्टॉलेशन गाइड से cmd चलाता हूं, कि मैं Cuda n cudnn स्थापित करने का अनुमान लगाता हूं। यह कहता है कि इसमें एनवीडिया पैकेज रेपो और इंस्टाल क्यूडा और टूल्स शामिल हैं। लेकिन आपके द्वारा बताया गया कार्य पहले काम करता है। यह libcudnn.so.7 -> libcudnn.so.7.2.1 जैसे कुछ को प्रदर्शित करता है
अनंत लूप्स

@ यदि आप त्रुटि प्राप्त कर रहे हैं कि "ऐसी कमांड नहीं मिली" तो इसका मतलब है कि एनवीडिया टूल किट स्थापित नहीं है। कमांड का प्रयास nvccकरें और अपना आउटपुट जांचें। नीचे दिए गए लिंक को भी देखें devtalk.nvidia.com/default/topic/457664/…
शर्लक

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 संस्करण प्राप्त करना [विंडोज़]

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 संस्करण प्राप्त करना

यह लिनक्स के साथ-साथ विंडोज पर भी काम करता है:

nvcc --version

1
केवल एक उपयोगकर्ता का मामला जोड़ने के लिए: मैं cudnn.hअपने कोडा इंस्टॉलेशन में फ़ाइल नहीं ढूंढ सकता और मुझे लगा कि मेरे पास कॉडन इंस्टॉल नहीं है। लेकिन मैं बाद में आधिकारिक वेबसाइट से डाउनलोड किया गया
कोडा

2
पूर्ण संस्करण संख्या को खोजने के लिए मैंने जो पूर्ण कमांड का उपयोग किया, वह था:type "C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v9.0\include\cudnn.h" | findstr "CUDNN_MAJOR CUDNN_MINOR CUDNN_PATCHLEVEL"
तरन

ठंडा! मैंने उत्तर को अपडेट किया है इसलिए अब यह इन विवरणों को प्रिंट करता है।
शीतल शाह

16

जब .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

4
यह वास्तव में बुरी सलाह नहीं है, जहां यह गलत है। mnistCUDNNउस निर्देशिका में नहीं होना चाहिए क्योंकि यह एक योग्य निर्देशिका नहीं माना जाता है। बल्कि नमूनों को उप-निर्देशिका के रूप में उपयोगकर्ताओं के घर निर्देशिका में कॉपी किया जाना चाहिए था और वहां बनाया गया था। इसलिए यदि इसे एनवीडिया साइट पर निर्देशों के अनुसार ठीक से स्थापित और निर्मित किया गया है, तो इसमें mnistCUDNN होगा~/cudnn_samples_v7
माइक वाइज

बस आपको जोड़ने के लिए आधिकारिक NVIDIA वेबसाइट से कोड नमूना प्राप्त कर सकते हैं, निम्नलिखित निर्देश यहां ( docs.nvidia.com/deeplearning/sdk/cudnn-install/… ) कैसे स्थापित करें और सत्यापित करें।
युक्ली

1
समझा। मेरा cudnn.hस्थापित किया गया था /usr/include/cudnn.h, निश्चित रूप से क्यों नहीं, लेकिन जब मैं CUDA के साथ भी स्थापित करता हूं तो यह पहले हुआ था apt-get। इस बार मैं उपयोग कर रहा था dpkgऔर कुछ भी नहीं बदला ...
युक्ली २18'१
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.