Wie kann ich CuDNN unter Ubuntu 16.04 installieren?


101

Für TensorFlow möchte ich cuda und CuDNN installieren. Wie mache ich das auf Ubuntu 16.04?


4
Warnung: Wenn Sie Tensorflow ausführen möchten und cudnn benötigen, müssen Sie zunächst 5.1 und nicht 6.0 installieren.
wordsforthewise

@wordsforthewise CuDNN 6.0 wird jetzt unterstützt (mindestens für TF 1.4).
Computerwissenschaftler

Antworten:


134

Schritt 0: Installieren Sie cuda aus den Standard-Repositorys. (Siehe Wie kann ich CUDA unter Ubuntu 16.04 installieren? )

Schritt 1: Registrieren Sie ein nvidia-Entwicklerkonto und laden Sie cudnn hier herunter (ca. 80 MB)

Schritt 2: Überprüfen Sie, wo sich Ihre cuda-Installation befindet. Für die Installation aus dem Repository ist es /usr/lib/...und /usr/include. Sonst wird es /usr/local/cuda/oder sein /usr/local/cuda-<version>. Sie können es mit which nvccoder überprüfenldconfig -p | grep cuda

Schritt 3: Kopieren Sie die Dateien:

Repository-Installation:

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

Runfile-Installation:

$ 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
Das Hinzufügen -Pbehält die symbolischen Links bei, dh sudo cp -P lib64/libcudnn* /usr/lib/x86_64-linux-gnu/, und vermeidet die Meldung:/sbin/ldconfig.real: /usr/lib/x86_64-linux-gnu/libcudnn.so.5 is not a symbolic link
Max Gordon

1
Update von hier : "Download von cuDNN v4 (v5 ist derzeit ein Release Candidate und wird nur bei der Installation von TensorFlow von Quellen unterstützt)."
Nobar

36
Für Tensorflow alles zu finden, musste ich kopieren include/cudnn.hund die Bibliotheken in lib64/zu /usr/local/cuda-8.0/includeund /usr/local/cuda-8.0/lib64(mit CUDA 8.0, Ubuntu 14.04, Tensorflow 0.12.0rc0) - vielleicht ist dies hilfreich für jemanden.
David Stutz

@MaxGordon Hallo, ist es wichtig, ob ich die Laufzeitbibliothek für Ubuntu16.04 Power8 oder die Bibliothek für Linux verwende?
Versuchen zu lernen

1
Ein weiterer Tipp: Stellen Sie sicher, dass Sie cuda installieren, bevor Sie cudnn installieren. Andernfalls werden die von Ihnen erstellten Verzeichnisse / usr / local / cuda von den cuda-Installationsprogrammen nicht überschrieben.
Kevin

38

Ab 5.1 können Sie nicht mehr installieren, wie in @Martin angegeben. Laden Sie es 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.debvon der NVIDIA-Website herunter und installieren Sie es nacheinander.

 sudo dpkg -i <library_name>.deb

Edit : Du musst zuerst die Laufzeit installieren (libcudnn6_6.0.21-1 + cuda8.0_amd64.deb), da dev von der Laufzeit abhängt (Danke @tinmarino)


1
Vielen Dank. Ich bin mehrfach auf dieses Problem gestoßen. Stellen wir einfach eine Daumenregel auf. Wenn die Dinge nicht funktionieren, bleiben Sie bei der Installation mit .deb-Paketen.
Anuraag Vaidya

8
Wenn Sie Tensorflow aus dem Quellcode kompilieren, ist es gut zu wissen, dass der Installationspfad der cuDNN-Bibliothek/usr/lib/x86_64-linux-gnu/
Visionscaper

1
Sie müssen zuerst installieren, runtimeda dies devvon der Installation abhängt
tinmarino

12
  1. Registrieren Sie sich auf der NVidia-Website. Es kann ein oder zwei Tage dauern, bis Ihr Konto genehmigt wird. Zumindest war das früher der Fall, als ich mich anmeldete.
  2. Laden Sie die neueste CUDA von NVidia herunter und installieren Sie sie , oder die neueste Version, die zu der Software passt, mit der Sie arbeiten. In diesem Fall Ihre T-Flow-Version.

    Beachten Sie, dass die Installation über Ubuntus Standardpaket-Manager per Mausklick wahrscheinlich nicht richtig funktioniert.

    Stattdessen müssen Sie wahrscheinlich diese Anweisungen im Terminal .debbefolgen , um pakage zu installieren . Danach werden Sie müssen ein paar Zeilen hinzufügen zu .bashrc, oder wo auch immer angemessen in Ihrem Fall. Wenn Sie beispielsweise einen Server konfigurieren, wird dieser möglicherweise vor dem automatischen Start der App an einem anderen Ort abgelegt, da er .bashrcin diesem Fall möglicherweise nicht ausgeführt wird.

  3. Laden Sie CuDNN von NVidia herunter

    Ich habe die "Library for Linux" -Version verwendet und hatte nicht viel Glück mit .debPaketen.

  4. Wo sich CUDA befindet, erfahren Sie über which nvcc. In der Regel /usr/local/cuda/wird ein symbolischer Link zu Ihrer aktuell installierten Version angezeigt.

  5. Öffnen Sie das CuDNN-Archiv und kopieren Sie den entsprechenden Inhalt an die entsprechenden Stellen im CUDA-Installationsordner ( cuda/lib64/und cuda/include/). Ich normalerweise sudo nautilusund mache es von dort aus visuell.

8

Schneller Vorlauf 2018 und NVIDIA bietet jetzt cuDNN 7.x zum Download an. Die Installationsschritte ähneln denen von @GPrathap. Wenn Sie jedoch die alte cuDNN-Version durch die neuere ersetzen möchten, müssen Sie diese vor der Installation zuerst entfernen.

Um es zusammenzufassen:

Schritt 0. Stellen Sie sicher, dass Sie das CUDA-Toolkit bereits installiert haben. Fahren Sie mit der Installation des CUDA-Toolkits fort, wenn Sie dies nicht getan haben.

Schritt 1. Rufen Sie das NVIDIA-Entwicklerportal https://developer.nvidia.com/cudnn auf und laden Sie cuDNN herunter.

Schritt 2. Wenn Sie zuvor cuDNN installiert haben, entfernen Sie es

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

Schritt 3. Installieren Sie die cuDNN-Bibliothek (Runtime, Dev, Doc) mit dpkg

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

Schritt 4. Wenn Sie herausfinden möchten, wo die Bibliothek installiert wurde, können Sie den Lokalisierungsindex aktualisieren und dann den Bibliotheksspeicherort ermitteln.

sudo updatedb
locate libcudnn

Wenn Sie cuDNN 7.x speziell für CUDA Toolkit 9.1 installieren, enthält dieser Artikel weitere Informationen, die hilfreich sein können: http://tech.amikelive.com/node-679/quick-tip-installing-cuda-deep- Neuronales Netzwerk-7-cudnn-7-x-Bibliothek-für-cuda-Toolkit-9-1-on-Ubuntu-16-04 /


Danke @Mike, weißt du, was der Unterschied zwischen der Verwendung der deb-Dateien und der normalen .tar-Datei ist? welches wird empfohlen und warum? (Übrigens habe ich selbst CUDA mithilfe der Rundatei installiert und auch das .tar-Paket für cuDNN in Ubuntu verwendet.)
Rika,

Laut den relevanten Installationsdokumenten von Nvidia ist das, was Sie über das Entfernen der alten Versionen sagen, nicht korrekt:cuDNN v7 can coexist with previous versions of cuDNN, such as v5 or v6.
n1k31t4

3

Sie können auch die deb-Pakete für Debian-basierte Distributionen herunterladen.

Auf der NVIDIA-Webseite stehen für das Entwicklerprofil die folgenden Dateien zur Verfügung:

  • cuDNN v5.1 Runtime Library für Linux (Deb)
  • cuDNN v5.1 Developer Library für Linux (Deb)
  • cuDNN v5.1 Codebeispiele und Benutzerhandbuch Linux (Deb)

Ich habe dies über meine Maschine mit Debian (Stretch) getestet und TensorFlow funktioniert!


6
Bitte beachten Sie, dass ab jetzt (Juli 2016) cuDNN v5.1 nicht mit TensorFlow arbeiten , wenn Sie es aus den Quellen kompilieren finden tensorflow.org/versions/r0.9/get_started/os_setup.html
mastazi

2

Hinzufügen eines wichtigen Details zu den noch gültigen Antworten von @Martin Thoma und @ Íhor Mé: Nach dem Kopieren der libcudnn-Dateien in die cuda-Verzeichnisse müssen Sie Ihre .bashrc-Datei aktualisieren:

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

Sie müssen dann das Include-Verzeichnis zu jeder Konfigurationsdatei hinzufügen, die es verwendet. Caffe hat zB eine Konfigurationsdatei, die Sie bearbeiten müssen, bevor Sie mit make kompilieren. Bearbeiten Sie dazu caffe / Makefile.config, um die Pfade zu diesen Konfigurationsvariablen hinzuzufügen (fügen Sie Leerzeichen zwischen den Pfaden hinzu):

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

Vergessen Sie nicht, die Datei für jedes aktuelle Terminalfenster, in dem diese Änderungen wirksam werden sollen, einmal auszuführen!

. ~/.bashrc

0

Die Antwort ist richtig, aber für cuDNN 5.1 wurden einige Namen geändert. Wenn Sie diese Version nach dem Entpacken der cuDNN-Datei verwenden, finden Sie zwei Ordner: lib und include. Ändern Sie den Namen der * .h-Datei im Include-Ordner in cudnn.h und folgen Sie dann https://askubuntu.com/a/767270/641589 . Diese Änderung ist erforderlich, wenn Sie cuDNN für Caffe verwenden möchten!


Bitte bearbeiten Sie Ihre Antwort und fügen Sie den Verweis 'die obige Anweisung' hinzu.
Sudodus

0

In 16.04 können Sie, wenn Sie CUDA direkt von der Nvidia-Website installieren und Tensorflow auch aus dem Quellcode erstellen, das Verzeichnis angeben, das Sie als Cudnn angeben möchten. Standardmäßig ist es:

/usr/include/x86_64-linux-gnu

Wenn Sie Tensorflow erstellen, werden Sie gefragt, welche Version Sie für Cudnn verwenden möchten. Danach fragt es, wo es sich befindet. Geben Sie einfach das Verzeichnis oben an und es wird gut funktionieren. Es sollte an diesem Punkt eine Raddatei erstellen und Sie können sie mit pip installieren.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.