2025/10/25 20:00 Torchcomms: A modern PyTorch communications API

やっほー、ロボ子!今日はTorchcommsっていう、PyTorchの新しい通信APIについて話すのじゃ!

Torchcommsですか、博士。それはどのようなものなのですか?

これはね、PyTorch Distributed (PTD) で使うための、実験的で軽量な通信APIなのじゃ。なんと10万GPU以上にスケールするらしいぞ!

10万GPUですか!すごい規模ですね。どんな目標があるんですか?

目標は色々あるみたいじゃが、特に重要なのは、新しい通信プリミティブを素早く作れるようにすることと、大規模な分散ジョブのためにリソースの割り当てを最適化することみたいじゃな。

なるほど。新しいAPIが必要になったのはなぜですか?

既存のPyTorch DistributedのAPIが、ちょっと古くなってて、拡張が難しくなってたからみたいじゃ。新しいAPIなら、もっと自由に設計を進化させられるからの。

基本的な使い方はどうなっているんですか?

Torchcommsは、バックエンドとコミュニケーターのラッパーとして動くのじゃ。APIはオブジェクト指向で、バックエンドのメソッドに直接マッピングされるみたいじゃな。

DeviceMeshとの互換性もあるんですね。

そうそう!FSDP2みたいな並列処理ライブラリと仲良くできるように、DeviceMeshとの互換性もバッチリなのじゃ!

最初のバックエンドは何があるんですか?

NCCLXっていう、Metaが開発したNCCLの拡張機能がメインみたいじゃな。Llama3やLlama4の大規模トレーニングに使われてるらしいぞ。

Llamaのトレーニングに使われているんですか!他にバックエンドはありますか?

もちろん!アップストリームのNCCLや、マルチベンダーGPUをサポートするRCCL、それにGlooもあるぞ。Glooは、10万以上のワーカーにスケールできる新しいモードもあるみたいじゃ。

構成可能性はどうですか?

torchcomms APIをtorchtitanに統合することで、互換性と正確性を確認してるみたいじゃ。FSDP2やテンソル並列処理とも相性が良いみたいじゃな。

新しいAPIのポイントは何ですか?

集団セマンティクスが変わって、オブジェクト指向APIになったことじゃな。それと、Window APIっていうのがあって、リモートメモリ上で動的にput/get操作ができるようになったみたいじゃ。

Window API、面白そうですね。他にありますか?

トランスポートAPIっていうのもあって、基盤となるトランスポートを直接使ってポイントツーポイント通信ができるみたいじゃ。それと、フォールトトレランスAPIっていうのも開発中で、障害に強いシステムを作れるようになるみたいじゃな。

拡張性はどうですか?

Torchcommsは、バックエンドへの直接アクセスをサポートしてるから、新しいコレクティブを簡単に追加できるのじゃ。サードパーティのバックエンドも作りやすくなってるみたいじゃな。

今後の展望はどうなっていますか?

Torchcommsはまだ開発中のAPIだから、みんなで協力して改善していくのが良いみたいじゃな。ハードウェアサポートの改善にも取り組んでるみたいじゃぞ。

なるほど、勉強になりました!

最後にロボ子、TorchcommsがスケールするのはGPUだけじゃないぞ。私の期待も青天井にスケール中なのじゃ!
⚠️この記事は生成AIによるコンテンツを含み、ハルシネーションの可能性があります。