智算网络调优

YCCL:拓扑感知的集合通信库

在智算中心完成建设之后,调优就成为了一项永恒的课题。如何高效地利用现有硬件运行AI训推任务,是每一个智算中心的运营方与用户无法绕开的话题。业界在这一块也有诸多的探索,涉及包括编译优化、网络协议栈优化、训练框架优化、模型架构优化等方面,各自取得了较好的成果。但是,从整个AI基础设施技术栈来看,还有一块非常关键的技术点少有涉及:集合通信。

集合通信是一个软件中间层,向上为训练框架提供通信接口,向下实际对接网卡收发。训练框架提出的通信需求,包括但不限于Allreduce(全规约)、Alltoall(全对全)等综合性操作,会向下发送到集合通信库;随后,再由集合通信库编排成网络接口卡能够理解的发送、接受等点对点操作。由此可见,集合通信库为了做到高性能,必须结合网络实际情况,包括物理互联拓扑、网络带宽、网络负载等信息,才可以充分利用网络带宽。

然而,现有的业界方案大多为设备提供商附带提供,像英伟达之NCCL、华为之HCCL。它们的特点是:在设备商掌控较强的机内拓扑域内(如英伟达DGX架构),运行效率较高;但到了机间,机间拓扑并非设备商能完全把控,就采用了一些简单不出错的方法进行通信(如Ring Allreduce),运行效率有限。为了做到最好的性能,必须采用拓扑感知的集合通信优化,针对不同网络架构、通信需求,针对性设通信算法。

拓扑感知集合通信最关键的技术难题来自算法。其本身是一个NP难问题,算法时间复杂度极高,若暴力枚举,最多支持到10卡左右规模。因此,必须对问题建模进行优化或采用启发式算法进行搜索,建模的贴切度、启发式算法的优劣,直接影响了算法扩展性(能够支持的规模)与算法表现(所生成的集合通信算子的速度)。目前公开最前沿方案为微软研究院SCCL、TACCL、TECCL、ForestColl系列工作,但都面临建模过于简单、扩展性不佳等问题。例如其最新工作ForestColl,未考虑延迟、计算开销,实测最多支持到256卡级别,生成时间太慢,应用场景有限。

对此,我们提出YCCL,一套支持大规模快速优化的拓扑感知集合通信库。我们在集合通信方向的深厚研究积累,使得我们能够提出更加贴切、高效的建模手段,综合考虑网络中的各种开销,并利用优秀的搜索算法进行筛选择优。支持千卡、万卡甚至十万卡级别场景,秒到分钟级别完成拓扑感知优化,端到端交付、接口兼容、开箱即用,助力实现高效的大规模AI算力。