Como posso instalar o CuDNN no Ubuntu 16.04?

102

Para o TensorFlow, eu gostaria de instalar o cuda e o CuDNN. Como faço isso no Ubuntu 16.04?

Martin Thoma
fonte
4
Aviso: se você estiver tentando executar o tensorflow e precisar de cudnn, instale o 5.1 e não o 6.0 por enquanto.
wordsforthewise
@wordsforhewise O CuDNN 6.0 agora é suportado (pelo menos para TF 1.4).
ComputerScientist

Respostas:

135

Etapa 0: Instale o cuda a partir dos repositórios padrão. (Consulte Como instalar o CUDA no Ubuntu 16.04? )

Etapa 1: registre uma conta de desenvolvedor da nvidia e faça o download do cudnn aqui (cerca de 80 MB)

Etapa 2: verifique onde está sua instalação do cuda. Para a instalação do repositório, é /usr/lib/...e /usr/include. Caso contrário, será /usr/local/cuda/ou /usr/local/cuda-<version>. Você pode verificá-lo com which nvccouldconfig -p | grep cuda

Etapa 3: Copie os arquivos:

Instalação do repositório:

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

Instalação do Runfile:

$ 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*
Martin Thoma
fonte
14
A adição -Pretém os links simbólicos, ou seja sudo cp -P lib64/libcudnn* /usr/lib/x86_64-linux-gnu/, e evita a mensagem:/sbin/ldconfig.real: /usr/lib/x86_64-linux-gnu/libcudnn.so.5 is not a symbolic link
Max Gordon
1
Atualização a partir daqui : "Faça o download do cuDNN v4 (a v5 atualmente é uma candidata a lançamento e é suportada apenas ao instalar o TensorFlow a partir de fontes)."
Nobar
36
Para o Tensorflow encontrar tudo, tive que copiar include/cudnn.he as bibliotecas lib64/para /usr/local/cuda-8.0/includee /usr/local/cuda-8.0/lib64(usando CUDA 8.0, Ubuntu 14.04, Tensorflow 0.12.0rc0) - talvez isso seja útil para alguém.
precisa
@MaxGordon Oi, importa se eu usar a biblioteca de tempo de execução para o ubuntu16.04 power8 ou a biblioteca para linux?
tryingtolearn
1
Outra dica - certifique-se de instalar o cuda antes de instalar o cudnn. Caso contrário, os instaladores do cuda não substituirão nenhum diretório / usr / local / cuda que você possa ter criado.
Kevins
38

A partir do 5.1, você não pode instalar de acordo com o que o @Martin mencionou. Faça o download 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.debno site da nvidia e instale um por um a seguir.

 sudo dpkg -i <library_name>.deb

Edit : Você deve primeiro instalar o tempo de execução (libcudnn6_6.0.21-1 + cuda8.0_amd64.deb) porque o dev depende do tempo de execução (obrigado @tinmarino)

GPrathap
fonte
1
Obrigado. Caí neste problema várias vezes. Vamos apenas estabelecer uma regra geral. Quando as coisas não funcionarem, continue instalando usando pacotes .deb.
Anuraag Vaidya
8
Ao compilar o Tensorflow a partir da fonte, é bom saber que o caminho de instalação da biblioteca cuDNN é #/usr/lib/x86_64-linux-gnu/
Visionscaper
1
Você deve primeiro instalar a runtimedecisão devdepende disso
tinmarino 10/02
13
  1. Registre-se no site da NVidia. Pode levar um dia ou dois para que sua conta seja aprovada. Pelo menos era o caso quando me registrava.
  2. Faça o download e instale o CUDA mais recente da NVidia ou a versão mais recente que se adapta ao software com o qual você trabalhará, se houver, neste caso, sua versão do T-Flow.

    Observe que a instalação via gerenciador de pacotes padrão do ubuntu via clique provavelmente não funcionará adequadamente.

    Em vez disso, você provavelmente terá que seguir estas instruções no terminal para instalar o .debpakage. Depois disso você terá que adicionar algumas linhas para .bashrc, ou onde quer apropriadas no seu caso. Por exemplo, se você estiver configurando um servidor, provavelmente será um lugar diferente, talvez em algum lugar antes da inicialização automática do aplicativo, pois .bashrcprovavelmente não será executado nesse caso.

  3. Download CuDNN da NVidia

    Eu usei a versão "Library for Linux", não tive muita sorte com os .debpacotes.

  4. Você pode encontrar onde está localizada a CUDA which nvcc. Normalmente, /usr/local/cuda/haverá um link simbólico para sua versão atualmente instalada.

  5. Abra o arquivo CuDNN e copie o conteúdo apropriado em locais apropriados na pasta de instalação CUDA ( cuda/lib64/e cuda/include/). Eu costumo sudo nautilusfazer isso visualmente.
Íhor Mé
fonte
8

O avanço rápido de 2018 e a NVIDIA agora fornecem o cuDNN 7.x para download. As etapas de instalação ainda são semelhantes às descritas por @GPrathap. Mas se você deseja substituir a versão antiga do cuDNN pela versão mais recente, remova-a primeiro antes da instalação.

Para recapitular:

Etapa 0. Verifique se você já instalou o kit de ferramentas CUDA. Prossiga com a instalação do kit de ferramentas CUDA, se não tiver.

Etapa 1. Acesse o portal do desenvolvedor da NVIDIA https://developer.nvidia.com/cudnn e faça o download do cuDNN.

Etapa 2. Se você já instalou o cuDNN, remova-o

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

Etapa 3. Instale a biblioteca cuDNN (tempo de execução, dev, doc) usando o dpkg

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

Etapa 4. Se você deseja descobrir onde a biblioteca foi instalada, atualize o índice de localização e, em seguida, localize a localização da biblioteca.

sudo updatedb
locate libcudnn

Se você estiver instalando especificamente o cuDNN 7.x no CUDA toolkit 9.1, este artigo fornecerá mais detalhes que podem ser úteis: http://tech.amikelive.com/node-679/quick-tip-installing-cuda-deep- Rede neural-7-cudnn-7-x-library-for-cuda-toolkit-9-1-on-ubuntu-16-04 /

Mike
fonte
Obrigado @ Mike, você sabe qual é a diferença entre usar os arquivos deb e o arquivo .tar comum? qual é recomendado e por quê? (Pela maneira que eu me usado para instalar CUDA usando o runfile e também usar o pacote .tar para cuDNN no ubuntu)
Rika
De acordo com os documentos de instalação relevantes da Nvidia , o que dizer sobre ter que remover as versões antigas não é correto:cuDNN v7 can coexist with previous versions of cuDNN, such as v5 or v6.
n1k31t4
3

Além disso, você pode fazer o download dos pacotes deb para distribuições baseadas no Debian.

Na página da NVIDIA, para o perfil do desenvolvedor, estão disponíveis os próximos arquivos:

  • Biblioteca de Tempo de Execução cuDNN v5.1 para Linux (Deb)
  • Biblioteca de desenvolvedores do cuDNN v5.1 para Linux (Deb)
  • Exemplos de código cuDNN v5.1 e Guia do usuário Linux (Deb)

Eu testei isso, na minha máquina com o Debian (Stretch) e o TensorFlow está funcionando!

LAraque
fonte
6
Por favor, note que a partir de agora (Julho de 2016) cuDNN v5.1 não funcionará com TensorFlow a menos que você compilado a partir da fonte, consulte tensorflow.org/versions/r0.9/get_started/os_setup.html
mastazi
2

Adicionando um detalhe importante às respostas ainda válidas de @Martin Thoma e @ Íhor Mé: Depois de copiar os arquivos libcudnn nos diretórios cuda, você deve atualizar o arquivo .bashrc:

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

Você deve adicionar o diretório de inclusão a qualquer arquivo de configuração que o utilize. O Caffe, por exemplo, possui um arquivo de configuração que você deve editar antes de compilar com o make. Para isso, edite caffe / Makefile.config para adicionar os caminhos a essas variáveis ​​de configuração (adicione espaço em branco entre os caminhos):

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

Para cada janela de terminal atual que você deseja que essas alterações sejam efetivas, não se esqueça de executar o arquivo uma vez!

. ~/.bashrc
Feijão ágil
fonte
0

a resposta está correta, mas para o cuDNN 5.1 alguns nomes foram alterados. Portanto, se você usar esta versão após extrair o arquivo cuDNN, encontrará duas pastas: lib e include. altere o nome do arquivo * .h na pasta de inclusão para cudnn.he siga https://askubuntu.com/a/767270/641589 . essa alteração é necessária se você quiser usar o cuDNN para Caffe!

abolfazl taghribi
fonte
Edite sua resposta e adicione a referência, 'a instrução acima'.
sudodus 12/01
0

Na 16.04, se você estiver instalando o CUDA diretamente do site da Nvidia e também estiver criando o Tensorflow a partir da fonte, poderá especificar o diretório que deseja indicar como Cudnn. Por padrão, é:

/usr/include/x86_64-linux-gnu

Quando você estiver construindo o Tensorflow, ele perguntará qual versão você deseja indicar que está usando para o Cudnn. Depois disso, ele perguntará onde está localizado. Apenas indique o diretório acima e ele funcionará bem. Ele deve criar um arquivo de roda nesse ponto e você pode instalá-lo com o pip.

Goddard
fonte