コレクティブコミュニケーションの初期化の改善 - Amazon SageMaker AI

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

コレクティブコミュニケーションの初期化の改善

NCCL と Gloo は、分散トレーニングプロセス全体で集合オペレーション (全削減やブロードキャストなど) を可能にする基本的な通信ライブラリです。ただし、従来の NCCL と Gloo の初期化では、障害復旧中にボトルネックが発生する可能性があります。

標準復旧プロセスでは、すべてのプロセスが一元化された TCPStore に接続し、ルートプロセスを通じて調整する必要があるため、再起動時に特に問題となるコストのかかるオーバーヘッドが発生します。この一元化された設計では、必須の TCPStore 接続の調整オーバーヘッド、再起動ごとに完全な初期化シーケンスを繰り返す必要がある復旧の遅延、ルートプロセス自体の単一障害点という 3 つの重要な問題が発生します。これにより、トレーニングが初期化または再開されるたびに、コストが高く一元化された調整ステップが課されます。

HyperPod チェックポイントレストレーニングは、これらの調整のボトルネックを排除し、初期化を「ルートレス」およびTCPStoreless."

ルートレス設定

ルートレスを有効にするには、次の環境変数を公開します。

export HPCT_USE_ROOTLESS=1 && \ sysctl -w net.ipv4.ip_local_port_range="20000 65535" && \

HPCT_USE_ROOTLESS: 0 または 1。を使用してルートレスを有効または無効にする

sysctl -w net.ipv4.ip_local_port_range"20000 65535": システムポート範囲を設定する

ルートレスを有効にする例を参照してください

ルートレス

HyperPod チェックポイントレストレーニングは、NCCL および Gloo プロセスグループ用の新しい初期化方法であるルートレスおよび TCPStoreless を提供します。

これらの最適化の実装には、NCCL、Gloo、PyTorch の変更が含まれます。

  • 下位互換性を維持しながら、サードパーティーのライブラリ APIs を拡張して、ルートレスおよびストアレスの NCCL と Gloo 最適化を有効にする

  • プロセスグループのバックエンドを更新して、条件付きで最適化されたパスを使用し、プロセス内の復旧の問題を処理する

  • グローバルグループカウンターを通じて対称アドレスパターンを維持しながら、PyTorch 分散レイヤーでの高価な TCPStore 作成をバイパスする

次のグラフは、分散トレーニングライブラリのアーキテクチャと、チェックポイントレストレーニングで行われた変更を示しています。

次のグラフは、分散トレーニングライブラリのアーキテクチャと、チェックポイントレストレーニングで行われた変更を示しています。

NCCL と Gloo

これらは、集合通信のコア機能を実行する独立したパッケージです。ncclCommInitRank などの主要な APIs を提供し、通信ネットワークを初期化し、基盤となるリソースを管理し、集合通信を実行します。NCCL と Gloo でカスタム変更を行った後、ルートレスとストアレスは通信ネットワークの初期化を最適化します (TCPStore への接続をスキップするなど)。元のコードパスを使用するか、最適化されたコードパスを柔軟に切り替えることができます。

PyTorch プロセスグループのバックエンド

プロセスグループのバックエンド、特に ProcessGroupNCCL と ProcessGroupGloo は、対応する基盤となるライブラリの APIs を呼び出して ProcessGroup APIsを実装します。サードパーティーライブラリの APIs を拡張するため、それらを適切に呼び出し、お客様の設定に基づいてコードパスを切り替える必要があります。

最適化コードパスに加えて、プロセスグループのバックエンドも変更して、プロセス内の復旧をサポートします。