趋近智
分布式系统中,集体通信操作(例如数据并行训练中使用的 AllReduce)的性能,直接受限于网络在计算节点之间传输数据的能力。虽然节点内部通信可以通过NVLink等高速互连高效处理,但节点间网络却是性能瓶颈经常出现的地方。设计不当的网络拓扑可以轻易抵消拥有最强加速器的优势,导致GPU闲置等待数据,并大幅增加训练时间和成本。机器学习集群网络设计的主要目标是提供所有节点之间可预测、高带宽、低延迟的通信路径。
传统的企业网络设计,通常基于简单的树状结构,旨在优化南北向流量,即在终端用户与中央服务器或互联网之间流动的流量。它们并非为高性能计算和分布式机器学习中特有的密集横向流量模式而设计。在这些工作负载中,每个节点可能需要同时与所有其他节点进行通信。
这种不匹配导致一种情况,即超额订阅。超额订阅发生时,网络层次结构中较高层级的可用带宽,小于其下方层级的总带宽。例如,如果48台服务器每台都通过100 GbE链路连接到一个交换机,那么该交换机需要一个4.8 Tbps的上行链路连接到下一层,以避免成为瓶颈。实际上,这个上行链路通常小得多,从而产生竞争。当多个节点尝试通过这个受限的上行链路发送数据时,数据包会丢失,延迟会增加,整体吞吐量也会急剧下降。
为解决传统设计的局限性,现代数据中心和机器学习集群采用一种脊叶式架构,它是一种Clos网络类型。这种拓扑结构由两层交换机组成:
这种设计确保集群中任意两个节点之间的流量都沿可预测的固定路径传输:从源节点到其叶交换机,向上到脊交换机,再向下到目标节点的叶交换机。任意两台服务器之间的最大跳数始终为两跳,这提供了一致的低延迟。
一个两层脊叶式网络。每个叶交换机连接到每个脊交换机,创建多条高带宽路径,并确保任意两个计算节点之间最多有两次网络跳跃。
脊叶式网络的扩展性是另一个重要特点。你可以通过增加脊交换机来增加横向带宽,或者通过增加新的叶交换机来容纳更多服务器,所有这些都无需重新设计核心网络。
对于要求最高的分布式训练任务,目标是构建一个无阻塞的网络结构。这种网络具备足够的容量,使所有节点能以其全链路速度同时相互通信。胖树拓扑是脊叶式网络的一种具体实现,旨在实现这一点。
“胖”这个名称指的是,当你从叶到脊沿着树向上移动时,链路会变得更“粗”,或者说拥有更多的总带宽。这种结构确保任何层级交换机的带宽,都能匹配其下方连接设备的全部带宽。
胖树网络的性能通常由其订阅比来描述,这是下行带宽(连接到服务器)与上行带宽(连接到下一层交换机)之间的比率。
对于大规模机器学习,特别是训练基础模型,目标是网络结构中达到1:1的订阅比,这是一种标准的最佳实践。
虽然拓扑和订阅比是设计属性,但最终性能最好通过截面带宽来衡量。这是网络两个相等部分之间的总可用带宽。想象画一条线将集群网络一分为二;截面带宽就是所有穿过这条线的链路速度之和。
这个衡量指标非常重要,因为它直接反映了网络处理最坏情况通信模式的能力,例如 AllReduce 操作,其中每个节点必须与所有其他节点交换梯度。更高的截面带宽直接转化为这些集体操作的更快完成,从而减少总训练时间。精心设计的胖树网络专门架构来最大化截面带宽。
在评估云服务提供商的产品或设计本地集群时,截面带宽是值得分析的最重要规范之一。例如,Google的TPU Pods和AWS的UltraClusters等平台明确宣传其无阻塞、高截面带宽网络是大规模训练的主要特性。这些系统在精心构建的胖树拓扑中使用高速以太网(例如,400 GbE)或InfiniBand,以确保网络通信不会阻碍加速器的计算能力。
这部分内容有帮助吗?
© 2026 ApX Machine Learning用心打造