Come posso installare CuDNN su Ubuntu 16.04?


102

Per TensorFlow vorrei installare cuda e CuDNN. Come posso farlo su Ubuntu 16.04?


4
Avvertenza: se stai cercando di eseguire tensorflow e hai bisogno di cudnn, assicurati di installare 5.1 e non 6.0 per ora.
parole per il

@wordsforthewise CuDNN 6.0 è ora supportato (almeno per TF 1.4).
ComputerScientist il

Risposte:


135

Passaggio 0: installare cuda dai repository standard. (Vedi Come posso installare CUDA su Ubuntu 16.04? )

Passaggio 1: registra un account sviluppatore nvidia e scarica cudnn qui (circa 80 MB)

Passaggio 2: controlla dove si trova l'installazione di cuda. Per l'installazione dal repository è /usr/lib/...e /usr/include. Altrimenti, sarà /usr/local/cuda/o /usr/local/cuda-<version>. Puoi controllarlo con which nvccoldconfig -p | grep cuda

Passaggio 3: copia i file:

Installazione del repository:

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

Installazione del file di esecuzione:

$ 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
L'aggiunta -Pmantiene i collegamenti simbolici, vale a dire sudo cp -P lib64/libcudnn* /usr/lib/x86_64-linux-gnu/, ed evita il messaggio:/sbin/ldconfig.real: /usr/lib/x86_64-linux-gnu/libcudnn.so.5 is not a symbolic link
Max Gordon,

1
Aggiornamento da qui : "Scarica cuDNN v4 (la v5 è attualmente una release candidate ed è supportata solo durante l'installazione di TensorFlow dai sorgenti)."
nobar,

36
Per tensorflow di trovare tutto ciò, ho dovuto copiare include/cudnn.he le librerie in lib64/a /usr/local/cuda-8.0/includee /usr/local/cuda-8.0/lib64(usando CUDA 8.0, Ubuntu 14.04, tensorflow 0.12.0rc0) - forse questo è utile per qualcuno.
David Stutz,

@MaxGordon Ciao, importa se uso la libreria di runtime per ubuntu16.04 power8 o la libreria per Linux?
trytolearn,

1
Un altro suggerimento: assicurati di installare cuda prima di installare cudnn. Altrimenti i programmi di installazione di cuda non sovrascriveranno le directory / usr / local / cuda che potresti aver creato.
Kevin l'

39

Da 5.1 in poi non è possibile installare secondo quanto menzionato da @Martin. Scarica 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.debdal sito nvidia e installane uno alla volta.

 sudo dpkg -i <library_name>.deb

Modifica : devi prima installare il runtime (libcudnn6_6.0.21-1 + cuda8.0_amd64.deb) perché dev dipende dal runtime (Grazie @tinmarino)


1
Grazie. Sono caduto in questo problema più volte. Stabiliamo solo una regola del pollice. Quando le cose non funzionano, attenersi all'installazione utilizzando i pacchetti .deb.
Anuraag Vaidya,

8
Quando si compila Tensorflow dal sorgente, è bene sapere che il percorso di installazione della libreria cuDNN è/usr/lib/x86_64-linux-gnu/
Visionscaper,

1
Devi prima installare la runtimedecause devdipende da questo
Tinmarino,

13
  1. Registrati sul sito Web di NVidia. Potrebbero essere necessari un giorno o due prima che ottengano l'approvazione del tuo account. Almeno quello era il caso quando mi sono registrato.
  2. Scarica e installa l'ultima versione di CUDA da NVidia o l'ultima versione adatta al software con cui lavorerai, se presente, in questo caso la tua versione di T-Flow.

    Si noti che l'installazione tramite il gestore pacchetti standard di Ubuntu tramite clic probabilmente non funzionerà in modo appropriato.

    Invece, probabilmente dovrai seguire queste istruzioni nel terminale per installare .debpakage. Dopo di che dovrete aggiungere alcune righe a .bashrc, o dovunque appropriati nel tuo caso. Ad esempio, se stai configurando un server, probabilmente sarà in un posto diverso, forse da qualche parte prima del lancio automatico della tua app, poiché .bashrcprobabilmente non verrà eseguito in quel caso.

  3. Scarica CuDNN da NVidia

    Ho usato la versione "Library for Linux", non ho avuto molta fortuna con i .debpacchetti.

  4. Puoi trovare dove si trova CUDA which nvcc. Di solito /usr/local/cuda/sarà un collegamento simbolico alla versione attualmente installata.

  5. Aprire l'archivio CuDNN e copiare i contenuti appropriati nelle posizioni appropriate all'interno della cartella di installazione di CUDA ( cuda/lib64/e cuda/include/). Di solito sudo nautiluslo faccio e visivamente da lì.

8

Avanti veloce 2018 e NVIDIA ora fornisce cuDNN 7.x per il download. I passaggi dell'installazione sono ancora simili a quelli descritti da @GPrathap. Ma se si desidera sostituire la vecchia versione cuDNN con quella più recente, è necessario rimuoverla prima dell'installazione.

Per ricapitolare:

Passaggio 0. Verificare di aver già installato il toolkit CUDA. Procedere con l'installazione del toolkit CUDA se non lo si è fatto.

Passaggio 1. Accedere al portale per sviluppatori NVIDIA https://developer.nvidia.com/cudnn e scaricare cuDNN.

Passaggio 2. Se cuDNN è stato precedentemente installato, rimuoverlo

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

Passaggio 3. Installare la libreria cuDNN (runtime, dev, doc) utilizzando dpkg

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

Passaggio 4. Se si desidera trovare dove è stata installata la libreria, è possibile aggiornare l'indice di individuazione e quindi trovare la posizione della libreria.

sudo updatedb
locate libcudnn

Se si installa specificamente cuDNN 7.x su CUDA toolkit 9.1, questo articolo fornisce ulteriori elaborazioni che possono essere di aiuto: http://tech.amikelive.com/node-679/quick-tip-installing-cuda-deep- neural-network-7-cudnn-7-x-library-per-CUDA-toolkit-9-1-on-ubuntu-16-04 /


Grazie @Mike, sai qual è la differenza tra l'utilizzo dei file deb e il normale file .tar? quale è raccomandato e perché? (A proposito io stesso installavo CUDA usando il runfile e usavo anche il pacchetto .tar per cuDNN in ubuntu)
Rika

Secondo i pertinenti documenti di installazione di Nvidia , ciò che dici sulla necessità di rimuovere le vecchie versioni non è corretto:cuDNN v7 can coexist with previous versions of cuDNN, such as v5 or v6.
n1k31t4

3

Inoltre, è possibile scaricare i pacchetti deb per le distribuzioni basate su Debian.

Dalla pagina Web NVIDIA, per il profilo sviluppatore sono disponibili i seguenti file:

  • cuDNN v5.1 Runtime Library per Linux (Deb)
  • cuDNN v5.1 Developer Library per Linux (Deb)
  • Esempi di codice cuDNN v5.1 e guida utente Linux (Deb)

Ho provato questo, sulla mia macchina con Debian (Stretch) e TensorFlow funziona!


6
Da oggi (luglio 2016) cuDNN v5.1 non funzionerà con TensorFlow a meno che non sia stato compilato dalla fonte, vedere tensorflow.org/versions/r0.9/get_started/os_setup.html
mastazi

2

Aggiunta di un dettaglio importante alle risposte ancora valide di @Martin Thoma e @ Íhor Mé: Dopo aver copiato i file libcudnn nelle directory cuda, è necessario aggiornare il file .bashrc:

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

È quindi necessario aggiungere la directory di inclusione a qualsiasi file di configurazione che lo utilizza. Caffe ad esempio ha un file di configurazione che è necessario modificare prima di compilare con make. Per questo, modifica caffe / Makefile.config per aggiungere i percorsi a queste variabili di configurazione (aggiungi spazi bianchi tra i percorsi):

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

Per ogni finestra del terminale corrente che vuoi che queste modifiche siano efficaci, non dimenticare di eseguire il file una volta!

. ~/.bashrc

0

la risposta è corretta ma per cuDNN 5.1 alcuni nomi sono stati cambiati. Quindi se usi questa versione dopo aver estratto il file cuDNN troverai due cartelle: lib e include. cambiare il nome del file * .h nella cartella include in cudnn.h e quindi seguire https://askubuntu.com/a/767270/641589 . questa modifica è necessaria se si desidera utilizzare cuDNN per Caffe!


Modifica la tua risposta e aggiungi il riferimento, "le istruzioni sopra".
sudodus,

0

Nel 16.04 se stai installando CUDA direttamente dal sito web di Nvidia e stai anche costruendo Tensorflow dal sorgente, puoi specificare la directory che vuoi indicare come Cudnn. Di default è:

/usr/include/x86_64-linux-gnu

Quando stai costruendo Tensorflow ti chiederà quale versione vuoi indicare che stai usando per Cudnn. Quindi chiederà dove si trova. Basta indicare la directory sopra e funzionerà bene. Dovrebbe creare un file di ruote in quel punto e puoi installarlo con pip.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.