मैं उबंटू 16.04 पर CuDNN कैसे स्थापित कर सकता हूं?


101

TensorFlow के लिए मैं क्यूडा और CuDNN स्थापित करना चाहूंगा। मैं इसे Ubuntu 16.04 पर कैसे करूँ?


4
चेतावनी: यदि आप टेंसरफ़्लो चलाने की कोशिश कर रहे हैं और cudnn की आवश्यकता है, तो अभी के लिए 5.1 और 6.0 को स्थापित नहीं करना सुनिश्चित करें।
शब्दफोरवाइज

@wordsforthewise CuDNN 6.0 अब समर्थित है (TF 1.4 के लिए कम से कम)।
कंप्यूटर

जवाबों:


134

चरण 0: मानक रिपॉजिटरी से कोडा स्थापित करें। (देखें कि मैं Ubuntu 16.04 पर CUDA कैसे स्थापित कर सकता हूं? )

चरण 1: एक nvidia डेवलपर खाते को पंजीकृत करें और यहाँ cudnn डाउनलोड करें (लगभग 80 MB)

चरण 2: चेक करें कि आपका क्यूडा इंस्टॉलेशन कहाँ है। रिपॉजिटरी से स्थापना के लिए यह है /usr/lib/...और /usr/include। अन्यथा, यह हो जाएगा /usr/local/cuda/या /usr/local/cuda-<version>। आप इसके साथ which nvccया जाँच कर सकते हैंldconfig -p | grep cuda

चरण 3: फ़ाइलों की प्रतिलिपि बनाएँ:

रिपोजिटरी स्थापना:

$ cd folder/extracted/contents
$ sudo cp -P include/cudnn.h /usr/include
$ sudo cp -P lib64/libcudnn* /usr/lib/x86_64-linux-gnu/
$ sudo chmod a+r /usr/lib/x86_64-linux-gnu/libcudnn*

अपवाह स्थापना:

$ 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*

14
जोड़ना -Pप्रतीकात्मक लिंक को बनाए रखता है, अर्थात sudo cp -P lib64/libcudnn* /usr/lib/x86_64-linux-gnu/, और संदेश से बचा जाता है:/sbin/ldconfig.real: /usr/lib/x86_64-linux-gnu/libcudnn.so.5 is not a symbolic link
मैक्स गॉर्डन

1
यहां से अपडेट करें : "cuDNN v4 डाउनलोड करें (v5 वर्तमान में एक रिलीज़ उम्मीदवार है और केवल स्रोतों से TensorFlow स्थापित करते समय समर्थित है)।"
23

36
Tensorflow सब कुछ को खोजने के लिए के लिए, मैं नकल करना पड़ा include/cudnn.hऔर में पुस्तकालयों lib64/के लिए /usr/local/cuda-8.0/includeऔर /usr/local/cuda-8.0/lib64(CUDA 8.0, Ubuntu 14.04, Tensorflow 0.12.0rc0 का प्रयोग करके) - शायद यह किसी के लिए उपयोगी है।
डेविड स्टुटज़

@MaxGordon हाय, अगर मैं ubuntu16.04 power8 के लिए रनटाइम लाइब्रेरी या लिनक्स के लिए पुस्तकालय का उपयोग करता हूं तो क्या इससे कोई फर्क नहीं पड़ता?
ट्रिप्टोलेर

1
एक और टिप - यह सुनिश्चित करें कि आप cudnn स्थापित करने से पहले cuda स्थापित करें। अन्यथा cuda installers आपके द्वारा बनाए गए किसी भी / usr / स्थानीय / cuda निर्देशिका को अधिलेखित नहीं करेंगे।
केविन्स

38

5.1 पर से आप @Martin के अनुसार स्थापित नहीं कर सकते। एनवीडिया साइटlibcudnn6_6.0.21-1+cuda8.0_amd64.deb, libcudnn6-dev_6.0.21-1+cuda8.0_amd64.deb, libcudnn6-doc_6.0.21-1+cuda8.0_amd64.deb से डाउनलोड करें और एक के बाद एक फॉल्विंग तरीके से इंस्टॉल करें।

 sudo dpkg -i <library_name>.deb

संपादित करें : आपको पहले रनटाइम इंस्टॉल करना होगा (libcudnn6_6.0.21-1 + cuda8.0_amd64.deb) क्योंकि देव रनटाइम पर निर्भर करता है (धन्यवाद @tinmarino)


1
धन्यवाद। मैं कई बार इस समस्या में पड़ चुका हूं। चलो बस एक अंगूठे का नियम स्थापित करें। जब चीजें काम नहीं करती हैं, तो .deb पैकेजों का उपयोग करके इंस्टॉल करने से बचें।
अनुराग वैद्य

8
जब स्रोत से Tensorflow का संकलन किया जाता है, तो यह जानना अच्छा होता है कि cuDNN लाइब्रेरी इंस्टॉलेशन पाथ है/usr/lib/x86_64-linux-gnu/
Visionscaper

1
आपको पहले runtimeडिकॉज स्थापित करना होगा devयह उस पर निर्भर करता है
टिनमैरिनो

12
  1. एनवीडिया की वेबसाइट पर रजिस्टर करें। इससे पहले कि उन्हें आपके खाते की स्वीकृति मिल जाए, एक या दो दिन लग सकते हैं। कम से कम जब मैं पंजीकृत होता था तो वापस मामला हुआ करता था।
  2. डाउनलोड करें और एनवीआईडीआईए से नवीनतम CUDA स्थापित करें , या नवीनतम संस्करण जो आपके द्वारा काम किए जाने वाले सॉफ़्टवेयर को फिट करता है, यदि कोई हो, तो इस स्थिति में आपका टी-फ्लो का संस्करण।

    ध्यान दें, कि ubuntu के मानक पैकेज प्रबंधक के माध्यम से स्थापित करना संभवतया उचित रूप से काम नहीं करेगा।

    इसके बजाय, आपको संभवतः pakage को स्थापित करने के लिए टर्मिनल में इन निर्देशों का पालन करना होगा.deb । उसके बाद आपको अपने मामले में कुछ पंक्तियों को जोड़ना होगा .bashrc, या जहाँ भी उपयुक्त होगा। उदाहरण के लिए, यदि आप किसी सर्वर को कॉन्फ़िगर कर रहे हैं, तो यह संभवतः एक अलग जगह होने वाला है, हो सकता है कि आपके ऐप के ऑटोलंच से पहले कहीं और हो, जैसा .bashrcकि उस मामले में शायद निष्पादित नहीं होगा।

  3. एनवीआईडीआईए से CuDNN डाउनलोड करें

    मैंने "लाइब्रेरी के लिए लिनक्स" संस्करण का उपयोग किया, .debपैकेज के साथ बहुत भाग्य नहीं था ।

  4. आप पा सकते हैं जहां CUDA के माध्यम से स्थित है which nvcc। आमतौर पर /usr/local/cuda/आपके वर्तमान में स्थापित संस्करण का एक प्रतीकात्मक लिंक होगा।

  5. CuDNN संग्रह खोलें और CUDA स्थापना फ़ोल्डर ( cuda/lib64/और cuda/include/) के भीतर उपयुक्त स्थानों में उपयुक्त सामग्री की प्रतिलिपि बनाएँ । मैं आमतौर पर sudo nautilusऔर वहाँ से इसे नेत्रहीन करता हूं ।

8

फास्ट फॉरवर्ड 2018 और एनवीआईडीआईए अब डाउनलोड के लिए cuDNN 7.x प्रदान करता है। स्थापना चरण अभी भी @GPrathap द्वारा वर्णित लोगों के साथ समान हैं। लेकिन अगर आप पुराने cuDNN संस्करण को नए के साथ बदलना चाहते हैं, तो आपको इसे स्थापना से पहले हटा देना होगा।

संक्षेप में दुहराना:

चरण 0. सत्यापित करें कि आपने पहले से CUDA टूलकिट स्थापित किया है। यदि आपने नहीं किया है तो CUDA टूलकिट इंस्टॉलेशन के साथ आगे बढ़ें।

चरण 1. NVIDIA डेवलपर पोर्टल https://developer.nvidia.com/cudnn पर जाएं और cuDNN डाउनलोड करें।

चरण 2. यदि आपने पहले cuDNN स्थापित किया है, तो इसे हटा दें

sudo dpkg -r <old-cudnn-runtime>.deb
sudo dpkg -r <old-cudnn-dev>.deb

चरण 3. dpkg का उपयोग करके cuDNN लाइब्रेरी (रनटाइम, देव, डॉक्टर) स्थापित करें

sudo dpkg -i <new-cudnn-runtime>.deb
sudo dpkg -i <new-cudnn-dev>.deb
sudo ldconfig

चरण 4. यदि आप यह जानना चाहते हैं कि पुस्तकालय कहाँ स्थापित किया गया था तो आप पता सूचकांक को अपडेट कर सकते हैं और फिर पुस्तकालय का स्थान खोज सकते हैं।

sudo updatedb
locate libcudnn

यदि आप विशेष रूप से CUDA टूलकिट 9.1 के खिलाफ cuDNN 7.x स्थापित कर रहे हैं, तो यह लेख अधिक विस्तार प्रदान करता है जो कुछ मदद कर सकता है: http://tech.amikelive.com/node-679/quick-tip-installing-duda-deep- तंत्रिका-नेटवर्क-7-cudnn-7-x- पुस्तकालय के लिए CUDA-टूलकिट-9-1-ऑन-ubuntu-16-04 /


धन्यवाद @ माइक, क्या आप जानते हैं कि डिबेट फ़ाइलों और साधारण .tar फ़ाइल का उपयोग करने में क्या अंतर है? कौन सा अनुशंसित है और क्यों? (वैसे मैं खुद रूडाइल का उपयोग करके CUDA स्थापित करता था और ubuntu में cuDNN के लिए .tar पैकेज का उपयोग भी करता था)
Rika

एनवीडिया से संबंधित इंस्टॉलेशन दस्तावेजों के अनुसार , पुराने संस्करणों को हटाने के बारे में आप जो कहते हैं वह सही नहीं है:cuDNN v7 can coexist with previous versions of cuDNN, such as v5 or v6.
n1k31t4

3

इसके अलावा, आप डेबियन आधारित वितरण के लिए डिबेट पैकेज डाउनलोड कर सकते हैं।

डेवलपर प्रोफाइल के लिए NVIDIA वेब पेज से, अगली फाइलें उपलब्ध हैं:

  • cuDNN v5.1 लिनक्स के लिए रनटाइम लाइब्रेरी (डीब)
  • लिनक्स के लिए cuDNN v5.1 डेवलपर लाइब्रेरी (डीब)
  • cuDNN v5.1 कोड नमूने और उपयोगकर्ता गाइड लिनक्स (डीब)

मैंने इसका परीक्षण किया, डेबियन (स्ट्रेच) और टेन्सरफ्लो के साथ मेरी मशीन पर काम कर रहा है!


6
कृपया ध्यान दें कि अब (जुलाई 2016) के रूप में cuDNN v5.1 TensorFlow के साथ काम नहीं करेगा, जब तक कि आप इसे स्रोत से संकलित नहीं करते हैं, तो tanorflow.org/versions/r0.9/get_started/os_setup.html
mastazi

2

@Martin Thoma और @ éhor Mé द्वारा अभी भी मान्य उत्तर के लिए एक महत्वपूर्ण विवरण जोड़ना: libcudnn फ़ाइलों को क्यूडा निर्देशिका में कॉपी करने के बाद, आपको अपनी .bashrc फ़ाइल को अपडेट करना होगा:

export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:/usr/local/cuda/lib64:/usr/local/cuda/extras/CUPTI/lib64"
export CUDA_HOME=/usr/local/cuda

फिर आपको उस निर्देशिका को किसी भी कॉन्फ़िगर फ़ाइल में जोड़ना होगा जो इसका उपयोग करती है। कैफ उदाहरण के लिए एक कॉन्फिग फाइल है जिसे आपको मेक अप करने से पहले संपादित करना होगा। इसके लिए, इन कॉन्फिग वेरिएबल्स में रास्तों को जोड़ने के लिए caffe / Makefile.config को एडिट करें (पाथ के बीच व्हॉट्सएप जोड़ें):

INCLUDE_DIRS: /usr/local/caffe/cuda/include/ 
LIBRARY_DIRS: /usr/local/cuda/lib64/

हर मौजूदा टर्मिनल विंडो के लिए आप चाहते हैं कि ये बदलाव प्रभावी हों, एक बार फाइल को निष्पादित करना न भूलें!

. ~/.bashrc

0

उत्तर सही है लेकिन cuDNN 5.1 के लिए कुछ नाम बदल दिए गए हैं। इसलिए यदि आप cuDNN फ़ाइल को निकालने के बाद इस संस्करण का उपयोग करते हैं, तो आपको दो फ़ोल्डर मिलेंगे: lib और शामिल। * .h फ़ाइल का नाम फ़ोल्डर में शामिल करने के लिए cudnn.h में बदलें और फिर https://askubuntu.com/a/767270/641589 का अनुसरण करें । यदि आप Caffe के लिए cuDNN का उपयोग करना चाहते हैं तो इस परिवर्तन की आवश्यकता है!


कृपया अपना उत्तर संपादित करें और 'ऊपर दिया गया निर्देश' संदर्भ जोड़ें।
सूदोदास

0

16.04 में यदि आप Nvidia की वेबसाइट से सीधे CUDA स्थापित कर रहे हैं और आप स्रोत से Tensorflow का निर्माण भी कर रहे हैं तो आप उस निर्देशिका को निर्दिष्ट कर सकते हैं जिसे आप Cudnn होने के रूप में इंगित करना चाहते हैं। डिफ़ॉल्ट रूप से यह है:

/usr/include/x86_64-linux-gnu

जब आप Tensorflow का निर्माण कर रहे हैं, तो यह आपसे पूछेगा कि आप किस संस्करण को इंगित करना चाहते हैं कि आप Cudnn के लिए उपयोग कर रहे हैं। फिर उसके बाद यह पूछेगा कि यह कहाँ स्थित है। बस ऊपर दी गई निर्देशिका को इंगित करें और यह ठीक काम करेगा। यह उस बिंदु पर एक पहिया फ़ाइल बनाना चाहिए और आप इसे पाइप से स्थापित कर सकते हैं।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.