LoginSignup
11
15

More than 5 years have passed since last update.

Windows10にCUDA9.0とPyCUDAをインストールしてテストが動きcupyインストールに苦労してChainerのMNISTチュートリアルでGPU使用で速度が約6倍となるのを確かめるまで

Last updated at Posted at 2017-12-10

Windows10にCUDA8.0とPyCUDAをインストールしてテストが動くまで を参考にさせていただきましたが、Ver違いか、PC環境の違いかPyCUDAのインストール方法等が一部異なっていたので、以下記録を公開します。

環境

CPU: Core i7 7700K
RAM: 32GB
GPU: GeForce GTX1080
OS: Windows10 Home 64bit

Windows Power Shell (アイコン右クリック「管理者として実行する」)で実行

Anaconda

https://www.anaconda.com/download/
インストール時にチェックを入れた
 Add Anaconda to my PATH environment variable
 Register Anaconda as my default Python 3.6

Python 3.6.3 Anaconda 5.0.1

Visual Studio

環境変数のPathに下記を追加する
C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\bin

CUDA Toolkit

https://developer.nvidia.com/cuda-downloads?target_os=Windows&target_arch=x86_64&target_version=10&target_type=exelocal
cuda_9.0.176_win10

GPU デバイスドライバ

http://www.nvidia.co.jp/Download/index.aspx?lang=jp
より自分のOS, GPUに対応したものをインストール

環境変数を設定

ブログ例とは 10.0. 以下のバージョンが更新されていたので下記を試みた

setx /M INCLUDE ’C:\Program Files (x86)\Windows Kits\10\Include\10.0.14393.0\ucrt’

pipでpycudaをインストール

pip install numpy

次に

pip install pycuda

を試みたが正常インストールせず。Pythonの文字コードの問題?

c.f. https://qiita.com/zinziroge/items/a55eda9ae0a8fdfac304
c.f. https://qiita.com/masato/items/713fa8876e50a65d575c
などを参考に、結局下記のインストールを行った。

https://www.lfd.uci.edu/~gohlke/pythonlibs/#pycuda から
pycuda‑2017.1.1+cuda90176‑cp36‑cp36m‑win_amd64.whl
をダウンロード

pip install 'C:\Users\{自分のユーザ}\Downloads\pycuda-2017.1.1+cuda90176-cp36-cp36m-win_amd64.whl'

再起動

再起動前は
import pycuda.driver as cuda
でエラーが出たが再起動で問題がなくなった。

Chainer MNIST例でGPU使用で約6倍高速

Chainerインストール

pip install chainer

chainer-3.2.0

cupy インストール

pip install cupy

だがWindows環境だと動かず

PermissionError: [WinError 32] プロセスはファイルにアクセスできません。別のプロセスが使用中です。: 'C:\\Users\\aoki\\AppData\\Local\\Temp\\pip-build-a3r0ap5k\\cupy'

なエラーが出る
Win + Python3.6で「pip install」を実行したときに「UnicodeDecodeError: 'utf-8' codec can't decode byte 0x83」と表示される。
を参考にして _init_.py を修正して再度 pip install cupy でOK
あっちこっち検索してここに行き着いた。こんなの分かんないよ

MNIST例をGPU使用で実行

https://github.com/chainer/chainer/archive/v3.2.0.tar.gz をダウンロードして解凍

チュートリアル実行

python chainer-3.2.0/examples/mnist/train_mnist.py
GPU: -1
# unit: 1000
# Minibatch-size: 100
# epoch: 20

epoch       main/loss   validation/main/loss  main/accuracy  validation/main/accuracy  elapsed_time
1           0.193365    0.102962              0.941033       0.9658                    24.631
2           0.07364     0.0768279             0.97685        0.9766                    44.4353
3           0.0476017   0.0678121             0.985117       0.9783                    64.3442
4           0.0363481   0.0621047             0.988317       0.9814                    84.6944
5           0.0288391   0.0700695             0.990767       0.9799                    105.237
6           0.0222801   0.0815667             0.992317       0.9789                    125.582
7           0.0233189   0.0941376             0.99295        0.9765                    145.872
8           0.0195297   0.072608              0.993267       0.982                     166.44
9           0.0121415   0.0803006             0.996183       0.9825                    187.566
10          0.0183421   0.072313              0.993967       0.9832                    208.961
11          0.0127146   0.0885336             0.995583       0.9817                    230.528
12          0.0120679   0.110891              0.9965         0.9802                    251.782
13          0.0149653   0.0880673             0.995467       0.9808                    273.149
14          0.00883313  0.0925014             0.997333       0.9805                    295.164
15          0.0121797   0.106574              0.99625        0.9795                    317.23
16          0.00828545  0.117745              0.997567       0.9815                    339.405
17          0.0130495   0.0902346             0.996367       0.9833                    361.733
18          0.00622861  0.144263              0.998083       0.9777                    384.78
19          0.0122948   0.10164               0.996317       0.9827                    408.305
20          0.00753224  0.0918758             0.99765        0.9835                    432.642

GPU使用時は ‐g 0 をつける

python chainer-3.2.0/examples/mnist/train_mnist.py -g 0
GPU: 0
# unit: 1000
# Minibatch-size: 100
# epoch: 20

epoch       main/loss   validation/main/loss  main/accuracy  validation/main/accuracy  elapsed_time
1           0.193117    0.103204              0.942433       0.9673                    3.23175
2           0.0732215   0.0745765             0.976482       0.9778                    5.78444
3           0.0478743   0.0838417             0.984848       0.9745                    8.26351
4           0.0385924   0.0775026             0.987282       0.9787                    10.804
5           0.0282176   0.0765588             0.990781       0.9793                    13.3531
6           0.0238069   0.0894794             0.992031       0.9784                    15.879
7           0.0207121   0.102661              0.993332       0.9743                    18.406
8           0.0179733   0.0875146             0.993998       0.9798                    20.9028
9           0.0152781   0.0864125             0.995265       0.9809                    23.4604
10          0.0194912   0.0782601             0.993565       0.9812                    25.988
11          0.0111541   0.0869075             0.996666       0.982                     28.5471
12          0.0122531   0.0947352             0.996215       0.9818                    31.0586
13          0.0146315   0.0888069             0.995482       0.9797                    33.5438
14          0.0112458   0.0867098             0.996465       0.9819                    36.0318
15          0.00814456  0.0958816             0.997366       0.9818                    38.532
16          0.0103134   0.109307              0.997132       0.9807                    41.0771
17          0.0115547   0.0960045             0.996199       0.9825                    43.5898
18          0.00831023  0.107684              0.997749       0.9824                    46.1141
19          0.010538    0.104213              0.996699       0.9825                    48.6488
20          0.0104301   0.143603              0.997049       0.9781                    51.293

データやNNの組み方によっても早さは変わるのだろうが約8倍となった。そんなでもないなと思ったけど1週間かかるものが1日、8時間かかるテストが1時間、と考えるとやっぱりいいよな。

TensorFlowも

cuDNN

https://developer.nvidia.com/rdp/cudnn-download
Download cuDNN v7.0.5 (Dec 11, 2017), for CUDA 9.1 をダウンロード
http://docs.nvidia.com/deeplearning/sdk/cudnn-install/index.html#install-windows を参照して3つのファイルを所定の場所にコピーする

  • PCの環境変数のCUDA_PATHに C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v9.0 を指定する
  • Visual Studio を起動し
11
15
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
11
15