個人開発
FPGAを勉強したくてDE10-Lite買った
- ソリトンウェーブで購入したが,学生なのでアカデミア価格で買えた*1
- 最終的にはFPGA上で簡単なマルチパーセプトロン,ゆくゆくはcNNもFPGA上で実装して,ホントに量子化したNNの推論が高速に動作するのか確かめたい
- まずFPGAボードで学ぶ 組込みシステム開発入門[Intel FPGA編]の第1章を読んで,FPGAの概要,歴史,FPGAの構造について学んだあとにQuartus PrimeのLite EditionをVirtualBox上のUbuntuにセットアップした
- 現在の進捗として,この本の第2章の課題である60秒計を実装して動作させるところまではできた
- しかし,後述するように5月中はあまり時間が取れなくてほとんど触れなかった
- 簡単な時計を作るにしても,動作クロックを考慮して内部カウンタを用いて「1秒を測る」というアプローチを通じて,動作時のタイミングを考慮して実装しなければならない,という電子回路独自の概念を学んだ
- あと,verilog HDLのif文はifブロック内部に2行以上処理を書けないということを学んだ*2
my9cc
- 研究が忙しく,今月は作業できていない
- 大変よくない状態だが,SWoPP2019の予稿を書き終えるまでは再開できそうもない
読書
読み終わった
- 研究者としてうまくやっていくには 組織の力を研究に活かす (ブルーバックス) 長谷川修司
- コンパイラの構成と最適化 最適化周りの8, 9章だけ読んだ
- はじめての論理回路
- 信長のシェフ 7巻
- 信長のシェフ 8巻
- 信長のシェフ 9巻
- アルキメデスの大戦(14)
読んでる
研究
- 連休中は作業がかなり捗るという発見をした
- 一方で,連休中にガーっと実装したやつを評価したら思ったようなパフォーマンスが出ずに窮地に追いやられた
- しかし,5月いっぱいかけて地味にホットスポットを探してパフォーマンスチューニングし,なんとかベースラインの実装よりは良い性能が出せそうな見込みが出てきた
- Pythonでの並列プログラミングは色々罠があって大変である
5月31日現在,何とか諸々の問題は解決できて,6月からは評価と論文執筆に集中できそうである
- いろいろ詰みそうになったが,その度に原因を調査して問題解決する胆力は大学院に入ってから少しは伸びたのではないかと思う
研究の副産物として,動作検証用のPythonコードをいくつか書いてgistに放流した
chainer iterator_statemachine examination · GitHub
python mulitprocessing.Queue test for each Context · GitHub
勉強
- 研究が忙しくてほとんど何もできていない
- ただでさえ就活が近づいてるというのにソフトウェアエンジニアとしてのリハビリが何もできてなくてやばい
- AtCoderも今月は1回ABCに出ただけかな.よろしくない.
- 単純な幅優先探索が実装できなくて痛い目を見たので,グラフアルゴリズムは少し復習した
Keep
- 適度な息抜き
Problem
- いつも走ったり歩いたりしているコースに羽がある系の虫が増えてつらい
- 忙しいのでついサボってしまい,結局ジョギング再開できておらず,体重が減らない
Try
- ジョギング再開
- 9ccの作業時間を毎週少しでも割くようにする
まとめ
- かなり厳しい一ヶ月だったが,その分進捗もあった
- 来月は,6月末にSWoPP2019の予稿の締切があるのでそれに向けてがんばる