NVIDIA 加速 AI 平臺和產品(如 NVIDIA EGX 、 DGX 、 OVX 和 NVIDIA AI for Enterprise )需要數據中心網絡的最佳性能。 NVIDIA Spectrum Ethernet 平臺通過芯片級創新實現了這一性能。
融合以太網 RDMA 自適應路由( RoCE )通過減少網絡擁塞問題加快了應用程序的速度。這篇文章介紹了 NVIDIA 頻譜以太網的自適應路由技術,并提供了一些初步的性能基準。
是什么讓我的網絡變慢了?
您不必是云服務提供商就可以從橫向擴展網絡中獲益。網絡行業已經發現,具有第 2 層轉發和生成樹的傳統網絡架構效率低下,而且難以擴展。他們過渡到 IP 網絡結構。
這是一個很好的開始,但在某些情況下,它可能不足以解決新類型的應用程序和跨數據中心引入的流量。
可擴展 IP 網絡的一個關鍵屬性是它們能夠跨多個交換機層次結構分布大量流量和流量。
在一個完美的世界中,數據流是完全不相關的,因此在多個網絡鏈路上分布均勻、負載平衡平穩。該方法依賴于現代哈希和多路徑算法,包括等成本多路徑( ECMP )。運營商受益于任何規模的數據中心中的高端口數、固定外形的交換機。
然而,在許多情況下,這是行不通的,通常包括無處不在的現代工作負載,如 AI 、云和存儲。

問題是有限熵的問題。熵是一種衡量流經給定網絡的流量的豐富性和多樣性的方法。
當您有數千個從全球各地的客戶端隨機連接的流時,您的網絡被稱為有 high entropy 。然而,當您只有少數大型流時(這在 AI 和存儲工作負載中經常發生),大型流會控制帶寬,因此會出現 low entropy 。這種低熵流量模式也稱為 elephant flow 分布,在許多數據中心工作負載中都很明顯。
那么為什么熵很重要呢?
使用靜態 ECMP 的傳統技術,您需要高熵來將流量均勻地分布在多個鏈路上,而不會出現擁塞。然而,在大象流場景中,多個流可以在同一條鏈路上對齊,從而創建一個超額預訂的熱點或微爆發。這會導致擁塞、延遲增加、數據包丟失和重傳。
對于許多應用程序,性能不僅取決于網絡的平均帶寬,還取決于流完成時間的分布。完成時間分布中的長尾或異常值可能會顯著降低應用程序性能。圖 2 顯示了低熵對流完成時間的影響。

此示例由單個機架頂部交換機組成,具有 128 個 100G 端口。
- 64 個端口是連接到服務器的 100G 下游端口。
- 64 個端口是連接到第 1 層交換機的 100G 上游端口。
- 每個下游端口接收四個帶寬相等的流量: 25G 每個流量,總共 256 個流量。
- 所有流量都通過靜態哈希和 ECMP 處理。
在最好的情況下,此配置的可用帶寬不會超額使用,因此可能會出現以下結果。在最壞的情況下,與理想情況相比,流程可能需要長達 2.5 倍的時間才能完成(圖 3)。

在這種情況下,一些端口擁塞,而其他端口未使用。最后一個流量(最壞流量)的預期持續時間是預期第一個流量持續時間的 250% 。此外, 10% 的流量預計流量完成時間超過 150% 。也就是說,有一個長尾流,完成時間比預期的要長。為了避免高置信度擁塞( 98% ),必須將所有流的帶寬降低到 50% 以下。
為什么有許多流會因完成時間過長而受到影響?這是因為 ECMP 上的一些端口非常擁擠。當流完成傳輸并釋放一些端口帶寬時,滯后流通過相同的擁塞端口,導致更多擁塞。這是因為在對標頭進行哈希處理后,路由是靜態的。
自適應路由
NVIDIA 正在為頻譜交換機引入自適應路由。通過自適應路由,轉發到 ECMP 組的流量選擇擁塞程度最低的端口進行傳輸。擁塞基于出口隊列負載進行評估,確保 ECMP 組在不考慮熵級別的情況下保持良好平衡。向多個服務器發出多個請求的應用程序以最小的時間變化接收數據。
這是如何實現的?對于轉發到 ECMP 組的每個數據包,交換機在其出口隊列上選擇負載最小的端口。評估的隊列是那些與數據包服務質量匹配的隊列。
相比之下,傳統的 ECMP 基于哈希方法進行端口決策,這通常無法產生清晰的比較。當相同流的不同數據包通過網絡的不同路徑傳輸時,它們可能會無序到達目的地。在 RoCE 傳輸層, NVIDIA ConnectX NIC 負責處理無序數據包,并將數據按順序轉發給應用程序。這使得從中受益的應用程序看不到自適應路由的魔力。
在發送方方面, ConnectX 可以動態標記流量,以符合網絡重新排序的條件,從而確保在需要時可以強制執行消息間排序。交換機自適應路由分類器只能對這些標記的 RoCE 流量進行分類,使其服從其唯一的轉發。
頻譜自適應路由技術支持各種網絡拓撲。對于 CLO (或葉/脊椎)等典型拓撲,到給定目標的各種路徑的距離是相同的。因此,交換機通過擁塞最小的端口傳輸數據包。在路徑之間距離不同的其他拓撲中,交換機傾向于通過最短路徑發送流量。如果擁塞發生在最短路徑上,則選擇擁塞最小的備選路徑。這確保了網絡帶寬得到有效利用。
工作量結果
存儲
為了驗證 RoCE 中自適應路由的效果,我們從測試簡單的 RDMA 寫測試應用程序開始。在這些在多個 50 Gb / s 主機上運行的測試中,我們將主機分成幾對,每對主機在很長一段時間內互相發送大型 RDMA 寫流。這種類型的流量模式是存儲應用程序工作負載中的典型模式。
圖 4 顯示了基于哈希的靜態路由在上行鏈路端口上發生沖突,導致流完成時間增加,帶寬減少,流之間的公平性降低。在轉移到自適應路由后,所有問題都得到了解決。

在第一個圖中,所有流幾乎同時完成,峰值帶寬相當。
在第二個圖中,一些流實現了相同的帶寬和完成時間,而其他流發生沖突,導致完成時間更長,帶寬更低。實際上,在 ECMP 的情況下,一些流在 13 秒的理想完成時間 T 內完成,而性能最差的流需要 31 秒,約為 T 的 2.5 倍。
人工智能/高性能混凝土
為了繼續評估 RoCE 工作負載中的自適應路由,我們在一個 32 服務器測試臺上測試了常見 AI 基準的性能增益,該測試臺在兩級 fat 樹網絡拓撲中使用四個 NVIDIA 頻譜交換機構建。該基準評估了分布式 AI 培訓和 HPC 工作負載中常見的集體操作和網絡流量模式,如全對全流量和全減少集體操作。


總結
在許多情況下,基于靜態哈希的轉發會導致高擁塞和可變流完成時間。這會降低應用程序級性能。
NVIDIA 頻譜自適應路由解決了這個問題。這項技術增加了網絡使用的帶寬,最大限度地減少了流完成時間的變化,從而提高了應用程序的性能。
將此技術與 NVIDIA ConnectX NIC 提供的 RoCE 無序支持相結合,應用程序對所使用的技術是透明的。這確保了 NVIDIA Spectrum Ethernet 平臺提供了實現最大數據中心性能所需的加速以太網。
?