2025-06-04 12:00 北京
近日,智源研究院联合多家生态合作伙伴共同构建的开源统一通信库 FlagCX 迎来全面升级,将进一步推动多元芯片的通信优化与高效互联技术的发展。升级后的 FlagCX ,支持6家芯片,提供同构和异构下的全场景通信能力,实现高效异构混训全栈开源解决方案,并在异构集合通信算法和统一通信库的标准化方面取得新突破。
这是开源统一的 AI 系统软件生态 FlagOS 发展进程中又一个重要性突破。面向多元算力的统一通信库 FlagCX 属于 FlagOS 的重要组成部分,它同高效并行训推框架 FlagScale、高性能算子库 FlagGems,以及统一编译器 FlagTree 等一起构建了面向多种 AI 芯片的开源、统一系统软件生态,为产业提供一套完善的 AI 计算全覆盖的系统软件技术栈。
相比于FlagCX初始开源版本,当前版本实现了多项突破:
全面支持集合通信功能,涵盖同构和异构全场景,并实现多芯片自动拓扑探测功能。
高效的异构集合通信算法,并联合FlagScale为用户提供高效异构混训全栈开源方案。
完成6款芯片适配,统一通信库的标准化与产业生态合作获得重要进展。
Part.01
全场景通信能力与多芯片自动拓扑探测
1.1 全面支持跨芯异构集合通信算法
FlagCX 在支持Device-buffer RDMA跨芯高性能Send/Recv操作的基础上,自研了异构跨芯集合通信C2C算法(Cluster-to-Cluster Algorithm,在异构集群中每个同构芯片形成的子集群在FlagCX中表示为cluster),能支持单网卡、多网卡和异构子集群间不同网卡配置等多种场景,最大化利用网卡带宽。下表列出了FlagCX当前所支持的通信后端及对应的通信算子和执行模式(同构/异构),其中所有异构跨芯集合通信操作均通过C2C算法实现。
上表列出的同构通信后端是基于FlagCX统一适配器模块来实现对厂商原生通信库的兼容,包括NCCL、IXCCL、CNCL、MCCL、XCCL和DUCCL等,主要负责执行同构芯片间的通信操作。FlagCX Core负责实现跨芯异构Send/Recv操作,并利用异构Send/Recv和同构通信后端来实现跨芯异构集合通信操作。
1.2 多芯片自动拓扑探测功能
FlagCX 新增服务器级的自动拓扑探测模块,支持自动识别服务器内部硬件拓扑和通过读取xml格式的统一拓扑文件来获取拓扑信息。拓扑模块通过调用厂商适配过的统一接口和读取服务器的系统信息,能实现对不同厂商服务器内部硬件拓扑的自动化探测。目前,拓扑模块可探测服务器内部的加速卡、网卡、CPU、PCIe Switch及设备间的PCI链路等信息,并自动生成层级化的拓扑结构。更进一步,拓扑模块还能通过计算加速卡与网卡距离,为每个进程智能匹配最优网卡,显著提升跨节点通信效率与带宽利用率。下表展示了具体的拓扑探测相关功能:
Part.02
高效异构集合通信算法与端到端异构混训
2.1 高效异构集合通信算法
单网卡异构场景
FlagCX 除了支持高性能的跨芯异构Send/Recv通信原语,还新增了基于C2C算法实现的跨芯异构集合通信原语。下图选择了三个代表性通信原语Send/Recv、AllReduce、AllGather分别在A800+ChipA和A100+ChipB上在单网卡异构场景下的通信性能测试。
从实测结果来看,在单网卡场景下:
Send/Recv的通信带宽能达到峰值带宽的90%
AllReduce的通信带宽能达到峰值带宽的75%~80%
AllGather的通信带宽在A800+ChipA上能达到峰值带宽的75%,而在A100+ChipB上能达到峰值带宽的120%
上面通信带宽是按照传统同构通信算法理论通信量除以实际通信总时间得来,峰值带宽通过perftest(https://github.com/linux-rdma/perftest)实测得来。之所以会出现理论计算带宽高于实测峰值带宽,是因为FlagCX的跨芯C2C通信算法不同于传统同构通信算法。以AllGather为例,FlagCX的跨芯C2C算法在单网卡场景下是通过“同构Gather+跨芯异构Send/Recv+同构Broadcast”三步实现,与传统AllGather算法对比如下:
上述公式中:
TAllGather和TC2C-AllGather表示端到端通信耗时。
Nranks和Nclusters分别表示参与通信的总rank数和总cluster数。
C表示通信量。
BWinter和BWintra表示cluster间带宽(本测试中即网卡带宽)和cluster内带宽(本测试中即机内带宽)。
可以看到,通过分层实现,由于同构Gather以及同构Broadcast的机内带宽远高于网卡带宽,可以近似忽略,所以AllGather的跨芯通信量大概从(Nranks-1)/Nranks 降低至(Nclusters-1)/Nclusters,从而使得端到端整体耗时开销减少,按照传统理论计算的带宽也因此高于实测峰值带宽。下一步FlagCX将引入专门针对异构跨芯集合通信算法评估方法,同时也会持续优化跨芯集合通信算法进一步提升通信效率。
多网卡异构场景
相比单网卡异构场景,多网卡异构场景的情况更复杂,有两个关键挑战:
1)如何在任意拓扑构型的异构子集群间实现高效通信;
2)如何最大化利用所有网卡的通信带宽来降低通信开销。
为了应对挑战,FlagCX将C2C算法与自动拓扑探测功能进行结合:先通过自动拓扑探测来获取每个rank的最近网卡距离,筛选出网卡距离最近的rank来参与跨芯异构通信;然后,再根据C2C算法编排出针对特定网卡配置的跨芯异构集合通信算法实现。以跨芯AllReduce和AllGather为例:
C2C AllReduce
在所有rank均参与跨芯异构通信场景下,底层算法实现为“同构ReduceScatter+跨芯Send/Recv+同构AllReduce”。
在其他多网卡配置下,底层算法实现对应为“同构Reduce+跨芯Send/Recv+同构AllReduce”。
C2C AllGather
在所有rank均参与跨芯异构通信场景下,底层算法实现为“同构AllGather+跨芯Send/Recv+同构Broadcast”。
在其他多网卡配置下,底层算法实现对应为“同构Gather+跨芯Send/Recv+同构Broadcast”。
上图左和右分别为C2C AllReduce和AllGather在不同网卡配置下的性能对比,测试环境为1*A800+1*Chip C。可以看到:
对于C2C AllReduce,八个网卡(8-NIC)配置的实测跨芯通信带宽在128M以上通信量时超越单网卡(1-NIC)配置,而当通信量达到4GB时提升2.7倍。
对于C2C AllGather,八个网卡(8-NIC)配置的实测跨芯通信带宽在384M以上通信量时超越单网卡(1-NIC)配置,而当通信量达到4GB时提升2.5倍。
这说明C2C算法在通信量较大的场景能够充分利用多网卡来提升异构通信效率,后续FlagCX会持续深度优化C2C算法来进一步加速通信。
2.2 高效异构端到端混训
FlagCX已正式集成到FlagScale大模型训推一体框架中,两者结合为用户提供高效异构混训全栈开源方案。上表是FlagScale+FlagCX在不同测试环境上和CPU中转方案的混训性能对比,其中CPU中转方案是通过GLOO走CPU RDMA,并尽可能进行了计算和访存重叠优化。从实测结果来看,FlagCX相较CPU中转能获得4%~10%不同程度的端到端性能提升。
Part.03
通信库标准化及产业合作新进展
多家芯片适配进展:当前FlagCX已经完成了包括寒武纪、天数、沐曦、海光、昆仑芯、英伟达等多家厂商的多款芯片适配。
标准化进展:为了推动统一通信库在产业的广泛使用,智源研究院牵头十多家企业共同打造基于FlagCX开源技术的《人工智能 统一通信库接口规范》国家标准。目前该标准草案已经通过了 SC42 全国信息技术标准化技术委员会人工智能分技术委员会的评审,提交至TC28全国信息技术标准化技术委员会审议。
产业合作进展:
FlagCX目前已经正式集成至飞桨3.0,通过了飞桨13项集合通信单测和其他25项CI相关检查,表明FlagCX与飞桨具备较高的兼容性和稳定性。更进一步,我们还完成了端到端模型训练验证,成功通过飞桨3.0的动态图与静态图训练测试,集成了FlagCX的飞桨3.0在同构计算环境下的通信性能可媲美NCCL,并能保证训练效率无损。
基流科技公司参与了FlagCX异构通信架构的设计与开发,并在实现过程中融合了基流高性能网络通信技术,同时将FlagCX应用于智能调度运维平台,并推出面向智算中心异构资源池化的高效通信解决方案,可实现优先级调度、拓扑感知调度等多种调度方式。
北京大学刘古月老师团队基于FlagCX进行了异构集合通信算法的创新,提出了异构集群基于厂商芯片构建同构子集群的分层拓扑抽象,并应用于异构集合通信算法C2C的实现中,同时还根据多网卡场景和跨芯通信量进行通信效率优化研究。
FlagCX已接入浪潮信息EPAI平台,支持多元异构平台的大模型训练和推理,实现多元芯片间的直接通信,提高系统整体计算性能。特别对于大模型推理,FlagCX将与EPAI的PD分离推理系统深度结合,实现Prefill和Decoding集群多元异构配置以及高效通信,充分发挥不同芯片在Prefill和Decoding阶段的计算性能。
此外,中国电信研究院也引入FlagCX,并与智源研究院及芯片厂商开展相关研究。通过网络、通信库与软件框架的协同优化,在异构多芯混合训练、异构PD分离推理等试验中取得显著成果,混训效率达同构的95%以上,推理性能提升30%以上。
FlagCX是智源研究面向大模型、支持多种AI芯片的开源统一软硬件技术栈FlagOS的重要组成部分,诚挚欢迎更多伙伴参与共建,一起共创多元算力开源创新生态。接下来,FlagCX将适配更多芯片,进行通信领域前沿创新,并推动FlagOS生态建设,赋能更多AI产业应用场景!