uccl

让 GPU 通信快如闪电,训练推理不再等数据

UCCL 是一个面向 GPU 的高效通信库,专注于解决大规模 AI 训练和推理中的数据传输瓶颈。它覆盖了集合通信(如 AllReduce、AllGather)、点对点通信(如 KV cache 传输、强化学习权重同步)以及专家并行(EP)场景,特别针对 GPU 驱动的高吞吐低延迟通信进行了优化。相比传统通信库,UCCL 在 KV cache 传输和 RL 权重更新等场景下能显著降低延迟,提升多卡协作效率,适合大模型训练、推理加速及分布式推理系统。其核心能力包括灵活的通信原语、GPU 直通技术以及针对特定工作负载的优化,帮助开发者更高效地利用多 GPU 资源。

开源 free 开源模型
访问官网 ↗ GitHub ↗ 文档 ↗
GitHub 星标 ★ 1527
维护状态 活跃
是否开源 是
定价模式 free

项目数据

分类开源模型
开发团队uccl-project
所属国家
定价模式free
价格说明开源通信库,Apache-2.0 许可证,完全免费,可自行部署使用。
访问状态
是否开源是
开源协议Apache-2.0
主要语言C++
技术栈/模型ai,allreduce,amd,broadcom,collective,cuda,gpu,hpc,kvcache,llm,moe,networking,nvidia,p2p,rdma
GitHub 星标★ 1527
30天Star增速
HF 下载量
上线时间2025-01-06 00:00:00
最近更新2026-09-23 00:00:00
维护状态活跃
中文支持
访问方式
移动端支持
综合评分
收录时间2026-08-09
浏览次数3

使用教程

难度:进阶 约 60 分钟 部署方式:库/依赖 6 步

环境要求

  • Linux 环境(apt 包管理,需 sudo 权限)
  • NVIDIA GPU + CUDA 12.8/13.0,或 AMD GPU + ROCm 7.1/6.4
  • Python 环境(用于安装 nanobind 绑定与 UCCL wheel)
  • git、wget 等基础命令行工具

安装与启动步骤

  1. 1克隆仓库

    把 UCCL 源码拉到本地并进入项目目录,后续所有构建命令都在该目录执行。

    git clone https://github.com/uccl-project/uccl.git && cd uccl
  2. 2安装系统依赖

    安装编译所需的 clang/llvm/cmake、RDMA 与 MPI 相关开发库。若使用 docker+wheel 构建则无需执行此步。

    sudo apt update
    sudo apt install linux-tools-$(uname -r) clang llvm cmake m4 build-essential 
                     net-tools libgtest-dev libgflags-dev 
                     libelf-dev libpcap-dev libc6-dev-i386 libpci-dev 
                     libopenmpi-dev libibverbs-dev clang-format -y
  3. 3安装并激活 Conda

    用 Miniconda 准备独立的 Python 环境,安装后激活并初始化 shell,便于后续 pip 安装。

    wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh
    bash ./Miniconda3-latest-Linux-x86_64.sh -b
    source ~/miniconda3/bin/activate
    conda init
  4. 4安装 Python 依赖

    安装构建绑定所需的 python 库:paramiko、intervaltree、pybind11、nanobind。

    pip install paramiko intervaltree pybind11 nanobind
  5. 5编译并安装 UCCL

    build.sh 会自动探测当前环境的 py_version;如需指定版本(如 3.10)可加在平台和模块参数之后。示例为 CUDA 12 + EP。

    bash build.sh cu12 ep --install
  6. 6运行 PyTorch 应用

    构建完成后,在运行 PyTorch 应用时按 README 说明设置相应环境变量以启用 UCCL;具体变量名请以官方文档为准。

如何确认成功

build.sh 带 --install 执行结束无报错,且 pip list 中能看到已安装的 uccl 包,即视为安装成功。

常见问题

Q:如何为指定 Python 版本编译?

A:build.sh 会自动探测当前环境的 py_version;如需针对特定版本编译,在平台和模块参数之后传入版本号,例如 3.10。

Q:ROCm/TheRock 构建时 index url 怎么填?

A:通过 build.sh 的第 4 个参数 rocm_index_url 指定,默认值为 https://rocm.prereleases.amd.com/whl/gfx94X-dcgpu,该默认值不一定适合你的显卡。

Q:用 docker+wheel 构建还需要装系统依赖吗?

A:不需要。README 明确说明使用 docker+wheel 构建时无需要安装 apt 那一组编译依赖。

Q:Python 3.12+ 的 wheel 有什么不同?

A:UCCL 使用 nanobind 做绑定,Python 3.12+ 的 wheel 标记为 cp312-abi3(稳定 ABI),一个 wheel 适用于所有 3.12+ 解释器;更低版本则与解释器版本绑定。

注意事项

  • 默认 build.sh cu12 针对 CUDA 12.8,build.sh roc7 针对 ROCm 7.1;也可用 cu13/roc6 分别指定 CUDA 13.0 或 ROCm 6.4。
  • 为 TheRock 安装 wheel 时需给 pip 提供 index url 并加上 [rocm] extra,例如 pip install --extra-index-url https://rocm.prereleases.amd.com/whl/gfx94X-dcgpu wheelhouse
  • UCCL-collective 可作 NCCL/RCCL 的替代方案,无需修改应用代码,但具体启用方式和环境变量请参考官方文档与示例。

核心亮点

  • 针对 KV cache 传输和 RL 权重同步做了专门优化,延迟更低
  • 支持集合通信、P2P、EP 多种模式,覆盖面广
  • GPU 驱动设计,减少 CPU 参与,提升吞吐

不足之处

  • 文档/社区待观察
  • 生态成熟度不如 NCCL,集成成本可能较高

适用场景

  • 大模型多卡训练时的梯度同步
  • 推理场景下 KV cache 在多个 GPU 间快速传递
  • 强化学习训练中策略权重的高效分发

替代项目

NCCL、Gloo、RCCL

项目介绍

uccl 是基础设施领域的开源项目,由 uccl-project 开发,2025 年首次发布。

在全站 13,090 个收录项目中,它的 GitHub 星标数(1,527)位列前 30%,在基础设施分类中处于中上游。

近 42 天,它的 GitHub 星标从 1,488 增加到 1,527,净增 39。

项目目前处于活跃维护状态,最近一次代码更新于 2026-09-23。开源通信库,Apache-2.0 许可证,完全免费,可自行部署使用。

它主要面向的使用场景是:大模型多卡训练时的梯度同步。同类可对比的替代方案包括 NCCL、Gloo、RCCL。

上一篇:llmgateway

下一篇:desktop

同类项目推荐

freebuff-proxy 开源

聚合多账号,一键接入 OpenAI 兼容 API,轻松管理会话。

[DEPRECATED / UNMAINTAINED] Multi-account gateway. No longer maintained; fork it and···

★ 303 2026-08-20
microduck 开源

用 Rust 造一只会走路的桌面小鸭,快速上手双足机器人。

A Tiny biped duck robot

★ 8684 2026-09-10
soperator 开源

用 Kubernetes 原生方式运行 Slurm,简化 HPC 集群管理。

Run Slurm in Kubernetes

★ 439 2026-08-10
ollama 开源

一条命令本地跑起大模型,免费、私密、不卡顿

Get up and running with Kimi, GLM, MiniMax, DeepSeek, gpt-oss, Qwen, Gemma and other···

★ 181484 2026-08-09