NVIDIA 加速 AI 平臺(tái)和產(chǎn)品(如 NVIDIA EGX 、 DGX 、 OVX 和 NVIDIA AI for Enterprise)需要數(shù)據(jù)中心網(wǎng)絡(luò)提供最佳的性能。NVIDIA Spectrum 以太網(wǎng)平臺(tái)通過(guò)芯片級(jí)創(chuàng)新實(shí)現(xiàn)了這一性能。
融合以太網(wǎng) RDMA(RoCE)自適應(yīng)路由技術(shù)通過(guò)減少網(wǎng)絡(luò)擁塞問(wèn)題加快了應(yīng)用程序的速度。這篇文章介紹了 NVIDIA Spectrum 以太網(wǎng)平臺(tái)的自適應(yīng)路由技術(shù),并提供了一些初步的性能基準(zhǔn)。
是什么讓網(wǎng)絡(luò)變慢了?
您不必是云服務(wù)提供商就可以從橫向擴(kuò)展網(wǎng)絡(luò)中獲益。網(wǎng)絡(luò)行業(yè)已經(jīng)發(fā)現(xiàn),具有第 2 層轉(zhuǎn)發(fā)和生成樹(shù)的傳統(tǒng)網(wǎng)絡(luò)架構(gòu)效率低下,而且難以擴(kuò)展。他們過(guò)渡到 IP 網(wǎng)絡(luò)結(jié)構(gòu)。
這是一個(gè)很好的開(kāi)始,但在某些情況下,它可能不足以解決數(shù)據(jù)中心中引入的新型應(yīng)用程序和大量的流量。
可擴(kuò)展 IP 網(wǎng)絡(luò)的一個(gè)關(guān)鍵屬性是它們能夠跨多個(gè)交換機(jī)層次結(jié)構(gòu)分發(fā)大量的流和流量。
在一個(gè)完美的世界中,數(shù)據(jù)流是完全不相關(guān)的,因此在多個(gè)網(wǎng)絡(luò)鏈路上分布均勻、負(fù)載平衡平穩(wěn)。該方法依賴(lài)于現(xiàn)代哈希和多路徑算法,包括等價(jià)多路徑(ECMP)。運(yùn)營(yíng)商受益于在規(guī)模迥異的數(shù)據(jù)中心中廣泛部署的高端口數(shù)、固定規(guī)格的交換機(jī)。
然而,在許多情況下,這是行不通的,通常包括無(wú)處不在的現(xiàn)代工作負(fù)載,如 AI 、云和存儲(chǔ)。
這是一個(gè)有限熵的問(wèn)題。熵是一種衡量流經(jīng)給定網(wǎng)絡(luò)的流量的豐富性和多樣性的方法。
當(dāng)您有數(shù)千個(gè)從全球各地的客戶(hù)端隨機(jī)連接的流時(shí),您的網(wǎng)絡(luò)被稱(chēng)為有 high entropy 。然而,當(dāng)您只有少數(shù)大型流時(shí)(這在 AI 和存儲(chǔ)工作負(fù)載中經(jīng)常發(fā)生),大型流會(huì)控制帶寬,因此會(huì)出現(xiàn) low entropy 。這種低熵流量模式也稱(chēng)為“大象流”分布,在許多數(shù)據(jù)中心工作負(fù)載中都很明顯。
那么為什么熵很重要呢?
使用靜態(tài) ECMP 的傳統(tǒng)技術(shù),您需要高熵來(lái)將流量均勻地分布在多個(gè)鏈路上,而不會(huì)出現(xiàn)擁塞。然而,在“大象流”場(chǎng)景中,多個(gè)流可能出現(xiàn)在同一條鏈路上,從而創(chuàng)建一個(gè)超過(guò)線路帶寬的流量熱點(diǎn)或微突發(fā)。這會(huì)導(dǎo)致?lián)砣?、延遲增加、數(shù)據(jù)包丟失和重傳。
對(duì)于許多應(yīng)用程序,性能不僅取決于網(wǎng)絡(luò)的平均帶寬,還取決于流完成時(shí)間的分布。完成時(shí)間分布中的長(zhǎng)尾或異常值可能會(huì)顯著降低應(yīng)用程序性能。圖 2 顯示了低熵對(duì)流完成時(shí)間的影響。
此示例由單個(gè)架頂交換機(jī)組成,具有 128 個(gè) 100G 端口。
64 個(gè)端口是連接到服務(wù)器的 100G 下游端口。
64 個(gè)端口是連接到第 1 層交換機(jī)的 100G 上游端口。
每個(gè)下游端口接收四個(gè)帶寬相等的流:25G 每個(gè)流,總共 256 個(gè)流。
所有流量都通過(guò)靜態(tài)哈希和 ECMP 處理。
在最好的情況下,此配置的可用帶寬不會(huì)被超額使用,因此可能會(huì)出現(xiàn)以下結(jié)果。在最壞的情況下,與理想情況相比,流程可能需要長(zhǎng)達(dá) 2.5 倍的時(shí)間才能完成。
在這種情況下,一些端口擁塞,而其他端口未使用。最后一個(gè)流(最壞情況流)的預(yù)期持續(xù)時(shí)間是預(yù)期第一個(gè)流持續(xù)時(shí)間的 250% 。此外,10% 的流預(yù)計(jì)流完成時(shí)間超過(guò) 150% 。也就是說(shuō),有一組長(zhǎng)尾流,完成時(shí)間比預(yù)期的要長(zhǎng)。為了高置信度的避免擁塞(98%),必須將所有流的帶寬降低到 50% 以下。
為什么有許多流會(huì)而受到影響而完成時(shí)間過(guò)長(zhǎng)?這是因?yàn)?ECMP 上的一些端口非常擁擠。當(dāng)流完成傳輸并釋放一些端口帶寬時(shí),滯后流通過(guò)相同的擁塞端口,導(dǎo)致更多擁塞。這是因?yàn)樵趯?duì)標(biāo)頭進(jìn)行哈希處理后,路由是靜態(tài)的。
自適應(yīng)路由
NVIDIA 正在為Spectrum交換機(jī)引入自適應(yīng)路由。通過(guò)自適應(yīng)路由,轉(zhuǎn)發(fā)到 ECMP 組的流量選擇擁塞程度最低的端口進(jìn)行傳輸。擁塞程度基于出口隊(duì)列負(fù)載進(jìn)行評(píng)估,確保 ECMP 組在不考慮熵級(jí)別的情況下保持良好平衡。向多個(gè)服務(wù)器發(fā)出多個(gè)請(qǐng)求的應(yīng)用程序以最小的時(shí)間變化接收數(shù)據(jù)。
這是如何實(shí)現(xiàn)的?對(duì)于轉(zhuǎn)發(fā)到 ECMP 組的每個(gè)數(shù)據(jù)包,交換機(jī)在其出口隊(duì)列上選擇負(fù)載最小的端口。評(píng)估的隊(duì)列是那些與數(shù)據(jù)包服務(wù)質(zhì)量匹配的隊(duì)列。
相比之下,傳統(tǒng)的 ECMP 基于哈希方法進(jìn)行端口決策,這通常無(wú)法產(chǎn)生清晰的比較。當(dāng)相同流的不同數(shù)據(jù)包通過(guò)網(wǎng)絡(luò)的不同路徑傳輸時(shí),它們可能會(huì)在到達(dá)目的地時(shí)出現(xiàn)亂序的情況。在 RoCE 傳輸層,NVIDIA ConnectX NIC 負(fù)責(zé)處理無(wú)序數(shù)據(jù)包,并將數(shù)據(jù)按順序轉(zhuǎn)發(fā)給應(yīng)用程序。這使得自適應(yīng)路由對(duì)從中受益的應(yīng)用程序透明。
在發(fā)送方面,ConnectX 可以動(dòng)態(tài)標(biāo)記符合網(wǎng)絡(luò)重新排序的條件的流量,從而確保在需要時(shí)可以強(qiáng)制執(zhí)行消息間排序。交換機(jī)自適應(yīng)路由分類(lèi)器只能對(duì)這些標(biāo)記的 RoCE 流量進(jìn)行分類(lèi),使其使用這種獨(dú)特的轉(zhuǎn)發(fā)方式。
Spectrum 自適應(yīng)路由技術(shù)支持各種網(wǎng)絡(luò)拓?fù)?。?duì)于 CLOS(或葉/脊椎)等典型拓?fù)?,到給定目標(biāo)的各種路徑的距離是相同的。因此,交換機(jī)通過(guò)擁塞最小的端口傳輸數(shù)據(jù)包。在路徑之間距離不同的其他拓?fù)渲?,交換機(jī)傾向于通過(guò)最短路徑發(fā)送流量。如果擁塞發(fā)生在最短路徑上,則選擇擁塞最小的備選路徑。這確保了網(wǎng)絡(luò)帶寬得到有效利用。
工作負(fù)載測(cè)試結(jié)果
存儲(chǔ)
為了驗(yàn)證 RoCE 中自適應(yīng)路由的效果,我們從測(cè)試簡(jiǎn)單的 RDMA 寫(xiě)測(cè)試應(yīng)用程序開(kāi)始。在這些在多個(gè) 50 Gb/s 主機(jī)上運(yùn)行的測(cè)試中,我們將主機(jī)分成幾對(duì),每對(duì)主機(jī)在很長(zhǎng)一段時(shí)間內(nèi)互相發(fā)送大型 RDMA 寫(xiě)流。這種類(lèi)型的流量模式是存儲(chǔ)應(yīng)用程序工作負(fù)載中的典型模式。
圖 4 顯示了基于哈希的靜態(tài)路由在上行鏈路端口上發(fā)生沖突,導(dǎo)致流完成時(shí)間增加,帶寬減少,流之間的公平性降低。在轉(zhuǎn)移到自適應(yīng)路由后,所有問(wèn)題都得到了解決。
在第一個(gè)圖中,所有流幾乎同時(shí)完成,峰值帶寬相當(dāng)。
在第二個(gè)圖中,一些流實(shí)現(xiàn)了相同的帶寬和完成時(shí)間,而其他流發(fā)生沖突,導(dǎo)致完成時(shí)間更長(zhǎng),帶寬更低。實(shí)際上,在 ECMP 的情況下,一些流在 13 秒的理想完成時(shí)間 T 內(nèi)完成,而性能最差的流需要 31 秒,約為 T 的 2.5 倍。
人工智能/高性能計(jì)算
為了繼續(xù)評(píng)估 RoCE 工作負(fù)載中的自適應(yīng)路由,我們?cè)谝粋€(gè) 32 服務(wù)器測(cè)試臺(tái)上測(cè)試了常見(jiàn) AI 基準(zhǔn)測(cè)試的性能收益,該測(cè)試臺(tái)在兩級(jí)胖樹(shù)網(wǎng)絡(luò)拓?fù)渲惺褂盟膫€(gè) NVIDIA Spectrum 以太網(wǎng)交換機(jī)構(gòu)建。該基準(zhǔn)測(cè)試評(píng)估了分布式 AI 訓(xùn)練和 HPC 工作負(fù)載中常見(jiàn)的集合操作和網(wǎng)絡(luò)流量模型,如 all-to-all 流量和 all-reduce 操作。
總結(jié)
在許多情況下,基于靜態(tài)哈希的轉(zhuǎn)發(fā)會(huì)導(dǎo)致高擁塞和可變的流完成時(shí)間。這會(huì)降低應(yīng)用程序的性能。
NVIDIA Spectrum 自適應(yīng)路由解決了這個(gè)問(wèn)題。這項(xiàng)技術(shù)增加了網(wǎng)絡(luò)使用的帶寬,最大限度地減少了流完成時(shí)間的變化,從而提高了應(yīng)用程序的性能。
將此技術(shù)與 NVIDIA ConnectX 網(wǎng)卡提供的 RoCE 亂序包支持相結(jié)合,應(yīng)用程序?qū)λ褂玫募夹g(shù)是透明的。這確保了 NVIDIA Spectrum 以太網(wǎng)平臺(tái)提供了實(shí)現(xiàn)數(shù)據(jù)中心性能最大化所需的加速以太網(wǎng)能力。
審核編輯:湯梓紅
-
以太網(wǎng)
+關(guān)注
關(guān)注
40文章
5343瀏覽量
170801 -
NVIDIA
+關(guān)注
關(guān)注
14文章
4855瀏覽量
102711 -
網(wǎng)絡(luò)
+關(guān)注
關(guān)注
14文章
7485瀏覽量
88541 -
路由技術(shù)
+關(guān)注
關(guān)注
0文章
11瀏覽量
6500 -
spectrum
+關(guān)注
關(guān)注
0文章
40瀏覽量
13822
原文標(biāo)題:部署 NVIDIA Spectrum Ethernet 的自適應(yīng)路由功能加速網(wǎng)絡(luò)通信
文章出處:【微信號(hào):NVIDIA-Enterprise,微信公眾號(hào):NVIDIA英偉達(dá)企業(yè)解決方案】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論