siennaxu’s blog

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

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

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

大規模モデルのトレーニングは、できれば1サーバーあたり多数のGPUを搭載したマシンのクラスターで行われることが知られています。前回の記事「GPUコンピューティングの基礎-1」では、GPUネットワークにおける一般的な用語と概念を紹介しました。今回は、引き続き一般的なGPUアーキテクチャについて説明します。

8x NVIDIA A100 GPUノード/8x NVIDIA A800 GPUノード

標準的な8カードA100ホスト・ハードウェア・トポロジー

上記のA100 GPUトポロジー図に示されているように、8個のA100 GPUトポロジーには以下のコンポーネントが含まれます:

  • CPUチップ2枚(および両側の関連メモリ、NUMA):中央演算処理装置は、汎用コンピューティングタスクを担当します。

  • ストレージネットワークカード2枚(分散ストレージへのアクセス用、インバンド管理など):これらのネットワークカードは、分散ストレージへのアクセスに使用されています。

  • PCIe Gen4スイッチチップ4枚:PCIe Gen4はPCIeインターフェイスの第4世代で、より高速なデータ転送レートを提供します。

  • NVSwitchチップ6枚:NVSwitchは、大規模なディープラーニング・ノーデルや並列コンピューティング・タスクの効率的な運用に不可欠な、極めて高速なGPU間直接通信を容易にします。

  • GPU8個:A100 GPUは、並列化された計算を実行する主要な処理ユニットで、特にAIやディープラーニングのワークロードに適しています。

  • GPU専用ネットワークカード8枚:各GPUには専用のネットワークカードがあり、GPU間の通信を最適化し、並列処理タスクの全体的なパフォーマンスを向上させます。

これらの構成要素については、以下のセクションで詳しく説明します。

次の図は、参考のためにより詳細なトポロジー情報を示しています。

NVIDIA DGX A100ホスト(公式8カードマシン)のハードウェアトポロジー

ストレージ・ネットワークカード

GPUアーキテクチャにおけるストレージネットワークカードの位置付けは、主にPCIeバスを介した中央処理装置(CPU)への接続と、分散ストレージシステムとの通信を促進する役割を担っています。以下は、GPUアーキテクチャにおけるストレージネットワークカードの主な目的です:

  • 分散ストレージデータの読み書き ストレージ・ネットワーク・カードの主な機能の1つは、分散ストレージ・システムからのデータの読み書きを効率的に行うことです。これは、分散ストレージからトレーニングデータに頻繁にアクセスし、トレーニング結果をチェックポイント・ファイルに書き込むことが不可欠な、ディープラーニング・モデルのトレーニング・プロセスにおいて極めて重要です。

  • ノード管理タスク:ストレージ・ネットワーク・カードはデータ転送に限らず、ノード管理タスクも含まれています。これには、SSH(Secure Shell)によるリモート・ログイン、システム・パフォーマンスの監視、関連データの収集などのタスクが含まれます。これらのタスクは、GPUクラスタの運用状態の監視と維持に貢献します。

公式にはBF3 DPUが推奨されているが、実際には帯域幅の要件を満たす限り、代替ソリューションを選択することができます。例えば、費用対効果を考えるのであればRoCEを、性能を最大化するのであればInfiniBandを選択することが推奨されます。

NVSwitch ファブリック

フルメッシュネットワークトポロジでは、各ノードは他のすべてのノードに直接接続されています。通常、8個のGPUが、NVSwitchファブリックとも呼ばれる6個のNVSwitchチップを介してフルメッシュ構成で接続されます。

フルメッシュ構造では、各ラインの帯域幅は、n * bw-per-nvlink-laneで表されるNVLinkレーンあたりの帯域幅に依存します。1レーンあたり50GB/秒の帯域幅を持つNVLink3テクノロジーを利用するA100 GPUの場合、フルメッシュ構造における各ラインの合計帯域幅は、12 * 50GB/s = 600GB/秒となります。この帯域幅は双方向であり、データ送受信の両方をサポートするため、単方向の帯域幅は300GB/秒になることに注意する必要があります。

対照的に、A800 GPUはNVLinkレーン数を12から8に減らしています。その結果、フルメッシュ構造では、各ラインの合計帯域幅は8 * 50GB/s = 400GB/sとなり、一方向帯域幅は200GB/sとなります。

以下は、8*A800マシンのnvidia-smiトポロジーです。

8*A800マシン用nvidia-smiトポロジー

    • GPU間の接続(左上領域):

すべてNV8と表記され、8つのNVLink接続を表しています。

    • NICコネクタ:

同じCPUダイ上にある:NUMAを横断する必要はないが、PCIeスイッチチップを横断する必要があることを表しています。

異なるCPUダイ上: SYSと指定され、NUMAをトラバースする必要があることを表しています

同じCPUダイ上で、同じPCIeスイッチチップの下にある:NODEとして識別され、PCIeスイッチチップのみを交差させる必要があることを表しています。

同じCPUダイ上にあるが、同じPCIeスイッチチップの下にはない: NNODEとして指定され、PCIeスイッチチップとPCIeホストブリッジの両方を横断する必要があることを表しています。

異なるCPUダイ上:NUMA、PCIeスイッチチップを横断し、最長距離をカバーする必要があることを表しています。

IDC GPU ファブリック

次の図は、GPUノードの相互接続アーキテクチャを示しています:

GPUノード相互接続アーキテクチャ

コンピュート・ネットワーク

コンピュート・ネットワークは、主にGPUノード間の接続に使用され、並列コンピューティング・タスクの連携をサポートします。これには、複数のGPU間でのデータ転送、計算結果の共有、大規模並列計算タスクの実行調整などが含まれます。

ストレージ・ネットワーク

ストレージ・ネットワークはGPUノードとストレージ・システムを接続するために使用され、大規模データの読み書きをサポートします。これには、ストレージシステムからGPUメモリへのデータのロードや、計算結果のストレージシステムへの書き戻しが含まれます。

AIに求められる高性能を実現するためには、RDMA(Remote Direct Memory Access)がコンピュート・ネットワークとストレージ・ネットワークの両方に不可欠です。2つのRDMAテクノロジーから選択 RoCEv2とInfiniBandの2つのRDMA技術の選択には、費用対効果と優れた性能のトレードオフが含まれ、各オプションは特定のユースケースと予算の考慮事項に対応しています。

パブリック・クラウドサービス・プロバイダーは、8台のGPUインスタンスにそれぞれ8 * 100Gbpsを搭載したCX構成のように、RoCEv2ネットワークを構成に利用することが多いのです。他のオプションと比較すると、RoCEv2 は、性能要件を満たしていれば、比較的コスト効率に優れています。

RoCEとInfinibandの違いについては、InfiniBand vs. RoCE: AIデータセンターのネットワークを選択する方法をご覧ください。

データリンク接続における帯域幅ボトルネック

シングルマシン8カードA100 GPUホスト帯域幅ボトルネック解析

この図では、主要リンクの帯域幅仕様を紹介しています:

  • 同一ホスト上のGPU間の通信:NVLinkを利用することで、双方向の帯域幅は600GB/秒を達成し、一方向の帯域幅は300GB/秒に達します。

  • 同一ホスト上のGPUとそれぞれのネットワークインターフェイスカード(NIC)間の通信:PCIe Gen4スイッチチップを使用し、双方向帯域幅は64GB/秒、一方向帯域幅は32GB/秒に達します。

  • 異なるホスト間のGPU間の通信: データ転送はNICに依存し、帯域幅は使用するNICに依存します。現在、中国のA100/A800モデルで一般的に使用されているNICの主流帯域幅は、片方向で100Gbps(12.5GB/秒)です。そのため、ホスト間通信はホスト内通信に比べてパフォーマンスが大幅に低下することになります。

200Gbps (25GB/s) はPCIe Gen4の一方向帯域幅に近い値を示します。

400Gbps(50GB/秒)はPCIe Gen4の一方向帯域幅を上回ります。

したがって、このタイプの構成で400Gbps NICを使用しても、400Gbps帯域幅を完全に利用するにはPCIe Gen5の性能が必要なため、大きなメリットは得られません。

8x NVIDIA H100/8x NVIDIA H800ホスト

H100ホスト内のハードウェアトポロジー

H100ホストの全体的なハードウェアトポロジーは、A100 8カードマシンとよく似ていますが、主にNVSwitchチップの数と帯域幅のアップグレードに見られます。

H100ホスト内のハードウェアトポロジー

  • 各H100ホスト内には4つのチップがあり、A100構成より2つ数が少ないのです。

  • H100チップは4ナノメートルプロセスで製造され、最下段に18個のGen4 NVLink接続を備え、双方向合計900GB/秒の帯域幅を提供します。

H100 GPUチップ

シングルチップH100 GPU内部論理レイアウト

  • このチップは、最先端の4ナノメートル・プロセスで製造されており、高度な製造技術を示しています。

  • チップの最下段は18個のGen4 NVLink接続で構成され、18レーン×25GB/レーン=900GB/秒の双方向総帯域幅を提供します。

  • 中央の青い部分がL2キャッシュで、一時データの保存に使われる高速キャッシュです。

  • チップの左側と右側には、グラフィックス・メモリとして機能するHBMチップが搭載されており、グラフィックス処理に必要なデータを格納します。

ネットワーキング

ネットワークに関しては、H100はA100に似ているが、唯一の違いは、標準構成に400GbpsのCX7ネットワークカードが含まれていることです。