seri::diary

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

じぶん Release Notes (ver 0.33.0)

じぶん Release Notes という月報のような取り組みを知ったので自分もやってみる.

blog.a-know.me

個人開発

github.com 低レイヤを知りたい人のためのCコンパイラ作成入門を見ながら少しずつ作っているCコンパイラ.平日は日中は研究で疲れてほとんど進んでいないが,余裕があるときや土日に少しずつ進めている.

現在サポートできている機能は以下の通り

  • intの四則演算
  • カッコ対応
  • 変数定義,変数代入,変数を使った四則演算
  • 関数呼び出し

まだソースファイルの読み込みに対応してないので,コードを直接標準入力で受け取ってx86_64アセンブリを標準出力に出力する.

❯ ./9cc '(1+2) *3;'
.intel_syntax noprefix
.global main
main:
  push rbp
  mov rbp, rsp
  sub rsp, 208
  push 1
  push 2
  pop rdi
  pop rax
  add rax, rdi
  push rax
  push 3
  pop rdi
  pop rax
  mul rdi
  push rax
  pop rax
  mov rsp, rbp
  pop rbp
  ret

最終的にはセルフホストまで達成したい.今後も研究と平行して地道に進めていきたい所存.

github.com LSTMの訓練用データセットとして,Moving-MNISTのような20フレームで1セットのシンプルな動画のフレームを生成するCLI

f:id:serihiro:20190429211041g:plain

壁にあたって跳ね返るところの移動方向の更新がちと面倒だったが良い経験になった. 画像の描画にはPillowを使用しnpy形式で出力される.

読書

読み終わった

読んでる

研究

  • Entropy-Aware I/O Pipelining for Large-Scale Deep Learning on HPC Systems
    • 分散訓練を行うときに訓練データセットを各計算ノード上で実行するキャッシュサーバにフェッチしておき,オンメモリで訓練データをワーカに読み込む Deep IOの提案と評価
    • 全訓練データセットのリストを生成し,計算ノードごとに領域を分割してメモリに載せてノード上のメモリにある訓練データのみを使って訓練する
    • 1 epochが終わったら訓練データセットのリストをシャッフルし直すが,その時にディスクから読み直すのではなくノード間のメモリ上のデータをRDMAで交換することで高速にシャッフルできる点がポイント
  • Characterizing Deep-Learning I/O Workloads in TensorFlow
    • TensorFlowのFileSystem APIの解説とI/Oの評価用にベンチマークとミニアプリケーションを実装して評価した話
    • 訓練データの読み込みとcheckpointingの時の書き込みの2種類をストレージ別に評価している
  • ChainerのMultiProcessIteratorのn_processを変えた時の100 iterationの訓練に要する時間への変化を評価したりしてた(データセットの格納先はノードローカルのNVMe SSD

f:id:serihiro:20190429213907p:plain

f:id:serihiro:20190429221101p:plain
解像度別のImageNetの画像セット作るのが地味に面倒だった
f:id:serihiro:20190429221121p:plain f:id:serihiro:20190429221131p:plain

  • 論文にできそうなネタが見つかったのでその評価実験をずっとやっていた

  • 研究室のcompactionとかいろいろあって雑用が大変だった

勉強

  • 今月は次の研究テーマを決めるために集中してサーベイしたり予備実験をしていて自分の勉強はほとんどできていなかった
  • 来月はコンパイラの実装とFPGAでロジックを実装するための勉強を進める

その他

  • 箱根本箱というホテルを知った
    • めっちゃ良さそう
    • 1日引きこもってコード書いたり論文読んだりするリフレッシュに良さそう
  • SEKIRO買って一周目クリアした
    • 一周目は竜の帰郷ルート.お米は大事.
    • 完成度が非常に高い
    • 操作性が非常に良くてチャンバラが楽しい
    • 久々にシングルモードしかないゲームで楽しいと思えた
  • 花粉症がようやく落ち着いてきたのでそろそろジョギング再開したい
  • 講義がなくなって自由な時間が増えたので,昼食後に2kmほど学内を散歩するようにしたら体調が良くなってきた
  • 某社インターンへの応募

Keep

Problem

  • 疲労で勉強が全く手についていないので毎日少しずつでも進めるようにする
  • 疲労が溜まりやすくなってきたので夜は23時までに寝て睡眠時間を7.5時間以上確保する

Try

  • ジョギングの再開

まとめ

4月は研究室の雑用やら次の研究テーマ決めのためのサーベイや実験で慌ただしく過ごしていたらあっという間に終わってしまった感がある.かけた時間の割には思った以上に進捗は少なく,勉強については全然できていないことに気づいた.土日もどちらかは研究室にいて作業をしており,少し研究に時間をかけすぎていたように思うが,おかげで次の研究テーマになりそうなものが決まったので,5月はその研究を進めつつ,自分の勉強にも毎日少しずつ時間を割くようにしたい.

f:id:serihiro:20190411125417j:plain
散歩コースの途中にある桜