用語と基礎
大規模モデルのトレーニングでは、通常、単一マシンの 8 GPU ホストを使用してクラスターを形成します。モデルには、8*{A100、A800、H100、H800} が含まれます。以下は、一般的な 8*A100 GPU ホストのハードウェア トポロジです。
PCIe スイッチ チップ
PCIe をサポートする CPU、メモリ、ストレージ (NVME)、GPU、ネットワーク カードなどのデバイスは、PCIe バスまたは専用の PCIe スイッチ チップに接続して相互接続を実現できます。
現在、PCIe 製品には 5 世代あり、最新は GenXNUMX です。
NVLink
定義
Wikipedia によると、NVLink は Nvidia が開発した有線ベースのシリアル マルチレーン近距離通信リンクです。PCI Express とは異なり、デバイスは複数の NVLink で構成でき、デバイスは中央ハブの代わりにメッシュ ネットワークを使用して通信します。このプロトコルは 2014 年 XNUMX 月に初めて発表され、独自の高速シグナリング相互接続 (NVHS) を使用します。
要約すると、NVLink は、同じホスト内の異なる GPU 間の高速相互接続方法です。これは、パケットの送信を成功させ、より高いパフォーマンスを提供し、PCIe の代わりとして機能する短距離通信リンクです。複数のレーンをサポートし、リンク帯域幅はレーン数に応じて直線的に増加します。同じノード内の GPU は、NVIDIA 独自のテクノロジーを利用して、NVLink を介してフルメッシュ方式 (スパインリーフ アーキテクチャに類似) で相互接続されます。
進化: 世代 1/2/3/4
主な違いは、NVLink あたりのレーン数とレーンあたりの帯域幅にあります (提供されている数値は双方向の帯域幅です)。
例:
A100: 2 レーン/NVSwitch * 6 NVSwitch * 50GB/秒/レーン = 600GB/秒の双方向帯域幅 (300GB/秒の単方向)。注: これは、XNUMX つの GPU からすべての NVSwitch への合計帯域幅です。
A800: 4 レーン削減され、8 レーン * 50GB/秒/レーン = 400GB/秒の双方向帯域幅 (200GB/秒の単方向) になります。
監視
DCGM メトリックに基づいてリアルタイムの NVLink 帯域幅を収集できます。
NVスイッチ
一般的な 8*A100 GPU ホスト ハードウェア トポロジについては、下の図を参照してください。
NVSwitch は、独立した外部スイッチではなく、GPU モジュール内にカプセル化された NVIDIA スイッチ チップです。
以下は、Inspur の実際のマシンの画像です。100 つのボックスは XNUMX つの AXNUMX GPU を表し、右側の XNUMX つの厚いヒートシンクは NVSwitch チップを覆っています。
NVLink スイッチ
NVSwitch はスイッチのように聞こえますが、実際には同じホスト内の GPU を接続するために使用される GPU モジュール上のスイッチ チップです。
2022 年に NVIDIA はこのチップを、ホスト間で GPU デバイスを接続するように設計された NVLink スイッチと呼ばれる実際のスイッチとしてリリースしました。名前は混同されやすいです。
HBM(高帯域幅メモリ)
Origin
従来、GPU メモリと通常のメモリ (DDR) はマザーボードに搭載され、PCIe 経由でプロセッサ (CPU、GPU) に接続されています。これにより、PCIe で速度のボトルネックが発生し、Gen4 では 64GB/秒、Gen5 では 128GB/秒になります。これを克服するために、一部の GPU メーカー (NVIDIA だけではありません) は、複数の DDR チップを積み重ねて GPU とパッケージ化しています。これにより、各 GPU は PCIe スイッチ チップを経由せずに独自のメモリとやり取りできるため、速度が大幅に向上します。この「高帯域幅メモリ」は HBM と略されます。HBM 市場は現在、SK Hynix や Samsung などの韓国企業が独占しています。
Evolution: HBM 1/2/2e/3/3e
Wikipedia によると、AMD MI300X は 192TB/s の帯域幅を持つ 3GB HBM5.2 構成を使用しています。HBM3e は HBM3 の拡張バージョンで、速度は 6.4GT/s から 8GT/s の範囲です。
帯域幅単位
大規模 GPU トレーニングのパフォーマンスは、データ転送速度に直接関係します。これには、PCIe 帯域幅、メモリ帯域幅、NVLink 帯域幅、HBM 帯域幅、ネットワーク帯域幅などのさまざまなリンクが関係します。ネットワーク帯域幅は通常、ビット/秒 (b/s) で表され、通常は単方向 (TX/RX) を指します。他のモジュールの帯域幅は、一般的にバイト/秒 (B/s) またはトランザクション/秒 (T/s) で表され、通常は双方向帯域幅の合計を指します。帯域幅を比較するときは、これらの単位を区別して変換することが重要です。
典型的な8A100/8A800ホスト
Host Topology: 2-2-4-6-8-8
- 2 つの CPU (およびそれぞれのメモリ、NUMA)
- 2 つのストレージ ネットワーク カード (分散ストレージへのアクセス、インバンド管理など)
- 4 つの PCIe Gen4 スイッチ チップ
- 6個のNVSwitchチップ
- 8 GPU
- 8枚のGPU専用ネットワークカード
次の図はより詳細な図を示しています。
ストレージ ネットワーク カード
これらは PCIe 経由で CPU に直接接続されます。その目的は次のとおりです。
トレーニング データの読み取りやチェックポイントの書き込みなど、分散ストレージからのデータの読み取りと書き込み。
通常のノード管理、SSH、監視など。
公式の推奨は BF3 DPU を使用することですが、帯域幅が要件を満たしていれば、どのソリューションでも機能します。コスト効率の高いネットワークには RoCE を使用し、最高のパフォーマンスを得るには IB を使用します。
NVSwitch ファブリック: ノード内フルメッシュ
8 つの GPU は、NVSwitch ファブリックとも呼ばれる 6 つの NVSwitch チップを介してフル メッシュ構成で接続されています。フル メッシュ内の各リンクの帯域幅は、n * bw-per-nvlink-lane です。
NVLink100 を使用する A3 の場合、レーンあたり 50GB/秒なので、フルメッシュ内の各リンクは 12*50GB/秒 = 600GB/秒 (双方向)、単方向は 300GB/秒になります。
縮小版の A800 では、12 レーンから 8 レーンに縮小されるため、各リンクは 8*50GB/s = 400GB/s (双方向)、単方向は 200GB/s になります。
nvidia-smi topo を使用してトポロジを表示する
以下は、8*A800 マシン上の nvidia-smi によって表示される実際のトポロジです (ネットワーク カードはペアで結合され、NIC 0~3 が結合されています)。
GPU 間 (左上の領域): すべて NV8 であり、8 つの NVLink 接続を示します。
NIC 間:
同じ CPU: NODE では、NUMA を越える必要はないが、PCIe スイッチ チップを越える必要があることを示します。
異なる CPU の場合: SYS。NUMA を越える必要があることを示します。
GPU と NIC 間:
同じ CPU 上、同じ PCIe スイッチ チップ下: NODE。交差する PCIe スイッチ チップのみを示します。
同じ CPU 上ですが、異なる PCIe スイッチ チップの下にある NODE。これは、PCIe スイッチ チップと PCIe ホスト ブリッジが交差していることを示します。
異なる CPU の場合: SYS、交差する NUMA、PCIe スイッチ チップ、および最長距離を示します。
GPU トレーニング クラスター ネットワーキング: IDC GPU ファブリック
GPU ノード相互接続アーキテクチャ:
コンピューティングネットワーク:
GPU ネットワーク インターフェイス カード (NIC) は、ラック上部のスイッチ (リーフ) に直接接続されています。これらのリーフ スイッチは、フル メッシュ トポロジでスパイン スイッチに接続され、ホスト間 GPU コンピューティング ネットワークを形成します。このネットワークの目的は、異なるノード上の GPU 間でのデータ交換を容易にすることです。各 GPU は、PCIe スイッチ チップを介して NIC に接続されます: GPU <–> PCIe スイッチ <–> NIC。
ストレージネットワーク:
CPU に直接接続された 2 つの NIC は、主にデータの読み取り/書き込み操作と SSH 管理のために別のネットワークにリンクされています。
RoCE と InfiniBand:
AI に必要な高いパフォーマンスを実現するには、コンピューティング ネットワークとストレージ ネットワークの両方で RDMA が必要です。現在、RDMA オプションは 2 つあります。
RoCEv2: パブリック クラウド プロバイダーは通常、8*6Gbps 構成の CX8 などの 100 GPU ホストにこのネットワークを使用します。パフォーマンス要件を満たしながら比較的安価です。
InfiniBand (IB): 同じ NIC 帯域幅で RoCEv20 よりも 2% 以上優れたパフォーマンスを提供しますが、価格は XNUMX 倍です。
データリンク帯域幅ボトルネック分析:
主要なリンク帯域幅は図に示されています。
ホスト内 GPU 通信: 双方向帯域幅 600GB/秒 (単方向 300GB/秒) の NVLink を利用します。
ホスト内 GPU から NIC への通信: 双方向帯域幅 4GB/秒 (単方向 64GB/秒) の PCIe Gen32 スイッチ チップを使用します。
ホスト間 GPU 通信: データ転送には NIC を使用します。国内の A100/A800 モデルの主流の帯域幅は 100Gbps (単方向 12.5GB/s) であるため、ホスト内通信に比べてパフォーマンスが大幅に低下します。
- 200Gbps (25GB/s): PCIe Gen4 の単方向帯域幅に近づきます。
- 400Gbps (50GB/s): PCIe Gen4 の単方向帯域幅を超えます。
したがって、400Gbps では PCIe Gen400 のパフォーマンスを最大限に活用する必要があるため、これらのモデルで 5Gbps NIC を使用することはあまり効果的ではありません。
典型的な 8H100/8H800 ホスト
GPU ボード フォーム ファクターには 2 種類あります。
- PCIe Gen5
- SXM5: より高いパフォーマンスを提供します。
H100 チップレイアウト:
H100 GPU チップの内部構造は次のとおりです。
4nmプロセス技術。
下の行は、合計双方向帯域幅が 18GB/秒 (4 レーン * 900GB/秒/レーン) の 18 個の Gen25 NVLink レーンで構成されています。
中央の青いセクションは L2 キャッシュです。
側面には GPU メモリとして機能する HBM チップが搭載されています。
ホスト内ハードウェア トポロジ:
A100 8 GPU 構造に似ていますが、次の違いがあります。
NVSwitch チップの数が 6 個から 4 個に削減されました。
CPUへの接続はPCIe Gen4 x16からPCIe Gen5 x16にアップグレードされ、双方向帯域幅は128GB/sになりました。
ネットワーキング:
A100 と似ていますが、標準構成が 400Gbps CX7 NIC にアップグレードされています。そうしないと、PCIe スイッチと NVLink/NVSwitch 間の帯域幅のギャップがさらに大きくなります。
一般的な 4*L40S/8*L40S ホスト
L40S は、2023 年にリリース予定のコスト効率に優れた多機能 GPU の新世代で、A100 の競合製品として位置付けられています。大規模な基礎モデルのトレーニングには適していませんが (後述)、他のほぼすべてのタスクを処理できると宣伝されています。
L40SとA100の構成と機能の比較
L40S の主な特徴の 100 つは、市場投入までの時間が短いことです。つまり、注文から納品までの期間が A800/A800/H64 に比べて大幅に短くなります。これは、FPXNUMX と NVLink の削除など、技術的な理由と非技術的な理由の両方によるものです。
HBM の生産能力 (および高度なパッケージング) に依存しない GDDR6 メモリの使用。
コストが低い理由はいくつかの要因によるもので、後ほど詳しく説明します。
主なコスト削減は、特定のモジュールや機能の削除、またはより安価な代替品の使用により、GPU 自体からもたらされると考えられます。
PCIe Gen4 スイッチのレイヤーの排除など、システム全体のコストが節約されます。4x/8x GPU と比較すると、システム コンポーネントの残りのコストはほぼ無視できるほどです。
L40SとA100のパフォーマンス比較
以下は公式のパフォーマンス比較です。
パフォーマンス: 1.2 倍から 2 倍 (特定のシナリオによって異なります)。
消費電力: 40 台の L100S ユニットは、XNUMX 台の AXNUMX とほぼ同じ電力を消費します。
L40S ホストの公式推奨事項は、4 個ではなく 8 個の GPU を搭載した 4 台のマシンであることに注意してください (この理由は後で説明します)。したがって、比較は通常、40 台の 8L100S ユニットと 200 台の XNUMXAXNUMX ユニットの間で行われます。さらに、さまざまなシナリオでの多くのパフォーマンス向上には、ネットワークが XNUMXGbps RoCE または IB ネットワークである必要があるという大きな前提条件があります。これについては次に説明します。
L40S システムアセンブリ
推奨アーキテクチャ: 2-2-4
A100 の 2-2-4-6-8-8 アーキテクチャと比較すると、公式に推奨されている L40S GPU ホスト アーキテクチャは 2-2-4 です。単一マシンの物理トポロジは次のようになります。
最も顕著な変更点は、CPU と GPU 間の PCIe スイッチ チップが削除されたことです。NIC と GPU は両方とも、CPU の内蔵 PCIe Gen4 x16 (64GB/s) に直接接続されています。
- 2 CPU (NUMA)
- 2 つのデュアルポート CX7 NIC (各 NIC 2*200Gbps)
- 4 つの L40S GPU
さらに、いずれかの CPU に直接接続されたデュアル ポート ストレージ NIC が 1 つだけ提供されます。
この構成では、各 GPU に平均 200 Gbps のネットワーク帯域幅が提供されます。
非推奨アーキテクチャ: 2-2-8
図に示すように、4 つの GPU を搭載した 8 台のマシンと比較すると、5 つの GPU を搭載した XNUMX 台のマシンでは XNUMX つの PCIe GenXNUMX スイッチ チップを導入する必要があります。
PCIe Gen5 スイッチ チップ 10,000 個の現在の価格は 2 ドル (未検証) と言われており、XNUMX 台のマシンに XNUMX 個のチップが必要なので、コスト効率が悪いです。
PCIe スイッチを製造しているメーカーは 1 社のみであり、生産能力が限られており、リードタイムが長くなります。
GPU あたりのネットワーク帯域幅が半分になります。
ネットワーキング
公式の推奨事項は、4Gbps RoCE/IB ネットワークと組み合わせた 200 GPU モデルです。
データリンク帯域幅のボトルネックの分析
同じ CPU で 40 つの LXNUMXS GPU を例として使用すると、次の XNUMX つのリンク オプションが考えられます。
- 直接CPU処理:
パス: GPU0 <–PCIe–> CPU <–PCIe–> GPU1
帯域幅: 双方向帯域幅 4GB/秒 (単方向 16GB/秒) の PCIe Gen64 x32。
CPU 処理のボトルネック: 未定。
- CPU処理のバイパス:
パス: GPU0 <–PCIe–> NIC <– RoCE/IB スイッチ –> NIC <–PCIe–> GPU1
帯域幅: 双方向帯域幅 4GB/秒 (単方向 16GB/秒) の PCIe Gen64 x32。
GPU あたりの平均帯域幅: 各 GPU には単方向の 200 Gbps ネットワーク ポートがあり、これは 25 GB/秒に相当します。
NCCL サポート: NCCL の最新バージョンは L40S に適合されており、デフォルトの動作ではデータを外部にルーティングしたり戻したりします。
この方法は時間がかかるように見えますが、NIC とスイッチが 200Gbps RoCE/IB ネットワークで適切に構成されている場合、最初の方法よりも高速であると報告されています。このネットワーク アーキテクチャでは、十分な帯域幅があれば、同じマシン内にあるか、同じ CPU の下にあるかに関係なく、任意の XNUMX つの GPU 間の通信帯域幅とレイテンシは一定です。これにより、クラスターの水平スケーリングが可能になります。
コストとパフォーマンスの考慮事項:
GPU マシンのコストは削減されます。ただし、ネットワーク帯域幅の要件が低いタスクの場合、NVLINK のコストは実質的にネットワークに転嫁されます。したがって、L200S によるマルチ GPU トレーニングのパフォーマンスを最大限に活用するには、40Gbps のネットワークが不可欠です。
方法 2 における帯域幅のボトルネック:
同じホスト内の GPU 間の帯域幅のボトルネックは、NIC の速度によって決まります。推奨される 2*CX7 構成でも、次のようになります。
- L40S: 200Gbps (単方向NIC速度)
- A100: 300GB/秒 (単方向 NVLINK3) == 12x200Gbps
- A800: 200GB/秒 (単方向 NVLINK3) == 8x200Gbps
L40S の GPU 間帯域幅は A12 NVLINK より 100 倍遅く、A8 NVLINK より 800 倍遅いため、データ集約型の基礎モデル トレーニングには適していないことがわかります。
テストの考慮事項:
前述のように、単一の 4 GPU L40S マシンをテストする場合でも、最適な GPU 間パフォーマンスを実現するには 200Gbps スイッチが必要です。
関連製品:
- NVIDIA MMA4Z00-NS400 互換 400G OSFP SR4 フラットトップ PAM4 850nm OM30 で 3m/OM50 で 4m MTP/MPO-12 マルチモード FEC 光トランシーバ モジュール $650.00
- NVIDIA MMA4Z00-NS-FLT 互換 800Gb/s ツインポート OSFP 2x400G SR8 PAM4 850nm 100m DOM デュアル MPO-12 MMF 光トランシーバー モジュール $850.00
- NVIDIA MMA4Z00-NS 互換 800Gb/s ツインポート OSFP 2x400G SR8 PAM4 850nm 100m DOM デュアル MPO-12 MMF 光トランシーバー モジュール $750.00
- NVIDIA MMS4X00-NM 互換 800Gb/s ツインポート OSFP 2x400G PAM4 1310nm 500m DOM デュアル MTP/MPO-12 SMF 光トランシーバー モジュール $1100.00
- NVIDIA MMS4X00-NM-FLT 互換 800G ツインポート OSFP 2x400G フラットトップ PAM4 1310nm 500m DOM デュアル MTP/MPO-12 SMF 光トランシーバー モジュール $1200.00
- NVIDIA MMS4X00-NS400 互換 400G OSFP DR4 フラットトップ PAM4 1310nm MTP/MPO-12 500m SMF FEC 光トランシーバー モジュール $800.00
- Mellanox MMA1T00-HS 互換 200G Infiniband HDR QSFP56 SR4 850nm 100m MPO-12 APC OM3/OM4 FEC PAM4 光トランシーバー モジュール $200.00
- NVIDIA MFP7E10-N010 互換 10 メートル (33 フィート) 8 ファイバー 低挿入損失 メス - メス MPO トランク ケーブル 極性 B APC - APC LSZH マルチモード OM3 50/125 $47.00
- NVIDIA MCP7Y00-N003-FLT 互換 3m (10 フィート) 800G ツインポート OSFP ~ 2x400G フラットトップ OSFP InfiniBand NDR ブレイクアウト DAC $275.00
- NVIDIA MCP7Y70-H002 互換 2m (7 フィート) 400G ツインポート 2x200G OSFP から 4x100G QSFP56 パッシブ ブレークアウト ダイレクト アタッチ銅線ケーブル $155.00
- NVIDIA MCA4J80-N003-FTF 互換 3m (10 フィート) 800G ツインポート 2x400G OSFP から 2x400G OSFP InfiniBand NDR アクティブ銅線ケーブル、一方の端はフラット トップ、もう一方の端はフィン付きトップ $600.00
- NVIDIA MCP7Y10-N002 互換性のある 2m (7 フィート) 800G InfiniBand NDR ツインポート OSFP から 2x400G QSFP112 ブレイクアウト DAC $200.00