HCCL超簇建链技术,支持昇腾超节点训练上探至5万+卡
作者:华为昇腾技术专家 林叶峰
1 前言
随着大模型参数规模的增长,超节点规模也在快速扩大。昇腾NPU作为核心算力底座,超节点规模已迅速上探至5万+卡。在5万+卡场景,HCCL通信域的初始化建链过程,面临着网络连接数激增、单点数据传输瓶颈以及系统资源严重受限等多重挑战。围绕上述问题,本文深入剖析HCCL超簇建链技术的设计原理、核心机制及其在5万+卡超节点中的使能方式,为超大规模的通信优化提供实践参考。
近期,在5万+卡训练的LongCat-2.0模型正式开源,进一步验证了超大规模超节点的工程可行性。
2 5万+卡超节点通信域建链挑战
集中式建链是通信域初始化建链的传统方式,其流程为:所有卡向同一个主节点(root)发起网络连接,由主节点统一收集各卡信息并构建全局拓扑,再将完整的拓扑文件广播回所有卡,完成通信域建链流程。

当规模从数百卡膨胀至数万卡,集中式建链方案将遭遇严重的可拓展性瓶颈:
● 单点数据传输瓶颈:主节点需向所有卡广播全局拓扑文件,而在万卡规模下,全局拓扑文件从KB级膨胀至数十MB。1-to-N网络传输模式下,主节点的出口带宽会被迅速占满,瞬时流量激增触发丢包重传,拓扑文件传输时间急剧拉长。
● 建链拥塞超时失败:数万卡会几乎同时涌向主节点进行连接和上传信息。主节点会瞬间承载数万个Socket长链接,主节点网络协议栈和CPU资源极易被打满。大量进程会因网络拥塞连接超时,最终导致整个通信域创建流程失败。
3 HCCL超簇建链技术,解决数据传输和网络超时失败难题
面对5万+卡集中式建链面临的单点数据传输和网络拥塞超时挑战,HCCL提出超簇建链技术。该技术采用“分治”策略实现分层广播机制,通过将节点分组管理,解决万卡单点数据传输瓶颈。同时设计连接重试策略,应对万卡建链拥塞超时失败问题。两者协同运作,保障5万+卡建链的可靠性与效率。
3.1 HCCL分层广播机制:万卡单点数据传输瓶颈解决方案
为解决集中式建链单节点数据传输瓶颈,HCCL引入分层广播机制,拓扑文件的传输路径由单点发散变为多点并行,有效分散主节点负载,传输效率获得近似线性加速。为达成分层广播的极致效率目标,需要构建root->leader->rank分层架构,并实现高性能数据广播引擎。

3.1.1 构建分层架构
分层架构构建的核心难点在于leader节点的合理选择和leader信息的全局同步。
构建流程如下:
1. 信息上报:root节点与全局rank建立全连接,各rank上报拓扑信息,并压缩数据量以减轻root节点的负载压力
2. 分组与选举:root节点依据收集到的拓扑信息及分组配置,以拓扑亲和为原则完成分组规划,并选举最优leader。
3. 广播与建链:root向所有rank广播leader信息,各rank向所属leader发起建链请求,同时leader保持与root的连接状态。
4. 就绪:分层架构构建完成,进入就绪状态,等待全局拓扑文件的广播。

3.1.2 构建数据广播引擎
为提升数据分发性能,HCCL构建基于epoll+多线程的数据广播引擎。

主线程通过epoll_wait监听所有未发送完成的socket的可写事件;当某个socket就绪,便将对应发送任务推入共享任务队列taskQueue中,并唤醒worker线程。各worker线程竞争消费队列任务,执行数据发送;若当前任务数据全部发完,则从epoll中移除该句柄,否则重新注册EPOLLONESHOT事件以等待下一次可写通知。主线程随后进入下一轮轮询,如此往复,直至全部广播完成。
3.2 HCCL连接重试机制:万卡建链拥塞超时失败应对方案
为应对网络拥塞导致建链超时失败问题,设计并实现了网络连接重试机制。在建链阶段,网络连接失败时会触发重试机制,自动发起新请求。为避免重试风暴的连锁放大效应,设置重试间隔,抑制突发请求流量。同时,为确保建链过程在可控时间内结束,防止无限阻塞,引入连接超时保护机制:超过预设超时时间仍未建链成功时,直接上报异常并终止建链流程。重试策略有效缓解了网络拥塞对建链流程的冲击,提升了建链的成功率和稳定性。
3.3 HCCL超簇建链技术加速效果
在昇腾A3超节点,对比HCCL超簇建链技术与传统集中式建链的耗时,分别统计在不同规模下的建链耗时如下。

结果表明,5w卡规模下,超簇建链技术耗时比传统方式减少了91%。在实际生产环境中,超簇建链技术已支撑5万+卡完成预训练任务,充分验证了该技术在超大规模下的可行性与性能优势。
3.4 如何在昇腾A2/A3系列产品使用HCCL超簇建链技术?
在超大规模下可使用HCCL超簇建链技术加速通信域建链流程。创建通信域的示例如下:
1. 方式一:
调用HCCL提供的C接口创建全局通信域:

2. 方式二:
在python训练脚本中,可直接调用torch的init_process_group接口创建通信域。
HCCL超簇建链技术已随HCCL代码库全面开源,更多的实现细节和使用说明可以参考HCCL通信基础库开源代码。
「免责声明」:以上页面展示信息由第三方发布,目的在于传播更多信息,与本网站立场无关。我们不保证该信息(包括但不限于文字、数据及图表)全部或者部分内容的准确性、真实性、完整性、有效性、及时性、原创性等。相关信息并未经过本网站证实,不对您构成任何投资建议,据此操作,风险自担,以上网页呈现的图片均为自发上传,如发生图片侵权行为与我们无关,如有请直接微信联系g1002718958。
更多推荐


所有评论(0)