vs CUDA ~リターンズ

概要

簡単にまとめると、全部破壊してtensorflowでGPU使えるようにしました。
結論から言うとpython3.7、CUDA10.1、tensorflow-gpuは2.3.0です。あ、もしかしてこれだけでオチ分かった?

事の起こり

CUDAだけ入れておいてcuDNN入れ忘れたなーって思って始まりました。
前回のアレのとき、入れ直さずして何とかなったのはTF(tensorflowのこと。Team FortressでもTwisted FateでもTransformationでもTrue or Falseでもないよ。)使って学習はしなかったからです。詳しく話すと長いので略。

from tensorflow.python.client import device_lib
print(device_lib.list_local_devices())

私「GPU、使ってるよね?」
PCくん「CPUやよ」
私「どうして」
PCくん「知らんよ」
私「CUDAあるよね?」

nvcc -V
nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2019 NVIDIA Corporation
Built on Sun_Jul_28_19:12:52_Pacific_Daylight_Time_2019
Cuda compilation tools, release 10.1, V10.1.243

PCくん「前も聞いてきたよね」
私「あ、cuDNNのバージョンは?(参考)」
PCくん「そんなファイル、覚えがないヨ!」

面接は以上となります。

cuDNNを入れます

ダウンロードしたらzipファイルを解凍して適当な場所に展開します。
場所はどこでも構いませんが、TensorFlowの手順に合わせるのであれば「C:\tools\cuda\bin」に「cuDNN64_7.dll」が含まれるように解凍します。

引用元
って聞いたのでそこに入れます。そろそろCドライブというかSSDの容量やばいですわ。
んで、PATHを通します。

うん、あっさり。
苦戦した記憶、そういえばありませんわね。

それでもどうにもうまくいかない

もっかいCUDAの入れ直し、やる?

苦行、再び。

(必要ならBGM)
じゃ、私はHelltakerのBGM聴きながら作業するので….......

エラー

Running Processes
The following processes must be stopped before the CUDA Visual Studio Integration installation can procees:
Monitor

あっ。
モニターで使っているなら仕方なぁいね。
.......ちょっとマチア待ってくださいな?以前インストールしたとき、そういえばそんなのなかった気がしますわ?

Monitor.exe

タスクマネージャーを開きました。
Monitor.exe
(\ASUS\GPU TweakII)
あっ、これかぁ。名前紛らわしいんじゃ。
そういえばグラボ変えたときに入れたかもしれませんね。

コイツをkillします。

PCくん「Visual Studio Integrationのインストールに失敗したヨ!」

多分これよくあるエラーだった気がしますわ。記憶にあります。
カスタムインストールをすれば解決しましてよ!
カスタムインストールに設定して、ドライバーコンポーネントを選択する画面で、CUDA内Visual Studio Integrationのチェックを外せばよろしくてよ!
たぶんそこかしこでいろんな人が言っておりますわ。みんなで渡れば赤信号だって怖くないように問題ありませんわ!

インストール完了したけど.......

もう一度PCくんにGPUで計算できるようになったか尋ねます。

from tensorflow.python.client import device_lib
print(device_lib.list_local_devices())

これですね。
PCくん「う~ん、無理!w」
どうして。

対応表

そういえばtensorflow-gpu、テキトーにインストールしてた気がする。
www.tensorflow.org
これだわ。

pip install tensorflow-gpu==バージョン

でどうこうします。

動きました。

まとめ

CUDAインストール、cuDNN(CUDAにバージョンを合わせる)、tensorflow-gpuのバージョンを合わせると順番にしばきまわすことができたので解決しました。