uccl-project/uccl

UCCL is an efficient communication library for GPUs, covering collectives, P2P (e.g., KV cache transfer, RL weight transfer), and EP (e.g., GPU-driven)

解決する課題

UCCLは、GPU通信ライブラリにおけるパフォーマンスのボトルネックとポータビリティの問題を解決するために設計されています。Nvidia、AMD、Broadcom、AWS EFAなどの異種GPUおよびネットワークハードウェアをサポートする、高性能で柔軟かつポータブルな通信レイヤーを提供し、MLワークロードがNCCLやRCCLのような従来のライブラリよりも高いスループットと低いレイテンシを実現できるようにします。

仕組み

UCCLはGPU用通信ライブラリとして動作し、主に3つのコンポーネントを提供します:

  • UCCL-collective (UCCL-Tran): ソフトウェア定義のトランスポートレイヤーを使用する、NCCL/RCCLのドロップイン・リプレイスメントです。最大256のネットワークパスにわたるパケット・スプレーを採用して混雑を回避し、高度な混雑制御と選択的再送による損失回復を実装しています。
  • UCCL-P2P: 高帯域幅メッセージ転送のためのイニシエーター・ターゲット転送APIを提供し、特にマルチスレッド転送エンジンを備えた次世代800Gbps NIC向けに最適化されています。
  • UCCL-EP: 異なるGPUおよびNICベンダー間で高いパフォーマンスを実現する、エキスパート並列通信(DeepEP互換)のポータブルな実装です。

対象ユーザー

大規模なMLのトレーニングおよび推論に取り組む開発者や研究者、特に異種ハードウェア環境を使用している方や、KVキャッシュ転送やエキスパート並列(MoE)通信などのタスクのためにGPU間通信の最適化を求めている方を対象としています。

ハイライト

  • ドロップイン・リプレイスメント: UCCL-collectiveは、アプリケーションコードを変更することなくNCCL/RCCLを置き換えることができます。
  • 異種サポート: NvidiaおよびAMDのGPU、ならびに様々なNIC(Broadcom, Nvidia, AWS EFA)に対応しています。
  • 高いパフォーマンス: 特定の設定では、AllReduce操作においてNCCLを最大3.7倍上回る性能を発揮します。
  • 幅広い採用: NVIDIA NeMo、AMD TheRock、およびその他の分散推論スタックに統合されています。