Repolode
openucx

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. 1

    克隆仓库并进入目录

  2. 2

    生成构建脚本

    ./autogen.sh
  3. 3

    使用 UCX 安装路径进行配置

    ./configure --prefix=<ucc-install-path> --with-ucx=<ucx-install-path>
  4. 4

    编译库文件

    make

使用前须知

  • 需要先构建并安装 UCX。
  • README 仅说明从源码构建,没有提供包管理器安装方式。

收录于专题

标签

#collectives#hpc#mpi#gpu#infiniband#distributed-computing#cuda#deep-learning#openshmem#pgas

常见问题

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。

学习资源#cuda#gpu#tensor-cores
1.2万+17 本周1275CudaGPL-3.0更新于 前天