こんにちは、富士通研究所コンピューティング研究所の一場です。 今回は、2024年6月23日から27日までサンフランシスコで開催された国際会議 DAC2024 (https://www.dac.com/) に参加しましたので、キーノートや個人的に注目した論文について紹介します。また、私が現在カナダのトロントに赴任しているために起こったことについても少しだけ触れます。
Design Automation Conference概要
Design Automation Conference (以下DAC) は、Electronic Design Automation (EDA) と呼ばれる半導体の設計技術・ツールに関する分野について、アメリカで開催されている大規模な国際会議および展示会です。EDA分野では他に、ヨーロッパ開催のDATEや、アジア・南太平洋地区で開催のASP-DACといった国際会議が知られています。これらの中でもDACは展示会に出展する企業数が多く、開発の現場にいるエンジニアを対象としたEnginnering Trackと呼ばれるセッションで多数の発表が行われるのが特徴といえるでしょう。
今年は61回目の開催で、参加者は6286名(前年比で8%増加)、論文の投稿数は1545件(前年比34%増加)で採択数337本、採択率21.8%ということです*1。投稿数については、例年20%程度増加しているとオープニングで言われていましたが、今年は34%増加ということなので例年よりも多かったようです。私が知る限りでは、DATEにおいても2024年は投稿数が例年より大きく増えています。はっきりした理由はわからないのですが、EDA分野に研究者が集まっているということでしょうか。
Keynote: Building AI with RISC-V
キーノートの発表者は、Jim Keller氏でした。Jim Keller氏は、AppleやAMDなどで数々のプロセッサ設計に関わったため、「伝説」「天才」などと紹介されることもある人物です。例えば、経済産業省公式ウェブメディアの記事*2でも「伝説」と紹介されています。現在、Jim Keller氏は、Tenstorrentという会社のCEOに就いており、AIアクセラレータを開発しています。
講演では、AI分野のソフトウェアスタックが複雑なためオーバヘッドが大きいことに触れ、ハードウェアに近い下層からボトムアップでレイヤごとに最適化するほうがうまくいくだろうと述べました。逆に "Top down compiler" はうまくいかないと述べました。EDA分野に関しては、近年AppleやGoogleなど各社がトップダウン的なアプローチで設計を行っていることを耳にする機会が多いため、トップダウンはうまくいかないという話が強く記憶に残りました。ただし、Jim Keller氏はソフトウェアの最適化フローについて言及しているのに対し、各社が行っている設計はシステム要件を主題にしている点が異なるので、この比較は不適切かもしれません。 また、講演では、RISC-VやAI関連の多くの成果が既にオープンであることに触れ、オープンソースの良さについて説明していました。Tenstorrent社は既にGitHubで多くの成果を公開しており*3、オープンソースでの開発を重視しているようです。
注目した論文発表
概要で述べたように今年の採択数は337本なので、すべてを見ることは困難です。ここでは個人的に注目した論文について紹介します。
行列計算は、AIを代表として多くのアプリケーションで利用される計算ですが、そのアクセラレータに関する論文が2件発表されていました。
- SpaHet: A Software/Hardware Co-design for Accelerating Heterogeneous-Sparsity based Sparse Matrix Multiplication (Huazhong University of Science and Technology)
- DySpMM: From Fix to Dynamic for Sparse Matrix-Matrix Multiplication Accelerators (Tsinghua University Beijing, Shanghai Jiao Tong University Shanghai)
行列は大規模になることが多いので、ハードウェア上では部分行列にして計算するとキャッシュヒット率が良くなります。ただし、既存のアクセラレータはこの部分行列のサイズが固定のため、非ゼロ要素の分布の仕方によって性能が大きく変わってしまいます。上記の論文ではこの問題に対して提案を行っています。特にSpaHetの方ではFPGAにおける実装でGPUを超える性能を達成したと主張しているので、詳細が気になるところです。なお、2つの論文ともに、この他にもデータ並び替えなどを提案していて、その点でも興味深いと思っています。
設計技術に関する内容としては、次の論文に興味を持ちました。
- High-Performance and Resource-Efficient Dynamic Memory Management in High-Level Synthesis (Huazhong University of Science and Technology)
この論文は、動的メモリ確保を高位合成で使う際に、メモリの割当と解放に対する高速な応答とハードウェアリソース効率を課題としてあげています。そして、これらを両立するためにCartesian-like Treeと呼ばれるデータ構造を使ったアルゴリズムを提案し、FPGA上で実装して先行研究と比較評価しています。なお、この論文の著者はSpaHetの論文の著者と同じ名前が数名並んでいるので同じ研究室なのかもしれません。
参加者との交流
DACでは開催期間中に、Networking Receptionという時間があり、参加者同士で交流する時間が設けられています。 この場では、様々な立場の人が参加していることに驚きます。発表や調査のために参加した人だけでなく、自社技術の売り込みのために参加した人などがいます。 Networking Receptionの時間ではありませんでしたが、カナダ領事館に所属する人から声をかけられることがありました。私が現在カナダのトロントに赴任しているので、首にさげていた参加者バッジを見てトロントからの参加であることがわかったために声をかけられたのでした。領事館の方は、カナダで半導体に関する人を集めたネットワークを作るために参加しているとのことでした。カナダ政府も半導体に着目していることを感じる場面でした。 Networking Receptionの他にも、EDAベンダは独自のイベントを開催して交流をしているようでした。 このように、DACでは、大学の研究者だけでなく企業からの参加者も多いためか、様々な交流が行われていました。
おわりに
DACは、大規模で取り扱われるテーマ範囲が広く、色々な内容を一度に見ることができます。参加者も多数いるため、様々な人達とのネットワークを広げるのに大変良い機会で、非常に刺激的な経験をしました。