ひさびさにAIプロセッサーの話に戻る。2019年のHotChips 31で、おそらく一番会場を沸かせたのはCerebras SystemsのWSEかと思われる。
WSEを示しながら〆の挨拶を行なうSian Lie氏(創業者兼Chief Hardware Architect)。これ全部で1つのチップである
WSEは、TSMCの16FF+で製造された300mmウェハーをまるまる使ったお化けチップである。実はこのチップの話、昨年の8月にもニュースになっているのだが、こちらはあまりにも簡単に済ませているのでもう少しきちんと説明したい。
ダイサイズ4万6255平方mmや1.2兆トランジスタ、40万コアなど、いろいろ数字がインフレし過ぎている気もする。チップ単体でPB/秒という帯域は初めて見た気がする(ちなみに連載570回で紹介した富岳の、システム全体でのメモリーバンド幅が163PB/秒である)
旧SeaMicroのメンバーが集結し AI向けプロセッサーを開発
Cerebres Systemsは2016年の創業であるが、創業メンバーのかなりの部分は、旧SeaMicroのメンバーだった。SeaMicroは、SM10000-XEのように小さなコアを多数つなげて高機能サーバーを作ることを得意とする会社で、Freedom Fabricと呼ばれる独自インターコネクトを特徴としていた。
ただSeaMicroは2012年にAMDに買収され、AMDのArmベースサーバーの中核になる予定だった。これが消えたのは結局AMDがOpteron A1100シリーズを発売したのみで後継製品をホールド、Zenコアベースに傾注する方向に行ってしまったからで、それもあってかSeaMicro組は2014~2015年くらいに相次いでAMDを辞職して、再び集まって「なにかやろうぜ」と画策していたらしい。
このメンバーの中核はCerebres Systemsの現CTOであるGary Lauterbach氏であるが、氏はSeaMicroの前に(一度AMD Fellowにもなっているのだが、さらにその前に)Sun Microsystemsに勤めており、この時DARPA(米国防高等研究計画局)のHPCS(High Productivity Computing Systems:高生産性コンピューティングシステム)というプロジェクトに関わっていた。
これは2002~2010年にかけてスーパーコンピューターを構築するというもので、最終的にはIBMとCrayの案がこのプロジェクトでは採択されたが、Sun Microsystemsの案も第2段階までは通っていた。
Sunの案では、チップ同士を少しだけ重なるように配置し、その重なっている部分で無線を利用してチップ間通信を行なう(これはProximity CommunicationとしてSunで研究が行なわれていた)というものである。
このプロジェクト、最終的にはPFlops級のマシンを構築する予定であったが、そうなると当然多数のチップをわずかに重ね合わせながら集積することになる。
Sunのシステムは、300mmのウェハーの上に2500個ものチップを重ね合わせながら積層するという、これはこれでお化けであり、まぁ最終的に第2段階の提案で却下されたので実機は存在しないのだが、この時の経験が少なからずWSEに影響をおよぼしたらしい。
さてAMDを辞したLauterbach氏やLie氏、Michael James氏(Chief Architect of Advanced Technologies)、Jean-Philippe Fricker氏(Chief System Architect)、それとAndrew Feldman氏(CEO)の4人は再び集まり、自分たちの技術でなにができるかを考えたところ、AI向けプロセッサーが有望そうだという結論に達したらしい。
そこから改めていろいろとアイディアを煮詰め、ベンチャーキャピタルに声をかけつつ、かつてのメンバーを呼び寄せるなどしてチームを立ち上げていき、2019年に実際の製品ができあがったというわけだ。
Cerebres SystemsのLeadership teamページで、“Co-Founder”とあるのが上の4人であるが、残りのメンバーも少なからずSeaMicro出身だったりするわけで、そういう意味では再び昔のチームで、という感じなのかもしれない。
プロセスを微細化するより ダイを大きくしたほうが経済的
なぜWafer Scaleなのか?同社のブログによれば、要するに「AIはより高い処理性能を求めるようになりつつある。そのためには、よりたくさんのトランジスタが必要になる。通常このためにはプロセス微細化が必要になるが、プロセス微細化は生産コストを除外してもNRE(開発費)が高騰化しており、そろそろ経済的に引き合わなくなっている。
ならば、プロセスは手頃なところに抑えておいて、ダイサイズを大きくした方がトータルコストを考えれば安くなる」という、これはこれでわからなくはない理屈である。
元データはExtreme Techの記事である。16nmでは設計/検証コストは合計1億ドル程度。これが7nmだと3億ドル、5nmでは5.5億ドルになるとしている
チップコストは当然跳ね上がる(ウェハーまるまる1枚なので、1枚100万円前後だろうか)が、大量生産するチップはともかく少量となると、そこに載せる開発費の償却分の方が高くつくわけで、同じ性能を実現するなら多少面積を削るよりもダイサイズを広げた方が最終的な製品価格が安くなる、という理屈には一定の説得力がある。
この議論は後でまた取り上げるとして、内部アーキテクチャーはというのがこちら。実はWSEも、内部はデータフロー・プロセッサーである。理由は後で出てくるのでそちらで説明するとして、内部の演算そのものは一般的なMAC演算を中心にしたものであるが、データ制御用命令も処理できるとしている。
ちなみに同社はこのコアのことをSLAC(Sparse Linear Algebra Compute:疎な線形代数計算)コアと呼んでいる。WSEの最初のアプリケーションはAI向けだが、AI専門というわけではなく、科学技術計算にも利用できるような色気を見せているわけだ。ただ、それに必要なデータ型(FP32/64)をサポートしているかどうかは現状明らかにされていない。
ここからはデータフローの話だ。NVIDIAのAmpereについて語った連載563回でSparsityの話に触れたが、昨今のAIでは、ネットワークをいかに絞り込んで簡単にするかが1つのテーマになっている。
厳密に言えばAmpereの話は行列が疎の場合で、こちらはネットワークそのものが疎な場合の話であるが、使わない要素は計算しないという意味では同じことである
最初にモデルを構築するときは密なネットワークになっていても、そこから最適化して疎なネットワークにすることで、速度の向上やメモリー利用量の削減を図るわけだ。この結果、AIプロセッサーはこの疎なネットワークをうまく扱うことが求められる。
これは別にWSEに限らず一般的な話である。そしてデータフローの場合、この疎の場合の処理が非常に簡単である。疎、つまりデータが入ってこない、あるいはデータが出ていかない場合、その処理は個々のコアがそもそも動かないからだ。これは連載第568回で説明したWave ComputingのDFPと同じ発想である。
コアの周囲をSRAMで囲み広帯域を確保
次の問題はメモリーである。外部メモリーは、たとえそれがHBM2であっても遅い。そこで、WSEではコアの周囲をSRAMで囲むという荒業でこれを解決した。要するに全部SRAMである。
2020-07-19 19:26:14