阿里云HPN新一代万卡集群网络架构分析

e5b6bfb10b764991886d8a3533714b24.jpeg

HPN 7.0:阿里云新一代万卡集群网络架构

   

一、背景

之前的文章中我们中我们具体介绍过万卡 GPU 集群中的网络拓扑相关信息以及在万卡 GPU 集群中进行大规模 LLM 训练面对的挑战和相应解决方案,也进一步介绍了阿里云的集合通信调度框架 C4。本文中,我们简单介绍 C4 底层的阿里云新一代智算集群网络架构 HPN 7.0。阿里在最近的智源大会上提到了几个关键词:双上联,双平面,多轨,以及单层千卡,两层万卡。

826200524dd6d32773157128ec8e3716.jpeg

上面提到的几个介绍可以参考:

  • 万卡 GPU 集群互联:硬件配置和网络设计
  • 万卡 GPU 集群实战:探索 LLM 预训练的挑战
  • 阿里 C4:通信驱动加速大规模并行训练效率
  • 剖析大规模 GPU 集群:针对 LLM 场景的挑战和优化

二、拓扑

如图所示(星融元LLM大模型承载网解决方案),我们采用常见的三层无阻塞 Fat-Tree 拓扑结构——SuperSpine-Spine-Leaf。这种结构将两层的 Spine-Leaf 视为一个 Pod,而一层的 Leaf 则被视为一个 Group。每个 Pod 包含8个 Group(HB)。

  • Leaf Switch 配备了128个400 Gbps的端口,总交换带宽高达51.2Tbps。每台设备内置8块H100/H800 GPU,每个GPU都对应一个400 Gbps的网络接口卡。通过全网格连接,一个Group中最多可接入8个Leaf Switch。
  • 每个Leaf Switch拥有64个下行400Gbps端口,可连接64台设备。因此,每个Group最多只能容纳512个GPU(计算方式:64*8=512)。

d454e290bb5284e99499d1f1f8d30f32.jpeg

阿里云HPN-7.0的拓扑结构,如"Revolutionizing Data Center Networks: Alibaba’s SONiC Journey"的图片所示。图中揭示了一个有趣的事实:尽管每个Pod仍然包含8个Segment(组),但每个Group现在拥有128个配备8个GPU的节点,而非以往的64个。这种优化无疑提升了整体性能和效率,体现了阿里云在数据中心网络革新方面的持续努力。

  • Leaf Switch 拥有惊人的64个400Gbps上行端口和128个200Gbps下行端口,其总交换带宽高达51.2Tbps。每台机器配备了16个200Gbps NIC端口,通过全网格连接,可以无缝对接16个Leaf Switch。
  • 每个Leaf Switch拥有128个下行200Gbps端口,可连接128台设备。这意味着一个群组能够支持高达1024个GPU(单层千卡)。
  • 对于下图的拓扑中:
    • 每个Pod拥有8个分组(Segment),即8192个GPU(两层万卡)。这为高性能计算带来了巨大的潜力。

67dcaf31e415f33de36d676cf73e26a8.jpeg

从上述的拓扑图可清晰看出,一个 Group 内的 GPU 间的通信只需经过一次传递(仅需通过 1 个 Leaf Switch)。相较于传统架构,HPN-7.0 在 1 个 Group 内实现了最多 1024 GPU 互联,总通信带宽提升至 1024*2*200Gbps=409.6Tbps,相较之前的传统架构(512 GPU 互联,204.8Tbps)实现了翻倍增长。这意味着,HPN-7.0 不仅提高了互联能力,还为大规模 GPU 集群带来了更高效的通信体验。

三、双上联

借助双200Gbps端口和双200Gbps NIC,我们在一个Group中实现了GPU数量和通信带宽的倍增。这一设计不仅提升了性能,更重要的是,它能有效缓解因网卡、交换机、光模块、光纤等硬件问题引发的异常,避免中断训练进度,从而大大节省计算资源。在当前大规模AI模型训练中,同步方式已成为主流,而我们的设计恰好满足了这一需求。

双上联策略,包含两种方案。这两种方案都能让一个GPU对应两个上行链路,且这两个链路分别连接到不同的交换机上。具体来说,128台机器的Port-00可以连接至Leaf Switch-00,而Port-15则可以连接至Leaf Switch-15。

  • 拥有1块400Gbps的网络接口卡,该卡上配置有2个200Gbps的端口。尽管这样的配置在网络接口卡故障时,可能会中断训练任务,但一个网卡的管理便利性和占用插槽数量的优势不容忽视。这种设计灵感源于阿里的研究论文[2406.04594] "Boosting Large-scale Parallel Training Efficiency with C4: A Communication-Driven Approach",旨在通过提升通信效率,推动大规模并行训练的效能。
  • 搭载2个200 Gbps NIC,每个NIC配备1个200 Gbps端口:即使一个网卡出现故障,另一个仍可维持正常运作,大幅提升了网络的韧性。然而,这可能会带来额外的管理开销和插槽占用。此设计符合阿里云开发者社区中“灵骏可预期网络”一栏的介绍,专为AI基础设施打造。

在双链路中,一旦上行链路或对应交换机故障,流量将无缝切换至另一端口提供服务(如图绿线)。训练任务不会中断,但可能会轻微影响速度。

736fb16dd8fe6d69f4a242c373c55562.jpeg

四、双平面

双上联策略可提升系统稳定性,但也可能加剧ECMP(等价多径)哈希不均问题。如图所示,蓝色代表发送端,橙色代表接收端,通过控制两条上行路径实现流量均匀传输。然而,Spine的存在使得从Spine到右侧Leaf的流量难以保持均衡。尤其在训练场景中,流量数量较少,但每次数据量较大,进一步加剧了流量极度不均的现象,即哈希极化。

22f7ca74990065eb2da23de87002903e.jpeg

为了解决哈希极化问题,HPN 中在网络拓扑中实现了双平面设计。具体来说,每个 GPU 都对应 2 个 NIC Port,那么就可以将所有 GPU 对应的 NIC Port-0 构建一个网络平面,所有 NIC Port-1 构建一个网络平面,两个网络平面的网络拓扑完全一样,并且没有任何交叉。这样的话,只要发送端保证发送到两个 NIC Port 的流量是均匀的,那么在接收端就会一定接收到均匀的流量,大幅降低哈希极化的概率。

如下图所示,平面 1 和平面 2 是完全镜像的,蓝色 GPU 对应的流量会均匀发送到两个平面,并且到每个平面的流量只会在内部转发,如 1,2,3,4 的路径,最终到达橙色 GPU 对应 NIC 的流量也是均匀的。 

98d182846c6d86e2c99bcf88ae357016.jpeg

更清晰的视角可以参考下图:

c2ebcbc723477f457da0acd3706e4d00.jpeg

五、多轨通信

多轨通信,即通过整合多种通信链路,实现卓越的通信效能。以8*H100 SXM节点为例,其内部NVLink和NVSwitch的全互联设计,可达到惊人的7.2TBps传输速度。而节点间的连接则依赖于高速网络,一个包含128个节点的Group只需一次网络转发即可完成互联。

fc93510ed0d117404ca844200b24cf0e.jpeg

阿里云展望未来,期望在更广阔的领域(超越8 GPU)内实现卓越的性能连接,类似NVIDIA的最新NVL72和SuperPod 576。这就是图中展示的Scale-Up内部互联(AI Rack)。

c6a4ca5a2d21e1d5dadcc0a0ebf6dea0.jpeg

六、参考链接

  1. 阿里巴巴的Sonic项目正在彻底改变数据中心网络。通过使用Sonic,企业可以提升网络性能,降低运营成本。Sonic已在全球范围内部署,为数百万用户提供服务。加入我们的Sonic之旅,一起探索未来的网络可能。
  2. https://arxiv.org/abs/2406.04594
  3. https://event.baai.ac.cn/live/795

 

-对此,您有什么看法见解?-

-欢迎在评论区留言探讨和分享。-

### SimAI集群模拟器概述 SimAI集群模拟器是一款专为大语言模型训练设计的工具,能够有效模拟大规模GPU集群环境下的通信和计算过程[^1]。该模拟器特别适用于研究和开发人员测试不同规模下模型训练的效果。 ### 安装指南 对于希望部署SimAI集群模拟器的研究者来说,官方提供了详细的安装指导文档。通常情况下,安装流程涉及以下几个方面: - **依赖项准备**:确保环境中已安装必要的软件包以及库文件。 - **源码获取**:通过Git或其他版本控制系统下载最新版源代码。 - **编译构建**:按照README.md中的指示完成项目的编译工作。 - **配置参数调整**:依据实际需求修改默认设置以适应特定应用场景。 具体操作命令如下所示: ```bash git clone https://github.com/SimAICluster/simai.git cd simai pip install -r requirements.txt python setup.py install ``` 上述脚本用于克隆仓库并执行Python包管理器来安装所需的第三方模块。 ### 使用方法简介 为了帮助用户更好地理解和应用此工具,开发者编写了一系列教程文章和技术手册。这些资料涵盖了从基础概念介绍到高级特性使用的各个方面。例如,在启动一次完整的仿真实验之前,建议先阅读`docs/quickstart_guide.pdf`这份快速入门向导;而对于更深入的功能探索,则可以参阅`examples/tutorial.ipynb`这个Jupyter Notebook形式的教学实例。 另外,针对某些特殊场景的需求(比如自定义网络拓扑结构),还可以查阅API参考页面了解如何编程接口调用来实现个性化定制功能。 ### 获取更多资源 除了官方网站外,社区论坛也是交流经验和解决问题的好去处。在这里不仅可以找到其他用户的分享贴子,还能直接向维护团队提问获得及时反馈和支持。此外,GitHub Issues板块同样是一个重要的沟通渠道,适合报告Bug或者提议新特性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

科技互联人生

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值