# 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 が対象とする多対多通信パターン