ChainerのTRAIN_MNISTベンチマーク(GTX1070有/無)

#はじめに

Chainerにて、GPUの有無による処理速度の差についてメモとなります。
以下の環境にて、ChainerのTRAIN_MNISTが終わるまでのログを残します。

#使用環境

|||
|:-----------------|:------------------|
| OS             | Windows 10 (64bit)|
| CPU         |Intel(R) Core(TM) i7-6700HQ CPU @ 2.6GHz|
| MEMORY         |16.0 GB|
| GPU         |GeForce GTX 1070 (8GB)|


#ベンチマーク結果

## CPUでの処理
```dos
C:\chainer-master\examples\mnist>python 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.190619    0.0927074             0.94225        0.9699                    46.2703
2           0.0732134   0.0946572             0.976817       0.9698                    94.4335
3           0.0495815   0.0804488             0.98425        0.9754                    143.703
4           0.0345411   0.0673166             0.988683       0.9802                    193.947
5           0.0294899   0.0734281             0.99045        0.98                      243.573
6           0.0260374   0.0757846             0.991683       0.9797                    293.635
7           0.0190805   0.0786918             0.993617       0.9793                    344.678
8           0.0166003   0.082916              0.994433       0.9809                    396.097
9           0.0154652   0.090306              0.995217       0.98                      448.621
10          0.0169737   0.104848              0.994883       0.9769                    501.25
11          0.0117565   0.101389              0.99615        0.9777                    554.47
12          0.0145186   0.11235               0.99575        0.9769                    608.389
13          0.0110811   0.0956835             0.996117       0.9815                    662.788
14          0.0113676   0.0973962             0.996517       0.9823                    717.948
15          0.013774    0.088823              0.9957         0.9812                    773.548
16          0.00806689  0.0884085             0.997233       0.982                     829.773
17          0.00992101  0.0927463             0.997033       0.9823                    887.692
18          0.00782566  0.0961337             0.997717       0.9826                    944.956
19          0.0133159   0.105524              0.99645        0.9821                    1001.04
20          0.0068301   0.0883455             0.997767       0.9835                    1057.97
```

## GPUでの処理

```dos:
C:\chainer-master\examples\mnist>python train_mnist.py --gpu 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.190363    0.100222              0.943133       0.9685                    5.38222
2           0.0719162   0.084497              0.977482       0.9741                    9.50494
3           0.0490139   0.0731739             0.984199       0.978                     13.4885
4           0.0358094   0.0814409             0.988032       0.9765                    17.7623
5           0.0305423   0.0738367             0.989965       0.9804                    22.0033
6           0.022727    0.0803794             0.992382       0.9792                    26.2637
7           0.0186859   0.0961434             0.993598       0.9788                    30.7188
8           0.0198382   0.0969315             0.993932       0.9774                    35.3541
9           0.0127851   0.109874              0.995965       0.977                     39.9716
10          0.017087    0.0834187             0.994715       0.9801                    44.2826
11          0.0149102   0.0909263             0.995049       0.9818                    48.6314
12          0.011534    0.108625              0.996232       0.9789                    52.9549
13          0.0108741   0.107841              0.996699       0.9798                    57.4682
14          0.00819485  0.109862              0.997316       0.9785                    62.0984
15          0.0144102   0.0972455             0.995515       0.9828                    66.4759
16          0.0122724   0.0908314             0.996382       0.983                     70.6265
17          0.0116133   0.0888805             0.996632       0.9829                    74.6868
18          0.00860304  0.124036              0.997315       0.98                      78.8948
19          0.00665736  0.10047               0.997933       0.9831                    83.2667
20          0.00535954  0.0913196             0.99865        0.9858                    87.8244
```

#結果

CPUでの処理時間合計：約1,058秒(17分38秒)
GPUでの処理時間合計：約   88秒(1分28秒)

GPU使用環境が爆速すぎて、唖然としました・・。この際のGPU使用率は4～5%でした。
GPUを使用する環境の構築は大変手間ですが、長い目で見れば構築して損はないと思います。