两篇论文:面向AI/ML集群的高性能网络传输协议优化研究
FASTFLOW: Flexible Adaptive Congestion Control for High-Performance Datacenters
FASTFLOW:针对高性能数据中心的灵活自适应拥塞控制
https://arxiv.org/abs/2404.01630
发表时间:2024年9月20日
一、问题背景
现代数据中心,特别是运行大规模AI训练和HPC应用的数据中心,对网络性能的要求越来越高。这些工作负载通常会产生突发性的、同步的流量,对传统的拥塞控制算法提出了挑战。现有拥塞控制算法的不足:
- 基于延迟的算法:如Swift和BBR,反应速度较慢,在处理短促的流量突发时无法及时调整发送速率,导致不公平的带宽分配和较高的流完成时间(FCT)。
- 接收端算法:如EQDS,能有效管理最后一跳的拥塞(例如incast),但在处理网络结构内部的拥塞(例如由ECMP冲突引起的拥塞)时表现不佳,可能导致带宽利用率不足。
二、FASTFLOW算法
FASTFLOW是一种基于发送端的拥塞控制算法,旨在解决上述问题,实现高性能和公平性。关键特性:
- 拥塞信号:FASTFLOW结合使用延迟(RTT)和显式拥塞通知(ECN)作为拥塞信号。延迟信号能更精确地反映拥塞程度;ECN信号能更快地通知拥塞。
- 拥塞窗口调整:FASTFLOW根据接收到的ACK包含的拥塞信息,采用不同的策略调整拥塞窗口的大小。当ECN和延迟信号对拥塞的存在意见不一致时,拥塞窗口会更加保守地增加或减少(公平减少/增加);当ECN和延迟信号都指示拥塞或都不指示拥塞时,拥塞窗口会更积极地调整(乘法减少/增加)。
- QuickAdapt:一种新颖的机制,能在检测到严重拥塞时快速调整拥塞窗口。QuickAdapt默认依赖于数据包修剪功能,如果交换机不支持修剪,则回退到基于超时的机制。
- 快速增加:一种用于在某些流结束后快速恢复可用带宽的机制。
三、性能评估
使用htsim网络模拟器对FASTFLOW进行了评估,涵盖不同的网络拓扑(包括具有不同超额认购率的胖树网络)和流量模式(包括incast、permutation和alltoall)。结果表明,在大多数情况下,FASTFLOW的性能优于或与EQDS、Swift、BBR和MPRDMA等现有算法相当,在某些情况下甚至能实现高达50%的性能提升。即使在不支持数据包修剪的情况下,FASTFLOW的性能下降也很小,通常不超过两个基本RTT。优势/特点:
- 高性能:FASTFLOW结合多种技术,快速响应网络拥塞,最大限度地提高吞吐量和降低延迟。
- 公平性:通过公平减少/增加机制和WTD机制,更公平地分配带宽,避免对瞬时负载不平衡过度反应。
- 易于部署:只依赖ECN和RTT测量,这些功能在大多数数据中心交换机上都可用,无需特殊硬件支持。
- 低内存占用:内存占用很小,每个流只需存储19字节,便于在网卡上实现。
四、未来发展
- 与接收端算法结合:探讨将FASTFLOW与EQDS等接收端算法结合使用的可能性,充分利用两种类型算法的优势,进一步提高网络性能。
- 针对特定工作负载优化:针对特定的机器学习或HPC工作负载对FASTFLOW进行优化,例如针对不同的集体通信模式调整算法参数。
- 实际部署和评估:在实际数据中心环境中部署和评估FASTFLOW,验证其在真实场景下的性能和可扩展性。
关于FASTFLOW的常见问题
什么是FASTFLOW?
FASTFLOW是一种专为高性能数据中心设计的拥塞控制算法。它是一种基于发送端的算法,运行在有损以太网上,旨在解决机器学习工作负载带来的网络拥塞挑战。
为什么需要新的拥塞控制算法?
现有的拥塞控制算法在应对大规模、突发性的数据中心流量时存在不足。许多算法过度依赖延迟作为拥塞信号,导致反应速度慢,无法保证公平性。例如,基于延迟的算法在处理突发流量时,往往反应过慢,导致并发运行的流之间处理不公平,并增加完成时间。
FASTFLOW的设计目标是什么?
FASTFLOW的设计目标是满足现代高性能拥塞控制算法的需求,包括:
- 公平性:确保所有流都能公平地共享可用带宽。
- 快速响应:快速检测和响应网络拥塞,最大程度地减少延迟和数据包丢失。
- 易于部署:依赖于广泛可用的网络功能,无需复杂的硬件支持或配置。
FASTFLOW如何检测拥塞?
FASTFLOW结合使用ECN标记和往返时间(RTT)测量来检测拥塞。ECN标记提供快速拥塞信号,而RTT测量提供更详细的队列信息。这种双重机制使FASTFLOW能够快速准确地响应网络拥塞。
FASTFLOW如何应对拥塞?
FASTFLOW根据拥塞的严重程度采用不同的拥塞响应机制:
- 公平减少:当检测到轻微拥塞时,逐渐减少拥塞窗口大小。
- 乘法减少:当检测到严重拥塞时,快速减少拥塞窗口大小。
- 快速适应:当发生数据包丢失时,快速调整拥塞窗口大小,以匹配可用带宽。
FASTFLOW与EQDS相比如何?
EQDS是一种基于接收端的拥塞控制算法,在管理突发流量方面表现出色。然而,EQDS在处理网络结构拥塞方面存在不足。FASTFLOW可以补充EQDS的不足,通过限制发送速率来提高EQDS的性能。
STrack: A Reliable Multipath Transport for AI/ML Clusters
STrack:一种适用于AI/ML集群的可靠多路径传输协议
https://arxiv.org/abs/2407.15266
发表时间:2024年7月23日
一、问题背景现今,AI/ML集群广泛采用InfiniBand作为网络技术。然而,为降低成本并实现更大规模,基于以太网的技术如RoCEv2开始被采用。尽管RoCEv2在传统云环境中表现出低延迟和高吞吐的优势,但在AI/ML集群中,标准RoCEv2存在限制:
- 单路径传输:RoCEv2依赖ECMP进行负载均衡,但在AI/ML网络高度并行的路径中,ECMP易出现哈希冲突,导致流量分布不均,无法满足AI/ML工作负载对高链路利用率的需求。
- 缺乏错误韧性:AI/ML集群网络规模庞大,对网络的错误韧性要求高。RoCEv2依赖无损以太网防止丢包,但位错误或数据包延迟仍会发生,其Go-back-N错误恢复机制会导致严重性能损失。
- 拥塞控制与负载均衡缺乏协同:AI/ML集群需要拥塞控制算法与负载均衡方案协同工作,快速切换路径以利用未充分利用的链路,并在拥塞严重时降低速度。RoCEv2的DCQCN拥塞控制算法无法满足这一需求。
- 硬件卸载复杂性:为实现低延迟,需将传输层卸载到硬件。多路径传输需跟踪每个路径的拥塞状态,导致内存开销过大。此外,多路径会导致NIC接收数据包乱序,需额外内存跟踪数据包到达和控制信息。
二、STrack算法
STrack是新型硬件卸载可靠传输协议,旨在通过重新思考传输层的关键方面提高AI/ML工作负载性能。其主要特点包括:
- 自适应负载均衡:STrack利用出口标记的ECN作为拥塞信号,根据路径拥塞情况自适应地将数据包分散到多个路径上,避免哈希冲突,并能有效应对链路故障。
- 基于窗口的拥塞控制:STrack采用基于窗口的拥塞控制算法,与自适应负载均衡方案协同工作,在拥塞出现时首先选择切换路径,仅当多个路径拥塞时才降低窗口大小。
- 高效的错误恢复:STrack假设以太网是有损的,设计基于接收端NIC乱序数据包计数的可靠错误恢复机制,确保快速数据包恢复,并最大程度减少虚假重传。
三、性能评估
通过大量仿真实验,STrack在合成工作负载和集体工作负载方面均优于RoCEv2。
- 合成工作负载:在全双向网络拓扑中,STrack的最大流完成时间(FCT)比RoCEv2提高6.3倍,在过载网络和非对称网络中也表现出显著优势。
- 集体工作负载:在全双向网络中,STrack的集体完成时间比RoCEv2缩短27.4%,在过载网络中则缩短4.86倍,尤其在DoubleBinaryTree算法中表现出色。
优势/特点
- 高性能:通过自适应负载均衡和拥塞控制,STrack能充分利用网络带宽,实现低延迟和高吞吐。
- 高可靠性:STrack的错误恢复机制能快速检测和恢复数据包丢失,保证数据传输可靠性。
- 硬件卸载:STrack将传输层卸载到硬件,减轻CPU负担,降低系统延迟。
- 无需高级交换机功能:STrack不依赖于数据包修剪、回传或网络内遥测等高级交换机功能,易于部署。
关于STrack的常见问题解答
什么是STrack?
STrack是一种新型的硬件卸载可靠传输协议,旨在通过重新思考传输层的关键方面来提高AI/ML工作负载的性能。它通过结合自适应负载均衡算法和基于RTT的多位拥塞指示器,协同优化拥塞控制和负载均衡,以精确调整拥塞窗口。此外,STrack还支持在多路径环境中进行硬件加速的乱序交付、选择性重传和快速丢包恢复。
STrack如何进行自适应负载均衡?
STrack使用出口标记的ECN作为拥塞信号,用于自适应数据包喷洒算法,而不是将数据包均匀分布在多个路径上的盲目数据包喷洒。STrack保留一个简单的位图来记录经历过ECN标记的熵值,作为拥塞状态。当ACK返回时没有ECN标记,则使用该熵值来计时下一个新数据包。如果ACK返回时带有ECN标记,则在位图的相应位置进行标记。下一个未标记的熵值以循环方式用于计时新数据包。
STrack如何进行拥塞控制?
STrack采用发送方拥塞控制来处理结构拥塞和最后一跳incast问题。STrack使用基于窗口的算法来处理跨路径的拥塞,并与自适应负载均衡方案协同工作。当出现拥塞时,ECN会在数据包位于出口处、离开拥塞队列时对其进行标记。这为我们提供了即将发生拥塞的早期指示。发送方会避开带有ECN标记的熵值。与DCQCN不同,带有ECN标记的数据包不一定会导致STrack缩小其窗口。STrack的拥塞控制使用来自不同路径的瞬时RTT样本的平均RTT来决定是否应该缩小拥塞窗口。只有当平均RTT超过阈值(即目标排队延迟)时,STrack才会缩小拥塞窗口。
STrack如何处理数据包丢失?
STrack设计了一种数据包丢失恢复机制,可以快速检测和重传静默丢包。此外,STrack的可靠性机制也与合并ACK机制相一致,以适应数据包处理速率增长速度低于链路速度的现实。STrack提供了一种跨越三个不同时间尺度的数据包丢失检测机制:(1)使用乱序数据包计数器,一到两个RTT;(2)使用探测,多个RTT;(3)使用重传超时,几十个RTT。一旦检测到丢失,只要拥塞窗口允许,就会重传数据包。
STrack与RoCEv2相比有哪些优势?
- 更高的带宽利用率:STrack的自适应负载均衡机制可以更有效地利用多路径网络中的所有可用带宽。
- 更低的延迟:STrack的拥塞控制和快速丢包恢复机制可以显著降低数据传输延迟。
- 更好的可扩展性:STrack可以更好地适应大规模AI/ML集群的需求。
STrack适用于哪些场景?
STrack非常适合需要高性能、低延迟和可靠数据传输的AI/ML集群,例如:
- 分布式深度学习训练
- 高性能计算
- 大数据分析
STrack的未来发展方向是什么?
- 支持更高级的网络功能:例如数据包裁剪和网络内遥测。
- 进一步优化拥塞控制和负载均衡算法:以提高性能和效率。
- 与其他AI/ML系统集成:以简化部署和管理。