どのTensorFlowバージョンとCUDAバージョンの組み合わせに互換性がありますか?


145

一部の新しいTensorFlowバージョンは、古いCUDAおよびcuDNNバージョンと互換性がないことに気付きました。互換性のあるバージョンの概要、または公式にテストされた組み合わせのリストさえ存在しますか?TensorFlowのドキュメントでは見つかりません。


1
すべての要件は、「GPUサポートを使用してTensorFlowを実行するためのNVIDIA要件」と呼ばれるインストール手順とともに提供されます
P-Gn 2018年

10
質問は互換性と(公式に)テストされた組み合わせに対処することでした。私の考えでは、インストールの手順では提供されていません。また、あなたが参照しているセクションが見つかりません。これらの観察結果から、私の全体的な見解では、要求された情報は見つけにくいため、回答に投稿されたリンクに簡単にアクセスできることを正当化しています。
ファビオ2018年

言及したページのCUDAバージョンとcuDNNバージョンがインストール手順の1つと一致することがわかります。
P-Gn 2018年

インストール手順を見つけるには、上記でリンクしたページに移動し、OSのリンクをたどります。
P-Gn 2018年

1
ああ、私はあなたが何を意味しているのかわかります-どのテンソルフローバージョンが特定のCUDA / cuDNNの組み合わせに適合するかを確認しようとしています。TFのリリースノートを閲覧することもできますが、リンク先の表は確かに良い要約です。
P-Gn 2018年

回答:


212

一般的に:

CUDAのバージョンを確認します。

cat /usr/local/cuda/version.txt

とcuDNNバージョン:

grep CUDNN_MAJOR -A 2 /usr/local/cuda/include/cudnn.h

そして、画像またはここで以下に示す組み合わせをインストールします

次の画像とリンクは、Linux、macOS、WindowsでのCUDAとTensorFlowの公式にサポート/テスト済みの組み合わせの概要を示しています。

マイナー構成:

以下の特定の仕様は場合によっては広すぎる可能性があるため、機能する特定の構成を以下に示します。

  • tensorflow-gpu==1.12.0
  • cuda==9.0
  • cuDNN==7.1.4

対応するcudnnはここからダウンロードできます

(2020年5月20日更新の図)

Linux GPU

ここに画像の説明を入力してください

Linux

ここに画像の説明を入力してください

macOS GPU

ここに画像の説明を入力してください

マックOS

ここに画像の説明を入力してください

(2018年5月31日更新の図)

ウィンドウズ

ここに画像の説明を入力してください

2020年1月14日の時点で更新:更新情報については、Link for LinuxおよびLink for Windowsを参照してください。


1
ただし、TensorFlowバージョン<1.0が概要から除外されていることに気付きました。誰かが古いバージョンで同じリストを見つける場所を知っていますか?
ファビオ2018年

2
彼らはcudaおよびcudnnのマイナーバージョンを指定していないように見えます
mrgloom '30年

1
更新:テスト済みのTF-GPU 1.12、Windows 10、CUDA 9.0、CuDNN 7.3.1、Python 3.6.6
mjaniec

1
図を更新しないでください。ドキュメントにリンクしてください。リンクの変更頻度は表より少ない
Trylks

1
@ファビオ:リクエストに従って最新のリンクで回答を更新しました。
Tensorflowサポート

23

tensorflowサイトで提供されている互換性テーブルには cudaおよびcuDNNの特定のマイナーバージョンは含まれていません。ただし、特定のバージョンが満たされていない場合、テンソルフローを使用しようとするとエラーが発生します。

以下の場合tensorflow-gpu==1.12.0cuda==9.0、互換性のあるcuDNNバージョンがある7.1.4からダウンロードすることができ、ここで登録した後。

を使用してcudaバージョンを確認できます
nvcc --version

使用するcuDNNバージョン
cat /usr/include/cudnn.h | grep CUDNN_MAJOR -A 2

tensorflow-gpuバージョンを使用
pip freeze | grep tensorflow-gpu

更新: tensorflow 2.0がリリースされて以来、互換性のあるcudaおよびcuDNNバージョンも共有します(Ubuntu 18.04用)。

  • tensorflow-gpu = 2.0.0
  • cuda = 10.0
  • cuDNN = 7.6.0

1
あなたの答えはとても役に立ちました。あなたが言ったように、ドキュメントはマイナーバージョンを呼び出すことは非常に明確ではありませんでした。私はあなたの設定を追跡し、それはうまくいきました!
Vikrame

2

jupyter Notebookでコーディングしていて、tfが使用しているcudaバージョンを確認する場合は、次のコマンドを直接jupyterセルに実行します。

!conda list cudatoolkit

!conda list cudnn

そして、gpuがtfから見えるかどうかを確認するには:

tf.test.is_gpu_available(
    cuda_only=False, min_cuda_compute_capability=None
)

1

この構成をcuda 10.0に使用できます(10.1は3/18の時点では機能しません)。これは私のために実行されます:

  • tensorflow> = 1.12.0
  • tensorflow_gpu> = 1.4

バージョンtensorflow gpuをインストールします。

pip install tensorflow-gpu==1.4.0

1

誤ってCUDA 10.1とCUDNN 7.6をインストールしてしまいました。次の構成を使用できます(これは私にとってはうまくいきました-9/10現在)。:

  • Tensorflow-gpu == 1.14.0
  • CUDA 10.1
  • CUDNN 7.6
  • Ubuntu 18.04

しかし、テンソルフローが元々CUDA 10で機能するため、シンボリックリンクを作成する必要がありました。

sudo ln -s /opt/cuda/targets/x86_64-linux/lib/libcublas.so /opt/cuda/targets/x86_64-linux/lib/libcublas.so.10.0
sudo cp /usr/lib/x86_64-linux-gnu/libcublas.so.10 /usr/local/cuda-10.1/lib64/
sudo ln -s /usr/local/cuda-10.1/lib64/libcublas.so.10 /usr/local/cuda-10.1/lib64/libcublas.so.10.0
sudo ln -s /usr/local/cuda/targets/x86_64-linux/lib/libcusolver.so.10 /usr/local/cuda/lib64/libcusolver.so.10.0
sudo ln -s /usr/local/cuda/targets/x86_64-linux/lib/libcurand.so.10 /usr/local/cuda/lib64/libcurand.so.10.0
sudo ln -s /usr/local/cuda/targets/x86_64-linux/lib/libcufft.so.10 /usr/local/cuda/lib64/libcufft.so.10.0
sudo ln -s /usr/local/cuda/targets/x86_64-linux/lib/libcudart.so /usr/local/cuda/lib64/libcudart.so.10.0
sudo ln -s /usr/local/cuda/targets/x86_64-linux/lib/libcusparse.so.10 /usr/local/cuda/lib64/libcusparse.so.10.0

そして、以下を〜/ .bashrcに追加します-

export PATH=/usr/local/cuda/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/cuda/lib64:$LD_LIBRARY_PATH
export PATH=/usr/local/cuda-10.1/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/cuda-10.1/lib64:$LD_LIBRARY_PATH
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/opt/cuda/targets/x86_64-linux/lib/

0

TF 2.0にアップグレードした後、同様の問題が発生しました。TFが報告していたCUDAのバージョンは、Ubuntu 18.04が私がインストールしたと思っていたものと一致しませんでした。私はCUDA 7.5.0を使用していたと言いましたが、適切なバージョンがインストールされているとaptは思っていました。

最終的に私がしなければならなかったのは、/usr/localforを再帰的にgrepすることでしたがCUDNN_MAJOR/usr/local/cuda-10.0/targets/x86_64-linux/include/cudnn.h実際にはバージョンをと指定していることがわかりました7.5.0
/usr/local/cuda-10.1それを正しく理解し、を/usr/local/cuda指摘した/usr/local/cuda-10.1ので、TFがを見ていたのは、私にとっては謎のままでした(そして、今も残っています)/usr/local/cuda-10.0

とにかく、私はちょうど移動/usr/local/cuda-10.0/usr/local/old-cuda-10.0TFがこれ以上それを見つけることができませんでしたし、すべてが、その後の魅力のように働いたので。

それはすべて非常にイライラさせられました、そして私はまだ私がちょうどランダムなハックをしたように感じています。しかし、それはうまくいった:)そしておそらくこれは同様の問題を持つ誰かを助けるでしょう。

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