前提・実現したいこと
1週間ほど前にAnacondaのGPUが効かなくなったため、環境構築のやり直しを行いました。
そして、GPUに必要なTensorflow, CUDA, cuDNN, MSVC等入れなおしましたが効きませんでした。
原因にお心当たりのある方にご教授いただければ幸いです。
実行環境
Windows 10
NVIDIA GeForce GTX 1050
発生している問題・エラーメッセージ
GPUの動作確認は以下のようになっています。1つ目が実行ソースコード、2つ目が出力結果です。
また、動作確認用のMNISTの学習を実行してもGPUは稼働していませんでした。
python
1from tensorflow.python.client import device_lib 2print(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のバージョン対応表に準拠していたことが判明しました。次の画像の選択部分が以前構築していたバージョンです。
windowsのバージョン対応表は次の通りでした。選択部分が今回構築したバージョンです。
元々、1つ上のtensorflow-gpu2.1.0
で検討していたのですが、cuDNN7.4
にCUDA10.1
に対応するバージョンが存在しなかった(※)ため、2.0.0で行いました。
※追記:別件の質問にて、英語ドキュメントでは以前構築した構成がテスト済みバージョンに入っていることをご教授いただきました。日本語ドキュメントが更新されていないのかもしれないです。
再構築方法
変更したのは、
- 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の確認結果は次の画像の通りです。
(パスが該当サイトと少し違ったので、「試したこと」で検証しました。)
Python3.7→3.6, Tensorflow2.1.0→2.0.0
Anacondaプロンプトからバージョン指定でインストールしました。conda listにてバージョンは確認済み。
試したこと
cuDNNのパスについて、**参照サイトだと下1行のみだったのに対し、私の場合だとanaconda3のパスも出ていました。**そのため、anacondaのcudnn64_7.dllにも同様にダウンロードしたファイルを上書きしてみました。しかし、再起動しても結果は変わりませんでした。
今回は再構築ということで、少し通常の構築とは状況が異なります。
どなたか何卒よろしくお願いします。
回答1件
あなたの回答
tips
プレビュー