1
/
5

Accelerator efficiency optimization by graph-splitting

おはようございます。LeapMindで1か月(フルリモートで‼️)インターンシップをした岡本です。
実はこの記事は勤務最終日に何書くか決めてなくてやべ〜と言いつつ書いているので、このインターン周辺でしたことを書きます🤔

インターン開始前

B3の夏だしインターンをしたいとAtCoderJobs(AtCoder社の運営する転就職に役立つサイト)を眺めているとLeapMind社の求人があったので応募しました。〜完〜
真面目な話をすると、機械学習に関わって高いアルゴリズム力が必要となるような求人は自分の興味にかなり合致しており、実際嬉々として応募しました。
競技プログラミングのレーティングで就活の一部ステップが免除になる場合があるので、いい時代に生まれたものだと思いながら面接やコーディング試験を受けました。みなさんも競技プログラミングを初めてみてはどうでしょう?(就活のためだけにするにはちょっときつい趣味なのでめちゃくちゃ強く推すわけではないですが、楽しいです)

インターン本編

PCや周辺機材が家に届きました(フルリモートなので)。画面越しに自己紹介をn回し、メンターさんと話したりして初日は過ぎて行きました。
このインターンでは、演算のDAG(有向非巡回グラフ)からバイナリを吐くコンパイラのチームに参加させていただき、DAGを適切な部分グラフに分割するパートの実装をしました。
二日目から最終日までは手元でコードを書いたりリモートからコードを取ってきたりして過ごしました。改良できる箇所をメンターさんと話し合ってエイヤと書き換えたコードで性能がよくなっているとかなりテンションが上がりました。書き換えたコードで性能がよくならず、なんで?????????????????となることもありました。
コンパイラの最終生成物をシミュレータで実行してみてメモリの読み書きやサイクル数を眺める日々でしたが、やはりこういった最適化は一筋縄では行かず、計算機なんもわからんの思いを強めることもありました。
メンターさんの丁寧な指導のおかげもあり、最終的にはうまくいくケースでサイクル数を半分近くまで削減することができました。

コードを書く以外の主な活動は(フルリモート)ランチ会がありました。
家の近くの適当な店でお弁当を買い(フルリモートで田舎にいるので、都会水準の予算でかなり奮発スケールの弁当を購入可能)、画面越しの人々と食べました。

感想

インターン完走した感想ですが、自分は会話によるコミュニケーションよりテキストベースのコミュニケーションの方が好き/得意なので、フルリモートで助かった部分が大きいと思っています。
1か月という短めの期間でしたが、成果と呼べるものが出来上がったのも嬉しいです。
しかしやはりフルリモートだったので、顔を合わせたランチ会や、たまに立つらしいボードゲームなどを体験したかったという気持ちも残ります。社会人プログラマとボードゲームが…したい!

みなさんも(競技プログラミングのレートを利用して)インターンシップに応募してみませんか?
お読みいただきありがとうございます。

LeapMind株式会社では一緒に働く仲間を募集しています
同じタグの記事
今週のランキング