章4 分散型ネットワークコミュニケーションのチューニング
この作品はAIを使って翻訳されている。ご意見、ご感想をお待ちしている:translation-feedback@oreilly.com
現代のAI環境では、GPU、ストレージ、ネットワークインタフェース間のシームレスで低遅延なデータ移動が必須である。本章では、トレーニング向けのNVIDIA Magnum IO(NCCL、GPUDirect RDMA、GDSなど)と、分散推論向けのNIXLについて解説する。現代のGPUやNVL72のようなクラスターのコンテキストにおいて、これらの技術について議論する。これらのライブラリと、それを支える基盤ハードウェアが、超大規模AIシステムに必要な重要な基盤をどのように形成しているかを学ぶことになる。
大規模システムでは、最速のGPUでさえメモリやディスクからの非効率な通信・データ転送によって性能が制限される。本章では、データ転送のスピードアップ戦略、適切なデータシャーディングテクニック、高速ストレージサブシステムとのディレクトリ連携方法、GPU上での通信と計算のオーバーラッピングを実現する高度なパターンについて論じる。通信と計算のオーバーラッピングはAIシステム性能エンジニアリングにおいて頻繁に再検討される共通パターンである。
NVIDIAのIO加速プラットフォーム「Magnum IO」の構成要素(NCCL、GPUDirect RDMA、GPUDirect Storage(GDS))を用いて、コミュニケーションと計算のオーバーラップの重要性を探る。これらのライブラリを活用し、マルチノード・マルチGPU AIシステムの全レイヤーにおいて通信遅延を低減し、CPUオーバーヘッドを削減し、スループットを最大化する方法を示す。
PyTorchのような高レベルAIフレームワークは、これらの低レベルライブラリを利用して計算とコミュニケーションをオーバーラップさせることができる。これらの技術をAIシステムに統合することは、超大規模モデルのトレーニングと、数十億のユーザを抱えるアプリケーションを支える分散推論サーバのスケーリングの両方において、通信とデータパイプラインを加速する包括的なアプローチである。
これらの最適化により、全ての構成要素がピーク性能を発揮するよう調整される。パフォーマンスエンジニアは、GPU利用率と「グッドプット」(有用スループット)を高い水準で維持するため、ネットワークとストレージファブリックを慎重に構成・調整する必要がある。
コミュニケーションと計算のオーバーラップ(パイプライン)
コミュニケーションと計算のオーバーラッピング、すなわちパイプライン化は、大規模な効率的なトレーニングおよび推論システム構築において重要な役割を果たす。これらの環境では、GPUを常に稼働させ、データ待ち時間を最小限に抑えることが重要だ。
主な考え方は、データ転送を進行中の計算と並行して実行し、あるタスクが終了した時点で次の段階に必要な結果が既に処理中か、あるいは既に提供されている状態を確保することだ。PyTorchなどの現代的なフレームワークは非同期操作をサポートしており、集合通信(例:勾配のオールリデュース)が計算タスクと並行して実行できる。これによりGPUのアイドル時間が削減され(図4-1参照)、システム全体のスループットが向上する。
図4-1. 複数のCUDAストリーム0~3での計算と、ホストからデバイス(H2D)およびデバイスからホスト(D2H)間のコミュニケーション ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access