SC18のExhibitor Forumで、富士通の次世代テクニカルコンピューティング開発本部システム開発統括部長の清水俊幸氏がPost-K(ポスト「京」)スパコンについて発表を行った。
ポスト京のゴールは、第1に、高いアプリケーション性能と良い電力効率を両立させることである。第2は、良い利用性とよりよいアクセスをユーザに提供することである。第3は、前世代からの進歩をさせながら、アプリケーションの互換性を保つことであるという。
このため、高性能と高いスケーラビリティを持つカスタムのCPUを開発することにした。高性能のカギは、幅の広いSIMDと高いメモリバンド幅、高いスケーラビリティのカギはTofuインタコネクトである。そして、高い電力効率は7nmプロセスの採用、電力制御機能、最適な資源配分で実現する。
さらに、Arm ISAの採用により、Arm用に開発されたアプリケーションとのバイナリ互換性を実現している。
このカスタムプロセサは「A64FX」と呼ばれる。A64FXはArm SVEをサポートする富士通が設計したオリジナルのCPUコアを搭載している。そして、実アプリケーションで必要となる高い浮動小数点演算性能とメモリバンド幅を持ち、低消費電力で、性能、構成ともにスケーラブルな設計になっている。さらに、今後のアプリケーションで必要になると考えられる半精度浮動小数点演算(FP16)やINT16/8の畳み込み演算をサポートする機能を持っている。
次の表は、京コンピュータ、FX10、FX100とポスト京という4世代の富士通スパコンのCPUの諸元を比較したものである。ポスト京のA64FX CPUは7nmプロセスを採用し、コアの浮動小数点演算性能は57GFlops以上、チップ当たりでは2.7TFlops以上となっている。これは京コンピュータのSPARC64 VIIIfx CPUの20倍以上の性能である。また、ピークメモリバンド幅は1024GB/sであり、京コンピュータの16倍のメモリバンド幅を持つ。結果としてB/F比は0.4と大多数の大型スパコンよりも高い値となっている。
A64FXコアのSVEは512bit幅のベクタ演算パイプラインを2本持っている。そして、FP64では16積和演算、FP32では32積和演算、FP16やINT16では64積和演算、INT8では128積和演算を並列に計算できる。そのため、ピーク演算性能は次の図の棒グラフのようになる。なお、この値から計算すると、クロックは1.8GHzか、それ以上ということになる。
A64FXのCore Memory Group(CMG)は12個の演算コアと1個のアシスタントコアを持ち、それに8MBのL2キャッシュが付いている。そしてL2キャッシュから1個のHBM2メモリを接続している。また、L2キャッシュから他のCMGやTofuコントローラにつながるNetwork on Chipにつながっている。
なお、計算コアとアシスタントコアは物理的には同じものであり、 CMGには13個のA64FXコアが搭載されている。計算コアとアシスタントコアの違いは、使い方の違いだけである。
チップには4個のCMGが集積されており、4個のCMGのキャッシュメモリはコヒーレントになっている。ただし、この図から見ると各CMGのL2キャッシュはそのCMGに接続されたHBM2のデータしかキャッシュしないメモリサイドキャッシュになっており、V100 GPUのキャッシュのような動きになるものと思われる。A64FXチップでは、他のCMGにつながるHBM2メモリのデータもアクセスできるが、性能的には、自分のCMGに接続されたHBM2を使用する方が性能高く、そのため、スレッドをCMGに固定するバインドができるようになっていると考えられる。
A64FXの1次Dキャッシュは、次の図に示すように、128バイト境界になっていないアドレスからのアクセスの場合も、2つのキャッシュラインをうないで、常に連続する128バイトをフェッチできるようになっている。
そして、Combined Gatherは、次の図の下側に図のように、ギャザーで集めてくる2つの要素が1つのキャッシュラインの中にある場合は1回のメモリアクセスで処理できるようになっている。Combined Gatherがうまく働く場合は、2つの要素を1サイクルでGatherできるので、Gatherのバンド幅が2倍になる。これらは細かい配慮であるが、地道に性能を上げることができる。
富士通のTofuインタコネクトはリンクバンド幅が6.8GB/sに強化され、40.8GB/sの注入バンド幅になった。そして、TofuインタコネクトDという名前になった。
また、バリアのためのリソースが強化され、より広範な集団通信アルゴリズムが使えるようになった。
さらに通信に際して、必ずしもメモリを経由せずにキャッシュから直接Tofuにデータを送り出すメモリバイパス機能がサポートされ、通信レーテンシが短縮された。結果として、プット型の通信で6.35GB/sのバンド幅、ピンポン通信で0.49μs~0.54μsというレーテンシを実現している。
A64FXにはチップ単位で測定ができるエネルギーモニタとコア単位で測定ができるエネルギーアナライザという2系統の消費エネルギー測定メカニズムが用意されている。エネルギーモニタの方は、ノード全体の電力やCMGの電力をPower APIを使って読み取ることができる。読み取り時間はmsオーダーである。一方、エネルギーアナライザの方は、コア、メモリ、キャッシュなどの細粒度のエネルギー消費をPAPIインタフェースで読み取る。こちらはnsオーダーの読み取り時間である。
そして、A64FXはユーザAPI経由で、各部のアクティビティを制限するパワーノブを持っている。エネルギーモニタとエネルギーアナライザの読み取り結果を使ってパワーノブを制御することで、性能/Wを最適化することができる。
次の図の赤色で示したデコード&イシュー、演算器、HBM2コントローラがアクティビティを制御できる部分で、それ以外にコア全体のクロックを下げることもできる。これにより回路のスイッチ回数を減らし、消費電力を減らすことができる。
A64FXのまとめであるが、A64FXはArm SVEをサポートする高性能、高電力効率のCPUであり、FP64の演算性能は2.7TFlopsを超える。そして、行列積を計算するDGEMMを90%以上のピーク比率で実行できる。ピークメモリバンド幅は1024GB/sで、Stream Triadを80%以上のバンド幅で実行できる。
ソフトウェアは理研と富士通が分担して開発している。次の図で赤字で書いたものが理研の担当分である。富士通はシステムマネジメント、ジョブマネジメントとファイル系を中心に分担しており、理研は並列言語などプログラム環境を中心に分担している。また、理研は計算コアで動かす軽量カーネルを分担している。
スパコンのファイルシステムはLustreが主流で、それにバーストバッファを付けて小規模アクセスをまとめて性能を上げるというのが一般的であるが、ポスト京では、それを上回る性能を実現するため、FEFS(Fujitsu Exabyte File System)とLLIO(Lightweight Layered IO Accelerator)を使用する。通常のLustreファイルシステムでは1ノードからの注入バンド幅は12.5GB/sであるがTofuインタコネクトDを使うFEFSでは40.8GB/sのバンド幅を実現できる。
また、Lustre+Burst Bufferの場合はローカルのテンポラリファイルをアクセスできないが、FEFS+LLIOなら可能である。さらにLustre+Burst Bufferの場合は、ファイルアクセスを明示的に書く必要があるのに対して、FEFS+LLIOではマウントするだけでプログラムの変更は必要がない。
ポスト京システムではファイルアクセスはアシスタントコアが処理して、ローカルファイルシステムに作られたテンポラリファイルやキャッシュをアクセスする。そして、キャッシュにデータがない場合は、Lustreベースのグローバルファイルにアクセスしてデータを持ってくる。
ポスト京システムの構成は次の図のようになっている。2個のCPUチップを搭載するCPU Memory Unit(CMU)が第2レベルで、8個のCMUを搭載するBoBがあり、3個のBoBがシェルフを構成する。そして、ラックには8個のシェルフが搭載される。したがって、1つのラックに搭載されるノード数は384である。システム全体で、このラックが何台になるかは、どれだけ予算が獲得できるかによって決まり、まだ、誰にも分からないという。
次の図がCMUの写真であり、右側の2個の水冷コールドプレートの下にそれぞれCPUとHBM2メモリがある。左側の銅板の部分は電源などを冷却するコールドプレートである。CMUの左側から3本の光ケーブルを接続するQSFP28コネクタが出ている。
CMUのバックパネル側には給排水のコネクタと電気系のコネクタが付いており、CMUを挿入すると水と電気が接続される構造になっている。
次の図は、FX100スパコンのCPUであるSPARC64 XIfxの性能を1.0としたA64FXの性能を示す棒グラフで、左からDGEMM、Stream Triad、流体、大気、地震のシミュレーション、FP32で計算したマシンラーニングの畳み込み、右端はINT8の低精度計算を行った場合の畳み込み演算の性能である。
左側の各アプリケーションでは2.5倍から3.8倍の性能になっている。また、Stream Triadでは840GB/sのバンド幅が得られており、これはピークの1024GB/sの82%のバンド幅である。そして、低精度の畳み込みでは9.4倍の性能になっている。
また、説明は省略するが、この図には性能向上の主因が説明されている。
ポスト京は富士通の実証されたマイクロアーキテクチャを受け継ぎ、高いアプリケーション性能と高い電力効率を持つ。それに加えて、Armのアプリケーションがバイナリ互換で利用できる。
発表された工程表では、まだ、設計と実装中となっているが、現在のポスト京の開発状況は、試作チップができ、OSが動いている状況で、予定通りに設計検証が進んでいるという。そして、理研は2020年の第2四半期ころからアーリーアクセスプログラムが開始できると発表している。
ポスト京については、今年6月にフランクフルトで開催されたISC18でも開発状況の発表があったが、それに比べると発表内容の具体性が上がってきたと感じられる。CMUはISC18でも展示されていたが、BoB、シェルフという実装の階層が明らかにされ、ラック当たり384CPU搭載というのは新たな情報である。
ポスト京のCPUはSVEで浮動小数点演算性能を引き上げているが、同時に4個のHBM2メモリを搭載することにより、BF比0.4を確保している。これは京コンピュータの0.5よりは少し劣るものの、最近のスパコンとしてはメモリリッチな設計である。
京コンピュータが2011年の登場から7年あまり経った現在でも、HPCGベンチマークで世界3位を維持しているのは、この高いBF比の賜物であり、ポスト京も同じように広範な実アプリケーションに対して高い性能を発揮することが期待される。
また、A64FXと呼ばれるArmアーキテクチャのCPUについても、FP16やINT16/8の低精度の畳み込み演算のサポート機能を持つことが明らかにされ、一部のアプリケーションについてSPARC64 XIfx CPUに比べて2.5倍から3.4倍の性能を持つというデータが公表された。
一方、電力効率が高いと発表され、電力調整のメカニズムも公表されたが、CPUの消費電力については明らかにされなかった。また、HPL性能は1ExaFlopsには届かないことがISC18での発表で明らかにされたが、何ノードのシステムになり、どれだけの性能が出せるかは獲得できる予算額できまるので、現時点では、誰にも分からないとのことであった。