Как я могу установить CuDNN на Ubuntu 16.04?

102

Для TensorFlow я бы хотел установить cuda и CuDNN. Как мне это сделать на Ubuntu 16.04?

Мартин Тома
источник
4
Предупреждение: если вы пытаетесь запустить тензор потока и вам нужен cudnn, обязательно установите 5.1, а не 6.0 на данный момент.
словами
@wordsforthewise CuDNN 6.0 теперь поддерживается (по крайней мере, для TF 1.4).
ComputerScientist

Ответы:

135

Шаг 0: Установите cuda из стандартных репозиториев. (См. Как я могу установить CUDA в Ubuntu 16.04? )

Шаг 1: Зарегистрируйте учетную запись разработчика nvidia и загрузите cudnn здесь (около 80 МБ)

Шаг 2: Проверьте, где находится ваша установка cuda. Для установки из репозитория это /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 из исходников)».
Нобар
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 или библиотеку для linux?
trytolearn
1
Еще один совет - убедитесь, что вы устанавливаете CUDA перед установкой CUDNN. В противном случае установщики cuda не будут перезаписывать любые каталоги / usr / local / cuda, которые вы, возможно, создали.
Kevins
39

Начиная с версии 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с сайта nvidia и установите один за другим следующим образом.

 sudo dpkg -i <library_name>.deb

Редактировать : Вы должны сначала установить среду выполнения (libcudnn6_6.0.21-1 + cuda8.0_amd64.deb), потому что dev зависит от среды выполнения (спасибо @tinmarino)

GPrathap
источник
1
Благодарю. Я попадал в эту проблему несколько раз. Давайте просто установим правило большого пальца. Когда что-то не работает, придерживайтесь установки с использованием пакетов .deb.
Анурааг Вайдья
8
При компиляции Tensorflow из исходного кода полезно знать, что путь установки библиотеки /usr/lib/x86_64-linux-gnu/
cuDNN
1
Вы должны сначала установить runtimedecause devзависит от этого
tinmarino
13
  1. Зарегистрируйтесь на сайте NVidia. Может пройти день или два, прежде чем они одобрят ваш аккаунт. По крайней мере, так было, когда я регистрировался.
  2. Загрузите и установите последнюю версию CUDA от NVidia или последнюю версию, которая соответствует программному обеспечению, с которым вы будете работать, если таковая имеется, в данном случае - вашей версии T-Flow.

    Обратите внимание, что установка через стандартный менеджер пакетов ubuntu с помощью нажатия, вероятно, не будет работать должным образом.

    Вместо этого вам, вероятно, придется следовать этим инструкциям в терминале, чтобы установить .debпакет. После этого вам придется добавить несколько строк в .bashrcили в соответствующих случаях в вашем случае. Например, если вы настраиваете сервер, он, вероятно, будет в другом месте, возможно, где-то до автозапуска вашего приложения, поскольку .bashrcв этом случае он, вероятно, не будет выполнен.

  3. Скачать CuDNN от NVidia

    Я использовал версию «Библиотека для Linux», мне не очень повезло с .debпакетами.

  4. Вы можете найти, где CUDA находится через which nvcc. Обычно /usr/local/cuda/это будет символическая ссылка на вашу текущую версию.

  5. Откройте архив CuDNN и скопируйте соответствующее содержимое в соответствующие места в папке установки CUDA ( cuda/lib64/и cuda/include/). Я обычно sudo nautilusи делаю это оттуда визуально.
Mгор ме
источник
8

Перенесемся в 2018 году, и теперь NVIDIA предоставляет 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. Установите библиотеку cuDNN (runtime, dev, doc) с помощью dpkg

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

Шаг 4. Если вы хотите узнать, где была установлена ​​библиотека, вы можете обновить индекс locate, а затем найти местоположение библиотеки.

sudo updatedb
locate libcudnn

Если вы специально устанавливаете cuDNN 7.x против инструментария CUDA 9.1, эта статья предоставляет дополнительную информацию, которая может быть полезна: http://tech.amikelive.com/node-679/quick-tip-install-cuda-deep- нейронной сети 7-cudnn-7-х-библиотека-для-Cuda-инструментарием-9-1-на-убунту-16-04 /

Майк
источник
Спасибо @Mike, вы знаете, в чем разница между использованием файлов deb и обычного файла .tar? какой из них рекомендуется и почему? (Между прочим, я сам устанавливал CUDA, используя runfile, а также использовал пакет .tar для cuDNN в Ubuntu)
Rika
Согласно соответствующим установочным документам от Nvidia , то, что вы говорите о необходимости удаления старых версий, неверно:cuDNN v7 can coexist with previous versions of cuDNN, such as v5 or v6.
n1k31t4
3

Также вы можете скачать пакеты deb для дистрибутивов на основе Debian.

На веб-странице NVIDIA для профиля разработчика доступны следующие файлы:

  • cuDNN v5.1 Runtime Library для Linux (Deb)
  • cuDNN v5.1 библиотека разработчика для Linux (Deb)
  • Примеры кода cuDNN v5.1 и руководство пользователя Linux (Deb)

Я проверял это на моей машине с Debian (Stretch) и TensorFlow работает!

Ларак
источник
6
Обратите внимание, что на данный момент (июль 2016 г.) cuDNN v5.1 не будет работать с TensorFlow, если вы не скомпилировали его из исходного кода, см. Tenorflow.org/versions/r0.9/get_started/os_setup.html
mastazi
2

Добавление важной детали к все еще действующим ответам @Martin Thoma и @ Íhor Mé: после копирования файлов libcudnn в каталоги cuda необходимо обновить файл .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 есть файл конфигурации, который вы должны отредактировать перед компиляцией с помощью make. Для этого отредактируйте caffe / Makefile.config, чтобы добавить пути к этим переменным конфигурации (добавить пробел между путями):

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

Для каждого текущего окна терминала вы хотите, чтобы эти изменения были эффективными, не забудьте выполнить файл один раз!

. ~/.bashrc
Agile Bean
источник
0

ответ правильный, но для cuDNN 5.1 некоторые имена были изменены. Так что если вы используете эту версию после распаковки файла cuDNN, вы найдете две папки: lib и include. измените имя файла * .h в папке include на cudnn.h, а затем следуйте https://askubuntu.com/a/767270/641589 . это изменение необходимо, если вы хотите использовать cuDNN для Caffe!

Abolfazl Taghribi
источник
Пожалуйста, отредактируйте свой ответ и добавьте ссылку «инструкция выше».
sudodus
0

В 16.04, если вы устанавливаете CUDA непосредственно с веб-сайта Nvidia и также создаете Tensorflow из исходного кода, вы можете указать каталог, который вы хотите указать как Cudnn. По умолчанию это:

/usr/include/x86_64-linux-gnu

Когда вы создаете Tensorflow, он спросит вас, какую версию вы хотите указать, что вы используете для Cudnn. Затем после этого он спросит, где он находится. Просто укажите каталог выше, и он будет работать нормально. Он должен создать файл wheel в этот момент, и вы можете установить его с помощью pip.

Годдард
источник