UCX
Overview
UCX is the general-purpose high-performance network transport backend in NIXL. It supports RoCE, InfiniBand, and TCP, making it the default backend for VRAM and DRAM transfers between nodes. UCX is automatically selected when no specific backend is requested and both agents have it initialized.
Installation
UCX is the default transfer backend and is included automatically with the pip install nixl package. For source builds, UCX must be built before NIXL.
Build from Source
NIXL is tested with UCX version 1.22.x.
Replace <cuda install> with the path to your CUDA installation (e.g., /usr/local/cuda) and <gdrcopy install> with the path to your GDRCopy installation if available.
GDRCopy is optional but recommended for maximum GPU memory registration performance. UCX and NIXL work without it, but performance may be reduced for GPU-to-GPU transfers.
See Configuration for build options.
Configuration
Environment Variables
Build Options
When to Use
- GPU-to-GPU transfers via RDMA — UCX leverages RoCE or InfiniBand for high-bandwidth, low-latency GPU memory transfers.
- CPU-to-CPU with InfiniBand or RoCE — Standard high-performance network transport for host memory.
- General-purpose fallback — UCX supports both VRAM and DRAM, making it suitable for most transfer scenarios.