AI 交换矩阵 IP 服务
在接下来的几节中,我们将介绍可用于处理后端 GPU 交换矩阵中的流量拥塞和流量负载分布的各种策略。
拥塞管理
AI 群集具有高密度和低熵流量模式,其特点是流量变化频繁,流量变化最小,因此对网络基础设施提出了独特的要求。此外,大多数AI模式需要不间断数据包流且不会丢包才能完成训练作业。
因此,在为 AI 流量设计网络基础架构时,关键目标包括最大吞吐量、最小延迟和最小无损交换矩阵上的网络干扰最小,从而需要配置有效的拥塞控制方法。
数据中心量化拥塞通知 (DCQCN) 已成为聚合以太网 RDMA (RoCEv2) 流量端到端拥塞控制的行业标准。DCQCN 拥塞控制方法提供的技术可以在降低流量速率和完全停止流量之间取得平衡,从而缓解拥塞,而无需诉诸丢包。
值得注意的是,DCQCN 主要在 GPU 后端交换矩阵中必需,因为 GPU 后端交换矩阵是大部分 AI 工作负载流量驻留的地方,而在前端或存储后端通常不需要。
DCQCN 结合了两种不同的流量和拥塞控制机制:
- 基于优先级的流控制 (PFC),以及
- 显式拥塞通知 (ECN)。
基于优先级的流控制 (PFC)
基于优先级的流控制 (PFC) 是以太网网络设备的标准 (IEEE 802.1Qbb) 背压机制,用于发出拥塞信号,并使特定优先级的流量暂时停止丢包。PFC 通过停止映射到特定队列或端口的单个流量优先级(IEEE 802.1p 或 DSCP 标记)的流量流,帮助缓解拥塞。
PFC 的目标是在规定的时间(暂停时间)内或直到拥塞清除为止阻止邻接方发送流量。此过程包括向上游发送 PAUSE 控制帧,请求发送方在拥塞持续期间停止特定类或优先级的所有流量传输。发送方完全停止向指定优先级的接收设备发送流量。
对于 RoCE 流量,PFC 依赖于交换矩阵交换机来检测拥塞并在上游生成 PFC 暂停帧,以及能够响应这些帧的设备,包括接收 PFC 暂停帧并做出相应反应的发送 NIC。
虽然 PFC 可以减少数据丢失并允许接收方赶上队列中已有的处理数据包,但它会影响在拥塞期间使用受影响队列的应用的性能。此外,恢复拥塞后流量传输通常会引发激增,从而可能加剧或恢复拥塞情况。
建议仅在充当叶节点的 QFX 设备上配置 PFC。
图 20: DCQCN – PFC 操作
显式拥塞通知 (ECN)
显式拥塞通知 (ECN) 是以太网网络设备的标准 (RFC 3168) 背压机制,用于发出拥塞信号并使流量暂时减慢,以避免数据包丢失。ECN 可以在拥塞期间降低传输速率,同时使流量能够持续存在(尽管传输速率会降低),直到拥塞消退。ECN 的目标是通过使流量源降低传输速率直到拥塞清除,来减少数据包丢失和延迟。
此过程需要通过在 IP 报头中将 ECN 位设置为 11,在拥塞点使用 ECN 位标记数据包。此 ECN 标记的存在会提示接收方生成发送回源的拥塞通知包 (CNP),从而向源发出限制流量速率的信号。
用于 RoCE 流量的 ECN 依赖于能够检测拥塞并为下游流量实施 ECN 标记的交换矩阵交换机,以及能够响应这些标记的设备,如图 21 所示:
图 21:DCQCN – ECN 操作
- 接收 NIC 或通知点 (NP),在接收带有 ECN 标记的数据包时传输 CNP
- 接收 CNP 数据包并做出相应反应的发送 NIC 或反应点 (RP)
结合 PFC 和 ECN 可在支持 RoCEv2 的无损 IP 交换矩阵中最有效地缓解拥塞,同时防止数据包丢失。为此,在同时实现 PFC 和 ECN 时,应仔细选择它们的参数,以便在 PFC 之前触发 ECN。
用于 RDMA 流量的 TOS/DSCP
必须正确标记 RDMA 流量,以便交换机对其进行正确分类,并将其置于无损队列中以便进行正确处理。标记可以是 IP 报头中的 DSCP,也可以是以太网帧 vlan-tag 字段中的 PCP。是否使用 DSCP 或 PCP 取决于 GPU 服务器和交换机之间的接口是否正在执行 VLAN 标记 (802.1q)。图 64 显示了 RDMA 和 CNP 如何以不同的方式进行标记,因此,交换矩阵交换机以不同的方式对这两种类型的数据包进行分类和调度。
图 22:TOS/DSCP 操作
有关更多信息,请参阅 瞻博网络 AI 网络拥塞控制简介 ,其中探讨了如何使用 DCQCN(ECN 和 PFC)、拥塞控制方法和 DLB 为 AI 工作负载构建无损交换矩阵。该文档以 DLRM 训练模型为参考,演示了如何监控不同的拥塞参数,例如 ECN 和 PFC 计数器、输入丢弃和尾部丢弃,以调整配置并为 RoCEv2 流量构建无损交换矩阵基础设施。
注意: 我们提供一般性建议并描述在实验室中验证的参数。然而,每种语言模型都有独特的流量配置文件和特征。必须调整服务等级和负载平衡属性,以满足您的特定模型要求。
负载平衡
此 JVD 在所有交换矩阵中使用的交换矩阵架构都遵循 2 级 Clos 设计,每个叶节点都通过多个接口连接到所有可用的主干节点。因此,叶节点和主干节点之间有多条路径可以到达其他设备。
在分配 AI 流量时,等价多路径 (ECMP) 可能会导致链路利用率不够理想。ECMP 依靠对选定的数据包标头字段进行散列处理,将流量传播到可用路径;但是,AI 工作负载通常会生成具有高度相似标头特征(例如,相同的源地址和目标地址、端口和协议)的大型长寿命流。这种有限的流量多样性显著降低了散列熵,导致多个流量映射到同一条链路上。结果,某些链路变得过度利用,而其他链路却未得到充分利用,从而增加了拥塞和数据包丢失的风险。这在进行 GPU 到 GPU 通信的 GPU 后端交换矩阵中尤为重要。
为了改善所有可用路径之间的流量分配,可以实施动态负载平衡 (DLB)、 ECMP 的自适应负载平衡 (ALB) 或全局负载平衡 (GLB),而不是 ECMP。
为此,在所有 QFX 叶节点和主干节点上验证了 JVD 动态负载平衡流模式 ,并在 PTX 主干节点上验证了自适应负载平衡 (ALB)。 全局负载平衡 也作为替代解决方案包括在内。
对 QFX5240-64OD/QFX5241-64OD 进行了额外的测试,以评估 选择性动态负载平衡和 反应性路径重新平衡。请注意,这些负载平衡机制仅适用于 QFX 设备。
动态负载平衡 (DLB)
DLB 在选择路径时,不仅会查看数据包标头,还会根据端口负载(链路利用率)和端口队列深度考虑实时链路质量,从而确保所有路径都能得到更公平的利用。当需要对移动大量数据的多个长期流进行负载平衡时,此方法可提供更好的结果。
DLB 可以配置为两种不同的模式:
- 按数据包模式:来自同一流的数据包将喷送到 IP ECMP 组的链路成员上,这可能导致数据包无序到达。
- 流模式:来自同一流的数据包通过 IP ECMP 组的链路成员发送。流被定义为同一流的突发,由不活动的时间段分隔。如果流暂停的时间超过配置的不活动计时器,则可以重新评估链路成员的质量,并将流重新分配给其他流。
自适应负载平衡 (ALB):
自适应负载平衡 (ALB) 是一种反馈驱动机制,旨在检测并纠正等价路径上的流量不平衡,从而提高链路利用率,超过基于静态哈希的转发。ALB 不仅仅依赖固定的 ECMP 散列,而是持续评估流量分布并动态调整转发行为,以缓解过载情况并促进可用链路的合理使用。
ALB 通过监控与哈希桶及其相应的下一跳映射关联的数据包和字节速率来运行。在 ukernel 中运行的自适应监控过程会定期扫描启用了 ALB 的所有下一跃点。监控间隔可由用户配置,最短可至几秒钟。
在每个扫描周期内,ALB 通过对映射到该下一跃点的所有哈希桶携带的流量求和,计算每个下一跃点的聚合流量速率。将观察到的速率与理想平衡速率进行比较。如果偏差超过用户可配置的容差阈值,则会触发不平衡补偿算法。
当检测到不平衡时,ALB 会通过对选择器重新编程(哈希桶到下一跳映射)来采取纠正措施,将流量从利用率高的下一跳转移到利用率较低的下一跳。此重新分配过程有效地解决了垃圾箱打包问题,因为它试图以最小化链路之间负载差异的方式重新分配哈希桶。由于涉及计算复杂性,ALB 在每个监控间隔内逐步执行这些调整。
默认情况下,监控间隔为 30 秒,可以配置为 1 到 5 个 30 秒间隔。在每个时间间隔内,控制软件将读取最近两秒内收集的数据包和字节计数器,以计算当前流量速率并为再平衡决策提供信息。
用于检测不平衡的容差阈值定义为:
从 Junos OS 演化版 24.4R1 开始,PTX10001-36MR、PTX10002-36QDD、PTX10003、PTX10004、PTX10008 和 PTX10016 平台支持 ALB。
全局负载平衡 (GLB):
GLB 是对仅考虑本地链路带宽利用率的 DLB 的改进。另一方面,GLB 可以在下一跳 (NNH) 级别查看链路的带宽利用率。因此,GLB 可以重新路由流量,以避免流量拥塞在网络中比 DLB 检测到的更远的地方。
与其他网络相比,AI-ML 数据中心的熵更少,数据流更大。由于基于散列的负载平衡并不总是能有效地以较小的熵对大型流量数据流进行负载均衡,因此通常使用动态负载平衡 (DLB)。但是,DLB 仅考虑本地链路带宽利用率。因此,DLB 只能在下一跃点有效缓解流量拥塞。GLB 通过考虑远程链路上的流量拥塞,更有效地均衡大型数据流的负载。
从 23.4R2 和 24.4R1 开始,仅 QFX-5240 (TH5) 支持 GLB,需要完整的 3 层 CLOS 架构,并且每个主干和叶之间仅限于一个链路。当一对叶和主干之间存在多个接口或捆绑包时,GLB 将无法正常工作。此外,GLB 支持表中的 64 个配置文件。这意味着在运行 GLB 的 3 级 Clos 拓扑中可以有 64 个枝叶。
有关 GLB 的操作和配置的更多详细信息,请参阅 通过全局负载平衡避免 AI/ML 流量拥塞 |HPE 瞻博网络博客
瞻博网络拥塞控制简介 AI 网络探索如何使用 DCQCN(ECN 和 PFC)拥塞控制方法和 DLB 为 AI 工作负载构建无损交换矩阵。该文档以 DLRM 训练模型为参考,演示了如何监控不同的拥塞参数,例如 ECN 和 PFC 计数器、输入丢弃和尾部丢弃,以调整配置并为 RoCEv2 流量构建无损交换矩阵基础设施。
数据中心负载平衡提供了对各种负载平衡机制及其演变的全面深入探讨,以满足数据中心的需求。