TensorFlow を 2.10 から 2.13 に更新したら GPU が認識されなくなった時の対処法
TensorFlow が GPU で動かなくなった話
最近 TensorFlow の最新バージョンががようやく Python 3.11 に対応したので、早速 TensorFlow のバージョンを 2.10 から 2.13 にアップデートしました。
そしてさっそく動かしてみたら GPU を認識してくれませんでした。
バージョン 2.10 と同じように GPU で AI 学習を行おうとしても、なぜか CPU で動作します。
そういう時にまず疑うのは CUDA, CuDNN のバージョンが TensorFlow のパッケージとあっているかどうかです。
TensorFlow が対応している CUDA, CuDNN のバージョン対応表は以下を参照してください。
TensorFlow を GPU で動かすときの CUDA, CuDNN バージョン早見表
今回は tensorFlow のバージョンを 2.13.0 にアップデートしたので cuDNNを 8.6、CUDAを 11.8 に更新しました。
しかし、バージョンをそろえても GPU を認識してくれませんでした。
GPU を認識しなかった原因
2.10 の時は GPU で動作していたので、CUDA, CuDNN のバージョンが関係なければ Tensorflow の仕様変更が原因の可能性が高いため、
今度は Tensorflow のリリースノートやら更新情報やらを読み漁りました。
( Tensorflow は毎回更新するたびに何かが動かなくなっている気がする... )
どうやら TensorFlow 2.11 以降のバージョンではネイティブ Windows での GPU をサポートしなくなった らしいです。
Windows で バージョン 2.11 以降の TensorFlow を GPU で動かすには WSL2 を使う必要があります。
TensorFlow を WSL2 で動かす方法は検索したらたくさん出てくるためここでは割愛します。