seri::diary::graduate_school

大学院修士課程での研究生活について書いています

進捗無

2018年7月23日

このブログ更新するのいつ振りだろう。あまり覚えてない。

春学期はABCの3つのtermに分割されているが、そのうち春A,春ABに実施された講義の単位が出そろった。 幸いなことに1つも落としていないしA+の単位も何故か取れた。もちろんBの単位もあるのでGPAはそこまでよくない。
A+を取るというのがどれぐらい価値があるのかよく分かってないが、一番いい成績なので秋学期も狙っていきたいところ。 まだ開講中の春Cの講義もあるので頑張っていきたい。

一方で研究は殆ど成果が出ていない。専門としている人が周りにいないため誰のサポートも受けられず、完全に手探り状態である。
やはり無理なテーマを選んでしまったのではないかという後悔を徐々に感じているが、仕事と違ってそこまで締め切りに厳しくないのが大学の良い所ではあるので、完全に詰むまでは突き進んでみるしかない。かなりしんどいしストレスも溜まって毎日イライラしているのを自分で感じるが、仕事ではもっとストレス溜まって毎日就業時間中にオフィスを抜け出してビルの屋上で叫びたくなるような時期が普通に何度もあったので、それに比べればまだ遥かにマシだ。自分で大体の状況をコントロールできるという点でもかなりマシな状況である。

とりあえずV100を積んだマシン上でChainerで組んだモデルを自由に実行できるようにはなったが、肝心の畳み込みLSTMで実装した レーダーエコーデータの降水予測モデルの訓練にアホほど時間がかかって終わらない問題が生じている。

nVidia visual profilerで確認するとCPU<->GPU間のデータ転送時間が支配的となっており、 GPU2枚でデータ並列でminibatch size 4で1iteration回すのに50秒とか冗談みたいな時間がかかっている。 一方でcudnnの関数はどれも1秒足らずで終わっているのでこちらはボトルネックになっていない。 そしてGPUのメモリを28GB allocateしており、これ以上inputの1 instanceのデータサイズを増やすと破綻することが予想される。 ちなみにConvLSTMレイヤーの畳み込み層のchannelサイズを小さくすることでGPUメモリ使用量がアホほど減ることから やはりモデルのパラメータサイズが大きいことが直接の原因らしい。

そのため、以下について原因を調べなければならない。

  1. CPU<-> GPUのデータ転送が生じているのは正常な挙動かどうか(自分の実装ミスではないかという可能性)
  2. GPUのメモリ使用量がめちゃくちゃ増える理由