microsoft/msccl

Microsoft Collective Communication Library

何を解決するか

MSCCLは、分散機械学習における汎用的集約通信アルゴリズムの非効率性に対処します。異なるハードウェアトポロジー(アクセラレータの接続方法)やバッファサイズは、それぞれ異なる遅延と帯域幅を持つため、万能なアプローチではパフォーマンスを最大化できません。MSCCLは、特定のハードウェア構成に最適化された通信パターンを実装・実行できるようにします。

動作方法

NVIDIAのNCCLを基盤として構築されたMSCCLは、カスタム集約通信アルゴリズムを実行するランタイムフレームワークです。MSCCLツールキットと連携し、高レベルのドメイン固有言語(MSCCLang)とコンパイラを提供します。コンパイラはこれらのカスタムアルゴリズムをXML形式の中間表現(IR)に変換し、MSCCLランタイムがバックエンドで実行します。カスタムアルゴリズムが提供されない場合、システムは自動的に標準のNCCL汎用アルゴリズムにフォールバックします。

対象ユーザー

このツールは、複数のアクセラレータ(例:Azure NDv4上のGPU)を用いた大規模分散AIトレーニングに取り組む研究者やエンジニア向けです。ハードウェア間接続のパフォーマンスを最大限に引き出す必要がある方々に最適です。

特徴

  • カスタムプログラマビリティ:特定のトポロジーとバッファサイズ向けに最適化された通信アルゴリズムの作成を可能にします。
  • パフォーマンス向上:特定の構成(例:8xA100 NVLinkシステム)では、通常のNCCLと比較して2〜3倍の高速化を達成できます。
  • 統合プロファイリング:NPKitを内蔵し、送信および受信操作の詳細なタイムラインを提供して伝送のボトルネックを特定します。
  • PyTorch統合:PyTorch環境内でデフォルトのNCCLをMSCCLに置き換えるためのパスを提供します。

関連

  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト