¿Cómo puedo instalar CuDNN en Ubuntu 16.04?


101

Para TensorFlow me gustaría instalar cuda y CuDNN. ¿Cómo hago eso en Ubuntu 16.04?


44
Advertencia: si está intentando ejecutar tensorflow y necesita cudnn, asegúrese de instalar 5.1 y no 6.0 por ahora.
wordsforthewise

@wordsforthewise CuDNN 6.0 ahora es compatible (para TF 1.4 al menos).
ComputerScientist

Respuestas:


134

Paso 0: Instala cuda desde los repositorios estándar. (Consulte ¿Cómo puedo instalar CUDA en Ubuntu 16.04? )

Paso 1: Registre una cuenta de desarrollador de nvidia y descargue cudnn aquí (aproximadamente 80 MB)

Paso 2: comprueba dónde está tu instalación de cuda. Para la instalación desde el repositorio es /usr/lib/...y /usr/include. De lo contrario, será /usr/local/cuda/o /usr/local/cuda-<version>. Puedes consultarlo con which nvccoldconfig -p | grep cuda

Paso 3: copia los archivos:

Instalación del repositorio:

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

Instalación de archivos de ejecución:

$ 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
Agregar -Pretiene los enlaces simbólicos, es decir sudo cp -P lib64/libcudnn* /usr/lib/x86_64-linux-gnu/, y evita el mensaje:/sbin/ldconfig.real: /usr/lib/x86_64-linux-gnu/libcudnn.so.5 is not a symbolic link
Max Gordon

1
Actualización desde aquí : "Descargue cuDNN v4 (v5 es actualmente un candidato de lanzamiento y solo es compatible cuando se instala TensorFlow desde las fuentes)".
nobar

36
Para Tensorflow a encontrar de todo, tuve que copiar include/cudnn.hy las bibliotecas en lib64/que /usr/local/cuda-8.0/includey /usr/local/cuda-8.0/lib64(usando CUDA 8.0, Ubuntu 14.04, Tensorflow 0.12.0rc0) - tal vez esto sea útil para alguien.
David Stutz

@MaxGordon Hola, ¿importa si uso la biblioteca de tiempo de ejecución para ubuntu16.04 power8 o la biblioteca para linux?
trytolearn

1
Otro consejo: asegúrese de instalar cuda antes de instalar cudnn. De lo contrario, los instaladores de Cuda no sobrescribirán los directorios / usr / local / cuda que haya creado.
kevins

38

A partir de 5.1 en adelante, no puede instalar de acuerdo con lo que mencionó @Martin. Descargue 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.debdel sitio nvidia e instálelo uno por uno de la siguiente manera.

 sudo dpkg -i <library_name>.deb

Editar : Primero debe instalar el tiempo de ejecución (libcudnn6_6.0.21-1 + cuda8.0_amd64.deb) porque el desarrollador depende del tiempo de ejecución (Gracias @tinmarino)


1
Gracias. He caído en este problema varias veces. Solo establezcamos una regla de pulgar. Cuando las cosas no funcionan, quédese con los paquetes .deb.
Anuraag Vaidya

8
Al compilar Tensorflow desde la fuente, es bueno saber que la ruta de instalación de la biblioteca cuDNN es/usr/lib/x86_64-linux-gnu/
Visionscaper

1
Primero debe instalar runtimedecause devdepende de ello
tinmarino

12
  1. Regístrese en el sitio web de NVidia. Pueden pasar un día o dos antes de que aprueben su cuenta. Al menos ese solía ser el caso cuando me registré.
  2. Descargue e instale el último CUDA de NVidia , o la última versión que se ajuste al software con el que trabajará, si corresponde, en este caso su versión de T-Flow.

    Tenga en cuenta que la instalación a través del administrador de paquetes estándar de ubuntu a través de hacer clic probablemente no funcionará correctamente.

    En su lugar, probablemente tendrá que seguir estas instrucciones en la terminal para instalar el .debpaquete. Después de que usted tendrá que añadir algunas líneas a .bashrc, o siempre que sea apropiado en su caso. Por ejemplo, si está configurando un servidor, probablemente será un lugar diferente, tal vez en algún lugar antes del inicio automático de su aplicación, ya .bashrcque probablemente no se ejecute en ese caso.

  3. Descargar CuDNN de NVidia

    Usé la versión "Biblioteca para Linux", no tuve mucha suerte con los .debpaquetes.

  4. Puede encontrar dónde se encuentra CUDA a través de which nvcc. Por /usr/local/cuda/lo general , será un enlace simbólico a su versión instalada actualmente.

  5. Abra el archivo CuDNN y copie los contenidos apropiados en los lugares apropiados dentro de la carpeta de instalación de CUDA ( cuda/lib64/y cuda/include/). Usualmente sudo nautilusy lo hago desde allí visualmente.

8

Avance rápido 2018 y NVIDIA ahora proporciona cuDNN 7.x para descargar. Los pasos de instalación siguen siendo similares a los descritos por @GPrathap. Pero si desea reemplazar la versión anterior de cuDNN por la más nueva, primero debe eliminarla antes de la instalación.

Recordar:

Paso 0. Verifique que ya haya instalado el kit de herramientas CUDA. Continúe con la instalación del kit de herramientas CUDA si no lo ha hecho.

Paso 1. Vaya al portal para desarrolladores de NVIDIA https://developer.nvidia.com/cudnn y descargue cuDNN.

Paso 2. Si ya instaló cuDNN, elimínelo

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

Paso 3. Instale la biblioteca cuDNN (runtime, dev, doc) usando dpkg

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

Paso 4. Si desea encontrar dónde se instaló la biblioteca, puede actualizar el índice de localización y luego encontrar la ubicación de la biblioteca.

sudo updatedb
locate libcudnn

Si está instalando específicamente cuDNN 7.x contra CUDA toolkit 9.1, este artículo proporciona más detalles que pueden ser de alguna ayuda: http://tech.amikelive.com/node-679/quick-tip-installing-cuda-deep- Neural-network-7-cudnn-7-x-library-for-cuda-toolkit-9-1-on-ubuntu-16-04 /


Gracias @ Mike, ¿sabes cuál es la diferencia entre usar los archivos deb y el archivo .tar ordinario? ¿Cuál se recomienda y por qué? (Por cierto, yo solía instalar CUDA usando el archivo de ejecución y también uso el paquete .tar para cuDNN en ubuntu)
Rika

De acuerdo con los documentos de instalación relevantes de Nvidia , lo que usted dice acerca de tener que eliminar las versiones anteriores no es correcto:cuDNN v7 can coexist with previous versions of cuDNN, such as v5 or v6.
n1k31t4

3

Además, puede descargar los paquetes deb para distribuciones basadas en Debian.

Desde la página web de NVIDIA, para el perfil de desarrollador, están disponibles los siguientes archivos:

  • CuDNN v5.1 Runtime Library para Linux (Deb)
  • CuDNN v5.1 Developer Library para Linux (Deb)
  • CuDNN v5.1 Ejemplos de código y guía del usuario Linux (Deb)

Probé esto, en mi máquina con Debian (Stretch) y TensorFlow está funcionando.


66
Tenga en cuenta que a partir de ahora (julio de 2016) cuDNN v5.1 no funcionará con TensorFlow a menos que lo haya compilado desde la fuente, consulte tensorflow.org/versions/r0.9/get_started/os_setup.html
mastazi

2

Agregando un detalle importante a las respuestas válidas de @Martin Thoma y @ Íhor Mé: Después de copiar los archivos libcudnn en los directorios de cuda, debe actualizar su archivo .bashrc:

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

Luego debe agregar el directorio de inclusión a cualquier archivo de configuración que lo use. Caffe, por ejemplo, tiene un archivo de configuración que debe editar antes de compilar con make. Para esto, edite caffe / Makefile.config para agregar las rutas a estas variables de configuración (agregue espacios en blanco entre las rutas):

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

Para cada ventana de terminal actual que desee que estos cambios sean efectivos, ¡no olvide ejecutar el archivo una vez!

. ~/.bashrc

0

la respuesta es correcta pero para cuDNN 5.1 se han cambiado algunos nombres. Entonces, si usa esta versión después de extraer el archivo cuDNN, encontrará dos carpetas: lib e include. cambie el nombre del archivo * .h en la carpeta de inclusión a cudnn.h y luego siga https://askubuntu.com/a/767270/641589 . ¡Este cambio es necesario si desea utilizar cuDNN para Caffe!


Edite su respuesta y agregue la referencia, 'la instrucción anterior'.
sudodus

0

En 16.04 si está instalando CUDA directamente desde el sitio web de Nvidia y también está construyendo Tensorflow desde la fuente, entonces puede especificar específicamente el directorio que desea indicar como Cudnn. Por defecto es:

/usr/include/x86_64-linux-gnu

Cuando esté creando Tensorflow, le preguntará qué versión desea indicar que está utilizando para Cudnn. Luego, después de eso, preguntará dónde está ubicado. Simplemente indique el directorio de arriba y funcionará bien. Debería crear un archivo de rueda en ese punto y puede instalarlo con pip.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.