智源研究院 09月25日
开源统一通信库FlagCX迎来全面升级
index_new5.html
../../../zaker_core/zaker_tpl_static/wap/tpl_guoji1.html

 

近日,智源研究院联合多家生态合作伙伴共同构建的开源统一通信库FlagCX迎来全面升级。升级后的FlagCX支持6家芯片,提供同构和异构下的全场景通信能力,实现高效异构混训全栈开源解决方案,并在异构集合通信算法和统一通信库的标准化方面取得新突破。这是开源统一的 AI 系统软件生态 FlagOS 发展进程中又一个重要性突破。

🔍 FlagCX升级支持6家芯片,实现同构和异构下的全场景通信能力,为AI计算提供完善的技术栈。

🚀 高效异构集合通信算法与端到端异构混训方案,提升跨芯片通信效率,推动AI大模型训练发展。

📈 通信库标准化取得进展,推动统一通信库在产业的广泛使用,赋能更多AI产业应用场景。

🤝 携手多家芯片厂商和合作伙伴,共同构建多元算力开源创新生态,加速AI产业发展。

🔧 FlagCX集成至飞桨3.0等主流框架,提升兼容性和稳定性,为AI开发者提供更便捷的工具选择。

2025-06-04 12:00 北京

近日,智源研究院联合多家生态合作伙伴共同构建的开源统一通信库 FlagCX 迎来全面升级,将进一步推动多元芯片的通信优化与高效互联技术的发展。升级后的 FlagCX ,支持6家芯片,提供同构和异构下的全场景通信能力,实现高效异构混训全栈开源解决方案,并在异构集合通信算法和统一通信库的标准化方面取得新突破。

这是开源统一的 AI 系统软件生态 FlagOS 发展进程中又一个重要性突破。面向多元算力的统一通信库 FlagCX 属于 FlagOS 的重要组成部分,它同高效并行训推框架 FlagScale、高性能算子库 FlagGems,以及统一编译器 FlagTree 等一起构建了面向多种 AI 芯片的开源、统一系统软件生态,为产业提供一套完善的 AI 计算全覆盖的系统软件技术栈。

相比于FlagCX初始开源版本,当前版本实现了多项突破:

开源地址:

https://github.com/FlagOpen/FlagCX

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上在单网卡异构场景下的通信性能测试。

从实测结果来看,在单网卡场景下:

上面通信带宽是按照传统同构通信算法理论通信量除以实际通信总时间得来,峰值带宽通过perftest(https://github.com/linux-rdma/perftest)实测得来。之所以会出现理论计算带宽高于实测峰值带宽,是因为FlagCX的跨芯C2C通信算法不同于传统同构通信算法。以AllGather为例,FlagCX的跨芯C2C算法在单网卡场景下是通过“同构Gather+跨芯异构Send/Recv+同构Broadcast”三步实现,与传统AllGather算法对比如下:

上述公式中:

可以看到,通过分层实现,由于同构Gather以及同构Broadcast机内带宽远高于网卡带宽,可以近似忽略,所以AllGather的跨芯通信量大概从(Nranks-1)/Nranks 降低至(Nclusters-1)/Nclusters,从而使得端到端整体耗时开销减少,按照传统理论计算的带宽也因此高于实测峰值带宽。下一步FlagCX将引入专门针对异构跨芯集合通信算法评估方法,同时也会持续优化跨芯集合通信算法进一步提升通信效率。

多网卡异构场景

相比单网卡异构场景,多网卡异构场景的情况更复杂,有两个关键挑战:

1)如何在任意拓扑构型的异构子集群间实现高效通信;

2)如何最大化利用所有网卡的通信带宽来降低通信开销。

为了应对挑战,FlagCX将C2C算法与自动拓扑探测功能进行结合:先通过自动拓扑探测来获取每个rank的最近网卡距离,筛选出网卡距离最近的rank来参与跨芯异构通信;然后,再根据C2C算法编排出针对特定网卡配置的跨芯异构集合通信算法实现。以跨芯AllReduce和AllGather为例:

上图左和右分别为C2C AllReduce和AllGather在不同网卡配置下的性能对比,测试环境为1*A800+1*Chip C。可以看到:

这说明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是智源研究面向大模型、支持多种AI芯片的开源统一软硬件技术栈FlagOS的重要组成部分,诚挚欢迎更多伙伴参与共建,一起共创多元算力开源创新生态。接下来,FlagCX将适配更多芯片,进行通信领域前沿创新,并推动FlagOS生态建设,赋能更多AI产业应用场景!

阅 读 更 多

阅读原文

跳转微信打开

Fish AI Reader

Fish AI Reader

AI辅助创作,多种专业模板,深度分析,高质量内容生成。从观点提取到深度思考,FishAI为您提供全方位的创作支持。新版本引入自定义参数,让您的创作更加个性化和精准。

FishAI

FishAI

鱼阅,AI 时代的下一个智能信息助手,助你摆脱信息焦虑

联系邮箱 441953276@qq.com

相关标签

开源 统一通信库 FlagCX AI 异构计算 大模型 智源研究院
相关文章