Vengineerの戯言

人生は短いけど、長いです。人生を楽しみましょう!

NVIDIA H100の次を妄想する(その1)

はじめに

NVIDIA H100関連については、既に4回、ブログに書きました。

vengineer.hatenablog.com

vengineer.hatenablog.com

vengineer.hatenablog.com

vengineer.hatenablog.com

今回は、H100の次を妄想します。

Ampere Next Next は、2024年

下図は、NVIDIA Confirms Ampere GPU Successor Arrives in 2022 & Next-Gen After That In 2024 In Its Latest Roadmapから説明のために引用します。2023年のGrace、2024年のBluefield-4、Ampere Next Next、2025年の Grace Next

H100

下記は、H100のWhitePaperからの抜粋です。A100とH100の比較の部分です。

  • TSMC N7 : 4N customized for NVIDIA
  • 826mm2 : 814mm2
  • 54.2B : 80B
  • 400 Watts : 700 Watts
  • L2 Cache : 40MB : 50MB
  • HBM (5120-bit) : HBM2 40GB : HBM3 80GB
  • SM : 108 : 132
  • TPCs : 64 : 66
  • FP32 Cores / SM : 64 : 128
  • FP64 : 3456 : 8448
  • Tensor Cores : 432 : 528
  • FP32 : 6912 : 16896

Silicon die の面積はA100に比べて、ちょっと小さいですが、トランジスタ数は1.5倍。FP32とFP64は倍増以上(SMとTPCの数が増えたので、2倍以上になっている)

全体の性能向上は、下図で分かります。

  • SMs : 108 => 132 で 1.2x
  • New Tensor Core : 2x
  • Transformer Engine : 2x
  • Incresed Frequency : 1.3x

  • SM数が 1.2x だけど、FP32/FP64は SM単位で2倍になっているが、こちらはあまり性能には寄与しない?

  • Tensor Cores 数は、432 => 528 なので1.2倍で、2倍の性能になるの?

Table 2.によると、Tensor Coreの性能そのものが向上したようですね。A100に対して、3倍以上なのに、上記の図では2倍になっているのは何故だろうか?

ここまでで、H100 は A100 に対して、いろいろと改善していることがわかりました。メモリも HBM2からHBM3になり転送レートが2倍になっています。SMやTensor Coreの性能向上でもメモリの転送レートは2倍でOKだったんでしょうかね。

White Paperでは、メモリ容量は A100は40GB、H100は80GBになっています。DGX A100のデータシートによると、GPU Memoryは、320GB total となっているので、1つのA100は40GBですね。あれ、40GBなんだ。。。

NVIDIA A100のデータシートには、40GBと80GBがあるとありました。

説明のために引用します。40GB版に対して、80GB版はメモリ帯域大きいです。。ということは動作周波数は高いと。。。だから、40GB品と比較しているんですね。

再度、H100のWhitePaperからDRAMの部分を切り出しました。HBM2 の場合は、A100の80GB版と同じメモリ転送レートですね。そうなると、A100/80GB版とH100(HBM3)/80GB版のメモリ帯域は、2倍ではなく、1.5倍なんですね。

A100の(HBM2)80GB(PCIe) は1935GB/s で、H100の(HBM2)80GB(PCIe) は、2000GB/s なのでほとんど変わらない。

L2 Cache は、White Paperでは A100は40MB、H100は50MBとなっています。6個のメモリの内、5個のみ使うということ。各メモリに対して、L2は 8MB (A100)、10MB (H100) になっているんですね。

さて、妄想

HBM3の積層メモリは、4層、8層、12層に対応。将来は16層。1層当たりのメモリ容量は8Gbitから32Gbitです。 H100の80GB = 16Gb x 8 = 16GB x 5の構成です。

16Gb品だと、

  • 16Gb x12 = 24GB x 5/120GB
  • 16Gb x16 = 32GB x 5/160GB

32Gb品だと、 - 32Gb x8 = 32GB x 5/160GB - 32Gb x12 = 48GB x 5/240GB - 32Gb x16 = 64GB x 5/320GB

まで可能です。320GBになると、8個のGPUで、2560GB = 2.5TB です。。これは、H100のホスト側のメモリの2TBより多いです。

メモリ容量は、320GBまでいけるということ

2021年4月5日の論文、GPU Domain Specialization via Composable On-Package Architectureでは、Packageについて書いてあります。IntelAMDでもマルチダイですが、NVIDIAはまだSingle die + HBM Memory です。この論文では、HPC用のGPUとDL用のGPUをPackageで変える作戦についてです。

説明のために下記の図を引用します。GPU Moduleとメモリ部を分離し、DL用にはL3 Cache die を2つ追加すると。

この図を見ると、HPC用はL3 Cacheは必要無いようですね。そのために L3 Cache を別 die にして、HPC/DL のコンフィギュレーションを Package にて変更すると。DL用は メモリを 6個から10個にもできます。

HBM3 x 10 だと、現状のH100だと、160GB、8個使いでも128GB。8個のGPUで1TBになります。HBM3メモリが16GBから24GBなら、1.5倍の 1.5TB、32GBなら 2倍の 2TB、48GBなら、3倍の4TB、64GBなら4倍の4TBです。10個のメモリ全部使うと、640GB x 8 = 5120GB/5TB にもなり、ホスト側のメモリよりも多くなっちゃいます。

おわりに

H100の次を妄想しました。計算機をいっぱい入れると、その計算機で使うデータを置くためのメモリが必要です。そのための作戦として、計算機の部分とメモリ(L3 Cache含む)を分ける感じですね。 Intelの Ponte Vecchio も同じように計算機用 die( Compute die)、Cache die (Rambo die)を組み合わせていますね。これと同じ作戦に近いですね。