InfiniCCL v0.1.0 发布:一个面向异构集群的统一通信库

在今天的大模型系统中,"通信"已经成为无法绕开的核心问题。

无论是训练还是推理,只要进入多卡、多节点场景,集合通信几乎都会成为系统吞吐、延迟与扩展能力的关键瓶颈。

从 NVIDIA 生态中的 NCCL,到 MPI 系列实现,再到不同国产 AI 芯片厂商各自维护的通信组件——整个 AI 基础设施领域长期面临一个非常现实的问题:

不同硬件平台之间,缺乏统一的通信抽象。

开发者往往需要针对不同硬件、不同 SDK、不同通信后端分别适配。平台切换、后端切换、多节点部署,都会带来大量额外工程复杂度。

而在异构算力越来越普遍的今天,这个问题正在变得更加突出。

近日,InfiniTensor 团队正式发布 InfiniCCL v0.1.0,这也是该项目的首个公开版本

项目目标非常明确:

构建一个统一、跨平台、面向异构 AI 集群的集合通信库,为分布式深度学习与高性能计算场景提供统一通信接口。

从定位上看,InfiniCCL 更像是一个"统一通信抽象层"。

它并不打算替代某一个特定平台的通信实现,而是在更高层提供统一 API、统一运行方式,以及统一的异构集群编排能力,让开发者无需再针对不同硬件平台单独维护一套通信逻辑。

一个"类 NCCL"的统一通信接口

InfiniCCL 当前提供了一套类似 NCCL 的统一 C API。

在现有生态中,开发者熟悉的 AllReduce、AllGather、ReduceScatter、Broadcast 等集合通信操作,本质上都已经形成了一套事实标准。

InfiniCCL 并没有重新设计新的通信模型,而是选择兼容现有开发习惯,在接口层保持统一

这样做的好处非常直接:

  • ✅ 上层框架更容易迁移
  • ✅ 不同平台间共享通信逻辑
  • ✅ 新硬件接入成本显著下降

在我们看来,这种"统一抽象"其实比单纯性能更重要,更好的易用性会大大降低大规模系统中的工程复杂度。

平台与通信后端:自动检测

InfiniCCL v0.1.0 中一个很有意思的设计,是平台与后端自动检测能力

传统通信库部署时,开发者通常需要显式指定平台、后端、节点,才能启用对应的支持。

而 InfiniCCL 在构建与运行阶段,会自动感知

  • 底层加速器类型
  • 可用通信后端
  • 当前运行环境

项目会根据环境自动启用对应平台支持。对于使用者来说,不必再去关注每个异构环境的单独维护部署逻辑,系统管理复杂度大幅降低。

智能集群编排:icclrun

如果说统一 API 是 InfiniCCL 的基础,那么 icclrun 则是这个项目目前最有工程特色的部分之一。

官方将其定义为:Smart Cluster Orchestration Tool

在我们发布的 Releases v0.1.0 中,icclrun 已经不仅仅是一个简单 launcher,它提供了:

  • 自动通过 SSH 编排多节点
  • 自动在远程节点构建目标程序
  • 自动部署运行环境
  • 在异构集群中完成统一启动

以上特性来自于我们观察到:传统 MPI 或通信库部署中,需要去维护不同节点环境中路径、依赖、编译参数、后端SDK 等一致性问题。

很多时候,真正复杂的不是通信本身,而是部署。icclrun 的设计思路,是在试图把"通信库运行"升级为:"异构集群自动化部署框架"。

这也是为什么我们特别强调:

automated multi-node build and deployment

我们希望未来 AI 系统中的"通信层",不再只是通信本身,而是通信、部署、编译、调度、环境管理的一体化基础设施。

v0.1.0 已支持哪些能力?

虽然这是第一个公开版本,但 InfiniCCL 已经完成了相当完整的通信能力覆盖。

当前版本已实现以下基本算子,已基于 MPI 后端实现完整通信流程:

  • ✅AllReduce
  • ✅AllGather
  • ✅ReduceScatter
  • ✅Broadcast
  • ✅AllToAll
  • ✅Send / Recv

在硬件平台方面,目前已经支持:

  • NVIDIA GPU
  • MetaX GPU
  • Cambricon MLU
  • Moore GPU
  • Iluvatar GPU
  • CPU Runtime

在通信后端方面,目前支持:

  • OpenMPI
  • MPICH
    并通过统一 MPI abstraction layer 进行封装。

自动化验证框架

除了通信实现本身,这次 release 还引入了:run_examples.py

该工具可以自动:

  • 批量执行示例程序
  • 控制 timeout
  • 记录日志
  • 顺序验证通信算子

写在最后

AI 基础设施正在进入一个新的阶段。

过去几年,我们更多关注:模型规模、算力规模、单机性能。但今天,越来越多的问题开始转向——"如何让异构系统真正协同工作"。而通信层,恰恰是其中最核心的一层。

InfiniCCL v0.1.0 也许只是一个开始,但它已经展现出了一个非常明确的方向:构建统一异构通信基础设施

我们认为在目前国产 AI 芯片生态快速发展的背景下,这类项目的意义会越来越重要。

如果你对分布式系统、AI Infra 感兴趣,欢迎关注 InfiniTensor 与 InfiniCCL 项目,更多功能会在后续版本持续更新。

也欢迎一起参与:

🔹 新平台适配
🔹 通信后端开发
🔹 算子实现
🔹 测试与验证
🔹 文档建设
🔹 CI 与工具链完善

对于 AI 基础设施来说,真正重要的,从来不是某一个单独组件,而是整个生态是否能够逐渐形成统一、开放、可协作的底层能力。

而 InfiniCCL,希望能够成为这个生态中的一块基础拼图。

🔗 项目地址:
https://github.com/InfiniTensor/InfiniCCL

欢迎 Star、Issue、PR,也欢迎更多开发者一起参与建设。

点击文末 「阅读原文」,即可跳转至 InfiniCCL GitHub 项目主页,了解更多项目细节并参与共建。

关注与交流