Jak mogę zainstalować CuDNN na Ubuntu 16.04?

101

W przypadku TensorFlow chciałbym zainstalować Cudę i CuDNN. Jak to zrobić w systemie Ubuntu 16.04?

Martin Thoma
źródło
4
Ostrzeżenie: jeśli próbujesz uruchomić tensorflow i potrzebujesz cudnn, zainstaluj na razie 5.1, a nie 6.0.
wordsforthewise
@wordsforthewise CuDNN 6.0 jest teraz obsługiwany (przynajmniej dla TF 1.4).
ComputerScientist

Odpowiedzi:

134

Krok 0: Zainstaluj Cuda ze standardowych repozytoriów. (Zobacz Jak mogę zainstalować CUDA na Ubuntu 16.04? )

Krok 1: Zarejestruj konto programisty NVIDIA i pobierz Cudnn tutaj (około 80 MB)

Krok 2: Sprawdź, gdzie znajduje się instalacja cuda. W przypadku instalacji z repozytorium jest to /usr/lib/...i /usr/include. W przeciwnym razie będzie to /usr/local/cuda/lub /usr/local/cuda-<version>. Możesz to sprawdzić za pomocą which nvcclubldconfig -p | grep cuda

Krok 3: Skopiuj pliki:

Instalacja repozytorium:

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

Instalacja pliku 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
źródło
14
Dodanie -Pzachowuje dowiązania symboliczne, tzn. sudo cp -P lib64/libcudnn* /usr/lib/x86_64-linux-gnu/I pozwala uniknąć wiadomości:/sbin/ldconfig.real: /usr/lib/x86_64-linux-gnu/libcudnn.so.5 is not a symbolic link
Max Gordon,
1
Zaktualizuj stąd : „Pobierz cuDNN v4 (v5 jest obecnie kandydatem do wydania i jest obsługiwany tylko podczas instalowania TensorFlow ze źródeł)”.
nobar
36
Aby Tensorflow znalazł wszystko, musiałem skopiować include/cudnn.hi biblioteki lib64/do /usr/local/cuda-8.0/includei /usr/local/cuda-8.0/lib64(używając CUDA 8.0, Ubuntu 14.04, Tensorflow 0.12.0rc0) - być może jest to pomocne dla kogoś.
David Stutz,
@ MaxGordon Cześć, czy to ma znaczenie, jeśli używam biblioteki wykonawczej dla Ubuntu16.04 power8 lub biblioteki dla Linuksa?
próbujetolearn
1
Kolejna wskazówka - upewnij się, że instalujesz cuda przed zainstalowaniem cudnn. W przeciwnym razie instalatorzy cuda nie zastąpią żadnych utworzonych katalogów / usr / local / cuda.
kevins
38

Od wersji 5.1 nie można instalować zgodnie z tym, o czym wspomniał @Martin. Pobierz 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.debze strony nvidia i zainstaluj jeden po drugim w następujący sposób.

 sudo dpkg -i <library_name>.deb

Edycja : Musisz najpierw zainstalować środowisko uruchomieniowe (libcudnn6_6.0.21-1 + cuda8.0_amd64.deb), ponieważ dev zależy od środowiska uruchomieniowego (Dzięki @tinmarino)

GPrathap
źródło
1
Dzięki. Wielokrotnie wpadłem na ten problem. Po prostu ustalmy regułę kciuka. Kiedy coś nie działa, trzymaj się instalacji przy użyciu pakietów .deb.
Anuraag Vaidya
8
Podczas kompilacji Tensorflow ze źródła dobrze jest wiedzieć, że ścieżka instalacji biblioteki cuDNN to/usr/lib/x86_64-linux-gnu/
Visionscaper
1
Musisz najpierw zainstalować runtimedecyzję devzależy od tego
tinmarino
12
  1. Zarejestruj się na stronie NVidii. Zatwierdzenie konta może potrwać dzień lub dwa. Przynajmniej tak było podczas mojej rejestracji.
  2. Pobierz i zainstaluj najnowszą wersję CUDA firmy NVidia lub najnowszą wersję, która pasuje do oprogramowania, z którym będziesz współpracować, jeśli w ogóle, w tym przypadku do twojej wersji T-Flow.

    Pamiętaj, że instalacja za pomocą standardowego menedżera pakietów ubuntu poprzez kliknięcie prawdopodobnie nie będzie działać poprawnie.

    Zamiast tego prawdopodobnie będziesz musiał wykonać te instrukcje w terminalu, aby zainstalować .debpakiet. Potem trzeba będzie dodać kilka wierszy do .bashrclub gdziekolwiek odpowiednie w danym przypadku. Na przykład, jeśli konfigurujesz serwer, prawdopodobnie będzie to inne miejsce, być może gdzieś przed automatycznym uruchomieniem aplikacji, ponieważ .bashrcprawdopodobnie nie zostanie wykonane w tym przypadku.

  3. Pobierz CuDNN z NVidia

    Użyłem wersji „Library for Linux”, nie miałem dużo szczęścia z .debpakietami.

  4. Możesz dowiedzieć się, gdzie znajduje się CUDA which nvcc. Zwykle /usr/local/cuda/będzie to symboliczny link do aktualnie zainstalowanej wersji.

  5. Otwórz archiwum CuDNN i skopiuj odpowiednią zawartość do odpowiednich miejsc w folderze instalacyjnym CUDA ( cuda/lib64/i cuda/include/). Zwykle sudo nautilusrobię to stamtąd wizualnie.
Íhor Mé
źródło
8

Przewiń do przodu 2018, a NVIDIA zapewnia teraz cuDNN 7.x do pobrania. Kroki instalacji są nadal podobne do opisanych przez @GPrathap. Ale jeśli chcesz zastąpić starą wersję cuDNN nowszą, musisz ją najpierw usunąć przed instalacją.

Przypomnę:

Krok 0. Sprawdź, czy masz już zainstalowany zestaw narzędzi CUDA. Kontynuuj instalację pakietu narzędzi CUDA, jeśli jeszcze tego nie zrobiłeś.

Krok 1. Przejdź do portalu dla deweloperów NVIDIA https://developer.nvidia.com/cudnn i pobierz cuDNN.

Krok 2. Jeśli wcześniej zainstalowałeś cuDNN, usuń go

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

Krok 3. Zainstaluj bibliotekę cuDNN (środowisko uruchomieniowe, dev, doc) za pomocą dpkg

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

Krok 4. Jeśli chcesz znaleźć lokalizację biblioteki, możesz zaktualizować indeks lokalizacji, a następnie znaleźć lokalizację biblioteki.

sudo updatedb
locate libcudnn

Jeśli instalujesz cuDNN 7.x przeciwko CUDA Toolkit 9.1, ten artykuł zawiera więcej szczegółów, które mogą być pomocne: 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 /

Mikrofon
źródło
Dzięki @Mike, czy wiesz, jaka jest różnica między używaniem plików deb a zwykłym plikiem .tar? który jest zalecany i dlaczego? (Nawiasem mówiąc, ja sam instalowałem CUDA przy użyciu pliku uruchomieniowego, a także używam pakietu .tar dla cuDNN w Ubuntu)
Rika
Zgodnie z odpowiednimi dokumentami instalacyjnymi firmy Nvidia to, co mówisz o konieczności usunięcia starych wersji, jest nieprawidłowe:cuDNN v7 can coexist with previous versions of cuDNN, such as v5 or v6.
n1k31t4 30.04.2018
3

Możesz także pobrać pakiety deb dla dystrybucji opartych na Debianie.

Ze strony internetowej NVIDIA dla profilu programisty dostępne są następujące pliki:

  • Biblioteka uruchomieniowa cuDNN v5.1 dla systemu Linux (Deb)
  • cuDNN v5.1 Developer Library for Linux (Deb)
  • cuDNN v5.1 Przykłady próbek i instrukcja obsługi Linux (Deb)

Przetestowałem to na mojej maszynie z Debianem (Stretch) i TensorFlow działa!

LAraque
źródło
6
Należy pamiętać, że od teraz (lipiec 2016 r.) CuDNN v5.1 nie będzie działać z TensorFlow, chyba że skompilujesz go ze źródła, patrz tensorflow.org/versions/r0.9/get_started/os_setup.html
mastazi
2

Dodając ważny szczegół do wciąż aktualnych odpowiedzi @Martin Thoma i @ Íhor Mé: Po skopiowaniu plików libcudnn do katalogów cuda, musisz zaktualizować plik .bashrc:

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

Następnie należy dodać katalog dołączania do każdego pliku konfiguracyjnego, który go używa. Caffe np. Ma plik konfiguracyjny, który musisz edytować przed kompilacją z make. W tym celu edytuj plik caffe / Makefile.config, aby dodać ścieżki do tych zmiennych konfiguracyjnych (dodaj spacje między ścieżkami):

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

Dla każdego bieżącego okna terminala, w którym zmiany mają obowiązywać, nie zapomnij raz uruchomić pliku!

. ~/.bashrc
Zwinna Fasola
źródło
0

odpowiedź jest poprawna, ale w przypadku cuDNN 5.1 niektóre nazwy zostały zmienione. Jeśli więc użyjesz tej wersji po rozpakowaniu pliku cuDNN, znajdziesz dwa foldery: lib i include. zmień nazwę pliku * .h w folderze dołączania na cudnn.h, a następnie postępuj zgodnie z https://askubuntu.com/a/767270/641589 . ta zmiana jest potrzebna, jeśli chcesz używać cuDNN dla Caffe!

abolfazl taghribi
źródło
Zmodyfikuj swoją odpowiedź i dodaj odniesienie, „instrukcję powyżej”.
sudodus
0

W 16.04, jeśli instalujesz CUDA bezpośrednio ze strony Nvidii i budujesz Tensorflow ze źródła, możesz określić katalog, który chcesz wskazać jako Cudnn. Domyślnie jest to:

/usr/include/x86_64-linux-gnu

Podczas budowania Tensorflow zapyta cię, z której wersji chcesz wskazać, że używasz Cudnn. Następnie zapyta, gdzie się znajduje. Wystarczy wskazać katalog powyżej, a będzie on działał dobrze. W tym momencie powinien utworzyć plik koła i można go zainstalować za pomocą pip.

Goddard
źródło