# UCX(Unified Communication X) モダンな高帯域・低レイテンシネットワーク向けに設計されたオープンソースの通信フレームワーク。GitHub: https://github.com/openucx/ucx InfiniBand・RoCE・TCP 等の多様なトランスポートを統一的な API で扱い、GPUDirect RDMA もサポートする。[[NIXL]] のデフォルトバックエンドとして KV Cache 転送に利用される。 ## アーキテクチャ UCT と UCP の2層で構成される。 ``` アプリケーション(NIXL 等) ↓ UCP(Unified Communication Protocol) ← ビジネスロジック実装層 ↓ UCT(Unified Communication Transport) ← ハードウェア抽象化レイヤー(トランスポート API) ↓ InfiniBand / RoCE / TCP / SHM / ... ``` - **UCT(Unified Communication Transport)**: ハードウェアを抽象化するトランスポート API。個々のネットワークデバイスやプロトコルの差異を隠蔽する - **UCP(Unified Communication Protocol)**: ビジネスロジックを実装する上位層。タグマッチング・RDMA オペレーション・アトミック処理等を提供する ## 環境変数による動作制御 | 環境変数 | 役割 | 設定例 | |---|---|---| | `UCX_TLS` | 使用するトランスポートを選択する | `UCX_TLS=rc,cuda_copy` | | `UCX_NET_DEVICES` | 使用するネットワークデバイスを選択する | `UCX_NET_DEVICES=mlx5_0:1` | ## NCCL との比較 [[NCCL]] が [[集合通信]](AllReduce・AllGather 等の多対多通信)に特化して設計されているのに対し、UCX は任意の2点間通信(SEND/RECV・RDMA PUT/GET)を含む汎用通信フレームワークである。[[NIXL]] が KV Cache の点対点転送に UCX を採用する理由はこの汎用性にある。 ## ベンチマークでの確認 [[SAKURA Internet]] の [[高火力 PHY]] チームによる検証(H100 HGX 2台、400 Gbps RoCEv2)で、NIXL + UCX の正しい構成によりノード間 GPU 転送が 50 GB/s(400 Gbps 物理リンク上限)まで到達することを確認した。ソフトウェア層のオーバーヘッドが十分小さいことが示された。 ## 関連 - [[@2025__さくらのナレッジ__分散推論基盤の基礎技術]] — UCX の構成と NIXL でのベンチマーク結果 - [[NIXL]] — UCX を標準バックエンドとして利用するLLM推論向け転送ライブラリ - [[NCCL]] — 集合通信に特化した別の通信ライブラリ(用途が異なる) - [[集合通信]] — NCCL が対象とする多対多通信パターン