テクニカルガイド

集団的コミュニケーションとNCCL

集団通信は、GPU のグループがデータを交換および結合する方法であり、NCCL はこれらの交換を驚異的に高速にする NVIDIA のライブラリです。

2分の読書最終更新日

概要

Operations like all-reduce are the heartbeat of distributed training, synchronizing gradients across every GPU each step.

ディープダイブ

大規模なモデルをトレーニングするとは、各 GPU が独自のデータ スライスで勾配を計算し、次のステップに進む前にすべての GPU が結合された結果に同意する必要があることを意味します。その調整は集合的な操作で行われます。all-reduce は GPU 全体の値を合計し、全員に結果を与えます。 all-gather は、各 GPU の部分をすべての GPU 上の完全なコピーに収集します。ブロードキャストは 1 つの GPU のデータを残りの GPU に送信します。 reduce-scatter は結合してから分割します。 NCCL (NVIDIA Collective Communications Library) は、リングやツリーの All-Reduce などのトポロジを意識したアルゴリズムを使用して、サーバー内の GPU 間およびサーバー間でこれらを効率的に実装します。ノード内の NVLink とノード間の InfiniBand または RoCE を利用し、PyTorch DDP、FSDP、DeepSpeed、および Megatron の通信バックボーンです。

技術的な洞察

リング オール リデュースは古典的なアルゴリズムです。GPU が論理リングを形成し、データが循環するチャンクに分割されるため、各ステップが通信と重複し、総転送帯域幅が最適化され、GPU 数にほぼ依存しません。多くのノードでは、ツリーベースのアルゴリズムにより結果が階層的に結合されるため、待ち時間が短縮されます。 NCCL はトポロジを自動検出し、最適なアルゴリズムを選択し、NVIDIA SHARP を使用して削減計算をネットワークにオフロードして、リンクを通過する必要があるデータを半分にします。

戦略的影響

費用と予算

アーキテクチャの決定により、パフォーマンスと運用コストが何年にもわたって推進されます。

より明確な判決

技術教育は、チームが最新のスタックだけでなく、適切なスタックを選択するのに役立ちます。

品質管理

より良いエンジニアリングの選択により、本番環境での信頼性に関するインシデントが減少します。

集団コミュニケーションと NCCL の未来

クラスターが数十万の GPU にスケールアップされるにつれて、通信がトレーニング時間の大半を占めるようになるため、集合ライブラリがホット フロンティアになります。より深いネットワーク内コンピューティング (削減を行うスイッチ)、遅延を隠すためのコンピューティングと通信のより適切なオーバーラップ、および移動バイトを縮小する低精度のコレクティブが期待されます。ベンダー間の取り組みやイーサネット ベースの RDMA が代替製品を推進するなど、競争も激化しています。一方、NCCL は NVLink、NVSwitch、および新興の光ファブリックとの統合を強化し続けています。

現実世界の実装

PyTorch DistributedDataParallel で all-reduce を使用して、すべての GPU でトレーニング ステップごとに勾配を同期する

FSDP または DeepSpeed ZeRO のオールギャザーおよびリデュース散乱を使用して、オプティマイザーの状態をシャーディングし、オンデマンドでパラメーターを収集します

トレーニング実行の開始時に、1 つの GPU から他のすべての GPU に初期モデルの重みをブロードキャストする

NVLink および InfiniBand 経由でリング オール リデュースを使用して、マルチノード GPU クラスター全体で高い帯域幅を維持する

リスクとガードレール

1 つのベンチマークを最適化すると、より広範なシステムの弱点が隠れる可能性があります。

インフラストラクチャとメンテナンスのコストは過小評価されがちです。

システムが複雑になるにつれて、セキュリティと可観測性のギャップが拡大する可能性があります。

実装ロードマップ

1

実装前にレイテンシ、品質、コストの目標を定義します。

2

現実的な負荷とデータ条件でのベンチマーク。

3

エラー、ドリフト、ユーザーへの影響を計測器で監視します。

4

スケーリングの前に、ロールバックとインシデント対応のパスを準備します。

探検を続けましょう

Free newsletter

Get the daily AI briefing

Three verified AI stories every weekday morning, written in plain English. Free forever, no ads.

One email each weekday. Unsubscribe in one click. We never sell or share your address.

Test yourself

Take the Collective Communication and NCCL quiz

Instant feedback on every answer, and a shareable certificate with a verifiable ID once you pass a course.

クイズを開始する

Support free AI education. AI Understanding is a 501(c)(3) nonprofit — no ads, no paywall, ever. Make a donation

次のガイド

オンラインとオフラインの機能提供の偏り

よくある質問

What is Collective Communication and NCCL?

集団通信は、GPU のグループがデータを交換および結合する方法であり、NCCL はこれらの交換を驚異的に高速にする NVIDIA のライブラリです。 all-reduce のような操作は分散トレーニングの心臓部であり、ステップごとにすべての GPU にわたる勾配を同期します。

all-reduce 操作は分散トレーニングで何を実現しますか?

All-reduce は、すべての GPU にわたる値を合計 (または結合) し、同一の結果をすべての GPU に分配します。これにより、勾配が同期されます。

NCCL の頭字語は何ですか?

NCCL は、高速なマルチ GPU およびマルチノードの集団操作を実装する NVIDIA Collective Communications Library です。

リングオールリデュースが帯域幅最適とみなされるのはなぜですか?

データをチャンク化し、論理リング上で断片を渡すことにより、すべてのリンクが同時に使用され、総転送量は GPU の数にほぼ依存しなくなります。

各 GPU のデータをすべての GPU が保持する完全なコピーに収集する集合的な操作はどれですか?

All-gather は、すべての GPU から個別の部分を収集し、すべての GPU 上で完全なセットを組み立てます。これは、FSDP などのシャード トレーニングで頻繁に使用されます。

NVIDIA SHARP は集合的な運用について何を行っていますか?

SHARP はネットワーク内コンピューティングを実行し、スイッチ内で削減の一部を実行するため、リンクを通過するデータが減り、コレクティブが高速化されます。