翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
コレクティブコミュニケーションの初期化の改善
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 を拡張するため、それらを適切に呼び出し、お客様の設定に基づいてコードパスを切り替える必要があります。
最適化コードパスに加えて、プロセスグループのバックエンドも変更して、プロセス内の復旧をサポートします。