分布式 AI 有一组看似简单的动词:send、broadcast、gather、reduce、all-reduce。在配置统一的集群里,一家厂商的集合通信库可以让这些操作像管道一样隐入底层。到了混合集群,每个动词都会跨越设备内存、运行时行为、网络传输、拓扑、数据类型与错误处理的差异。相同的 API 名称只统一了调用表面,实际通信路径与速度仍需分别验证。
FlagCX 是 FlagOS 社区为这一碎片化环节提供统一入口的尝试。截至 2026 年 8 月 24 日,其公开支持表列出 十二种 加速器通信后端,从 Nvidia 的 NCCL、华为的 HCCL,到寒武纪(Cambricon)、沐曦(MetaX)、摩尔线程(Moore Threads)、昆仑芯(Kunlunxin)、海光(Hygon)、AMD、清微智能(TsingMicro)、燧原科技(Enflame)、天数智芯(Iluvatar CoreX)与 Sunrise 的通信库。在这些后端之上,FlagCX 提供 PyTorch 和 PaddlePaddle 集成;面对不同设备的组合,UniRunner 模式则提供与芯片解耦的集合通信算法。[1]
这是一次有分量的技术栈进展。任意两个已勾选后端能否组成高效的生产组合,仍需实测证据。FlagCX 公开材料最充分地展示了接口与测试脚手架:哪些系统可以搭建、已有何种调用,以及异构任务如何启动。下一步若要增强可信度,需要一张锁定版本、按设备组合逐一列出的性能图谱,记录特定加速器、传输方式、消息大小、框架与模型负载真正相遇时的表现。
公共层封装厂商库,厂商库仍在其中发挥作用
FlagCX 在集群中采用两条通信路线。同一加速器家族内部可以经由适配器调用厂商原生的 xCCL 库;不同设备之间则可以使用 FlagCX 自有的设备缓冲区 IPC 与 RDMA,并将它们同原生后端结合。这项架构区分十分重要:十二套高度优化的库仍由各厂商实现,FlagCX 在上方提供统一控制面,并为原生库无法直接通信的设备组合开辟另一条路径。[1]
发布记录显示,这套架构逐层到位。2025 年 4 月发布的 0.1 版接入首批原生库和 11 项异构集合通信操作。后续版本陆续加入更多后端、网络适配器、拓扑相关工作、设备缓冲区 IPC、零拷贝 RDMA、性能调优,以及可直接替换 NCCL 的封装器。2026 年 2 月的 0.10 版在 UniRunner 中列出 11 种与芯片解耦的算法;3 月的 0.11 版加入面向 Nvidia 与 Hygon、基于设备内核(kernel)的异构通信,主机与设备侧单边语义,以及动态加载的设备、CCL 和网络适配器。5 月的 0.12 版把通信库接入同构与异构的预填充—解码(prefill–decode)分离式部署,并增加 Sunrise 硬件。6 月的 0.13 版扩展了对称内存、组播、IR 绑定、节点内 P2P 传输、非连续键值(key-value)传输、单边基准测试、CI 覆盖和 RPM 打包。[2]
与“万能通信库”的口号相比,这种分层更贴近实际工程。厂商适配器保留了 NCCL、HCCL、RCCL 或其他原生库内部已有的性能优化,UniRunner 则处理更棘手的跨厂商缺口。动态适配器让硬件团队可以在明确的位置接入新运行时,依赖项可随适配器按需接入,核心库也能维持精简。与此同时,风险也沿这条抽象分界展开:每增加一种适配器、一组设备配对、一种传输方式或一个框架版本,验证矩阵都会扩大。
十二列勾选项尚不足以组成可互换集群
当前 README 的价值格外突出,因为它同时公布了勾选项与空缺。表中标明,HCCL 在同构模式下支持所列集合通信操作,异构模式则标为未支持。XCCL 在两种模式下均缺少 gather,在异构模式下还缺少 scatter 和 alltoallv。PCCL 在两种模式下都缺少 gather、scatter、alltoall 与 alltoallv。同一张表也将十二种后端全部标为受 PyTorch 插件支持。[1]
这些陈述分属不同层级,阅读时需要保持区分。“PyTorch 后端可用”表示应用已有一条集成通道;“集合通信操作已勾选”表示该操作列在项目能力表中。单独拿出任何一项,都无法证明特定跨厂商配对的带宽、尾延迟、数值行为、挂起恢复或稳定执行。
即使一整行全部打勾,背后也包含一组测试。以聚合各 rank(通信进程编号)梯度的 all-reduce 为例,它的有效性能取决于张量大小、rank 数量、归约数据类型、设备是否共用主机、流量是否经过 PCIe、专有 scale-up 互连、以太网、InfiniBand 或 RoCE,以及算法能否将通信与计算重叠。一条适用于 8 台设备和大消息的快速路径,面对两个机架间的小型专家并行交换时,仍需重新评估。因此,支持矩阵给出的是待测路线图,距离基准测试结果还有一层实测工作。
FlagCX 自己的设置指南也支持这种读法。主机 API 性能测试会扫描多种消息大小,并报告延迟和估算带宽。公开的设备 API 示例以 Nvidia 路径为编译目标,分配 CUDA 内存,并区分 IPC 模式与注册窗口模式。0.11 版最初把基于内核的异构路线限定在 Nvidia 与 Hygon;0.13 版扩展设备层之后,文档里的 Nvidia 示例依然只覆盖所示路线,无法外推到每一组后端配对。仓库还提供一个双节点异构 PyTorch 脚本,运维人员需要为每个节点分别提供设备专用环境、库、网络接口、rank 和地址。[2][3]
这些材料是有价值的工程凭据,部署工作由此显露出来。公开结果集尚未覆盖所有声称支持的配对。这里的空缺无法证明未经检验的配对会失败,它限定的是外部工程师能够据此推断的范围。
单边 RDMA 让抽象层更接近模型调度
从 0.11 到 0.13 的演进,让 FlagCX 逐步靠近模型调度器:先加入用于单边 RDMA 的注册窗口语义,随后增强 P2P 引擎,并加入非连续键值传输、对称内存和新的基准测试。注册内存窗口后,传输路径可以省去逐次配对的接收(receive)调用:一个 rank 可以注册内存窗口,从远端缓冲区读取或向其写入数据,发出完成信号,再等待信号。文档列出的原语包括 flagcxGet、flagcxPutSignal、flagcxSignal 和 flagcxWaitSignal。[2][4]
这项变化与现代模型执行密切相关,因为通信已经超出一次同步梯度更新的范围。混合专家模型的路由会产生 all-to-all 流量;分离式推理需要在预填充(prefill)工作进程与解码(decode)工作进程之间传送激活值或键值(KV)状态;流水线并行与张量并行又会带来不同的消息形态和时序约束。借助单边接口,调度器可以用更少的主机端会合来表达数据移动,设备侧操作也可以降低控制路径开销。
适用条件同样重要。用户指南写明,单边操作要求网络适配器具备 RDMA 能力,并且事先完成窗口注册。入门材料则说明,在文档所示的 Nvidia 路线中,设备 API 的窗口模式要求 NCCL 2.28 或更高版本。因此,内存生命周期、注册成本、顺序、完成语义与故障恢复仍属于应用契约的一部分。[3][4] “单边”从快速路径中省掉一次配对调用,系统层面的协调仍然存在。
证据尚未齐备,标准已开始成形
中国也在把这个软件问题转化为接口标准问题。2026 年 4 月 18 日,全国信息技术标准化技术委员会就国家标准草案 人工智能—统一通信库接口规范 公开征求意见,计划号为 20255428-T-469,征求意见于 6 月 13 日结束。[5] 统一标准接口可以减少重复移植工作,为框架与加速器厂商提供共同目标。公告记录的阶段仍是征求意见稿,离正式标准与性能认证尚有距离。
另一项成熟度信号来自 PyTorch 生态流程。FlagCX 于 4 月 29 日提交的材料介绍了原生分布式后端、CI、对 PyTorch 2.6 与 2.7 的支持,以及一个已经向上游报告的版本相关 bug。该 issue 最终以“Too early.”标签关闭。[6] 仓库中的既有工程工作仍然成立;这枚标签同时强调了另一层差别:一项集成可以展现潜力,而要成为获得更广泛认可的生态组件,维护、验证与用户证据还需要达到更成熟的程度。
其机构层面的雄心也相当可观。智源的一手标准化报道将 FlagCX 描述为 FlagOS 的重要组件,并把该库首次开源实现的时间追溯至 2024 年 12 月;此后,芯片厂商和软件团队陆续贡献适配、代码与性能验证。[7] 供应链层面的逻辑很清楚:模型团队继续使用熟悉的框架调用,芯片厂商在下方实现稳定适配器,硬件多样性带来的运营成本便会下降。
配对矩阵比更大的 logo 墙更迫切
FlagCX 现在需要与其问题形态相匹配的证据。一张有用的公开矩阵,应当锁定 FlagCX 提交版本(commit)、框架版本、厂商运行时、固件、驱动程序、原生 xCCL 版本、服务器拓扑、网络适配器与环境标志。对于每一组实际设备配对,矩阵应先报告正确性和故障表现,再给出小、中、大消息下的延迟与总线带宽,最后列出至少一项训练负载和一项推理负载的端到端结果。
矩阵还应区分营销表格经常混在一起的四种情况:经由原生库的同构流量、经由 UniRunner 的异构流量、由主机发起的通信,以及由内核或设备发起的通信。超时、rank 丢失、框架版本不匹配、回退行为与恢复,也应与峰值吞吐量并列呈现。项目已经提供了制作这份材料所需的许多测试原语和配置入口。[1][3]
证伪条件很直接。若真实的混合加速器部署仍要依赖公共适配器之外的私有桥接和配对专用补丁,或者最慢的集合通信操作抵消了汇集不同芯片所增加的容量,FlagCX 的标准化就会停留在 API 层,实际运行通道仍然各自分裂。若公开的逐对测试结果随版本持续增加,下游框架也能直接采用,省去本地 fork 的维护,这个项目留下的成果将比十二列整齐的勾选项更持久:它会让异构通信变得可测量。
来源
- FlagOS 贡献者,“FlagCX”——官方仓库,包含架构、后端能力矩阵、框架集成与 Apache-2.0 许可证信息。
- FlagOS 贡献者,“FlagCX Changelog”——从 v0.1 到 v0.13 的官方发布记录,涵盖 UniRunner、适配器、IPC、RDMA、对称内存、P2P 与设备路径变化。
- FlagOS Community,“Getting Started with FlagCX”——官方编译标志、主机与设备性能测试、注册模式,以及异构 PyTorch 启动指南。
- FlagOS Community,“FlagCX User Guide”——官方 UniRunner 与单边 RDMA API、注册要求和 NCCL 封装器行为说明。
- 全国信息技术标准化技术委员会,《关于〈人工智能 统一通信库接口规范〉等4项推荐性国家标准征求意见的通知》(2026 年 4 月 18 日,中文)。
- PyTorch Foundation ecosystem 仓库,“Ecosystem: FlagCX” issue #68(2026 年 4 月 29 日开启)——公开提交材料、集成范围、维护说明、版本备注与审查状态。
- 北京智源人工智能研究院,《国际标准组织齐聚,智源推动全球AI开源与国际标准“双驱动”》(2025 年 7 月 30 日,FlagCX 中文一手报道及封面照片来源页)。