cupy使ってみる
一ヶ月後にリリース予定のcupyバージョンのChainerを使ってみる。
import cudnnのところでエラー。どうもCuDNN環境が無いと動かない模様でlibcudnn.soを入れたら動きだした。CuDNNのバージョンはv2。
cuda.init()が必要無くなってる。
というかこれがあるとエラーになる。
GPU用の分岐コードが一切いらないのかと思いきやto_gpuは必要っぽい。
速度比較(timeのところ)
PyCUDAを使った現在のmasterバージョン
200/7030800, train_loss = 7.32764196395874, time = 0.24
400/7030800, train_loss = 6.9854559898376465, time = 0.24
600/7030800, train_loss = 6.84650182723999, time = 0.24
800/7030800, train_loss = 6.594701290130615, time = 0.25
1000/7030800, train_loss = 6.653822422027588, time = 0.24
0.24ぐらい GPU使用率はほぼ100%
cupyバージョン
200/7030800, train_loss = 7.274655342102051, time = 0.61
400/7030800, train_loss = 7.116018772125244, time = 0.59
600/7030800, train_loss = 6.802645683288574, time = 0.60
800/7030800, train_loss = 6.4941911697387695, time = 0.59
1000/7030800, train_loss = 6.5105390548706055, time = 0.60
0.60ぐらい GPU使用率は30%ぐらい
まだPyCUDAバージョンに比べると遅いけれど、リリースは一ヶ月後の1.3.0なので気長に待ちたいと思います。