SC18のExhibitor Forumで、富士通の次世代テクニカルコンピューティング開発本部システム開発統括部長の清水俊幸氏がPost-K(ポスト「京」)スパコンについて発表を行った。

  • 富士通の清水統括部長

    SC18のExhibitor Forumにおいてポスト京スパコンについて発表する富士通の清水統括部長

ポスト京のゴールは、第1に、高いアプリケーション性能と良い電力効率を両立させることである。第2は、良い利用性とよりよいアクセスをユーザに提供することである。第3は、前世代からの進歩をさせながら、アプリケーションの互換性を保つことであるという。

このため、高性能と高いスケーラビリティを持つカスタムのCPUを開発することにした。高性能のカギは、幅の広いSIMDと高いメモリバンド幅、高いスケーラビリティのカギはTofuインタコネクトである。そして、高い電力効率は7nmプロセスの採用、電力制御機能、最適な資源配分で実現する。

さらに、Arm ISAの採用により、Arm用に開発されたアプリケーションとのバイナリ互換性を実現している。

  • ポスト京のゴール

    ポスト京のゴールは高いアプリケーション性能と高い電力効率を実現することである。そのため、高性能で高いスケーラビリティを持つカスタムCPUを開発する。また、Arm ISAを採用し、アプリケーションのバイナリ互換を実現する (このレポートのすべての図は、SC18での富士通の清水氏の発表スライドを撮影したものである)

このカスタムプロセサは「A64FX」と呼ばれる。A64FXはArm SVEをサポートする富士通が設計したオリジナルのCPUコアを搭載している。そして、実アプリケーションで必要となる高い浮動小数点演算性能とメモリバンド幅を持ち、低消費電力で、性能、構成ともにスケーラブルな設計になっている。さらに、今後のアプリケーションで必要になると考えられる半精度浮動小数点演算(FP16)やINT16/8の畳み込み演算をサポートする機能を持っている。

  • 高性能なArm CPUとなるA64FX

    A64FXは高性能なArm CPUで、SVEをサポートして高い演算性能を持つ。また、高いメモリバンド幅を持ち、実アプリケーションで高い性能を発揮する。さらに将来のアプリケーションで必要になるとみられる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 CPUチップの演算性能

    A64FX CPUチップの演算性能は2.7TFlops以上、メモリバンド幅は1024GB/sと、京コンピュータの、それぞれ20倍と16倍となっている。結果としてB/Fは0.4と京コンピュータの0.5とほぼ同じ値を維持する設計となっている

A64FXコアのSVEは512bit幅のベクタ演算パイプラインを2本持っている。そして、FP64では16積和演算、FP32では32積和演算、FP16やINT16では64積和演算、INT8では128積和演算を並列に計算できる。そのため、ピーク演算性能は次の図の棒グラフのようになる。なお、この値から計算すると、クロックは1.8GHzか、それ以上ということになる。

  • A64FXコアは512bit長のベクタ演算パイプラインを2組持つ

    A64FXコアは512bit長のベクタ演算パイプラインを2組持ち、FP64では57GFlops以上、FP32では115GFlops以上、FP16では230GFlops以上の演算性能を持つ。また、INT16では230Gops以上、INT8では460Gops以上の演算性能を持つ

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の構造

    A64FXは4個のCMGをオンチップネットワークで接続した構造になっている。CMGは12個の計算コアと1個のアシスタントコアと、8MBのL2キャッシュからなる。HBM2メモリはそれぞれCMGにつながり、各CMGが直接アクセスできるのは自分に接続されたHBM2だけである。しかし、4個のCMGのキャッシュメモリはコヒーレンシが保たれており、他のHBM2のデータをNetwork on Chip経由でアクセスできるようになっていると考えられる

A64FXの1次Dキャッシュは、次の図に示すように、128バイト境界になっていないアドレスからのアクセスの場合も、2つのキャッシュラインをうないで、常に連続する128バイトをフェッチできるようになっている。

そして、Combined Gatherは、次の図の下側に図のように、ギャザーで集めてくる2つの要素が1つのキャッシュラインの中にある場合は1回のメモリアクセスで処理できるようになっている。Combined Gatherがうまく働く場合は、2つの要素を1サイクルでGatherできるので、Gatherのバンド幅が2倍になる。これらは細かい配慮であるが、地道に性能を上げることができる。

  • A64FXの1次Dキャッシュの構造

    A64FXの1次Dキャッシュは、アラインされていない128バイトアクセスでも連続128バイトをアクセスできる。また、Gatherの場合、2つの要素が128バイトのキャッシュラインに入っていれば1回で処理でき、Gatherのスループットを2倍にできる

富士通のTofuインタコネクトはリンクバンド幅が6.8GB/sに強化され、40.8GB/sの注入バンド幅になった。そして、TofuインタコネクトDという名前になった。

また、バリアのためのリソースが強化され、より広範な集団通信アルゴリズムが使えるようになった。

さらに通信に際して、必ずしもメモリを経由せずにキャッシュから直接Tofuにデータを送り出すメモリバイパス機能がサポートされ、通信レーテンシが短縮された。結果として、プット型の通信で6.35GB/sのバンド幅、ピンポン通信で0.49μs~0.54μsというレーテンシを実現している。

  • TofuインタコネクトDの概要

    Tofuインタコネクトは強化され、名前にDが付いた。リンクバンド幅は6.8GB/sで注入バンド幅は40.8GB/sとなった。メモリバイパス機能のサポートでレーテンシが短縮され、ピンポンレーテンシが0.49~0.54μsとなった

A64FXにはチップ単位で測定ができるエネルギーモニタとコア単位で測定ができるエネルギーアナライザという2系統の消費エネルギー測定メカニズムが用意されている。エネルギーモニタの方は、ノード全体の電力やCMGの電力をPower APIを使って読み取ることができる。読み取り時間はmsオーダーである。一方、エネルギーアナライザの方は、コア、メモリ、キャッシュなどの細粒度のエネルギー消費をPAPIインタフェースで読み取る。こちらはnsオーダーの読み取り時間である。

  • エネルギー測定システム

    A64FXはノードレベルの電力を測定するエネルギーモニタと、nsオーダーの高速でより細粒度で消費エネルギーを測定するエネルギーアナライザを持っている

そして、A64FXはユーザAPI経由で、各部のアクティビティを制限するパワーノブを持っている。エネルギーモニタとエネルギーアナライザの読み取り結果を使ってパワーノブを制御することで、性能/Wを最適化することができる。

次の図の赤色で示したデコード&イシュー、演算器、HBM2コントローラがアクティビティを制御できる部分で、それ以外にコア全体のクロックを下げることもできる。これにより回路のスイッチ回数を減らし、消費電力を減らすことができる。

  • A64FXの性能/W最適化技術

    A64FXでは、赤色で示すDecode&Issue、4つの演算器群、HBM2コントローラのアクティビティを制限して消費電力を減らすことができる。また、CMGごとにクロック周波数を変えられる。エネルギーモニタとエネルギーアナライザの読み取りから、これらのパワーノブを変えて性能/Wを最適化する

A64FXのまとめであるが、A64FXはArm SVEをサポートする高性能、高電力効率のCPUであり、FP64の演算性能は2.7TFlopsを超える。そして、行列積を計算するDGEMMを90%以上のピーク比率で実行できる。ピークメモリバンド幅は1024GB/sで、Stream Triadを80%以上のバンド幅で実行できる。

  • A64FXはArmのSVEを実装するプロセサ

    A64FXはArmのSVEを実装するプロセサであり、倍精度浮動小数点演算のピーク性能は2.7TFlopsを超え、DGEMM計算でピークの90%を超える性能を発揮する。ピークメモリバンド幅は1024GB/sで、Stream Triadでピークの80%を超える

ソフトウェアは理研と富士通が分担して開発している。次の図で赤字で書いたものが理研の担当分である。富士通はシステムマネジメント、ジョブマネジメントとファイル系を中心に分担しており、理研は並列言語などプログラム環境を中心に分担している。また、理研は計算コアで動かす軽量カーネルを分担している。

  • 富士通と理化学研究所の役割分担

    ソフトウェアは理研と富士通が分担して開発しており、富士通はマネジメント系、ファイル系、Linux OSを分担し、理研は軽量カーネル、プログラミング環境を中心に分担している

スパコンのファイルシステムは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ではマウントするだけでプログラムの変更は必要がない。

  • 富士通のFEFSとLLIO

    富士通のFEFS(Fujitsu Exabyte File System)とLLIO(Lightweight Layered IO Accelerator)はより注入バンド幅が高く、バーストバッファのためのソフトウェアの変更も必要がない

ポスト京システムではファイルアクセスはアシスタントコアが処理して、ローカルファイルシステムに作られたテンポラリファイルやキャッシュをアクセスする。そして、キャッシュにデータがない場合は、Lustreベースのグローバルファイルにアクセスしてデータを持ってくる。

  • ポスト京ではファイルアクセスはアシスタントコアが処理する予定

    ポスト京ではファイルアクセスはアシスタントコアが処理する。そして、ローカルファイルの中にテンポラリファイルやキャッシュを作るので、これらのファイルのアクセスは高速で行えるようになる

ポスト京システムの構成は次の図のようになっている。2個のCPUチップを搭載するCPU Memory Unit(CMU)が第2レベルで、8個のCMUを搭載するBoBがあり、3個のBoBがシェルフを構成する。そして、ラックには8個のシェルフが搭載される。したがって、1つのラックに搭載されるノード数は384である。システム全体で、このラックが何台になるかは、どれだけ予算が獲得できるかによって決まり、まだ、誰にも分からないという。

  • ラック当たりのノーズ数は384

    CPU1個が1ノードを構成し、CMUには2個のCPUを搭載する。8枚のCMUが1台のBoBに収容され、シェルフには3台のBoBが収容される。そして、ラックには8台のシェルフが搭載され、ラック当たりのノード数は384である

次の図がCMUの写真であり、右側の2個の水冷コールドプレートの下にそれぞれCPUとHBM2メモリがある。左側の銅板の部分は電源などを冷却するコールドプレートである。CMUの左側から3本の光ケーブルを接続するQSFP28コネクタが出ている。

CMUのバックパネル側には給排水のコネクタと電気系のコネクタが付いており、CMUを挿入すると水と電気が接続される構造になっている。

  • ポスト京のCMU

    2CPUを搭載するポスト京の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倍の性能になっている。

また、説明は省略するが、この図には性能向上の主因が説明されている。

  • FX100スパコンのCPUであるSPARC64XIfxを1.0としたA64FX CPUの性能を示す棒グラフ

    FX100スパコンのCPUであるSPARC64XIfxを1.0としたA64FX CPUの性能を示す棒グラフ。大部分のケースで2.5倍から3.4倍の性能となっている。INT8を使う畳み込みでは9.4倍で、マシンラーニングには威力を発揮しそうである

ポスト京は富士通の実証されたマイクロアーキテクチャを受け継ぎ、高いアプリケーション性能と高い電力効率を持つ。それに加えて、Armのアプリケーションがバイナリ互換で利用できる。

  • ポスト京のまとめ

    ポスト京は富士通のマイクロアーキテクチャを受け継ぎ、高い性能と電力効率をもつ。加えてArmアプリケーションがバイナリ互換で利用できる

発表された工程表では、まだ、設計と実装中となっているが、現在のポスト京の開発状況は、試作チップができ、OSが動いている状況で、予定通りに設計検証が進んでいるという。そして、理研は2020年の第2四半期ころからアーリーアクセスプログラムが開始できると発表している。

  • 試作チップの評価が進む

    工程では、まだ設計と実装となっているが、試作チップができ、OSが動いており、設計検証が進んでいる状況。2020年のQ2にはアーリーアクセスが開始できると理研はアナウンスしている

ポスト京については、今年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での発表で明らかにされたが、何ノードのシステムになり、どれだけの性能が出せるかは獲得できる予算額できまるので、現時点では、誰にも分からないとのことであった。