社内勉強会開催レポート(Scala,単一超解像,CPU)

たびたび登場失礼します、キャディ HR for Tech の岡野です。 過去にも Tech Blog の中で振れられたこともある、社内勉強会の「STUDDi」。 エンジニアの知的好奇心を刺激するこのイベントについて一部の情報(3ネタほど)を社外の方にもお伝え出来ればとおもい筆をとりました。

エンジニアの皆さんにとって、日頃のスクラム開発とブログ執筆の両立が簡単ではないこともあり、たまにはこうして近くでみている僕からの目線でもお伝え出来ればと思っています。

ちなみに上記の記事は2020年8月のものですが、それから1年以上経った今でも形を変えながら脈々と運営されています。

エンジニア全員の持ち回り発表機会が何周かしたことに加えて新しいメンバーのジョインが続いた事をきっかけに、組織としてもまだまだ発展途上であるキャディらしく、この勉強会のあり方について意見があがりました。

Tech組織の中でも多様性が増してきて得意分野が異なるメンバーが増えたことも考えを巡らすよいタイミングだったと思います。 そうした環境のもとで”全員に刺さるテーマ”を探して話すというのがハードルになり始めていたこともあり、検討された結果・・・最近再定義されたのが以下のコンセプトです。(ぱちぱち)

  • まだ一度もスピーカーになっていない方(新しく入られた方)の発表する場として優先する
  • 好きな技術について思う存分語ってOK

ちなみに、既に所属していたエンジニアの発表機会についても合わせて検討しています。 前置きが長くなってしまいましたが、レポートを始めていきたいと思います。

Scala つまみぐい

キャディではメイン言語として Rust を活用していますが、 Rust に執着しているわけではなく課題を解決できる技術はないか、エンジニアの皆さんは日頃から探求しています。このお話はそんな好奇心を刺激する回です。 ※Rust を選定したときのお話はこちらをご覧ください。

2.13.x系をベースに基本的な特徴について、参加していたエンジニアから気付きの投稿もあがっていました。

発表終盤では、生徒の特定の科目の平均点を計算することをお題にOption型のコンビネーションについて触れられました。 SeqのmapやflatMapを使い、さらにそれらをfor式で書くことで格段に見やすくなる点など学びの声が上がっていました。

普段使っている言語以外の発表は便利な用途を知ることで課題解決の選択肢にもなるためとても好評です。 今後特長を活かすシーンがあれば Scala を採用する事もあるかもしれません。

30分で見るここ6年くらいの単一画像超解像

Computer Vision 及び Deep Learning の専門性を持たないメンバーに向けた入門編の発表です。 キャディでは、Webアプリケーション開発と研究開発のチームが各々活動しており、こういった勉強会の場などでナレッジの共有がなされる点が魅力の一つになっていると思います。

古典的な方法(ヒューリスティック, 辞書式)と最新の手法(SRCNNの登場~)について解説を交えた発表は入門編という主題通りにわかりやすく理解できました。

ニューラルネットワーク登場後の発展の歴史においては、 PSNR の大小を競い合う時期を経て、精度以外の観点(見た目, 速度, 実用性)が評価観点に加わってきている事から技術の活用先である「目的」が前提となってくるのだと伝わりました。

論文を読み解く際のワンポイントアドバイスも添えられており、これから超解像の分野の勉強を始めるメンバーも出てきそうな予感が・・・! ※ちなみにこの発表のあと、聞いていたエンジニアから「画像コンペにでません?」というお誘いがあるなどコミュニティの広がりにもなっている点が素晴らしいなと思いました。

メモリボトルネックの概要とその影響について

CPUの性能とメモリ性能の関係について、大学院時代のディープな研究内容についておすそ分けの発表です。 理論性能と実効性能についての前提をあわせたあとに、CPUにおけるメモリI/Oボトルネックについて深く掘り下げたお話が聞けました。

ここで卓越なのは、わかりやすい比喩表現にWS(わんこそば)をつかっていたこと。 食べる人(CPU)と供給する人(メモリ)の関係で、あくまでWSをベースにお話が進むのでチャット欄がすごい勢いで盛り上がることになります 笑

これを微塵も笑わず発表されているところに尊敬の念を抱かざるを得ない
わんこそばをWSって書いてるスライド初めて見たかもしれない
いや、わんこそばをここまで語っているスライド初めて (^^;
ポーカーフェイスすごい
websocket はわんこそばだったか!
だめだじわじわくるww
スライドのパンチが強い
さっきのグラフしか勝たん
バランスが大事なんですね
つまりみんな早食い

一方で富岳のすごさ、キャッシュヒット率と早さの関係など、きっちりと業務にも役立てられる知識も得られてしまうのがすごい。

「現代はメモリよりCPUがはるかに高速な時代であるが、そのCPU性能を活かすためには(キャッシュヒット率を高める)コードが大切になってくるよ。」というまとめは、パフォーマンスを考える上でも必要不可欠な観点としてエンジニアリング業務にも活かされることでしょう。

ただし、最大のインパクトは残したのはWS(わんこそば)だったかもしれません 笑

おわりに

言葉足らずなところもあったと思いますが、内容が気になった方や「ええやん」と思った方は詳細についてこちらでお話する機会がご用意できると嬉しいです。