6 ポイント 投稿者 GN⁺ 2025-08-21 | まだコメントはありません。 | WhatsAppで共有
  • GPU は現代の 機械学習 において中核的な役割を担っており、高速な行列積演算に特化した多数の Streaming Multiprocessors(SMs)HBM(高帯域幅メモリ) が組み合わさった構造である
  • GPU の SM は Tensor Core(行列積)と CUDA Core(ベクトル演算)に分かれており、大規模な並列演算と柔軟なプログラミングを支える
  • GPU と TPU は内部構造やネットワーク構成の面で違いがあり、GPU は 汎用性拡張性 が高い一方、最適な性能を引き出すにはより多くの考慮が必要である
  • ノード(Node)内では NVLink および NVSwitch により GPU 間の超高速通信が可能であり、ノード間は InfiniBand などのネットワークで接続され、大規模な分散学習に対応する
  • GPU における 集団演算(Collectives)(例: AllReduce、AllGather など)は、ハードウェア構造やネットワーク階層によって性能が大きく変わり、理論上の帯域幅より実効値は低くなる傾向がある

GPUとは何か?

  • 最新の ML(機械学習)GPU(例: H100、B200)は、行列積演算に特化した数十〜数百個の Streaming Multiprocessor(SM) と高速な HBM メモリ を組み合わせた構成である
  • 各 SM には Tensor Core(行列積)、Warp Scheduler(ベクトル演算)、SMEM(オンチップキャッシュ)がある
  • TPU と異なり、GPU は 100 個以上の SM によって、より柔軟で大規模な並列処理が可能である

SM の詳細構造

  • SM は 4 つの サブパーティション に分かれ、各サブパーティションにはそれぞれ Tensor CoreCUDA Core(ベクトル演算)、Warp Schedulerレジスタファイル などが存在する
  • CUDA Core はベクトル算術演算(SIMD/SIMT)を担当し、Tensor Core は行列積に特化している
  • Tensor Core の FLOPs は圧倒的に大きく、低精度演算では処理速度がさらに向上する
  • 最新 GPU(例: B200)では大型の TMEM が追加され、大容量の Tensor Core 入力をサポートする

CUDA Core の柔軟性

  • GPU の CUDA Core は SIMT(Single Instruction Multiple Threads)モデルを用い、1 つの命令を複数のスレッドに並列実行する
  • 各スレッドは独立した命令ポインタ(プログラムカウンタ)を持ち、条件分岐などの柔軟性を提供するが、ワープ内の命令分岐(divergence)が多いと性能低下が生じる
  • 各 CUDA Core は個別の状態とメモリアクセスの自由度を持つ(TPU は連続したメモリしか扱えない)

スケジューリング/並列性

  • SM は多数の ワープ(最大 64 個)をスケジューリングして同時実行し、各ワープスケジューラは一度に 1 つのプログラムを実行する
  • この構造により、GPU はかなり柔軟でありながら高い同時処理能力を実現する

GPU メモリ構造

  • GPU では HBM が最も大きく、そのほかにも L2/L1(SMEM)/TMEM/レジスタ などのメモリ階層構造を持つ

最新 GPU 仕様の要約

  • SM(Streaming Multiprocessor)数、クロック、メモリ、FLOPs、帯域幅(BW)などはモデルごとに異なる
  • メモリ容量(HBM)や帯域幅、FLOPs(浮動小数/整数/低精度)は世代を重ねるごとに増加している
  • 表(省略)における主な特徴: Blackwell(B200)は HBM 192GB、HBM BW 8.0TB/s、FP8 FLOPs 4.5e15 など
  • 世代ごとにレジスタやオンチップキャッシュ(SMEM)容量、TMEM の追加など、ハードウェアの進化が明確である

GPU/TPU 比較

  • GPU は汎用的で、多数の小型 SM(並列ユニット)としてモジュール化されており、ハードウェア制御が多いため理解や最適化が難しい
  • TPU は少数の大型 Tensor Core と多数のベクトル ALU(VPU)で構成され、単一スレッド制御方式のためハードウェアを単純化し、コスト削減が可能である
  • その結果、TPU ではコンパイラ最適化が必須 であり、GPU は複数カーネルを独立実行できる ため使いやすさが高い
  • 性能/価格 の面では、最近の H200 GPU は TPU v5p と比べて FLOPs/s が 2 倍、HBM が 1.5 倍、価格は約 2.5 倍である
  • TPU は VMEM(オンチップキャッシュ)が多く高速 であり、LLM モデル推論などで大きな利点を持つ可能性がある

GPU ハードウェアクイズ Q&A の要点

  • H100 の fp32 CUDA コアは合計 16,896 個(132 SM x 4 x 32)、B200 は 18,944 個
  • ベクトル演算 FLOPs は H100 で最大 33.5TFLOPs/s 程度で、Tensor Core の行列積 FLOPs(990TFLOPs/s)に比べて 30 倍低い
  • H100 の L1/SMEM とレジスタの合計容量は 66MB、TPU の VMEM は 120MB
  • Bandwidth(帯域幅)と FLOPs の比率(理論上の演算集約度)は H100/B200 ともに 280〜300 程度で TPU と近い

GPU ネットワーキング(通信構造)

ノード/クラスター構造

  • GPU ノード は通常 8 個の GPU で構成され、NVLink(超高速)および NVSwitch(スイッチ)によって Full Bandwidth の直接接続が行われる
  • ノード間 は InfiniBand(Ethernet など)を用いてスケールアウト可能である
  • 最新の(Blackwell)GPU は Node 72 個まで拡張可能な構造である

ネットワーク階層ごとの特徴

  • ノード内部(NVLink 領域): GPU あたり egress 450GB/s(H100)、900GB/s(B200)、NVSwitch あたり最大 1.6TB/s
  • ノード上位(InfiniBand Leaf/Spine): Leaf Switch(8 台)〜Spine Switch(16 台)構成で、GPU〜GPU 間は理論上 400GB/s の Full Bandwidth を維持
  • SuperPod のような大規模アーキテクチャでは 1024 個の GPU(128 ノード)、GB200(72GPU Node)は 9 倍に増幅された帯域幅(3600GB/s)

ネットワーク性能の要点

  • 理論上、ネットワーク構造(Full Fat Tree)はノード〜ノード間でも最大帯域幅を提供するよう設計されている
  • ハードウェアポート制約などにより、1024〜4096GPU へ拡張する際には Spine/Core Switch をさらに追加する階層化方式が使われる
  • Node 内帯域幅(450GB/s)Node 間帯域幅(400GB/s) への切り替えは、集団演算で性能差につながる

集団演算(Collectives)構造

  • AllGather、AllReduce(集約)、AllToAll(分散)などの高水準な集団演算をサポートする
  • Node 内では NVLink による直接接続で最適性能が可能(理論上の B/W)であり、Node〜Node 間は InfiniBand を経由する
  • NVIDIA の NCCL、NVSHMEM ライブラリを活用する

集団演算の性能分析

  • AllGather/ReduceScatter: B/W(H100 基準で 450GB/s)でリング(Ring)方式として実装され、小さなメッセージではツリー(Tree)方式も可能
  • AllToAll: 各 GPU が直接相手 GPU に送信し、B/W を N で割る方式のため、Node 内では理論上 2 倍高速である
  • 実測では AllReduce は 370GB/s 程度で、ハードウェア最大値には届かない
  • TPU と比べると、大容量(数十 MB 〜 GB)になって初めてハードウェアの Peak Bandwidth に近づく

総合まとめとインサイト

  • GPU は汎用性と拡張性が強み だが、ハードウェア/ネットワーク構造に応じて性能最適化の難易度と可観測性は TPU より高い
  • ネットワーキング(Intra-Node/NVLink/InfiniBand/Leaf/Spine など)は大規模学習性能の中核であり、実効帯域幅と理論帯域幅の差に注意が必要である
  • 集団演算とネットワーク構造への理解は 超大規模分散モデルの学習/サービング において必須要素である
  • 実践的なベンチマークとハードウェア詳細構造の理解に基づき、性能ボトルネック区間と最適条件を把握するプロセスが求められる

まだコメントはありません。

まだコメントはありません。