一般記事

Cerebrasの新しい挑戦 ――データフローマシンとして流体力学問題を解く

この記事を読むのに必要な時間:およそ 4 分

Cerebras CS-1は,40万もの計算コアをウェハーまるごと1枚に集積した巨大なプロセッサ(WSE - Wafer Scale Engine)をもつスパコンです写真1⁠。

写真1 Cerebras社のラボで稼働していたCS-1(2019年12月筆者撮影)

写真1 Cerebras社のラボで稼働していたCS-1(2019年12月筆者撮影)

CS-1はAI処理(ディープ・ラーニング)向けのものとして作られました。しかし,CerebrasはSC20注1において,ニューラルネットワーク分野でなく計算流体力学注2への適用事例を,そこでの驚異的な処理性能とともに発表しました注3⁠。

具体的にはNETL(米国エネルギー省の研究所)と協力して,発電所の流動床燃焼(Fluid Bed Combustion - FBC)をモデリングする彼らのソフトウェアの一部をCS-1に移植した際のシステム設計について説明するものです。

計算流体力学と言えば歴史あるスパコン応用分野の1つです。つまりこの発表はCerebrasのアーキテクチャがAI処理以外の,従来的と言っても良いHPC応用分野での新しい可能性を示すものです。

論文を読むのは大変ですが,Cerebras自身によるとても良い解説ブログ注4が出ています。本記事ではこれ以降,このblogに沿う形で簡単に彼らのアプローチを紹介します。これがCS-1あるいはWSEつまりウェハースケールなプロセッサの今後の展開に興味を持つ人への案内となれば幸いです。

注1)
2020年11月に開催された,スパコンのトップカンファレンス。
注2)
Computational Fluid Dynamics - CFD, 数値流体力学とも言う。
注3)
"Fast Stencil-Code Computation on a Wafer-Scale Processor"(Kamil Rocki, et al. 2020)
注4)
AI分野を超えたウェハースケールコンピュータの活用領域: 計算流体力学分野で記録更新(2020年11月17日)。画面右下のメニューから日本語・英語を切り替えて表示できます。以降,記事中のブログはこの記事を指します。

発表の概要

まず,ブログは冒頭で,今回の研究成果について次のようにまとめています。

  • 発電所の流動床燃焼をモデリングするNETLのソフトウェアの一部をCS-1に移植したところ,
  • NETLで運用されている米国24位,世界82位のスパコンであるJoule 2.0に対して,
  • 200倍以上の処理性能を得た

Joule 2.0のシステム構成を見ると,8万6,400コアとあり,なかなか大きなシステムです。Xeon CPUを2つ積んだマシン2,060台と,さらにNVIDIA P100 GPUを2つ積んだマシン100台で構成されます。

対してCS-1は1台,つまり15Uサイズとラック半分以下の大きさですから,ちょっとインパクトがあります。もちろん消費電力も桁違いで,Joule 2.0が450KWなのに対してCS-1は最大20KWと他の比較記事にはあります注5⁠。

ブログの内容はCS-1のアーキテクチャ概説へと続き,そこではWSEつまりウェハー上にある40万コアの構成について説明されています。計算するコア数ではJoule 2.0に対して数倍程度の優位性しかありませんから,この200倍の性能差がどこから出てきたかが重要です。

注5)
Cerebras Systems and NETL Set New Compute Milestone(2020年11月18日)。ただ数字はどちらも最大消費電力で,今回の比較実験時の電力ではありません。それにしても桁違い,ということだけ見てください。

CS-1のアーキテクチャ

高い性能が出せた理由を説明する前に,前提知識としてWSEの構造について少し紹介しておきます。といってもおもに2020年1月の筆者自身によるCerebras取材記事ウェハースケールCPUの誕生――Cerebrasのクレイジーな挑戦の要約ですので,その内容を覚えておられる方は次の節までスキップしてください。

まずブログにあるWSEの構成図図1を見てください。

図1 CS-1ウエハースケールエンジン(WSE⁠⁠:ブログから引用

図1 CS-1ウエハースケールエンジン(WSE):ブログから引用

図の左に一つの計算コア(tileと呼んでいます)が示されており,それが1つのシリコンダイ領域に51×89個並び,そしてこのダイが12×7個並んでいることが示されています。この12×7ダイが,30cmのシリコンウェハーを丸ごと占領しているようすを図2に示します。

図2 ウェハー上のチップ配置

図2 ウェハー上のチップ配置

そして各チップ内部のコアは,図3のような2次元メッシュ構造のネットワークによって相互接続されています。

図3 各チップ内部のコアの相互接続

図3 各チップ内部のコアの相互接続

このタイル状に並べられたコアの群に対して,ニューラルネットワークの層を1つ1つ,図4のように割り付けてデータを流していきます。

図4 ニューラルネットの配置

図4 ニューラルネットの配置

読者の皆様にはこの構造を頭に置いていただいて,いよいよ計算手法の説明に進みましょう。

著者プロフィール

安田豊(やすだゆたか)

京都産業大学情報理工学部所属。KOF(関西オープンフォーラム)やiPhoneプログラミング勉強会などのコミュニティ活動にも参加。京都の紫野で育ち,いまは岩倉在住。せっかく復帰させたCBX 400Fに乗る機会がなく残念な日々を過ごしている。

バックナンバー

機械学習

  • Cerebrasの新しい挑戦 ――データフローマシンとして流体力学問題を解く