大規模 AI モデルの時代において、単一の GPU で AI モデルをトレーニングすることは、すでに過去のものとなっています。 数百または数千の GPU を相互接続して、1 つの GPU のように見えるスーパーコンピューティング システムを形成する方法が、業界で話題になっています。
NVIDIA DGX SuperPOD は、次世代データセンター人工知能 (AI) アーキテクチャです。AI モデルのトレーニング、推論、高性能コンピューティング (HPC)、ハイブリッド アプリケーションにおける高度なコンピューティングの課題に必要なレベルのコンピューティング パフォーマンスを提供し、予測パフォーマンスを向上させて解決までの時間を短縮するように設計されています。NVIDIA の 100 世代製品 (H200→GH200→GBXNUMX) の GPU 相互接続アーキテクチャ ソリューションについて学びましょう。
H256 をベースに 100 個の GPU を搭載した SuperPod を構築する
DGX A100 の場合、各ノードの 200 つの GPU は NVLink と NVSwitch を介して相互接続され、異なるサーバーは XNUMXGbps IB HDR ネットワークを使用して直接相互接続されます (注: サーバー間のネットワークは IB ネットワークまたは RoCE ネットワークのいずれかを使用できます)。
DGX H100 の場合、NVIDIA はサーバー内の NVLink をサーバー間に拡張し、NVLink ネットワーク スイッチを追加します。NVSwitch はサーバー内のスイッチングを担当し、NVLink ネットワーク スイッチはサーバー間のスイッチングを担当します。256 個の H100 GPU で構成される SuperPod (つまりスーパーコンピューティング システム) は、NVSwitch と NVLink ネットワーク スイッチに基づいて構築できます。256 個の GPU カードの Reduce 帯域幅は依然として 450 GB/秒に達しますが、これは単一のサーバー内の 8 個の GPU カードの Reduce 帯域幅とまったく同じです。
ただし、DGX H100 の SuperPod にも問題があります。DGX H72 ノード間の NVLink 接続は 100 個しかなく、SuperPod システムは非収束ネットワークではありません。下の図に示すように、DGX H100 システムでは、72 つの NVSwitch が NVLink ネットワーク スイッチを介して他の DGX H100 システムに接続するために 72 個の NVLink 接続を予約しています。3.6 個の NVLink 接続の合計双方向帯域幅は 8TB/s ですが、100 個の H7.2 の合計双方向帯域幅は XNUMXTB/s です。したがって、SuperPod システムでは NVSwitch で収束が発生します。
H256 ベースの 100 GPU を搭載した SuperPod
GH256 と GH200 NVL200 をベースにした 32 GPU SuperPod の構築
2023年、NVIDIAは生成AIエンジンDGX GH200が量産に入ったと発表しました。GH200はH200 GPU(H200とH100の主な違いはメモリサイズと帯域幅性能にあります)とGrace CPUを組み合わせたものです。200つのGrace CPUは4.0つのH200 GPUに対応します。GPU間のNVLink4.0接続に加えて、GHXNUMXはGPUとCPU間のNVLinkXNUMX接続も使用します。
GH200 は、NVLink 900 の 4.0GB/s の超大規模ネットワーク帯域幅機能によりコンピューティング能力を向上させます。サーバー内部では銅線ソリューションを使用できますが、サーバー間では光ファイバー接続を使用できます。256 個の GH200 チップの単一クラスターの場合、コンピューティング側の 200 つの GH800 は 800 つの 100Gbps (各 4.0Gbps は 200GB/s、100 つの NVLink 200 リンクに相当) 光トランシーバーに相当します。GH200 SuperPod と DGX H8 SuperPod の違いは、GH200 では単一ノード内およびノード間の相互接続に NVLink ネットワーク スイッチを使用することです。DGX GH3 は、2 つの GH128 と 32 つの第 36 レベル NVLink ネットワーク スイッチ (各 NVSwitch トレイには 256 つの NVSwitch チップが含まれ、200 個のポートがあります) で構成される 36 レベルの Fat-tree 構造を採用して単一のサーバーを形成します。 XNUMX 台の単一サーバーが XNUMX 台の第 XNUMX レベル NVLink ネットワーク スイッチを介して完全に相互接続され、XNUMX 台の GHXNUMX のスーパーポッドを形成します (収束が起こらないようにするために XNUMX 台の第 XNUMX レベル NVLink ネットワーク スイッチがあることに注意してください)。
GH200 NVL32 はラックレベルのクラスタです。200 つの GH32 NVL32 には、200 個の GH9 GPU と 18 個の NVSwitch トレイ (3.0 個の NVSwitch200 チップ) が搭載されています。32 個の GPU を搭載した GH256 NVL36 スーパーノードを形成する場合、第 XNUMX レベルのサーバ間に XNUMX 個の NVLink ネットワーク スイッチが必要です。
GB576 NVL200 をベースに 72 GPU を搭載した SuperPod を構築する
GH200 とは異なり、GB200 は 1 つの Grace CPU と 2 つの Blackwell GPU で構成されています (注: 単一の GPU の計算能力は B200 と完全に同等ではありません)。GB200 コンピュート トレイは、NVIDIA MGX に基づいて設計されています。2 つのコンピュート トレイには 200 つの GB2、つまり 4 つの Grace CPU と 200 つの GPU が含まれています。GB72 NVL18 ノードには 200 個の GB36 コンピュート トレイ、つまり 72 個の Grace CPU、9 個の GPU、および 18 個の NVLink ネットワーク スイッチ トレイが含まれています (各 Blackwell GPU には 4 個の NVLink があり、各第 144 世代 NVLink ネットワーク スイッチ トレイには 9 個の NVLink ポートがあるため、完全な相互接続を実現するには 72 個 (18*144/9=XNUMX) の NVLink ネットワーク スイッチ トレイが必要です)。
NVIDIAの公式プロモーションによると、200台のGB72 NVL576がSuperPodを形成し、9個のGPUからなるスーパーノードを形成するとのこと。しかし、分析してみると、GB200 NVL72キャビネット内の72台のNVLinkネットワークスイッチトレイはすべて、200台のGB576を接続するために使用されていることがわかります。拡張してより大規模な576層スイッチングクラスターを形成するための追加のNVLinkインターフェイスはありません。NVIDIAの公式写真によると、18個のGPUのSuperPodは、主にScale-Up NVLinkネットワークではなく、Scale-Out RDMAネットワークを介して相互接続されています。NVLink相互接続を介して72個のGPUを備えたSuperPodをサポートする必要がある場合、200台のGBXNUMXごとにXNUMX台のNVSwitchを構成する必要があり、XNUMXつのキャビネットに収まりきりません。
さらに、NVIDIA は、NVL72 にはシングル キャビネット バージョンとデュアル キャビネット バージョンがあり、デュアル キャビネットの各コンピュート トレイには GB200 サブシステムが 576 つだけ搭載されていると公式に発表しました。この場合、デュアル キャビネット バージョンを使用して、NVLink 相互接続を介して 72 GPU の SuperPod をサポートできます。このデュアル キャビネット バージョンの各デュアル キャビネットには、200 個の GB18 と XNUMX 個の NVLink ネットワーク スイッチ トレイが搭載されており、XNUMX 層クラスターの展開ニーズを満たすことができます。次の図に示すように:
GB576 をベースにした 200 個の GPU を搭載した SuperPod
これは、第 256 レベルと第 200 レベルのデバイス数が異なり、576 レベルの NVLink ネットワーク スイッチ相互接続が必要なことを除いて、前世代の 576 H18 完全相互接続構造に似ています。第 144 レベルのポートの半分は 2 個の Blackwell GPU を接続するため、144*72/(18/144) =72 個の NVLink ネットワーク スイッチが必要であり、各 NVL144 には 72 個の NVLink ネットワーク スイッチ トレイがあります。第 XNUMX レベルのポートはすべて第 XNUMX レベルの NVLink ネットワーク スイッチ ポートに接続されているため、XNUMX*XNUMX/XNUMX=XNUMX 個の NVSwitch が必要です。