頻繁にすることではないものの、いざ構築するとなるとやることが多いのでメモ。Pythonの仮想環境はvenvを使います。
1. 構築前の確認事項
グラフィックボードがNVIDIAであること
2022年1月現在、TensorFlowはNVIDIAのGPUドライバだけをサポートしています。
MACなどRadeonのようにNVIDIA以外のGPUの場合は残念ながらTensorFlowを使うことができません。
TensorFlowが求めるGPUドライバ, cuDNN, CUDAのバージョン
TensorFlow公式ページに行き、最新のTensorFlowが求めるcuDNNとCUDAのバージョンを確認します。このバージョンたちにずれがあるとimportに失敗することがあります。
https://www.tensorflow.org/install/source_windows?hl=ja
2. 各種ファイルのダウンロード
CUDA
https://developer.nvidia.com/cuda-toolkit-archive
CUDAはCPUで行う処理をNVIDIAのGPUに行わせる開発環境のことです。TensorFlow公式ページに書いてあったCUDAのバージョンを探し、ダウンロードします。今回の場合11.2系です。
cuDNN(アカウント登録が必要)
https://developer.nvidia.com/rdp/cudnn-archive
登録(ログイン)したらcuDNNのアーカイブページに行き、先ほどTensorFlow公式ページで確認したバージョンのcuDNNをダウンロードします。今回の場合8.1です。
グラボのドライバ(should)
CUDAとcuDNNは大抵バージョンが上がるごとに新しいGPUドライバを求めてくるため、この機会に最新のドライバを入れても良いでしょう。
3. CUDAとcuDNNのインストール
CUDA
インストーラーのため、実行したら画面の指示に従うだけでOKです。
cuDNN
ダウンロードしたzipファイルを展開するとbinなどのフォルダが3つほどあります。
CUDAをインストールしたことによってできた下記のフォルダにそのcudaフォルダの中身を全部移動します。(フォルダとは別にSLAのtxtファイルもありますが、公的文書のため覚書として今回一緒にコピーします)
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.2 ※↑末尾のバージョン番号はインストールしたCUDAのバージョンによって異なります。
4. Pythonのライブラリのインストール
Pythonがインストールされており、パスが通っていること前提です。
pip venv
まずはvenvで仮想環境を作ります。
cd 好きなディレクトリ python -m venv venv
仮想環境を作ったらactivateしておきます。
venv¥Scripts¥activate
pip install
必要なら tensorflow-gpu=2.6.0
のようにバージョンを指定してください。
pip install tensorflow==2.6.0 keras==2.6.0
バージョン1.15以前はパッケージがtensorflowとtensorflow-gpuに分かれていましたが、それ以降はtensorflowに統一されています。
TensorFlowがGPUを認識できているか確認する
pythonコマンドで対話モードを起動し、下記のように実行します。
参考:https://www.tensorflow.org/guide/gpu?hl=ja
import tensorflow as tf print("Num GPUs Available: ", len(tf.config.experimental.list_physical_devices('GPU')))
このように1以上の値が出力されていれば認識されています。
Num GPUs Available: 1
下記のコードでも確認できます。
from tensorflow.python.client import device_lib device_lib.list_local_devices()
いくらか情報が出力され、その中にGPUの名前が出てきていればうまくいっています。
... physical_device_desc: "device: 0, name: NVIDIA GeForce GTX 1080 Ti, pci bus id: 0000:01:00.0, compute capability: 6.1"