高性能計算和深度學習工作負載對延遲極為敏感。數據包丟失會導致通信管道中的重傳或停頓,從而直接增加延遲并中斷 GPU 之間的同步。這可能會降低集合運算(例如 all-reduce 或 broadcast)的性能,因為這些運算需要每個 GPU 的參與才能進行。
本文重點介紹基于 NVIDIA 以太網的東西向 AI 網絡解決方案 Spectrum-X。我從 AI 工作負載的角度討論了 AI 結構的彈性、鏈路翼的后果、鏈路故障,以及 NVIDIA 集合通信庫 (NCCL) 。
丟包靈敏度
NCCL 專為高速和低延遲環境而設計,通常通過支持 RDMA 的無損網絡 (例如 InfiniBand、NVLink 或適用于 Ethernet 的 Spectrum-X) 實現。其性能可能會受到網絡事件的顯著影響:
- 延遲和抖動: NCCL 的集合運算依賴于 GPU 之間的緊密同步。高延遲或抖動可能會中斷計時,并降低整體效率和 AI 工作負載性能。
- 數據包丟失和超時: NCCL 通常采用可靠 (lossless) 的傳輸層,并且不實施重度錯誤恢復機制。數據包丟失或超時可能會導致通信錯誤、性能降低或 NCCL 操作中斷。
為獲得最佳性能,NCCL 應在網絡上運行,并盡可能減少延遲、抖動和丟包。
當我談到 packet loss 和 timeouts 時,假設 fabric 完全無損。Spectrum-X 具有完美的 SPCX-CC 機制,因此 packet loss 的唯一來源是 link-failure 和 link-flap 事件。
鏈路故障和鏈路翼通常由數據平面和控制平面功能無法控制的外部因素引起。它們通常是由于環境條件造成的,例如連接器中的灰塵、光纖問題或光學組件和 IC 的過高溫度或平均故障間隔時間 (MTBF) 導致的光模塊故障。
得益于 Spectrum-X 擁塞控制,您可以避免無損網絡中因隊列和擁塞而導致的數據包丟棄。但是,您無法避免數據包丟棄,因為接口下降,甚至更糟的是,數據包丟失。這種下降可能會對 AI 工作負載和 NCCL 集合產生嚴重影響。
NCCL 依賴于自定義通信協議,這些協議承擔近乎完美、可靠的數據傳輸。與使用魯棒糾錯或重傳策略 (例如 TCP) 的協議不同,NCCL 設計期望盡可能減少數據包丟失以保持高性能。由于系統必須等待錯誤恢復,即使是少量的數據包丟失也會引發延遲,從而降低整體吞吐量和訓練 LLM 所需的時間。
NCCL 還經常采用流聚合和流水線通信來更大限度地提高帶寬利用率。丟包會中斷這種流暢的數據流。當數據包丟失時,整個 pipeline 可能會停止,直到恢復機制開始運作,從而降低 pipelining 的優勢,并導致有效吞吐量顯著下降。
NCCL 通常部署在具有低丟包率的高性能數據中心網絡結構 (例如 NVLink、InfiniBand 和基于 Ethernet 的 Spectrum-X) 上。
為實現這一目標,其 communication routines 得到簡化,錯誤檢查和恢復 overhead 最低。
當丟包接近于零時,此方法非常有效,但如果丟包,則沒有太多的內置冗余來快速糾正它。當在丟包率較高的網絡 (如傳統 Ethernet 網絡) 上使用時,或者由于鏈路翼導致丟包率不可避免的環境中使用時,系統可能會遇到 NCCL 設計中沒有預見到的意外重傳,從而導致過度的性能下降。
總之,NCCL 對丟包的敏感度源于其對緊密合的低延遲通信協議和優化的數據流策略的依賴。即使是輕微的數據包丟失也會中斷同步、強制重傳并導致性能顯著下降,因此可靠、高質量的網絡條件對于實現 NCCL 高性能至關重要。
提高 AI 數據中心網絡的彈性
對于不可避免的丟包事件,例如鏈路故障或鏈路翼,您必須確保最大限度地減少網絡收所需的時間,并且網絡能夠以一致和確定的方式收,而不管其規模和大小如何。從 NCCL 和 AI 工作負載的角度來看,這一點極其重要,因為它會影響訓練時間以及 NCCL 根據每個故障事件的行為方式。
根據現代 AI 數據中心網絡的設計,為了提供彈性和收斂,我們依賴于強大且可擴展的 BGP 及其功能。鏈路故障等事件會導致拓撲發生變化,并導致整個網絡重新計算最佳路徑、重新平衡 Equal-Cost Multipath Routing (ECMP) 組,以及更新和傳播加權 ECMP 信息。
另一方面,BGP 在后端的運行方式可能會造成一些情況,從而阻礙要求嚴苛的 AI 網絡的快速收斂目標。
隨著 GPU 集群規模隨著 GPU 數量的增加而擴大,BGP RIB 和路由表也在增長。集群中的 GPU 數量與路由表大小之間存在一對一的關系。
BGP 最初的設計方式是強制 BGP 重新計算每個前綴的最佳路徑,并且此類信息需要在整個網絡中傳播。由此可見,集群規模越大,BGP 收斂速度越慢。加權 ECMP 數據的傳播速度較慢。NCCL 經歷中斷的時間會增加。因此,LLM 訓練作業需要更長的時間,并且無法在確定的時間范圍內完成。
因此,您需要 BGP Prefix Independent Convergence (PIC) 等機制,并且可以使用它為您的 AI 結構利用最佳收斂時間。BGP PIC 的優勢在于以 ECMP 或預先計算的備份路徑的形式存在多個到達目的地的路徑。
BGP PIC 簡介
默認 BGP 收 vergence 依賴于 prefix,BGP 本身會按 prefix 處理和更新每個 route。
下面我們將深入探討為什么會出現這種情況:
- 前綴路由處理
- 獨立決策
- 計時器和傳播延遲
- 可擴展性挑戰
本質上,默認的 BGP 收依賴于前綴,因為協議旨在處理單個前綴級別的路由決策、更新和提取。這種設計雖然靈活且精細,但在大量前綴受網絡事件影響時,會導致收速度變慢。
前綴路由處理
BGP 將每個網絡前綴視為獨立的路由。當發生更改(例如鏈路故障或策略更新)時,BGP 必須單獨評估和更新每個受影響前綴的最佳路徑。
如果故障影響多個前綴,則每個前綴都會經歷各自的收斂過程。
獨立決策
BGP 的最佳路徑選擇算法分別為每個前綴運行。按前綴評估本地偏好、AS 路徑和 MED 等屬性。沒有適用于前綴組的集合決策過程,這有助于實現收的前綴依賴性。
計時器和傳播延遲
每個前綴都應用了 Minimum Route Advertisement Interval (MRAI) 計時器等機制。
當路由被撤回或更新時,每個前綴可能會受到其自身 timer 延遲的影響,隨著前綴數量的增加,這會進一步延長總體收斂時間。
可擴展性挑戰
在具有數百萬個前綴的大型網絡中,需要單獨處理每條路線可能會導致嚴重的延遲。這就是為什么開發 BGP PIC 是為了預計算備份路徑,并實現更快的恢復,而無需等待每個前綴單獨收斂。
總結
BGP PIC 為大規模 AI 網絡結構中的彈性問題引入了一種新的解決方案。它可更大限度地減少超大規模 GPU 集群的收斂時間 (縮小到小型網絡) ,使前綴數量獨立于收斂時間。這使得 NVIDIA Spectrum-X 成為市場上獨一無二的解決方案。
BGP PIC 和 Spectrum-X 使 NCCL 作業和 AI 工作負載在連接故障和 flaps 方面更具彈性,并且在訓練 LLM 的時間方面具有確定性。
有關更多信息,請參閱以下資源: