Ubuntu 16.04にCuDNNをインストールするにはどうすればよいですか?


101

TensorFlowの場合、cudaとCuDNNをインストールします。Ubuntu 16.04でこれを行うにはどうすればよいですか?


4
警告:tensorflowを実行しようとしていてcudnnが必要な場合は、現時点では6.0ではなく5.1をインストールしてください。
言葉forthewise

@wordsforthewise CuDNN 6.0がサポートされるようになりました(少なくともTF 1.4では)。
コンピューター

回答:


134

ステップ0:標準リポジトリからcudaをインストールします。(CUDAをUbuntu 16.04にインストールする方法を参照してください

ステップ1:nvidia開発者アカウントを登録し、ここからcudnnダウンロードします(約80 MB)

手順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をインストールする場合にのみサポートされます)。」
-nobar

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
別のヒント-cudnnをインストールする前にcudaをインストールしてください。そうしないと、cudaインストーラーは作成した/ usr / local / cudaディレクトリを上書きしません。
ケビン

38

5.1以降では、@ Martinが述べたとおりにインストールできません。nvidiaサイト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からダウンロードし、次の 方法で1つずつインストールします。

 sudo dpkg -i <library_name>.deb

編集:devはランタイムに依存するため、最初にランタイム(libcudnn6_6.0.21-1 + cuda8.0_amd64.deb)をインストールする必要があります(ありがとう@tinmarino)


1
ありがとう。私はこの問題に何度も陥りました。親指のルールを確立しましょう。うまくいかないときは、.debパッケージを使用したインストールに固執します。
アヌラーグヴァイディア

8
ソースからTensorflowをコンパイルする場合、cuDNNライブラリのインストールパスが/usr/lib/x86_64-linux-gnu/
Visionscaper

1
あなたは、まずインストールする必要がありますruntimedecauseはdevそれに依存
tinmarino

12
  1. NVidiaのWebサイトで登録します。アカウントが承認されるまでに1〜2日かかる場合があります。少なくともそれは、私が登録したときのケースでした。
  2. NVidiaから最新のCUDAをダウンロードしてインストールするか、使用しているソフトウェア(この場合はT-Flowのバージョン)に適合する最新バージョンをダウンロードします

    注意してください。ubuntuの標準パッケージマネージャーを介したクリックは、おそらく適切に機能しません。

    代わりに、おそらくターミナルでこれらの指示に従って.debpakage をインストールする必要があります。その後、あなたがする必要がありますいくつかの行を追加する.bashrcか、どこに適切なあなたのケースインチ たとえば、サーバーを構成している場合、おそらく別の場所になり、アプリの自動起動の前のどこかになります.bashrc。その場合はおそらく実行されません。

  3. NVidiaからCuDNNをダウンロードする

    「Library for Linux」バージョンを使用しましたが、.debパッケージにはあまり運がありませんでした。

  4. CUDAの場所はで確認できます which nvcc。通常/usr/local/cuda/、現在インストールされているバージョンへのシンボリックリンクになります。

  5. CuDNNアーカイブを開き、適切なコンテンツをCUDAインストールフォルダー(cuda/lib64/およびcuda/include/)内の適切な場所にコピーします。私は通常sudo nautilus、そこから視覚的に行います。

8

Fast Forward 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. dpkgを使用してcuDNNライブラリ(runtime、dev、doc)をインストールする

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

ステップ4.ライブラリーがインストールされた場所を見つけたい場合は、ロケート索引を更新してから、ライブラリーの場所を見つけることができます。

sudo updatedb
locate libcudnn

CUDAツールキット9.1に対してcuDNN 7.xを具体的にインストールする場合は、この記事で詳細に説明します。http//tech.amikelive.com/node-679/quick-tip-installing-cuda-deep-ニューラルネットワーク-7-cudnn-7-x-library-for-cuda-toolkit-9-1-on-ubuntu-16-04 /


@Mikeに感謝します。debファイルと通常の.tarファイルの使用の違いを知っていますか?どれが推奨され、なぜですか?(ちなみに、私自身はrunfileを使用してCUDAをインストールし、ubuntuでcuDNNの.tarパッケージも使用していました)
リカ

よると、関連するインストール資料からNvidiaの古いバージョンを削除することについて言うことは、正しくない:cuDNN v7 can coexist with previous versions of cuDNN, such as v5 or v6.
n1k31t4

3

また、Debianベースのディストリビューション用のdebパッケージをダウンロードできます。

NVIDIA Webページから、開発者プロファイルについては次のファイルを入手できます。

  • Linux用cuDNN v5.1ランタイムライブラリ(Deb)
  • Linux用cuDNN v5.1開発者ライブラリ(Deb)
  • cuDNN v5.1コードサンプルおよびユーザーガイドLinux(Deb)

私のマシンでDebian(Stretch)を使ってこれをテストしましたが、TensorFlowは動作しています!


6
見、あなたがソースからコンパイルしない限り、(2016年7月)今のようcuDNNバージョン5.1がTensorFlowでは動作しませんので、予めご了承くださいtensorflow.org/versions/r0.9/get_started/os_setup.html
mastazi

2

@Martin Thomaと@ÍhorMéによる有効な回答に重要な詳細を追加: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

次に、それを使用する設定ファイルにincludeディレクトリを追加する必要があります。Caffeなどには、makeでコンパイルする前に編集する必要がある設定ファイルがあります。このために、caffe / Makefile.configを編集してこれらの構成変数にパスを追加します(パス間に空白を追加します)。

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

これらの変更を有効にする現在のターミナルウィンドウごとに、ファイルを一度実行することを忘れないでください!

. ~/.bashrc

0

答えは正しいですが、cuDNN 5.1ではいくつかの名前が変更されています。したがって、cuDNNファイルを抽出した後にこのバージョンを使用すると、libとincludeの2つのフォルダーが見つかります。インクルードフォルダー内の* .hファイルの名前をcudnn.hに変更し、https: //askubuntu.com/a/767270/641589に従ってください。CaffeにcuDNNを使用する場合、この変更が必要です!


回答を編集して、参照「上記の指示」を追加してください。
sudodus

0

16.04では、CUDAをNvidiaのWebサイトから直接インストールし、ソースからTensorflowを構築している場合、Cudnnとして指定するディレクトリを指定できます。デフォルトでは次のとおりです。

/usr/include/x86_64-linux-gnu

Tensorflowをビルドしているとき、Cudnnに使用していることを示すバージョンを尋ねます。その後、どこにあるかを尋ねられます。上記のディレクトリを指定するだけで問題なく動作します。その時点でwheelファイルが作成され、pipでインストールできます。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.