「富岳」に搭載されるCPU「A64FX」とは?

今回、Green500の1位となったシステムは、富岳スパコンのために開発されたA64FX CPUを768個使用するもので、Linpack性能は1.9995PFlops、ピーク演算性能の84.75%の演算性能を達成している。A64FX CPUは、ArmのSVE(Scalable Vector Extension)を持っており、ベクトルスパコンであるので、この程度のLinpack性能比率は妥当なところであろう。

そして、Linpack実行のエネルギー効率は16.876MFlops/Wで、晴れてGreen500の1位となった。なお、A64FXは1つのチップに48個のCPUコアを集積しており、CPUのクロックは2GHzである。

  • A64FX

    768個のA64 FXチップを使用する富岳スパコンのプロトタイプ機が16.876GFlops/Wのエネルギー効率を出し、Green500の1位に輝いた (出典:このレポートの全ての図は、SC19での富士通の清水氏の発表スライドを撮影したものである)

次の散布図は、横軸がGreen500のランキング順位、縦軸はGigaFlops/W単位のエネルギー効率である。そして水色の丸はCPUにGPUなどのアクセラレータを付けたシステムで、オレンジの丸はアクセラレータ無しのシステムである。

この図を見るとGF/Wの高いシステムはアクセラレータ付きが一般的である中で、A64FXはアクセラレータを使わずに高いエネルギー効率を実現している。アクセラレータ無しのシステムで2番目にエネルギー効率が高いのは中国の神威・太湖之光の6.051GF/Wであり、A64FXはアクセラレータ無しのシステムとしてはエネルギー効率を3倍程度改善したことになる。

ただし、ベクトル演算機構もある意味、アクセラレータであり、このような区分が意味があるのかどうか、筆者には良く分からない。

なお、散布図の右端の部分は、横軸をTop500の回数にしたもので、エネルギー効率の改善の年次推移を示している。

  • A64FX

    Green500ランキングの順位に対する実際のGF/W値の関係。エネルギー効率の向上に努力しているのは50位くらいまでのシステムで、それよりランキングの低い大部分のシステムのGF/W値は低いままである

エネルギー効率を高めるカギとなる技術とは?

次の散布図は、横軸がTop500のランキング順位で、縦軸がGF/Wである。最近のSummitスパコンなどのように、巨大スパコンはエネルギー効率が高いが、中位のランキングのシステムにはエネルギー効率が高いものは少ない。そして、GF/Wの向上を狙って設計した比較的規模の小さいスパコンには高効率のものもあるという状況である。ということで、A64FXプロト機は特異な位置にある。しかし、中位の規模で高効率のシステムを作るのが難しいということではなく、たまたま、A64FXプロト機が中規模であったというのがその理由ではないかと筆者は考えている。

  • A64FX

    Top500のランキング順位と実際のGF/W値の関係。ランキングの高い超大規模スパコンはGF/W値が高い。ランキングが350位以下では、高い電力効率を狙った実験的システムが高いGF/Wを出している

GF/Wを上げるカギとなるのはエネルギー効率の高いハードウェアと並列実行の効率の改善の両方の相乗効果である。A64FXは富士通の長年開発してきたマイクロアーキテクチャを7nm FinFETプロセスで作って高いエネルギー効率を実現している。そして、ToFu Dインタコネクトのネットワークインタフェース部分をCPUチップに内蔵して1チップとすることにより、チップ間をまたぐ信号伝送による電力の消費を削減している。さらに、メモリも3次元積層のHBM2を使い、CoWoSで集積し、消費電力を低減している。

科学技術計算ライブラリはアプリケーションの効率を高めるようにチューニングされ、通信ライブラリは京コンピュータのToFuインタコネクトでの長い経験をベースに改善を行っている。

  • A64FX

    命令セットはArmであるが、プロセサのハードウェアは富士通独自の設計でGF/Wを上げ、並列実行効率を高めている。A64FXではHBM2メモリの採用とToFu DインタコネクトのインタフェースをCPUチップに内蔵することによりGF/Wを改善している

Linpackの連立一次方程式を解く計算は未知数の数の3乗で演算量が増えるが、メモリのアクセス回数は未知数の2乗で増える。このため、未知数の数(Nmax)が増えると、演算あたりのメモリアクセスの回数が減少し、Linpack性能を上げやすくなる。

次の散布図は横軸に未知数の数(Nmax)をとり、縦軸はピーク演算性能に対するLinpack演算性能の比率をとったグラフである。この図を見ると、A64FXプロト機は小さいNmaxでも84.75%という高い演算効率を達成している。これは通信や演算のライブラリの改善やオーバラップした通信の最適化の賜物である。

  • A64FX

    連立1次方程式の未知数の数(Nmax)と浮動小数点演算器の使用効率のグラフ。Nmaxが大きいほうが効率を高めやすいが、A64FXプロト機は比較的小さいNmaxでも84.75%という高い効率を出している

TSMCの7nmプロセスで作られるA64FX

A64FX CPUはTSMCの7nmプロセスで作られるArmv8.2-A、SVE命令をサポートするプロセサである。512bit長のベクタ演算機構を持つ48個の演算用のコアと制御やIOを行う4個のアシスタントコアを集積している。ピーク演算性能は2.7+TFlopsである。

そして、CoWoSテクノロジを使い、4個のHBM2メモリをCPUと同一のインタポーザ基板に搭載している。メモリの容量は32GBで、DDR4 DIMMのように増設はできないが、ピークメモリバンド幅は1024GB/sと非常に高バンド幅のメモリとなっている。

さらにCPUチップにはA64FX CPU間を接続するネットワークであるToFu Dネットワークのインタフェースも内蔵している。

  • A64FX

    A64FX CPUはArm8.2-A命令セットにSVEを加えた命令をサポートする。メニ―コアチップであり、48個の演算用コアと4個のアシスタントコアをCPUチップに搭載している

次の図にA64FXチップのチップ写真を示す。このチップには8.786Bトランジスタが集積されている。

  • A64FX

    説明の付けられたA64FX CPUチップの顕微鏡写真。A64FXチップはTSMCの7nmプロセスで作られ8.786Bトランジスタを集積している

ToFu Dは京コンピュータで使用したToFuインタコネクトの改良版である。ネットワークインタフェースがCPUコアと同一チップに載っているので、CPUとネットワークの間のバンド幅が広くなり、データを注入する合計のバンド幅は40.8GB/sとなっている。また、ネットワークインタフェースを通過するレーテンシも短縮された。

  • A64FX

    A64FXではToFu DのネットワークインタフェースやルーターがCPUチップに内蔵された。ポートバンド幅は6.8GB/s。6ポート合計では40.8GB/sの注入バンド幅持つ。ピンポン通信のレーテンシは約0.5μsである