「富岳」に搭載される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である。
次の散布図は、横軸がGreen500のランキング順位、縦軸はGigaFlops/W単位のエネルギー効率である。そして水色の丸はCPUにGPUなどのアクセラレータを付けたシステムで、オレンジの丸はアクセラレータ無しのシステムである。
この図を見るとGF/Wの高いシステムはアクセラレータ付きが一般的である中で、A64FXはアクセラレータを使わずに高いエネルギー効率を実現している。アクセラレータ無しのシステムで2番目にエネルギー効率が高いのは中国の神威・太湖之光の6.051GF/Wであり、A64FXはアクセラレータ無しのシステムとしてはエネルギー効率を3倍程度改善したことになる。
ただし、ベクトル演算機構もある意味、アクセラレータであり、このような区分が意味があるのかどうか、筆者には良く分からない。
なお、散布図の右端の部分は、横軸をTop500の回数にしたもので、エネルギー効率の改善の年次推移を示している。
エネルギー効率を高めるカギとなる技術とは?
次の散布図は、横軸がTop500のランキング順位で、縦軸がGF/Wである。最近のSummitスパコンなどのように、巨大スパコンはエネルギー効率が高いが、中位のランキングのシステムにはエネルギー効率が高いものは少ない。そして、GF/Wの向上を狙って設計した比較的規模の小さいスパコンには高効率のものもあるという状況である。ということで、A64FXプロト機は特異な位置にある。しかし、中位の規模で高効率のシステムを作るのが難しいということではなく、たまたま、A64FXプロト機が中規模であったというのがその理由ではないかと筆者は考えている。
GF/Wを上げるカギとなるのはエネルギー効率の高いハードウェアと並列実行の効率の改善の両方の相乗効果である。A64FXは富士通の長年開発してきたマイクロアーキテクチャを7nm FinFETプロセスで作って高いエネルギー効率を実現している。そして、ToFu Dインタコネクトのネットワークインタフェース部分をCPUチップに内蔵して1チップとすることにより、チップ間をまたぐ信号伝送による電力の消費を削減している。さらに、メモリも3次元積層のHBM2を使い、CoWoSで集積し、消費電力を低減している。
科学技術計算ライブラリはアプリケーションの効率を高めるようにチューニングされ、通信ライブラリは京コンピュータのToFuインタコネクトでの長い経験をベースに改善を行っている。
Linpackの連立一次方程式を解く計算は未知数の数の3乗で演算量が増えるが、メモリのアクセス回数は未知数の2乗で増える。このため、未知数の数(Nmax)が増えると、演算あたりのメモリアクセスの回数が減少し、Linpack性能を上げやすくなる。
次の散布図は横軸に未知数の数(Nmax)をとり、縦軸はピーク演算性能に対するLinpack演算性能の比率をとったグラフである。この図を見ると、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チップのチップ写真を示す。このチップには8.786Bトランジスタが集積されている。
ToFu Dは京コンピュータで使用したToFuインタコネクトの改良版である。ネットワークインタフェースがCPUコアと同一チップに載っているので、CPUとネットワークの間のバンド幅が広くなり、データを注入する合計のバンド幅は40.8GB/sとなっている。また、ネットワークインタフェースを通過するレーテンシも短縮された。