NCCL 是英伟达的 GPU 集合通信库,提供 all-reduce、all-gather 等优化原语,用于单机和多机训练。
openucx/ucc
面向 HPC 与 AI 负载的统一集合通信库与 API,支持 CPU、GPU 及硬件加速器上的集合操作。
- Star
- 322
- Fork
- 132
- 未关闭 Issue
- 103
- 最近提交
- 前天
这是什么?
UCC 是一个集合通信操作的库与 API。集合通信指并行程序在多个进程之间进行的数据交换,例如 allreduce 和 broadcast,用于协调计算。它面向 HPC、AI/ML 和 I/O 负载,试图通过统一接口服务多种编程模型和运行时。
该库提供非阻塞集合操作、可一次初始化多次调用的重复性操作,以及灵活的资源分配模型,并将硬件集合操作作为设计的一等公民。UCC 基于 UCX 的 UCS 工具库构建,支持的传输与后端包括 InfiniBand、RoCE、共享内存、SHARP、CUDA、NCCL、RCCL 和 MLX5。
在 Open MPI 中,UCC 可作为集合通信组件使用,并可通过 mpirun 参数为 MPI 和 OpenSHMEM 程序启用。项目使用 autotools 构建,依赖 UCX;CUDA 和 HIP 支持为可选项。
核心功能
- 01支持多种编程模型的非阻塞集合操作。
- 02可一次初始化、多次调用的重复性集合操作。
- 03通过 SHARP、InfiniBand、RoCE 和 MLX5 支持硬件集合通信。
- 04支持基于 CUDA、NCCL、HIP 和 RCCL 的 GPU 集合通信。
- 05可通过运行时参数与 Open MPI 和 OpenSHMEM 集成。
适用场景
- 加速多节点 HPC 应用中的 allreduce 和 broadcast。
- 在 InfiniBand 或 RoCE 网络上使用 GPU 集合通信进行分布式 AI/ML 训练。
- 为 Open MPI 或 OpenSHMEM 程序启用 UCC 作为集合通信后端。
快速上手
- 1
克隆仓库并进入目录
- 2
生成构建脚本
./autogen.sh - 3
使用 UCX 安装路径进行配置
./configure --prefix=<ucc-install-path> --with-ucx=<ucx-install-path> - 4
编译库文件
make
使用前须知
- 需要先构建并安装 UCX。
- README 仅说明从源码构建,没有提供包管理器安装方式。
收录于专题
标签
常见问题
- ucc 是什么?
- 面向 HPC 与 AI 负载的统一集合通信库与 API,支持 CPU、GPU 及硬件加速器上的集合操作。 UCC 是一个集合通信操作的库与 API。集合通信指并行程序在多个进程之间进行的数据交换,例如 allreduce 和 broadcast,用于协调计算。它面向 HPC、AI/ML 和 I/O 负载,试图通过统一接口服务多种编程模型和运行时。
- ucc 可以免费使用吗?用的什么许可证?
- ucc 以 BSD-3-Clause 许可证开源。用于商业产品前,请先确认许可证条款。
- ucc 还在维护吗?
- 活跃维护中。ucc 最近一次提交是在 2026年11月5日。
- ucc 适合用来做什么?
- 加速多节点 HPC 应用中的 allreduce 和 broadcast。 在 InfiniBand 或 RoCE 网络上使用 GPU 集合通信进行分布式 AI/ML 训练。 为 Open MPI 或 OpenSHMEM 程序启用 UCC 作为集合通信后端。
- ucc 怎么安装和运行?
- 克隆仓库并进入目录 生成构建脚本: ./autogen.sh 使用 UCX 安装路径进行配置: ./configure --prefix=<ucc-install-path> --with-ucx=<ucx-install-path> 编译库文件: make
- 在哪里获取 ucc?
- 源代码和安装说明在 GitHub 上:https://github.com/openucx/ucc
概要由 AI 根据项目 README 生成;GitHub 数据每日更新。
相关项目
开源 CUDA 学习笔记与代码合集,包含 200 多个内核,涵盖 HGEMM、FP8/FP4 GEMM 与 Flash-Attention。
基于 C++20 的头文件库,以 NumPy 风格的张量表达式在 NVIDIA GPU 或多线程 CPU 上进行数值计算,支持可选的内核融合。
基于 Kubernetes 的分布式 AI 模型训练与 LLM 微调平台,支持 PyTorch、JAX、XGBoost 等框架。
FlashAttention 官方实现,一种节省显存的精确注意力计算内核,用于 GPU 上 Transformer 模型的训练与推理。