siennaxu’s blog

ここで通信分野と関連する記事を紹介していきます! よろしくお願いいたします。

GPUコンピューティングの基礎-1

FSコミュニティで原文を読む

大規模モデルトレーニングの領域では、多くの場合、8 A100、A800、H100、またはH800のようなモデルを搭載し、場合によっては{4, 8}のような今後のモデルを組み込んだ、シングルマシン8GPUユニットで構成されるクラスタが基盤となっています。L40S のようなモデルを組み込むことも可能です。以下は、8個のA100 GPUを搭載した典型的なホスト内のGPUコンピューティングのハードウェアトポロジーを示しています:

GPUコンピューティングのハードウェアトポロジー

この記事では、描かれた図に基づき、基本的な概念と用語を掘り下げて説明します。

PCIe スイッチチップ

高性能GPUコンピューティングの領域では、CPU、メモリモジュール、NVMeストレージ、GPU、ネットワークカードなどの重要な要素が、PCIe(Peripheral Component Interconnect Express)バスまたは専用のPCIeスイッチチップを介して流動的な接続を確立します。

Gen5を最新とする5世代の進化を誇るPCIeは、デバイス間の効率的な相互接続性を保証します。この継続的な進化は、高性能コンピューティングの形成、データ転送速度の向上、最新のコンピューティング・クラスタにおける相互接続デバイスのシームレスな連携の促進において、PCIeが重要な役割を担っていることを強調しています。

NVLinkの定義

NVLinkは、Nvidiaが開発した高速、ワイヤベースのシリアルマルチレーン通信リンクで す。ウィキペディアにおけるNVLinkの定義は以下の通り:

NVLinkは、Nvidiaによって開発されたワイヤベースのシリアルマルチレーン近距離通信リンクで す。PCI Expressとは異なり、デバイスは複数のNVLinkで構成することができ、デバイスは中央ハブの代わりにメッシュネットワーキングを使用して通信します。このプロトコルは2014年3月に初めて発表され、独自の高速信号相互接続(NVHS)を使用しています。

この技術は、同一ノード上のGPU間のフルメッシュ相互接続をサポートし、複数の世代を経て進化しており、ハイパフォーマンス・コンピューティング・アプリケーションの性能を向上させるために双方向の帯域幅を強化しています。

下図に示すように、NVLinkは4世代をフォローしています。

NVLinkの進化:1/2/3/4世代

  • 接続方法:4チャンネル接続。

  • 帯域幅:最大160GB/秒の双方向総帯域幅を実現。

  • 目的:主にGPU間のデータ転送を高速化し、協調コンピューティングのパフォーマンスを向上させるために設計された。

  • 接続方法: 6チャンネル接続を採用。

  • 帯域幅:双方向の総帯域幅が300GB/sに向上。

  • パフォーマンスの向上:より高速なデータ転送を実現し、GPU間の通信効率を向上。

  • 接続方法: 18チャンネル接続を採用。

  • 帯域幅:双方向の総帯域幅が900GB/sにさらに向上。

  • パフォーマンス向上: チャネル数を増やすことで、より広い帯域幅を提供し、高性能コンピューティングや人工知能アプリケーションの高まる需要に対応します。

NVLink 1.0、NVLink 2.0、NVLink 3.0、NVLink 4.0の主な違いは、接続方法、帯域幅、性能にあります。

NVSwitch

NVSwitchはNVIDIAが開発したスイッチングチップで、ハイパフォーマンス・コンピューティングと人工知能アプリケーション向けに特別に設計されています。その主な機能は、同一ホスト内の複数のGPU間で高速かつ低レイテンシーの通信を提供することです。NVSwitchは、NVIDIAが開発したスイッチング・チップで、特にハイパフォーマンス・コンピューティングと人工知能アプリケーション向けに設計されています。その主な機能は、同一ホスト内の複数のGPU間で高速かつ低レイテンシーの通信を提供することです。

下図は、8カードA100ホストの典型的なハードウェア・トポロジーを示しています。

GPUコンピューティングのハードウェアトポロジー

下の写真は、Inspur NF5488A5 NVIDIA HGX A100 8 GPUアセンブリの側面図です。

写真では、A100の8つのピースが見え、右側の6つの厚いヒートシンクの下にNVSwitchチップがあります。

Inspur NF5488A5 NVIDIA HGX A100

NVLinkスイッチは、NVIDIAが開発した特殊なスイッチングデバイスで、異なるホスト間のGPUバイス間の高性能通信と接続を促進するように設計されています。単一のホスト内のGPUモジュールに統合されるNVSwitchとは異なり、NVLinkスイッチは、分散コンピューティング環境内のGPUをリンクするために特別に設計されたスタンドアロンのスイッチとして機能します。

NVLinkスイッチとNVSwitchを比較すると混乱するように聞こえるかもしれませんが、名前がスイッチを示唆しているように、実際にはNVSwitchはGPUモジュール上のスイッチングチップです。NVIDIAがこのチップを独立したスイッチとして開発し、NVLinkスイッチと正式に命名したのは2022年のことです。

HBM

従来、GPUメモリは、従来のDDR(Double Data Rate)メモリと同様に、マザーボードに物理的に挿入され、PCIeインターフェイスを介してプロセッサ(CPU、GPU)に接続されていました。Gen4の帯域幅は64GB/sで、Gen5では128GB/sに増加します。

この制限に対応するため、(NVIDIAに限らず)いくつかのGPUメーカーは革新的なアプローチを採用しました。複数のDDRチップを積み重ね、高帯域幅メモリ(HBM)として知られるものを形成し、GPUと統合するのです。H100に代表されるこの設計により、各GPUは専用メモリと接続する際にPCIeスイッチチップを通過する必要がなくなります。その結果、この戦略はデータ転送速度を大幅に向上させ、注目すべき桁違いの改善を達成する可能性があります。「高帯域幅メモリ」(HBM)という用語は、この先進的なメモリ・アーキテクチャを適切に表現しています。

HBMの進化:HBM 1からHBM3eへ

HBMの進化:HBM 1からHBM3eへ

帯域幅単位

大規模GPUコンピューティングレーニングの領域では、性能はデータ転送速度に直接かかっており、PCIe帯域幅、メモリ帯域幅、NVLink帯域幅、HBM帯域幅、ネットワーク帯域幅などのさまざまな経路と複雑に関係しています。これらのデータレートを測定する際には、さまざまな帯域幅単位が使用されます。

ネットワーキングの文脈では、データレートは一般的にビット/秒(b/s)単位で表され、送信と受信を区別するために単方向(TX/RX)で指定されることがよくあります。逆に、PCIe、メモリ、NVLink、HBM などの他のモジュールでは、帯域幅は通常、1 秒あたりのバイト数(B/s)または 1 秒あたりのトランザクション数(T/s)で表されます。これらの測定値は、多くの場合、アップストリームとダウンス トリームの両方のデータフローを考慮した双方向の総帯域幅を表しているこ とに注意することが重要です。

したがって、多様なコンポーネント帯域幅を比較・評価する場合、これらの単位を適切に見分け、変換することが極めて重要である。これにより、大規模GPUレーニング性能の最適化に不可欠なデータ転送能力を包括的に理解することができます。