質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
87.20%
Anaconda

Anacondaは、Python本体とPythonで利用されるライブラリを一括でインストールできるパッケージです。環境構築が容易になるため、Python開発者間ではよく利用されており、商用目的としても利用できます。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

解決済

Anacondaで構築したtensorflow-gpuが動かない

Sparrow42
Sparrow42

総合スコア0

Anaconda

Anacondaは、Python本体とPythonで利用されるライブラリを一括でインストールできるパッケージです。環境構築が容易になるため、Python開発者間ではよく利用されており、商用目的としても利用できます。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

1回答

0評価

1クリップ

52閲覧

投稿2020/12/09 07:31

編集2022/01/12 10:58

前提・実現したいこと

1週間ほど前にAnacondaのGPUが効かなくなったため、環境構築のやり直しを行いました。
そして、GPUに必要なTensorflow, CUDA, cuDNN, MSVC等入れなおしましたが効きませんでした。
原因にお心当たりのある方にご教授いただければ幸いです。

実行環境

Windows 10
NVIDIA GeForce GTX 1050

発生している問題・エラーメッセージ

GPUの動作確認は以下のようになっています。1つ目が実行ソースコード、2つ目が出力結果です。
また、動作確認用のMNISTの学習を実行してもGPUは稼働していませんでした。

python

from tensorflow.python.client import device_lib print(device_lib.list_local_devices())
In[1] : runfile('C:/Users/furu/Documents/HSCvideo/FrameInterporation_edge1ver.py', wdir='C:/Users/furu/Documents/HSCvideo') 2020-12-08 15:40:54.616128: I tensorflow/stream_executor/platform/default/dso_loader.cc:44] Successfully opened dynamic library cudart64_100.dll 2020-12-08 15:40:54.616128: I tensorflow/stream_executor/platform/default/dso_loader.cc:44] Successfully opened dynamic library cudart64_100.dll 2020-12-08 15:40:56.761000: I tensorflow/core/platform/cpu_feature_guard.cc:142] Your CPU supports instructions that this TensorFlow binary was not compiled to use: AVX AVX2 2020-12-08 15:40:56.763981: I tensorflow/stream_executor/platform/default/dso_loader.cc:44] Successfully opened dynamic library nvcuda.dll 2020-12-08 15:40:56.776223: E tensorflow/stream_executor/cuda/cuda_driver.cc:318] failed call to cuInit: CUDA_ERROR_UNKNOWN: unknown error 2020-12-08 15:40:56.778748: I tensorflow/stream_executor/cuda/cuda_diagnostics.cc:169] retrieving CUDA diagnostic information for host: DESKTOP-7I4IE8E 2020-12-08 15:40:56.778824: I tensorflow/stream_executor/cuda/cuda_diagnostics.cc:176] hostname: DESKTOP-7I4IE8E [name: "/device:CPU:0" device_type: "CPU" memory_limit: 268435456 locality { } incarnation: 8637331694356319930 ]

問題に至った経緯

以前までAnacondaでGPUは使えていたが、原因不明で使えなくなる

1カ月ほど前にGPU環境の構築に成功し、それからGPUは使えており、タスクマネージャーや先ほどの確認コードでも動作していることは確認できていました。
しかし、1週間ほど前に突然GPUが動かなくなり、CPUしか動かなくなりました。
(他にもJupyter Notebookで実行するとリモートデスクトップの画面が固まる等の変化もありました。関連性は不明。Spyderで実行することで解決済み。)

それに対して、Tensorflowのバージョン変更などを試しましたが、状況は変わりませんでした。

google colabで試してみるも、容量やメモリの関係で断念

GPUさえ使えればいいので、以前使用していたgoogle colabでやろうと考えました。しかし、50GB以上学習に必要な上、メモリも8G程度では足りないことから現実的でないと断念しました。

バージョンに原因があるかも?と思い、環境再構築へ

GPUが効かなくなってから改めてTensorflowが公表しているGPU環境のバージョン対応を調べたところ、誤ってLinuxのバージョン対応表に準拠していたことが判明しました。次の画像の選択部分が以前構築していたバージョンです。
Linuxのバージョン対応表
windowsのバージョン対応表は次の通りでした。選択部分が今回構築したバージョンです。
windowsのバージョン対応表
元々、1つ上のtensorflow-gpu2.1.0で検討していたのですが、cuDNN7.4CUDA10.1に対応するバージョンが存在しなかった(※)ため、2.0.0で行いました。

※追記:別件の質問にて、英語ドキュメントでは以前構築した構成がテスト済みバージョンに入っていることをご教授いただきました。日本語ドキュメントが更新されていないのかもしれないです。
windowsのバージョン対応表(english)

再構築方法

変更したのは、

  • MSVC2019→1017
  • CUDA10.1→10.0
  • cuDNN7.6→7.4
  • Python3.7→3.6
  • Tensorflow2.1.0→2.0.0

MSVC2019→1017

2019は消さずに2017を追加する形で変更しました。

CUDA10.1→10.0

10.1のアンストと10.0のインストを行いました。詳しくは別件で質問したCUDAダウングレードの質問をご覧ください。

cuDNN7.6→7.4

cuDNNをダウンロード・展開し、C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.0の各ディレクトリの該当ファイルを上書きしました。システム環境変数についても設定済みです。こちらのサイトを参考にしました。
pathの確認結果は次の画像の通りです。
pathの確認
(パスが該当サイトと少し違ったので、「試したこと」で検証しました。)

Python3.7→3.6, Tensorflow2.1.0→2.0.0

Anacondaプロンプトからバージョン指定でインストールしました。conda listにてバージョンは確認済み。

試したこと

cuDNNのパスについて、**参照サイトだと下1行のみだったのに対し、私の場合だとanaconda3のパスも出ていました。**そのため、anacondaのcudnn64_7.dllにも同様にダウンロードしたファイルを上書きしてみました。しかし、再起動しても結果は変わりませんでした。

今回は再構築ということで、少し通常の構築とは状況が異なります。
どなたか何卒よろしくお願いします。

良い質問の評価を上げる

以下のような質問は評価を上げましょう

  • 質問内容が明確
  • 自分も答えを知りたい
  • 質問者以外のユーザにも役立つ

評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

気になる質問をクリップする

クリップした質問は、後からいつでもマイページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

  • プログラミングに関係のない質問
  • やってほしいことだけを記載した丸投げの質問
  • 問題・課題が含まれていない質問
  • 意図的に内容が抹消された質問
  • 過去に投稿した質問と同じ内容の質問
  • 広告と受け取られるような投稿

評価を下げると、トップページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

jbpb0
jbpb0

2020/12/09 08:39

https://qiita\.com/wazakkyd/items/ab79920b22b24b385487 の「Sampleコードの実行」のCUDAのソースをコンパイルして実行することはできますか\? できるなら、CUDA自体のインストールはできてると思います
Sparrow42
Sparrow42

2020/12/09 08:53

たびたび回答ありがとうございます! 考えていただいたのに申し訳ないですが、今解決しました! 解決法は自己解決に書きますが、かなり単純な話でした…。 (昨日の質問について、ベストアンサーをつける前に自己解決にしてしまい申し訳ありませんでした。また機会がありましたら是非お願いします!)

まだ回答がついていません

会員登録して回答してみよう

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
87.20%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問

同じタグがついた質問を見る

Anaconda

Anacondaは、Python本体とPythonで利用されるライブラリを一括でインストールできるパッケージです。環境構築が容易になるため、Python開発者間ではよく利用されており、商用目的としても利用できます。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。