しかし相性の問題かanacondaは稀にフリーズするし動作も遅いし悩まされていた。
pip Packageとconda Packageが混在するのもトラブルの元だったし、肥大化したせいかanaconda自体が調子悪くなってきたので、トラブルシューティングとしてanacondaの再インストールを試みた所、遂にanaconda自体が起動しなくなってしまった。
そこで、古いPCパーツを活用してLinuxマシンを組み上げ、Ubuntu20.04を入れ、VScodeでTensorflowを使うとGPUが全然利用されない、使用率も消費電力も温度も上がらないしCPU使用率は100%に近い。
PytorchならGPUが正常に稼働するが、Tensorflowは、どのコードも駄目だ。
ドライバーの問題か?CUDAToolkitのバージョンや相性だろうか?
検索しても事例が出てこないし、導入の仕方やanacondaがオススメだとか、DockerDesktopの紹介ばかりだ。
その後Windows環境に戻りVScodeにWSL2をリンクしてWindowsからLinuxを利用できるようにした。
そしたらLinuxPCと全く同じで、PytorchならGPUが使えるがTensorflowだとGPUが動かない。
そこで、今まで良くわからないからすっ飛ばしていた事を、ちゃんとやることにした。
cuDNNの導入だ。
デバイスドライバーやCUDAToolkitと違って、NVIDIAのDeveloper登録が必要だし、検索しても環境変数とか面倒な情報ばっかりだったので、放おって置いたのだが、真面目に導入してみることにした。
今考えると、これが原因なのだが、初心者からすれば「PytorchならGPUで機械学習が動いているのだから別にcuDNNは必須では無いのだろう」と思いこんでいた。
ちなみにanacondaはconda installで簡単にcuDNNが実装できるので動いていたと言うわけだ。
やってみると意外と簡単だ。
NVIDIAのDeveloper登録だが下記のサイトから行う
さて、ここからが本題だ。
・ダンロードしたファイルをどこに入れれば良いのか?
・どうやってインストールすれば良いのか?
まず、ダウンロードしたdebファイルをWindowsだったら7ZIPなどの圧縮解凍ソフトで開く。
そしたdata.tarを更に開いていく。
この階層に有るlibcudnn8_8.6.0.163-1+cuda10.2_amd64.debがcuDNNのインストーラーパッケージだ。※今回は10.2を使っているので、このファイル名だが、もちろんバージョンによって異なる。
該当のファイルをWSLの/home/ユーザー名フォルダにコピーする。
Tensorflowのチュートリアル機械学習コードで試してみると見事にGPUで機械学習が出来ていることが確認できる。
同様にUbuntuをインストールしたLinuxPCでも全く同様の手順でcuDNNはインストールできる。
機械学習をしようと調べるとanacondaやらDockerDesktopの話ばっかり出てきて、色んなものをインストールしてストレージを逼迫したり、重くなるのが嫌でLinuxやWSL2でシンプルにTensorflowをGPU実行したい人は参考になれば幸いだ。
0 件のコメント:
コメントを投稿