ALH84001

私的コラム&雑記(&メモ)

最近の気になった話題(2021年第16週)

2021-04-25 | 興味深かった話題

Cool Chips - Esperantoの低電力高性能・推論エンジン

Esperantoの低電力高性能・推論エンジン - マイナビ

 元Transmetaの創業者・CEOだった人物として著名なDavid Ditzel氏が率いるEsperantoがRISC-Vアーキテクチャーに基づくET-Maxion・ET-Minionを開発し、それらを統合したNeural Network処理用SoCていることは2017年から知られており(参考)、実際に「ET-SoC-1」を開発中であることも昨年発表されていた(参考)が、例えば2017年の記事ではET-Maxionが何個・ET-Minionが何個という程度しか説明が無かったし、2020年の記事でもSoCのフロアプランの説明があった程度で内部構造の詳細な説明は無かったが、今回はそのアップデートで、より詳細な構造が明らかとなっている。

 ET-Minionのクラスターは「Minion Shire」で分割されており、ET-Minion 8コアをクラスタリングしたブロックを4クラスター(計32コア)で構成されており、ET-SoC-1ではET-Maxion 4コア+Minion Shire 34クラスター(計1088コア)に加えサービスプロセッサーET-Minion 1コアで構成されており、各ブロックがメッシュファブリックで相互接続されている。また、256-bit幅のLPDDR4メモリーコントローラに接続されている(より詳細は記事を参照)。

 OCP(Open Compute Project)のGlacier Point V2での接続例が紹介されているが、Facebookあたりに採用される話が進んでいるのかもしれない。
 Glacier Point V2はFacebookが主導的に開発しており(参考1参考2)、同時期にIntelが旧Nervana "Spring Hill" NNP-I1000をGlacier Point V2対応として発表しており(参考)、FacebookがIntel Nervana NNP-I1000を採用しているものと推定されていた。そのNervanaは2020年にIntelが開発・製造中止を発表しているのでNPP-I1000の置き換える需要がある可能性はある。ET-SoC-1自体は推論にも学習にも対応しているが推論が強調されているのはNervana NNP-I1000(推論専用)の置き換えを狙っているのかもしれない(※もっとも、発表スライド中にある「OCPデータセンター例」の写真に写っているのはFacebookではなくVantageである)。
 そもそも、2017年時点ではEsperantoはET-Maxion 8コア+ET-Minion 4096コア構成を目指していたのが、上述の通りET-SoC-1ではET-Maxion 4コア+Minion 1088コアとなっていることから考えると、具体的な製品計画に合わせてダイ/パッケージサイズや消費電力の制約から仕様が調整された結果かもしれない(もちろん他の制約により変更を余儀なくされた可能性もあるが)。Glacier Point V2はM.2・Dual M.2に対応しているので、拡張カードサイズや消費電力は規格に沿ったものである必要がある。機械学習では学習アクセラレーターに用いられることが多いOAM(OCP Accelerator Module)の場合NVIDIA Tesla A100・Intel Nervana NPP-T100・Intel/HabanaLabs Gaudiの場合いずれも300-400 WクラスのTDPとなるが、Glacier Point V2の場合M.2 22110で最大12W・Dual M.2 22110で20W TDPとなるようだ。ちなみにGlacier Point V2ではDual M.2モジュールを6基搭載でき、1ラックあたり64 Glacier Point V2モジュールを搭載できるため、計384基のET-SoC-1を搭載できる。

 ET-SoC-1自体は推論にも学習にも対応していると述べたが、学習よりも推論に最適化されている。
 例えばET-Minionのベクトル拡張命令はFP16/FP32 256-bit SIMDに対しINT8 512-bit SIMDだからFP32で学習を行う約8倍の性能でINT8で推論を実行できる可能性がある。また、Minion ShireにはTCM/キャッシュが搭載されており、ET-SoC-1全体(Minion Shire x 34)では136MBにもなるが、Minion Shire 1個では4MBしかなくFP16よりもINT8の方が効率的に使えそうである。ちなみに、NNP-I1000でもプロセッサークラスター(ICE)毎に256 KBのTCM(Tightly Coupled Memory)と4MBのSRAMキャッシュが搭載されていたためNNP-I1000を置き換える用途では問題ないという判断なのかもしれない。

Comment

最近の気になった話題(2021年第15週)

2021-04-18 | 興味深かった話題

NVIDIA "Grace"

NVIDIA、GTC 21の基調講演でデータセンタCPU「Grace」を発表 - マイナビ
NVIDIA Graceとは ArmベースAI専用CPUの実力 - ITmedia
NVIDIA Announces CPU for Giant AI and High Performance Computing Workloads - NVIDIA
Grace CPU - NVIDIA

 詳細が発表されていないため推測の粋を出ないが、個人的な感想としては各種メディアの記事中にある「AI専用CPU」という表現はミスリードではないかと思う。より正確に言えば「(NVIDIA GPUで)AI(処理を高効率で動作させる)専用のCPU」で、"Grace" CPU単体での演算性能は高くないのが実態ではないかと思う。

 例えばビデオゲームがそうだがCPUがGPUに処理の大部分をオフロードするワークロードは存在し、Neural Network処理もそのひとつである。実際、NVIDIAは"Grace"発表のプレゼンテーション中でGPU-CPU-メモリー間のデータ転送について言及したのみで、CPUコア単体の性能やFLOPS/TOPS性能には一切触れていない。恐らくCPU単体でのNeural Network処理性能はAVX-512搭載Intel Xeonの方が圧勝で、CPU + GPU構成で高性能を発揮するのだろうと推測する。

 そもそも、NVIDIAは同社のGPUを効率良く動作させるホストCPUを必要としており、例えばNVIDIAはIBMとORNL OLCF-4 Summit(2018年)を組んだ時でもIBMと協業してIBM POWER 9にNVLinkを統合した。今回のNVIDIAの発表スライドに登場したx86 CPUとGraceのメモリーバンド幅比較スライドのような違いはx86 CPUとIBM POWER 9にも存在した。GPUはホストCPUにある程度制約を受けるためNVIDIAがCPU側のコントロールを欲していることは公然の秘密で、x86アーキテクチャーライセンスの取得を狙っていると報じられたり(参考1参考2)、当時独立企業だったArmにエンジニアを100人規模の送り込んでアーキテクチャー開発に携わったこともある(参考)。
 CPU・GPUを持つIntelがCXL・AMDがCCIXへと舵を切りつつある現状を鑑みても、NVIDIAがNVLinkを統合したCPUを持つ意思があることは想像に難くない。

システム構成

 NVIDIAの発表スライドの趣旨は理解できるのだが、こちらもミスリードがあるように思う。
 x86 CPU + 4x GPUと"Grace" CPU + 4x GPU構成でのメモリーバンド幅の比較の図が示されているが、x86の構成でGPU-Memory間の帯域が64 GB/sに制限されているのは~2019年頃のPCIe Gen 3 x16(16 GB/s)が4 リンクである。"Grace"が登場すると見られる2023年時点であればPCIe Gen 5 x16(63 GB/s。4リンクで252 GB/s)も使える。もちろん、PCIe Gen5でもNVLinkとの優劣が引っ繰り返るわけではないが、2019年頃の規格と2023年の新製品とを比較して「30倍」と主張することはフェアとは言えない。
 また、いずれの場合もCPU-GPU間接続がボトルネックとなるのであまり関係ないが、CPUソケット数を増やすとCPU-Memory間の帯域も増えるので1 socket構成と4 socket構成とを比較することもフェアなのか判断に迷うところである。

 下の表はNVIDIA発表資料に合わせて別の構成を比較したものである。2023年のx86構成はIntel Xeon "Sapphire Rapids"をモデルとしているが、恐らくAMD Zen4世代Epyc "Genoa"やZen5世代Epycでも可能と思われるが趣旨がズレるので割愛する。OLCF-4 SummitはノードあたりPOWER9 x 2ソケット・NVIDIA V100 x 6 GPUだったりと変則的だが、2018年のシステムとしては"Grace"に近い傾向を見せていることが解る。
 ちなみに、筆者の知る限りLPDDR5Xなどという規格は存在しないため、過去にLPDDR3/4→LPDDR3X/4Xで起こったことがLPDDR5で踏襲された場合を想定しておりバンド幅の概算と思われる(もしLPDDR5Xが4266 MHzならx512構成で546 GB/sである)。

  NVIDIA Presentation Reference
CPU x86 "Grace" OLCF-4 Summit
POWER 9
x86
Year ???? 2023 2018 2023
# of CPU sockets 1 4 2 2
# of GPU modules 4 4 6 4
4x GPU-VRAM (GB/sec) HBM2E
8000
HBM2E
8000
HBM2
900 x 6 GPUs
5400
HBM2E
8000
CPU-Memory (GB/sec)
(per socket)
DDR4-3200 x 8ch
200
LPDDR5X 4266 x 512-bit
500
DDR4-2100 x 8ch
135
DDR5-4800 x 8ch
307
CPU-GPU (GB/sec) PCIe Gen 3 x16
16
NVLink 4.0
500
NVLink 2.0
300
PCIe Gen5 x 16
63
GPU-Memory (GB/sec) PCIe x16 x 4-links
64
NVLink x 4-links
2000
NVLink x 6-links
270
PCIe x16 x 4-links
252

"Grace" SoCの謎

 上述の通り、"Grace"とは「NVIDIA GPUでAI処理を高効率で動作させる専用のCPU」と推定され、その内部構成は説明されていないため幾つかの疑問点が存在する。

 まずCPUコアについてだが、処理をGPUにオフロードする前提と思われるためNeoverse N2(Cortex-A78)相当ではないかと想像する。
 NVIDIAの発表スライド中にある画像を参考にすると12x7のメッシュで接続された84コアのように見えるが、恐らく実態に即していないため、概ね80コア+冗長用コアが搭載されるものと思われる。
 NVIDIAは過去にDenver/Denver2/Carmelという独自設計のArmv8コアを開発してきたが、NVIDIA自身が"Grace"のCPUについて「Next-Generation Arm Neoverse Cores」と表現しているため恐らくArm純正のNeoverse V1かNeoverse N2と思われるが判然としない。上述の通り"Grace"が「NVIDIA GPUでAI処理を高効率で動作させる専用のCPU」だとすればNeoverse N2ではないかと想像する。ちなみにNeoverse V1は最大96コア・Neoverse N2は最大128コアである。

 最も不思議なのがメモリー構成である。
 上述の通りNVIDIAの発表スライド中にある画像が恐らく実態に即していない理由がこれで、LPDDR5X with ECCだとしているにも関わらず、恐らく画像の構成ではECCが考慮されていない。
 LPDDRメモリーはスマートフォンなどモバイルを想定しているため筆者はECC構成の実例を見たことは無いが、ECCの仕組みは単純なのでコントローラー側さえ対応すれば実現は可能である。一般的なPCのECCの場合ではメモリーはx8 configのDRAMを8個並べた64-bitインターフェースに、ECC用にDRAMを1個追加した72-bitインターフェースで1チャンネルを構成している。仮に64-bit/8-bytesのデータを読み/書きする場合は8-bitずつ8チップに対し読み/書きされるわけだが、この各チップの0~7ピン・8チップ分をXORしたものがECCで1-bit誤りを検出できる(訂正:筆者の勘違いのため訂正いたします。ECCでのエラー検出はパリティーではなくハミング符号による1-bitエラー検出・修正でした)。つまり、ECCを実現するには対応コントローラーと必要なチャンネル数/メモリーチップのコンフィグ+1個のメモリーが必要となる。
 LPDDRメモリーでは1パッケージで2チップが搭載されインターフェースは64-bitが一般的である。例えばLPDDR1~LPDDR3の場合では1チップがx32コンフィグで1パッケージに2チップが搭載されて64-bitが構成されている。そこから計算するとNVIDIA発表スライド中の構成では64-bit x 8パッケージ = 512-bitであろうと想像できる。事実、上述のバンド幅の比較では1 CPUあたり500 GB/sのメモリーバンド幅を実現するとされているが、恐らく512-bit程度の幅がないと実現できない(もしLPDDR5Xが4266 MHzならx512構成で546 GB/sである)。NVIDIAが何bit単位でチャンネルやECCを構成するのか不明だが、恐らく少なくとも1パッケージのLPDDR5Xメモリーは追加されると思われる。

 最大の謎がネットワークインターフェースである。
 筆者の想像では旧MellanoxのConnectX-7ネットワークアダプターがSoCに統合されると思われるが、いかんせんNVIDIA発表スライドではまったく登場しなかったため、どのような構成になるのか不明である。
 NVIDIAが買収した旧Mellanoxのネットワークアダプターはネットワークを介したGPU-GPU間接続=GPUDirectに対応しており、NVIDIA発表資料中の4 CPU + 4 GPU構成以上にスケールさせるためにも旧Mellanoxのネットワークアダプターの採用は必然と思われるが、"Grace"に統合されるのかGraceとPCIeで接続されるのかは分からない。もっとも、ConnectX-7系とArm CPUを統合した最新SoC=BlueField-3の場合だと恐らくConnectX-7は巨大なせいでArm CPUコアは16コア止まりだから、"Grace"のCPUコアが64~128コアに達するようであればConnectX-7はPCIe外付される可能性が高そうに思われる。

NVIDIA "Atlan"

NVIDIA Unveils NVIDIA DRIVE Atlan, an AI Data Center on Wheels for Next-Gen Autonomous Vehicles - NVIDIA

 報道を見る限り、"Atlan"の注目度は"Grace"より低かったように見える。もっとも、2023年登場の"Grace"に対し2026年登場の次々世代の車載SoCということで雲を掴むような話なので仕方がないのかもしれない。

 しかし、筆者にはNVIDIA GPU/車載SoCに旧Mellanox ネットワークアダプター/DPUやArmサーバーCPU搭載SoCの追加によって、CPU/GPU/ネットワークの共通したIPを搭載し共通のソフトウェアスタックを利用可能な多様なプラットフォーム構成の実現が可能になるように思う。実際、"Atlan"の発表でNVIDIAが出したイメージ画像は「Ampere-Next GPU」「Grace-Next CPU」「BlueField DPU」と既存の他のプラットフォームのIPをSoCとして統合したものだ。
 下記の表はCPU/GPU/Networkingの各種IPの搭載比率を◎/○/△/N/A(非搭載)で表現したものである(※製品の世代毎に変化するので、あくまでもコンセプトである)。Server SoCは"Grace"に始まるファミリー、Automotive SoCはTegra/Xavierファミリー、DPUは旧MellanoxのBlueFieldファミリーのことで、同じIPを比率を変えて統合することで多様な製品を作り分けていることが解る。

  CPU GPU
(GeForce/Tesla)
Networking
(ConnectX)
Domain Specific
Discrete GPU
(GeForce/Tesla)
N/A N/A High band-width memory
Server SoC
(probably > 64-core CPU)
N/A High band-width memory
NVLink
Automotive SoC
(Tegra/Xavier)

(8-12-core CPU)

(192 - 2048 CUDA cores)
ASIL-D Safety, CAN Networking
DPU
(BlueField)

(8-16-core CPU)

(planned)

(up-to 400GbE)
 

 

Comment