seri::diary

プログラミングのこととかポエムとか

じぶん Release Notes (ver 0.33.3)

f:id:serihiro:20190724084608j:plain
SWoPP2019が開催された北見市民会館

個人開発

  • 自作Cサブセットコンパイラは関数呼び出しの正式対応,if-else文サポート,while文サポート,全体のリファクタリングを行った
    • だいぶコンパイラらしくなってきた.来月は少なくとも関数定義,配列サポート,ポインタサポート,構造体サポートぐらいまでいきたい*1

github.com

github.com

github.com

読書

  • 全体的に進んでいない

読み終わった

読んでる

勉強

  • ArmのSIMD命令であるneonについて調べ始めた
    • Arm Developerのドキュメントぐらいしかまとまった情報がないのだがあまりメジャーではないのだろうか
    • まだパフォーマンスの比較はしてないので今後
  • CMIS-NNについてのホワイトペーパーを読んでいる

arxiv.org

研究

  • 7月24日〜26日の間に開催された第170回HPC研究会SWoPP2019にて開催)で口頭発表してきた
    • 内容は,NNの訓練時に訓練データをLustreなどの共有ストレージに格納している場合に,ローカルストレージにミニバッチ単位で並列かつ非同期にコピーしながら動作させることで,ローカルストレージへのファイルコピーの遅延を隠蔽化しつつ,ローカルストレージの高速なread I/O性能を活かすことでミニバッチのロード時間を高速化するというもの
      • ユースケースが完全にHPCクラスタに特化しているのでChainer詳しい人とかに説明してもちゃんと伝わらない事が多いのが悲しい
    • 実装はChainerのMultiprocessIteratorをベースに行ったが,共有ストレージからのファイルコピーを独立した非同期処理として実行するためにミニバッチに含まれるindexの組み合わせを決定するタイミングを独立させつつ,かつmodelから見たiteratorとしてのインターフェース互換性を維持するための魔改造を結構がんばってやっている
    • 予稿はこれ
    • あまり目立った質問もなかったが,内容がChainerのIteratorアーキテクチャに深く依存しすぎていてうまく伝わらなかった可能性が高い
    • もう少しIteratorの基礎的なところから説明すべきだったかと反省
    • Chainerならみんな知ってるでしょという油断があったのは事実(Chainerでモデル書いててもChainerから提供されてるIteratorの実装をすべて読んだ,って人はあまりいないと思われる)
    • 7月に入ってからもうまく性能が出ていない部分の修正をしてまるごと再評価してグラフを全部書き直すなどしていて,結局今月も忙しかった*2
  • この口頭発表を持って研究は一旦終了.あとは修論を書くことに集中する.

その他

  • 一区切りついたので良かった
  • あとは10月からの就活に備えてポートフォリオを揃える準備をする

Keep

  • 忙しくても睡眠時間は確保する

Problem

  • 研究に一区切りついたせいか,どうも大学での活動のやる気が出ない
    • やる気が出ない時の進捗の出し方は仕事でやっていたとおり「一定のペースで淡々と進める」に限る
    • 修論もそのように進めていく

Try

*1:仮にここまでやってもセルフホストはできないのでまだまだ道は遠い

*2:このブログ見返すとここ3ヶ月ずっと忙しいって言ってるな..