この記事の内容
Windows環境でGPUを利用した機械学習環境を整備します。
自分のPCの設定メモですので、内容のほとんどは最後に紹介する参考サイトの焼き直しです。
CUDA Toolkitインストールの主な手順
- 最新のGPUドライバの入手
- GPUドライバ、Tensorflow に対応した CUDA、cuDNNの入手
- ドライバのインストール
- Tensorflow、Pytorch、CuPy のインストール
システム構成
- PC:DELL XPS15 2017(GeForce GTX 1050)
- NVIDIA GPUドライバ: 451.48(GPUドライバは最新版がよさそうです)
- CUDA Toolkit:
- CUDA Toolkit 10.0 Archive(Tensorflow)
- CUDA Toolkit 10.1 update2 Archive(Pytorch)
- cuDNN: v7.4.2 (Dec 14, 2018), for CUDA 10.0
- Python3.7(Anaconda)
CUDA10.1 の cuDNN v7.4.2 がなかったことが気になりますが、torch.cuda.is_available()
は True を返してくれたので、PytorchからGPUが見えている、と信じてます。
最新のGPUドライバの入手
NVIDIAドライバダウンロード で自分のGPUに対応するドライバを選択します。
「検索」ボタンを押下するとGPUドライバのインストールファイルダウンロード画面に遷移します。で、この時、ドライバのバージョンを控えておきます。
GPUドライバのバージョンに対応したCUDAのインストール
Release Notes :: CUDA Toolkit Documentation の Table 2. CUDA Toolkit and Compatible Driver Versions から GPUドライバ に対応した CUDA Toolkit のバージョンを調べます。
新しいものほど良い、という考え方は、だいたいあっているのですが、あまり最新を攻めすぎると、ビルド済みTensorflowを利用できなかったりします。
なので、TensorFlowのテスト済みのビルド構成 で TensorFlow と CUDA と cuDNN のバージョンを確認し、適切なバージョンを選択します。
Windows の記載は無いのですが、だいたい Linux と同じみたいです。細かいことは動かなかった時に考えます。
-
CUDA は CUDA Toolkit | NVIDIA Developer からダウンロードします。
-
cuDNN は NVIDIA cuDNN | NVIDIA Developer からダウンロードします。ダウンロードするためには NVIDIA DEVELOPERアカウント登録(無料)が必要です。
ドライバのインストール
1. GPUドライバ
特にこだわりがなければ、インストールダイアログに沿って「次へ」ボタンを押下しているとインストールが完了します。
2. CUDA Toolkit
インストールしようとすると Visual Studio がインストールされていない旨のメッセージが出力されます。気にせずインストールもできます。
インストールする Visual Studio はなんでもいいわけではなく、インストール対象のCUDAのリリース時期を勘案したバージョンの Visual Studio をインストールする必要があります。2020年7月現在、Visual Studio 2017が安全そうです。
CUDA のインストール完了後、下記の3つのフォルダに環境変数 PATH の設定をします。
-
CUDA10.0
- C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.0\bin
- C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.0\extras\CUPTI\libx64
- C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.0\include
-
CUDA10.1
- C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.1\bin
- C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.1\extras\CUPTI\lib64
- C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.1\include
3. cuDNN
ZIPファイルを展開し、dll が格納されているファイルにパスを通します。
展開場所はどこでもよいですが、あまり深いところにすると、自分でどこに置いたか忘れるため、ここでは C:\tools\
で展開するものとします。
で、展開後、下記のフォルダパスを環境変数 PATH に登録します。
C:\tools\cuda\bin
Tensorflow、Pytorch、CuPy のインストール
Anaconda等のPython3環境がすでにインストールされているものとします。
Tensorflow
> pip install tensorflow-gpu==1.14.0
Pytorch
PyTorch でインストールコマンドを取得できます。ただ、CUDA10.0は対応していませんでした。
> pip install torch==1.5.1+cu101 torchvision==0.6.1+cu101 -f https://download.pytorch.org/whl/torch_stable.html
CuPy
> pip install cupy-cuda100
GPUの動作確認
Tensorflow
from tensorflow.python.client import device_lib
device_lib.list_local_devices()
Pytorch
import torch
print(torch.cuda.is_available())
CuPy
chaninerのインストールが必要になりますが、下記コマンドを実行すると CuPy の情報に CUDAやcuDNN の情報が表示されます。
> python -c 'import chainer; chainer.print_runtime_info()'