ホットチップス富士通は、ポスト「京」スーパーコンピュータの頭脳となる、A64FX と呼ばれる自社開発の高性能 Arm ベース プロセッサの設計図を公開しました。
これらの設計は、火曜日にシリコンバレーで開催された半導体技術者の集まりで公開されました。ポスト「京」は、1,000ペタフロップスのモンスターマシン(エクサスケールマシン)であり、日本のSPARC64ベースのスーパーコンピュータ「京」の後継機となります。2021年に稼働開始予定で、プロセッサの動作を(少なくともある程度は)実証する一連の試験を終えたばかりです。
ポスト「京」は、フル稼働し消費電力が30~40MWに達する時点で、世界最速の公開スーパーコンピュータとなることを目指しています。現在、世界最速のスーパーコンピュータは、IBM POWER9とNVIDIA Volta GV100プロセッサ、そしてMellanoxのネットワーク機器を搭載した米国政府のSummitマシンです。このマシンは、消費電力8.8MWで最大188ペタFLOPSの性能を発揮します。
HPE、Armベースの世界最大のスーパーコンピュータ「Astra」を発表
続きを読む
重要なのは、これがエクサスケールの Arm 互換スーパーコンピュータになるという点です。これは、ほぼすべての人の携帯電話、ハードドライブ、スマートカード、その他の組み込み電子機器に搭載されていることで有名で、ラップトップやサーバーを動かすことを夢見ている CPU アーキテクチャにとって、重要なマイルストーンとなります。
では、富士通が設計したスーパーコンピュータ向けArmプロセッサとは一体どのようなものなのでしょうか?サンタクララで開催されたHot Chipsエンジニアリングカンファレンスで、富士通の吉田俊夫氏から聞いた話をご紹介します。A64FXは、594ピンのパッケージに88億個の7nm FinFETトランジスタを搭載し、48個のCPUコアと4個の管理コアを備えています。各チップは合計32GBの高帯域幅メモリ(HBM2)、16レーンのPCIe 3.0、1024GB/秒のメモリ帯域幅を備え、パフォーマンスは少なくとも2.7テラFLOPSに達します。
52個のCPUコアは、12個のメインコアと1個の管理コアからなる4つのクラスターに分割されています。各クラスターには、256GB/秒のレートで動作する8GBのHBM2と、8MBの共有L2キャッシュが搭載されています。クラスター全体およびチップ全体でキャッシュの一貫性が確保されています。
これらのチップは、富士通の第2世代Tofuメッシュ・トーラス型ネットワークを介して相互接続されています。この相互接続は、各プロセッサチップ間で、最大28Gbpsの2レーンを備えた10個のポートを介してデータの送受信が可能です。
A64FXのキャッシュ階層と速度、クラスターあたり12個のコンピューティングコアと管理コア、チップあたり4個のクラスター…出典:富士通
クリックして拡大
CPUコアは64ビットのみで、32ビットモードはありません。Armv8.2-A命令セットを採用しています。Armの512ビット幅SIMDスケーラブルベクトル拡張(SVE)をサポートしており、こちらで詳しく説明しています。つまり、これらのチップはベクトル演算と行列演算をハードウェアで処理できるということです。これはスーパーコンピュータや機械学習アプリケーションに必須の機能です。また、16ビットと8ビットの整数演算に加え、一般的な浮動小数点精度(FP16、32、64)もサポートしており、AI推論コードに便利です。
A64FXはスーパースカラー、アウトオブオーダー実行の猛獣であり、Armv8.2-A設計の初代プロセッサだと聞いています。32ビットおよび64ビットのArmアセンブリプログラミングを経験したことがある人なら、このアーキテクチャは固定幅命令を採用しており、通常は1命令につき1演算、つまり古典的なRISC流の考え方に従うことをご存知でしょう。興味深いことに、A64FXはSVEを実装することで、4オペランドのFused-Multiply-Add命令(FMA4)に命令プレフィックスを設けています。これは非常に便利な演算で、このハゲタカにはx86の命令プレフィックスを彷彿とさせます。
計算を実行するにはr0 = r3 + r1 * r2
、プリデコード段階で1つに統合され、2つの命令としてフェッチされるにもかかわらず1つのステップで実行される2つの命令を使用します。これらの命令は以下のとおりです。
movprfx r0, r3 ; 次の命令をプレフィックスする fma3 r0, r0, r1, r2 ; r0 = r3 + r1 * r2、r3は
各CPUコアの実行ユニットは、512ビットSIMD演算を2つ同時に処理できます。入力データは512ビットにパックされ、Intelのサーバー向けAVX512演算のように、一度に処理されます。つまり、4つの8ビット値と、それに対応する4つの8ビット係数または重みを入力し、それらを乗算して4つの答えを算出し、32ビットのオフセットに加算してレジスタに書き出すことができます。
富士通は、A64FXが8ビット整数演算で21.6 TOPS(1秒あたり1兆またはテラ演算)、16ビット整数演算で10.8 TOPS、32ビット整数演算で5.4 TOPS、64ビット整数演算で2.7 TOPS(いずれも整数SIMD演算時)を達成できると見積もっています。全体として、A64FXはHPCおよびAI処理において、富士通の従来型スーパーコンピュータプロセッサであるSPARC64 XIfxよりも少なくとも2.5倍高速であると言われています。
ちなみに、Nvidia のサーバー向け P4 および P40 アクセラレータは、8 ビット整数でそれぞれ 22 TOPS および 47 TOPS の性能を発揮します。
L1キャッシュは、配列内の連続する要素をフェッチしてレジスタにコピーできる複合的なギャザーリングメカニズムを備えています。例えば、メモリ上に分散している8バイトを1つの64ビットレジスタに集約し、各バイトをレジスタ内の対応するバイト位置に配置することができます。コアあたり4ウェイ64KBのL1データキャッシュは、命令エンジンによって230GB/秒で読み出され、115GB/秒で書き戻されます。L2共有キャッシュは、115GB/秒でデータを入力し、57GB/秒で受信します。
A64FXのパイプラインステージ... 出典: 富士通
クリックして拡大
チップあたりの電力使用量はミリ秒単位、コアあたりではナノ秒単位まで監視・制御されます。富士通は、A64FXはメインフレーム級の耐障害性を備えており、全キャッシュにECCまたは重複処理、実行ユニット内でのパリティチェック、問題発生時の命令リトライ、Tofuインターコネクトリンクによるエラー回復機能、そしてチップ上に合計128,000個のエラーチェッカーを搭載していると主張しています。
全体はLinuxで動作し、Lustreベースの分散ファイルシステムと、ファイル入出力を高速化する不揮発性メモリを備えています。ツールチェーンは、C、C++、Fortranコンパイラ、MPI、OpenMP、デバッガ、その他のユーティリティや言語をサポートしています。
サードパーティ製のアクセラレータが一切搭載されていないことにお気づきでしょう。これは富士通独自の純粋なArm技術です。その目的は、スーパーコンピュータ並みのアプリケーション(シミュレーション、科学実験分析、機械学習、その他の数値計算)を、汎用CPUよりも高いワット当たり性能で実行できるチップを設計することです。
残念ながら、吉田氏はクロック速度や個々のチップの消費電力についてはまだ言及を避けた。マシンの完成にはまだ何年もかかる上、仕様や実装の詳細もまだ確定しておらず、明らかにもされていない。しかし、吉田氏はカンファレンスで「Armプロセッサの開発は継続します」と述べた。遅延はあるものの、富士通はArm搭載マシンの開発を諦めていないようだ。
ええ、Crysis をプレイできるかもしれません。®