兩篇論文:面向AI/ML集群的高性能網絡傳輸協(xié)議優(yōu)化研究
FASTFLOW: Flexible Adaptive Congestion Control for High-Performance Datacenters
FASTFLOW:針對高性能數(shù)據(jù)中心的靈活自適應擁塞控制
??https://arxiv.org/abs/2404.01630??
發(fā)表時間:2024年9月20日
一、問題背景
現(xiàn)代數(shù)據(jù)中心,特別是運行大規(guī)模AI訓練和HPC應用的數(shù)據(jù)中心,對網絡性能的要求越來越高。這些工作負載通常會產生突發(fā)性的、同步的流量,對傳統(tǒng)的擁塞控制算法提出了挑戰(zhàn)。現(xiàn)有擁塞控制算法的不足:
- 基于延遲的算法:如Swift和BBR,反應速度較慢,在處理短促的流量突發(fā)時無法及時調整發(fā)送速率,導致不公平的帶寬分配和較高的流完成時間(FCT)。
- 接收端算法:如EQDS,能有效管理最后一跳的擁塞(例如incast),但在處理網絡結構內部的擁塞(例如由ECMP沖突引起的擁塞)時表現(xiàn)不佳,可能導致帶寬利用率不足。
二、FASTFLOW算法
FASTFLOW是一種基于發(fā)送端的擁塞控制算法,旨在解決上述問題,實現(xiàn)高性能和公平性。關鍵特性:
- 擁塞信號:FASTFLOW結合使用延遲(RTT)和顯式擁塞通知(ECN)作為擁塞信號。延遲信號能更精確地反映擁塞程度;ECN信號能更快地通知擁塞。
- 擁塞窗口調整:FASTFLOW根據(jù)接收到的ACK包含的擁塞信息,采用不同的策略調整擁塞窗口的大小。當ECN和延遲信號對擁塞的存在意見不一致時,擁塞窗口會更加保守地增加或減少(公平減少/增加);當ECN和延遲信號都指示擁塞或都不指示擁塞時,擁塞窗口會更積極地調整(乘法減少/增加)。
- QuickAdapt:一種新穎的機制,能在檢測到嚴重擁塞時快速調整擁塞窗口。QuickAdapt默認依賴于數(shù)據(jù)包修剪功能,如果交換機不支持修剪,則回退到基于超時的機制。
- 快速增加:一種用于在某些流結束后快速恢復可用帶寬的機制。
三、性能評估
使用htsim網絡模擬器對FASTFLOW進行了評估,涵蓋不同的網絡拓撲(包括具有不同超額認購率的胖樹網絡)和流量模式(包括incast、permutation和alltoall)。結果表明,在大多數(shù)情況下,F(xiàn)ASTFLOW的性能優(yōu)于或與EQDS、Swift、BBR和MPRDMA等現(xiàn)有算法相當,在某些情況下甚至能實現(xiàn)高達50%的性能提升。即使在不支持數(shù)據(jù)包修剪的情況下,F(xiàn)ASTFLOW的性能下降也很小,通常不超過兩個基本RTT。優(yōu)勢/特點:
- 高性能:FASTFLOW結合多種技術,快速響應網絡擁塞,最大限度地提高吞吐量和降低延遲。
- 公平性:通過公平減少/增加機制和WTD機制,更公平地分配帶寬,避免對瞬時負載不平衡過度反應。
- 易于部署:只依賴ECN和RTT測量,這些功能在大多數(shù)數(shù)據(jù)中心交換機上都可用,無需特殊硬件支持。
- 低內存占用:內存占用很小,每個流只需存儲19字節(jié),便于在網卡上實現(xiàn)。
四、未來發(fā)展
- 與接收端算法結合:探討將FASTFLOW與EQDS等接收端算法結合使用的可能性,充分利用兩種類型算法的優(yōu)勢,進一步提高網絡性能。
- 針對特定工作負載優(yōu)化:針對特定的機器學習或HPC工作負載對FASTFLOW進行優(yōu)化,例如針對不同的集體通信模式調整算法參數(shù)。
- 實際部署和評估:在實際數(shù)據(jù)中心環(huán)境中部署和評估FASTFLOW,驗證其在真實場景下的性能和可擴展性。
關于FASTFLOW的常見問題
什么是FASTFLOW?
FASTFLOW是一種專為高性能數(shù)據(jù)中心設計的擁塞控制算法。它是一種基于發(fā)送端的算法,運行在有損以太網上,旨在解決機器學習工作負載帶來的網絡擁塞挑戰(zhàn)。
為什么需要新的擁塞控制算法?
現(xiàn)有的擁塞控制算法在應對大規(guī)模、突發(fā)性的數(shù)據(jù)中心流量時存在不足。許多算法過度依賴延遲作為擁塞信號,導致反應速度慢,無法保證公平性。例如,基于延遲的算法在處理突發(fā)流量時,往往反應過慢,導致并發(fā)運行的流之間處理不公平,并增加完成時間。
FASTFLOW的設計目標是什么?
FASTFLOW的設計目標是滿足現(xiàn)代高性能擁塞控制算法的需求,包括:
- 公平性:確保所有流都能公平地共享可用帶寬。
- 快速響應:快速檢測和響應網絡擁塞,最大程度地減少延遲和數(shù)據(jù)包丟失。
- 易于部署:依賴于廣泛可用的網絡功能,無需復雜的硬件支持或配置。
FASTFLOW如何檢測擁塞?
FASTFLOW結合使用ECN標記和往返時間(RTT)測量來檢測擁塞。ECN標記提供快速擁塞信號,而RTT測量提供更詳細的隊列信息。這種雙重機制使FASTFLOW能夠快速準確地響應網絡擁塞。
FASTFLOW如何應對擁塞?
FASTFLOW根據(jù)擁塞的嚴重程度采用不同的擁塞響應機制:
- 公平減少:當檢測到輕微擁塞時,逐漸減少擁塞窗口大小。
- 乘法減少:當檢測到嚴重擁塞時,快速減少擁塞窗口大小。
- 快速適應:當發(fā)生數(shù)據(jù)包丟失時,快速調整擁塞窗口大小,以匹配可用帶寬。
FASTFLOW與EQDS相比如何?
EQDS是一種基于接收端的擁塞控制算法,在管理突發(fā)流量方面表現(xiàn)出色。然而,EQDS在處理網絡結構擁塞方面存在不足。FASTFLOW可以補充EQDS的不足,通過限制發(fā)送速率來提高EQDS的性能。
STrack: A Reliable Multipath Transport for AI/ML Clusters
STrack:一種適用于AI/ML集群的可靠多路徑傳輸協(xié)議
??https://arxiv.org/abs/2407.15266??
發(fā)表時間:2024年7月23日
一、問題背景現(xiàn)今,AI/ML集群廣泛采用InfiniBand作為網絡技術。然而,為降低成本并實現(xiàn)更大規(guī)模,基于以太網的技術如RoCEv2開始被采用。盡管RoCEv2在傳統(tǒng)云環(huán)境中表現(xiàn)出低延遲和高吞吐的優(yōu)勢,但在AI/ML集群中,標準RoCEv2存在限制:
- 單路徑傳輸:RoCEv2依賴ECMP進行負載均衡,但在AI/ML網絡高度并行的路徑中,ECMP易出現(xiàn)哈希沖突,導致流量分布不均,無法滿足AI/ML工作負載對高鏈路利用率的需求。
- 缺乏錯誤韌性:AI/ML集群網絡規(guī)模龐大,對網絡的錯誤韌性要求高。RoCEv2依賴無損以太網防止丟包,但位錯誤或數(shù)據(jù)包延遲仍會發(fā)生,其Go-back-N錯誤恢復機制會導致嚴重性能損失。
- 擁塞控制與負載均衡缺乏協(xié)同:AI/ML集群需要擁塞控制算法與負載均衡方案協(xié)同工作,快速切換路徑以利用未充分利用的鏈路,并在擁塞嚴重時降低速度。RoCEv2的DCQCN擁塞控制算法無法滿足這一需求。
- 硬件卸載復雜性:為實現(xiàn)低延遲,需將傳輸層卸載到硬件。多路徑傳輸需跟蹤每個路徑的擁塞狀態(tài),導致內存開銷過大。此外,多路徑會導致NIC接收數(shù)據(jù)包亂序,需額外內存跟蹤數(shù)據(jù)包到達和控制信息。
二、STrack算法
STrack是新型硬件卸載可靠傳輸協(xié)議,旨在通過重新思考傳輸層的關鍵方面提高AI/ML工作負載性能。其主要特點包括:
- 自適應負載均衡:STrack利用出口標記的ECN作為擁塞信號,根據(jù)路徑擁塞情況自適應地將數(shù)據(jù)包分散到多個路徑上,避免哈希沖突,并能有效應對鏈路故障。
- 基于窗口的擁塞控制:STrack采用基于窗口的擁塞控制算法,與自適應負載均衡方案協(xié)同工作,在擁塞出現(xiàn)時首先選擇切換路徑,僅當多個路徑擁塞時才降低窗口大小。
- 高效的錯誤恢復:STrack假設以太網是有損的,設計基于接收端NIC亂序數(shù)據(jù)包計數(shù)的可靠錯誤恢復機制,確??焖贁?shù)據(jù)包恢復,并最大程度減少虛假重傳。
三、性能評估
通過大量仿真實驗,STrack在合成工作負載和集體工作負載方面均優(yōu)于RoCEv2。
- 合成工作負載:在全雙向網絡拓撲中,STrack的最大流完成時間(FCT)比RoCEv2提高6.3倍,在過載網絡和非對稱網絡中也表現(xiàn)出顯著優(yōu)勢。
- 集體工作負載:在全雙向網絡中,STrack的集體完成時間比RoCEv2縮短27.4%,在過載網絡中則縮短4.86倍,尤其在DoubleBinaryTree算法中表現(xiàn)出色。
優(yōu)勢/特點
- 高性能:通過自適應負載均衡和擁塞控制,STrack能充分利用網絡帶寬,實現(xiàn)低延遲和高吞吐。
- 高可靠性:STrack的錯誤恢復機制能快速檢測和恢復數(shù)據(jù)包丟失,保證數(shù)據(jù)傳輸可靠性。
- 硬件卸載:STrack將傳輸層卸載到硬件,減輕CPU負擔,降低系統(tǒng)延遲。
- 無需高級交換機功能:STrack不依賴于數(shù)據(jù)包修剪、回傳或網絡內遙測等高級交換機功能,易于部署。
關于STrack的常見問題解答
什么是STrack?
STrack是一種新型的硬件卸載可靠傳輸協(xié)議,旨在通過重新思考傳輸層的關鍵方面來提高AI/ML工作負載的性能。它通過結合自適應負載均衡算法和基于RTT的多位擁塞指示器,協(xié)同優(yōu)化擁塞控制和負載均衡,以精確調整擁塞窗口。此外,STrack還支持在多路徑環(huán)境中進行硬件加速的亂序交付、選擇性重傳和快速丟包恢復。
STrack如何進行自適應負載均衡?
STrack使用出口標記的ECN作為擁塞信號,用于自適應數(shù)據(jù)包噴灑算法,而不是將數(shù)據(jù)包均勻分布在多個路徑上的盲目數(shù)據(jù)包噴灑。STrack保留一個簡單的位圖來記錄經歷過ECN標記的熵值,作為擁塞狀態(tài)。當ACK返回時沒有ECN標記,則使用該熵值來計時下一個新數(shù)據(jù)包。如果ACK返回時帶有ECN標記,則在位圖的相應位置進行標記。下一個未標記的熵值以循環(huán)方式用于計時新數(shù)據(jù)包。
STrack如何進行擁塞控制?
STrack采用發(fā)送方擁塞控制來處理結構擁塞和最后一跳incast問題。STrack使用基于窗口的算法來處理跨路徑的擁塞,并與自適應負載均衡方案協(xié)同工作。當出現(xiàn)擁塞時,ECN會在數(shù)據(jù)包位于出口處、離開擁塞隊列時對其進行標記。這為我們提供了即將發(fā)生擁塞的早期指示。發(fā)送方會避開帶有ECN標記的熵值。與DCQCN不同,帶有ECN標記的數(shù)據(jù)包不一定會導致STrack縮小其窗口。STrack的擁塞控制使用來自不同路徑的瞬時RTT樣本的平均RTT來決定是否應該縮小擁塞窗口。只有當平均RTT超過閾值(即目標排隊延遲)時,STrack才會縮小擁塞窗口。
STrack如何處理數(shù)據(jù)包丟失?
STrack設計了一種數(shù)據(jù)包丟失恢復機制,可以快速檢測和重傳靜默丟包。此外,STrack的可靠性機制也與合并ACK機制相一致,以適應數(shù)據(jù)包處理速率增長速度低于鏈路速度的現(xiàn)實。STrack提供了一種跨越三個不同時間尺度的數(shù)據(jù)包丟失檢測機制:(1)使用亂序數(shù)據(jù)包計數(shù)器,一到兩個RTT;(2)使用探測,多個RTT;(3)使用重傳超時,幾十個RTT。一旦檢測到丟失,只要擁塞窗口允許,就會重傳數(shù)據(jù)包。
STrack與RoCEv2相比有哪些優(yōu)勢?
- 更高的帶寬利用率:STrack的自適應負載均衡機制可以更有效地利用多路徑網絡中的所有可用帶寬。
- 更低的延遲:STrack的擁塞控制和快速丟包恢復機制可以顯著降低數(shù)據(jù)傳輸延遲。
- 更好的可擴展性:STrack可以更好地適應大規(guī)模AI/ML集群的需求。
STrack適用于哪些場景?
STrack非常適合需要高性能、低延遲和可靠數(shù)據(jù)傳輸?shù)腁I/ML集群,例如:
- 分布式深度學習訓練
- 高性能計算
- 大數(shù)據(jù)分析
STrack的未來發(fā)展方向是什么?
- 支持更高級的網絡功能:例如數(shù)據(jù)包裁剪和網絡內遙測。
- 進一步優(yōu)化擁塞控制和負載均衡算法:以提高性能和效率。
- 與其他AI/ML系統(tǒng)集成:以簡化部署和管理。
