笠原一輝のユビキタス情報局

AI特化設計になったNVIDIA Blackwell、並列性を向上する仕組みが強化

NVIDIAのBlackwellことNVIDIA B200 Tensor Core GPU、中央に二つのダイが実装され、その上下にHBM3eメモリが実装されている

 NVIDIAは3月18日~3月20日(米国時間)の3日間に渡り、同社のAIやデータセンター向け半導体などに関する話題を扱うフラグシップ年次イベント「GTC」を、米国カリフォルニア州サンノゼのサンノゼコンベンションセンターにおいて開催した。基調講演の中で、新しいAI/データセンター向けGPUアーキテクチャ「Blackwell」が発表され、その最初の製品として「NVIDIA B200 Tensor Core GPU」(以下B200)、「NVIDIA GB200 Superchip」(以下GB200)の2つを今年(2024年)中に投入する計画を明らかにした。

 翌3月19日には、そうしたBlackwellの詳細を説明するセッションが行なわれ、さらなるBlackwellの詳細が明らかになっている。本記事ではそうしたBlackwellに関するアップデートに関しての狙いなどを解説していく。

内部マイクロアーキテクチャの詳細は未公開だが、「Hopperからは大きく変わっている」とNVIDIA

NVIDIA 上席副社長(SVP)ヨナ・アルベン氏。GeForceの時代からGPUの設計をリードするGPUアーキテクト

 今回NVIDIAはBlackwellの概要は明らかにし、スペックなどは公開したが、その内部のアーキテクチャ(マイクロアーキテクチャ)に関してはほとんど何も語っていない。

 NVIDIA GPUアーキテクトである上席副社長(SVP)ヨナ・アルベン氏によれば「BlackwellのマイクロアーキテクチャはHopperとは完全に異なっているが、現時点ではまだ詳細はお話しできない」と述べ、BlackwellはHopperとは完全に異なるマイクロアーキテクチャを採用していると説明している。

 Blackwellのアーキテクチャの概要を一言でまとめると、2つのダイが1パッケージにまとめられているという点にある。ただし、どのようなチップレット技術(2Dなのか2.5Dなのか、3Dなのか)は一切明らかにされていない。

 強調されているのは、いわゆる一般的なチップレットとは異なり、1つ1つのダイサイズを小さくすることで歩留まりを向上させるということが目的ではなく、現在の製造技術で製造できる中ではほぼ限界に近いダイサイズのチップを2つパッケージに封入されているということ。

 つまり、チップレットを歩留まりや製造の効率、設計上のメリットなどを考えてこうしているのではなく、シンプルに性能を向上させたかったので、2つのチップを1つのパッケージに封入しているというわけだ。

 この点は、製造の効率も考慮にいれて、十数個のダイを1つのパッケージに封入しているAMDの「Instinct MI300」シリーズとの設計思想の違いを感じる部分だ。どっちが良い悪いとかではなく、最初の発想の違いだ。AMDの方が製造時の効率などを考えればよりスマートなやり方ではあるが、性能向上という観点で考えればNVIDIAのようなやり方にも理はある。

 なお、1つのパッケージに2ダイになっているが、ソフトウェア的には1つのパッケージが1つのGPUであり、ソフトウェアからは1つのGPUとしてしか認識されない。つまり外から見ると、1つのダイだけで構成されている従来のGPUと同じに見えるということだ。

FP64の性能は32%の性能向上にとどまるが、Tensorコアを利用した精度では性能が2.5倍と大きく向上

NVIDIA GB200 Superchipのモックアップ、今回発表された製品の中ではこのGB200に搭載されているB200だけがフルスペックのB200となる

 NVIDIAは3月19日に公開した新しい資料「NVIDIA Blackwell Architecture Technical Brief」の中で、そうしたBlackwellの演算性能など、詳細なスペックを明らかにした。

 なお、Blackwellのそれらのスペックは、NVIDIA GB200 Superchip(以下GB200)という、Grace CPUが1つ、Blackwell GPUが2つという製品のもの。以下の表のBlackwell(NVIDIA B200 TensorCore GPU、以下B200)のスペックは、公開されたGB200のスペックを半分にしたものだ(フルスペックのBlackwellは、GB200にしか搭載されていないため)。

【表1】B200とH100の違い
Blackwell(フルスペック)Hopper(H100 SXM)
プロセスノードTSMC 4NPTSMC 4N
ダイ/パッケージ21
FP6445TFLOPS34TFLOPS
TF32(Tensorコア)2.5PFLOPS989TFLOPS
FP16/BF16(Tensorコア)5PFLOPS1979TLOPS
FP8/FP6(B200のみ)/INT8(Tensorコア)10PFLOPS3958TFLOPS
FP4(Tensorコア)20PFLOPS
GPUメモリ192GB(HBM3e)80GB(HBM3)
GPUメモリ帯域幅8TB/s3.35TB/s
NVLink第5世代第4世代
NVLink帯域幅1.8TB/s(双方向)900GB/s(双方向)
NV-Switch利用時最大スケールアップ数576256
TDP1200W700W

 発表時の内容から追加されているのは、FP64、TF32(Tensorコア)、FP16/BF16(Tensorコア)の3つの項目だ。

 これを見ると分かるとおり、Tensorコアのスパース性を利用して演算する場合の性能は軒並み大きく上がり、TF32(Tensorコア)、FP16/BF16(Tensorコア)、FP8/INT8(Tensorコア)はいずれも2.5倍になっている。

 しかし、FP64では32%上がっているのみで、Ampere世代(A100)からHopper世代(H100)では3.5倍になっているのと比べると、向上幅はかなり小さい。今回のBlackwellは、どちらかと言えば一般的なHPCよりも、AIの処理にフォーカスされて設計されたことが伺い知れる。

 今回のBlackwellでは「第2世代Transformer Engine」と呼んでいる新しいTensorコアが、TF32、FP16、BF16、FP8、INT8など従来製品でサポートされていた精度に加えて、FP6やFP4が導入されている。

 こうしたFP6やFP4などの精度サポートは、精度が正確性に有意な影響を与えないAI推論で有効な手法で、精度を下げれば下げるほど、演算性能は高まることになるので、大きな意味がある。

 ただ、公開されたFP6の性能はFP8と同じで性能の向上にはつながっていない。それに対してFP4では性能が倍になるため、推論時に性能を引き上げたいと考えるならFP4の採用を検討するのが良さそうだ。

フルスペックのB200はTDP 1,200W

NVIDIA ハイパースケール・HPC担当副社長 イアン・バック氏、なおバック氏はCUDAの開発者でもある

 もう1つの注目点はTDPだ。GB200に採用されているBlackwellフルスペックのB200は1,200Wになっており、H100 SXM(DGXなどに採用されていた専用モジュール)の700Wと比較して500Wも増えているのだ。

 NVIDIA ハイパースケール・HPC担当副社長 イアン・バック氏によれば、今回発表されたBlackwellにはTDPの違いで3つのグレードの製品が用意されている。

【表2】B200(GB200採用)、B200(DGX B200やHGX B200に採用)、B100(HGX B100に採用)のスペック
B200(GB200版)B200(DGX/HGX版)B100(HGX版)Hopper(H100 SXM)
ダイ/パッケージ2221
FP6445TFLOPS40TFOPS30TFOPS34TFLOPS
TF322.5PFLOPS2.2PFLOPS1.8PFLOPS989TFLOPS
FP16/BF16(Tensorコア)5PFLOPS4.5PFLOPS3.5PFLOPS1.979PFLOPS
FP8/FP6/INT8(Tensorコア)10PFLOPS9PFLOPS7PFLOPS3.958PFLOPS
FP4(Tensorコア)20PFLOPS18PFLOPS14PFLOPS
GPUメモリ最大192GB(HBM3e)最大192GB(HBM3e)最大192GB(HBM3e)80GB(HBM3)
GPUメモリ帯域幅8TB/s8TB/s8TB/s3.35TB/s
NVLink第5世代第5世代第5世代第4世代
NVLink帯域幅1.8TB/s(双方向)1.8TB/s(双方向)1.8TB/s(双方向)900GB/s(双方向)
TDP1,200W1,000W700W700W

 GB200に採用されているフルスペックのB200は、前述の通り1,200WのTDPになっている。それに対してDGX B200やHGX B200に採用されているB200は、TDPが1,000Wになっており、それに合わせてフルスペックのB200に比べてクロック周波数や演算器の数などが少し下げられていると考えられる(どのように調整しているかは非公表)。性能はフルスペックのB200に比べて若干下げられており、FP64では45TFLOPSが40TFLOPSに、TF32(Tensorコア)では2.5PFLOPSが2.2PFLOPSにといずれも約13%性能が低下している。

 さらに、下位モデルとしてB100という製品も用意される。バック氏によればいずれも2ダイ/1パッケージは同様(その証拠にメモリ帯域や容量などはB200と変わらない)で、700Wという従来のH100と同じTDPに合わせて何らかの調整を行なっており、やはりクロック周波数や演算器の数などで調整されていると考えられる。

 このB100では、H100 SXMに比べるとFP64の数字は劣っているが、Tensorコアを利用した演算では上回っている、そうした位置づけの製品だと考えられる。

 なお、NVIDIAのバック氏は「今回発表したのは3つのグレードだが、今後別の構成が登場する可能性もある」と述べ、将来的に1ダイのバージョンがローコスト版として登場したりなど、さまざまな製品バリエーションの可能性があると示唆した(念のためだが、バック氏は具体的なバリエーション例には言及していない、1ダイ版の例は筆者の予想)。

パッケージの内部でも、スケールアップでも大規模モデルでの並列処理の効率を高めることを目指しているのがBlackwell

アルベン氏が示した概念図。左の図が従来のTransformerモデルでのGPUでの実行、それを4つのGPUでEP:Expert Parallelism、TP:Tensor Parallelismに分割して実行するようにするのをさらに2分割することでより効率よく実行できるようにする。そうしたより並列性を高めるという考え方でBlackwellは設計されている

 NVIDIAのGPUアーキテクトであるアルベン氏は、前述のように内部マイクロアーキテクチャに関しては具体的な説明はなにもしなかったが、ちょっとしたヒントだけはくれた。

 2つのGPUダイを1つのパッケージに封入している。1つのパッケージはソフトウェアから見ると1つのGPUにしか見えないので、基本的なプログラミングモデルは何も変わらない。ただし、NVIDIA GPUの場合、こうしたハードウェアの進化による違いは、すべてCUDAが吸収していくので、ソフトウェアをプログラムするプログラマーからすると大きな変更を加える必要がないということに変化はないということだ。

 今回アルベン氏が示した概念図は、いわゆるTransformerモデル(GPTのような大規模言語モデルなどに使われているモデルのこと)で学習を行なう場合にどのように並列実行していくかを示したものだ。Transformerモデルでは、MoE(mixture of experts)と呼ばれる手法を使って並列性を高めることが行なわれている。

多数のGPUを使って並列実行する場合、演算以外の負荷が高くなっている

 NVIDIAのバック氏は「MoEで演算をする場合、1つのGPUがほかのGPUの処理が終わるまで待つということが発生する。また、複数のGPUでデータのやりとりを行なったりすることに、GPUの処理能力の60%を消費している」と述べ、大規模に並列化されたGPUにおいてそうした「無駄」が生じており、それを削減することに大きな意味があると述べた。

 NVIDIAのアルベン氏はそうしたMoEのTransformerモデルを演算する時の並列性の向上に言及し、そうした新しいTransformerモデルの並列性向上手法(EP:Expert Parallelism、TP:Tensor Parallelism)をさらに2分割することで、Blackwellのようなより並列性が高くなっている製品ではAI学習がさらに効率よく演算でき、かつGPU同士の通信を減らして演算効率を上げることが可能になると説明した。

第5世代のNVLinkに対応したNV Switch

 今回NVIDIAはパッケージの内部で2つのダイを封入することでパッケージレベルでの並列性を上げる仕組みを採用したほか、第5世代NVLinkという双方向での帯域幅が倍になる仕組みを採用することで、スケールアップ時の並列性も高めている。

 その上で、そうした新しいソフトウェアのトレンドにも対応することで、ハードウェアのレベルでも、ソフトウェアのレベルでも並列性を高めてより効率よくAI学習を実行したようにしたのがBlackwellの狙いだと考えられるのではないだろうか。