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