今まで使ってなかったCupyとNumpyの速度比較2019年5月20日picker.研究室でいろいろ悲しい事情があり、ガチのニューラルネットワークをフルスクラッチで書いています。勉強して今はなんとなくかけるようになったのですが、ネットワークが大きくなっていくうちにだんだん実行時間で悩まされるようになりました。パラメータを調整したいので実行時間がかかると研究の進みに支障が出てくる。今は10分ちょいなので、10回パラメータ変えて試しても2時間で終わりますが、これが1時間とかになったらやばい。いうか、理論的には今出ている案で最悪の場合は10時間超える笑。研究室には同じような悩みをかかけている人間がいて、openMPやらCUDAやらを使う人間も(CUDAは今はいない)いるんですが、python組でライブラリーをつかてない人間はそういう芸当を持っている人はいなくて、使ってるライブラリーがGPU対応だといいねってかんじでした。python使ってるんだから、Cupy使えばいいんですよね。思ってたんですけど、めんどくさかったり、GPUのドライバーが壊れていたりといままで使ってなかったんです。いい加減使おうと持ったので、研究室のメンバー向けに検証を行ったので共有しておきます。検証プログラム巷の検証記事はMnist使ってたり、計算が複雑だったりと、いまいち実感が持てないやつばかりだったので、今回はランダムのn*n行列の積を求めるだけのプログラムにしました。2GB、chainerとCupyのバージョンは知りませんが最新だと思います。('cp:',t3-t2)繰り返しがあるのはうちの研究室はやたら行列計算をforループ内で使うので一応つけてます。0.0008680820465087891恩恵が少ないですね。0.0023317337036132812ここらへんになるとCupyがマストなきがしてきます。0.00169658660888671いい感じですね。Cupyの方の速度が上がっているのはたまたまだと思います。bytes)てでたので諦めます。GPU内のメモリーの問題でしょうか・・・。0.00854039192199707もっと大きな行列を扱えばもっと恩恵を得られるんでしょうけど、GPU的に限界のようですし、そんなに大きな行列は扱わないのでここまでにしておきます。バッチ化を検討するつもりです。コメントをキャンセルメールアドレスが公開されることはありません。(6)このブログを書いている人picker.情報系(脳科学系?)の大学院生(電通大)です。ニューラルネットワークやってます。