産総研のABCIアップグレード
Inside Look Inside Japan’s ABCI AI Supercomputer Upgrade - The Next Platform
産総研のABCIスパコンが大幅アップグレード - マイナビ
この話題はマイナビなどでは5月に既報のもので概ね同様の内容がThe Next Platformでも報じられたので取り上げてみる。
内容としてはNVIDIA V100ベースのCompute Node (V)で構成された既存のABCI 1.0にNVIDIA A100ベースのCompute Node (A)を追加するというものである。Compute Node (A)は単にV100からA100への換装という感じのものではなくNVSwitchを用いて1ノードあたりのGPU数を倍増(4 GPUs→8 GPUs)したもので、従って1ノードあたりの演算性能も4.6~5倍に向上している(※データ精度による)。
ただし、ABCI 1.0はCompute Node (V) x 1088ノードで構成されたのに対しABCI 2.0で追加されるのはCompute Node (A) x 120ノード(つまり+10%)だから、1ノードあたりの演算性能が大幅に向上しているとはいえ全体で何倍にも高速化しているか?といえばそれほどでもない。むしろ、V100→A100ではTensorCoreの強化によるDeep Learningでの性能向上幅が大きい(参考1、参考2、参考3)からCUDA CoreによるFP64の性能向上よりもTensorCoreによるFP16/FP32やSparsityでの圧縮による性能向上幅が大きい。
ABCI 1.0 | ABCI 2.0 | Improvements | ||
Expansion | Overall | |||
# of nodes | 1088 | 120 | 1208 | x1.11 |
Traditional HPC | ||||
FP64 (per node) | 34 TF | 156 TF | - | x4.6 |
FP64 (entire system) | 37.2 PF | 19.3 PF | 56.5 PF | x1.52 |
Deep Learning (AI) | ||||
FP32 (per node) | 68 TF | 1260 TF | - | x18 |
FP32 (entire system) | 75 PF | 150 PF | 225 PF | x3 |
FP16 w Sparsity (per node) | 500 TF | 5000 TF | - | x10 |
FP16 w Sparsity (entire system) | 550 PF | 600 PF | 1.15 PF | x2.09 |
古典的なFP64主体のHPCとしては+50%ほどしか性能向上していないが、Deep Learningの学習(FP32)で3倍・推論(FP16)で2倍もの性能向上を達成していることになる。ABCI = AI Bridging Cloud InfrastructureはAI研究開発のために設置されたHPCだから、そのコンセプトと今回の増強の方向性としては正しいのだろう。
Compute Node (A)はData Centric構成
個人的に気になるのはCompute Node (A)の構成である。
第3世代Xeon Scalable "Ice Lake-SP" 2ソケットにNVIDIA A100を接続し、A100同士をNVSwitchで相互接続した構成であるが、Xeon SPの標準のPCIeレーン数(2ソケットで計128レーン)では足らず旧PLX(現Broadcom)製PCIe Switchを4基搭載している。各ソケットあたりA100 x 4(PCIe x16 x4)・InfiniBand HDR x 2(PCIe x16 x2)・NVMe x 1(PCIe x4 x1)が接続され1ノード全体では計PCIe 200レーン(1ソケットあたり100レーン)が必要なためである。
Compute Node (A)の構成はNVIDIA純正のDGX A100と酷似しているが、DGX A100で採用されているAMD Epycの場合でも2ソケットで計160レーンを確保できるがそれでも不足で、やはりPCIe Switch 4基を搭載している 。
PCIe Switchを搭載するもう一つの理由はGPUからNICを直接制御するためだろう。
InfiniBand=Mellanox ConnectX-6をCPU側ではなくPCIe Switch側=GPUクラスター側に、それも2 GPUあたり1 NICの割合で接続していることからしてもMellanox SHARP/GPU Direct(参考1、参考2)によるノードを跨いだ(CPUを介さない)GPU同士での直接的な通信を意図していることが解る構成となっている。
Data Centric構成の先に見えるNVIDIA "Grace", "Atlan"
このような構成だとNVIDIAが"Grace"や"Atlan"を構想するのもよく解る。
GPUとInfiniBandを中心として構成されたノードはGPUを使った演算は高速になるが、CPUがボトルネックとなってしまうし、NVIDIA視点ではPCIe Switchが無駄に見えるからである。
一度GPUにコードやデータを取り込んでしまえばGPU間のみで演算も通信もできてしまうが、ファイルシステムにアクセスするにはOS・CPUを経由することになるし、CPU側メモリーのデータは細いPCIe(4 GPUあたり僅かPCIe x16)でのアクセスとなってしまう。
ここで、例えばCPU側にGPUとNICを接続するのに十分なインターフェース(例:計200レーン分のPCI Switch)があればPCIe Switchを外付で載せる必要が無くなるし、そもそもPCIeではなくNVLinkで接続できるのであればCPU側メモリーへのアクセスも高速になると考えれば、それはNVIDIA "Grace"そのものだ。また、さらに踏み込んでCPU・GPU・NICをSoCに統合してしまうことを考えるならば、それはNVIDIA "Atlan"そのものである。
サーバーやHPCの場合はCPU:GPUのバランスがワークロードによって異なるためCPU・GPU・NICをディスクリートでNVLinkで相互接続される方が選択肢を広げることになるだろうが、ある程度ワークロードがある程度決まっている(例:自動運転)場合はSoCにしてしまった方が効率が良い。