Nov.2019 Green500について～ここがすごいよA64fx～

これはポエムだよ！

## TL;DR

A64fxはTSMC 7nmプロセスを採用し、また、ARMv8アーキテクチャにSVEを採用することでSIMD幅を伸ばし、電力効率を圧倒的に伸ばしたCPUだよ！

## Nov.2019 Top500/Green500について

今年もこんな季節がやってまいりました。SCの季節、そしてTop500/Green500の後期の季節でございます。
え、そもそもTop500/Green500をご存じない？ そんな方がこの記事読むわけないでしょ。というわけで以下では知ってる前提で書きます。
もしご存じない方がいらっしゃいましたらロボ太先生の記事を読んでください。

……とはいえ、Top500は最近面白みがないのが実情。というのも、June.2019から上位10システムについて変動がないのと、そもそも上位が移動するような場合は事前に調達計画が出るので(例外は中国ぐらいか……) 大まかな予想は立ってしまい、予定調和的な順位に終始することが多いからなんですね。
一方、Green500といえば、なんというか今回は非常に面白いことが起こっています。
今回、一位に躍り出たのは、フラグシップ2020,ポスト京と呼ばれていた京の後継機、命名が記憶に新しい「富岳」――のプロトタイプ、CPU名はA64fxでした。

A64fxの計測に関わられたすべての皆様、お疲れさまでした。そしておめでとうございます！

まぁでもぶっちゃけ値自体は前回から後退してるじゃん？ という意見もまぁまぁわからないでもないですが、このA64fx、何がすごいって、アクセラレータは非搭載だということです。

それでは以下に、ここがすごいよA64fxというポイントをお伝えしていきたいと思います。

## ここがすごいよA64fx

ここ見たほうが確実だよ(身も蓋もねえ
https://news.mynavi.jp/article/20190702-852159/

かいつまんで簡単に説明すると…

### HPC用に設計されたARM v8 メニーコアCPU

A64fxは、HPC用のARMv8超メニーコアCPUです。
演算用の12コアと制御用の1コア、そして250GB/sのHBMインタフェースを束ねたCMG(Core management group) というもの4つをくっつけて一つとしています。
また、コア内部はSVE(Scalable Vector Extension) という拡張を採用しており、512bitのSIMD演算が可能です。

https://www.top500.org/system/179706

をもとにしたピーク性能は、2(GHz) * 48(Core) * 2(FMA) * 2(FMAは2個出る) * 8(512/64, SIMD長) = 3328 = 3.072TFlopsです。

ARMv8ではSVEを実装したのは世界で初めてのCPUであり、HPC系ではSVEがARMv8のベクトル拡張としてスタンダードになっていくのではないでしょうか。

### 高いメモリバンド幅

先述の通り、A64fxはメモリにHBM2を採用しています。
HBM2はここ最近では非常にメジャーになっている広帯域メモリですが、これを汎用CPUで採用したのは初めてではないでしょうか(ほんとか？
ノードあたりの帯域は堂々の約1TB/s。

みんな大好き() B/Fは, 1.0 / 3.0 = 0.33。最近主流のプロセッサの中ではかなり高いですね。これより上の数字をマークするためにはSX-Auroraを使わないといけないレベル。

### 消費電力の低さ

なんといってもGreen500の1位ですから。

https://www.top500.org/system/179706

によれば、ノードあたりの消費電力は154w(118.48 kw / 768node)。え、マジ？と思わず3回ぐらい計算しなおしてしまうような数字ですね。
カタログ値によれば約200W前後とのことだったので、色々と様々な努力が結集しているんだろな…と思わずにはいられない数字だと思いました…

## 現在主流のチップとの比較

というわけでほかのチップと比較すると…

| 名称 | ピーク性能(DP) | メモリ帯域 | 消費電力 | タイプ(CPU or Accelerator) | ピーク電力効率 | 備考 |
|----|----|----|----|----|----|----|
| FUJITSU a64fx | 3.0TFlops | 1TB/s | 約200W  (計測値は154W) | CPU | 15GFlops/w  (16.8GFlops/W) |
| Intel Xeon Scalable 8280 | 2.15TFlops  (ただしAVX512 Base clock) | 140.4GB/s  (DDR-2933MHz * 6ch) | 205W(TDP) | CPU | 10.75GFlops/W | 出典はhttps://www.arcbrain.jp/support/Intel/2nd_Gen_Xeon_Scalable_Processor/list/all/ |
| AMD EPYC 77242 | 2.304TFlops  (ただしBase clock) | 204.8GB/s  (DDR4-3200MHz * 8ch) | 225W(TDP) | CPU | 10.24GFlops/W | 出典はhttps://www.amd.com/ja/products/cpu/amd-epyc-7742 |
| NEC SX-Aurora(Type 10A) | 2.4TFlops | 1.22TB/s | 300W | Accelerator | 8GFlops/W | 出典はhttps://www.pccluster.org/ja/event/2017/12/pcccSymp17_nec.pdf |
| NVIDIA Tesla V100 | 7.8TFlops  (ただしBoosted。公式の表記) | 0.9TB/s | 300W(TDP) | Accelerator | 26GFlops/W | 出典は  https://www.nvidia.com/en-us/data-center/tesla-v100/ |
| PEZY PEZY-SC2 | 2.8TFlops  (ただし700MHz) | 79.8GB/s(DDR4-2400MHz * 4ch) | 約100W | Accelerator | 28GFlops/W  (16.25GFlops/W) | 出典は俺 |


measuredとTDPが混ざっているので若干Intel, AMDに不利な気がしたりしなくもないような感じもなくはないですが…
これを見ると、A64fxは、Intel, AMDと比べて、演算性能、電力効率においては頭一つ抜けているといえるでしょう。3割増しはやっぱり強い。
一方で、現在のスーパーコンピュータのトレンドであるアクセラレータと比較すると、電力効率としてはそこまで劇的というわけでもありません。
(まぁ上の表はシステム全体とCPU単体が混ざってるので、あんまりフェアではないんですけど…)


## まとめ

なんか提灯記事みたいになったな…
A64fxはHPC用に設計された高効率なHPCプロセッサです。こういったものが日本のスーパーコンピュータプロジェクトで開発されたというのは非常に喜ばしいといえます。
Intel, AMDのプロセッサと比較して、頭一つ抜けた高性能・高効率を持つプロセッサであることがカタログスペックからも、Green500からも読み取れます。
とはいえ、それがすなわちIntel, AMDが劣っていることの証明にはなりません。ピーク性能で比較することには一定の意味はありますが、それをすべてと考えることは非常に危険です。
「今自分が持っているワークロードがこのハードウェア上でどの程度の性能を持つか」というのを考えるのが正しいベンチマークの姿です。

HPLで高い性能と高い電力性能を得たというのは、A64fxが、(少なくともHPLとそれに類似した計算においては) 非常にバランスよく性能を発揮するように設計されたCPUであるからといえるでしょう。

ではGreen500のほかのシステムと比べるとどうなのか？というのは、また別の話ということで。