傳統(tǒng)的云數(shù)據(jù)中心網(wǎng)絡(luò)一般是基于對(duì)外提供服務(wù)的流量模型而設(shè)計(jì)的,流量主要是從數(shù)據(jù)中心到最終客戶,即以南北向流量為主,云內(nèi)部東西向流量為輔。承載 VPC 網(wǎng)絡(luò)的底層物理網(wǎng)絡(luò)架構(gòu),對(duì)于承載智算業(yè)務(wù)存在如下挑戰(zhàn)。
本文選自“智算中心網(wǎng)絡(luò)架構(gòu)白皮書(2023)”“智能計(jì)算中心規(guī)劃建設(shè)指南”,對(duì)傳統(tǒng)網(wǎng)絡(luò)與智算網(wǎng)絡(luò)、兩層胖樹、三次胖樹及全面的分析對(duì)比,并介紹了組網(wǎng)最佳實(shí)踐。
有阻塞網(wǎng)絡(luò):考慮到并非所有服務(wù)器都會(huì)同時(shí)對(duì)外產(chǎn)生流量,為了控制網(wǎng)絡(luò)建設(shè)成本, Leaf 交換機(jī)的下聯(lián)帶寬和上聯(lián)帶寬并非按照 1:1 設(shè)計(jì),而是存在收斂比。一般上聯(lián)帶寬僅有下聯(lián)帶寬的三分之一。
云內(nèi)部流量時(shí)延相對(duì)較高:跨 Leaf 交換機(jī)的兩臺(tái)服務(wù)器互訪需要經(jīng)過 Spine 交換機(jī),轉(zhuǎn)發(fā)路徑有 3 跳。
帶寬不夠大:一般情況下單物理機(jī)只有一張網(wǎng)卡接入 VPC 網(wǎng)絡(luò),單張網(wǎng)卡的帶寬比較有限,當(dāng)前較大范圍商用的網(wǎng)卡帶寬一般都不大于 200Gbps。
對(duì)于智算場(chǎng)景,當(dāng)前比較好的實(shí)踐是獨(dú)立建一張高性能網(wǎng)絡(luò)來承載智算業(yè)務(wù),滿足大帶寬,低時(shí)延,無損的需求。
大帶寬的設(shè)計(jì)
智算服務(wù)器可以滿配 8 張 GPU 卡,并預(yù)留 8 個(gè) PCIe 網(wǎng)卡插槽。在多機(jī)組建 GPU 集群時(shí),兩個(gè) GPU 跨機(jī)互通的突發(fā)帶寬有可能會(huì)大于 50Gbps。因此,一般會(huì)給每個(gè) GPU 關(guān)聯(lián)一個(gè)至少 100Gbps 的網(wǎng)絡(luò)端口。在這種場(chǎng)景下可以配置 4張 2*100Gbps 的網(wǎng)卡,也可以配置 8 張 1*100Gbps 的網(wǎng)卡,當(dāng)然也可以配置 8 張單端口 200/400Gbps 的網(wǎng)卡。
無阻塞設(shè)計(jì)
無阻塞網(wǎng)絡(luò)設(shè)計(jì)的關(guān)鍵是采用 Fat-Tree(胖樹)網(wǎng)絡(luò)架構(gòu)。交換機(jī)下聯(lián)和上聯(lián)帶寬采用 1:1 無收斂設(shè)計(jì),即如果下聯(lián)有64 個(gè) 100Gbps 的端口,那么上聯(lián)也有 64 個(gè) 100Gbps 的端口。
此外交換機(jī)要采用無阻塞轉(zhuǎn)發(fā)的數(shù)據(jù)中心級(jí)交換機(jī)。當(dāng)前市場(chǎng)上主流的數(shù)據(jù)中心交換機(jī)一般都能提供全端口無阻塞的轉(zhuǎn)發(fā)能力。
低時(shí)延設(shè)計(jì) AI-Pool
在低時(shí)延網(wǎng)絡(luò)架構(gòu)設(shè)計(jì)方面,百度智能云實(shí)踐和落地了基于導(dǎo)軌(Rail)優(yōu)化的AI-Pool 網(wǎng)絡(luò)方案。在這個(gè)網(wǎng)絡(luò)方案中,8 個(gè)接入交換機(jī)為一組,構(gòu)成一個(gè) AI-Pool。以兩層交換機(jī)組網(wǎng)架構(gòu)為例,這種網(wǎng)絡(luò)架構(gòu)能做到同 AI-Pool 的不同智算節(jié)點(diǎn)的 GPU 互訪僅需一跳。
在 AI-Pool 網(wǎng)絡(luò)架構(gòu)中,不同智算節(jié)點(diǎn)間相同編號(hào)的網(wǎng)口需要連接到同一臺(tái)交換機(jī)。如智算節(jié)點(diǎn) 1 的 1 號(hào) RDMA 網(wǎng)口,智算節(jié)點(diǎn) 2 的 1 號(hào) RDMA 網(wǎng)口直到智算節(jié)點(diǎn) P/2 的 1 號(hào) RDMA 網(wǎng)口都連到 1 號(hào)交換機(jī)。
在智算節(jié)點(diǎn)內(nèi)部,上層通信庫基于機(jī)內(nèi)網(wǎng)絡(luò)拓?fù)溥M(jìn)行網(wǎng)絡(luò)匹配,讓相同編號(hào)的 GPU 卡和相同編號(hào)的網(wǎng)口關(guān)聯(lián)。這樣相同GPU 編號(hào)的兩臺(tái)智算節(jié)點(diǎn)間僅一跳就可互通。
不同GPU編號(hào)的智算節(jié)點(diǎn)間,借助NCCL通信庫中的Rail Local技術(shù),可以充分利用主機(jī)內(nèi)GPU間的NVSwitch的帶寬,將多機(jī)間的跨卡號(hào)互通轉(zhuǎn)換為跨機(jī)間的同GPU卡號(hào)的互通。
對(duì)于跨 AI-Pool 的兩臺(tái)物理機(jī)的互通,需要過匯聚交換機(jī),此時(shí)會(huì)有 3 跳。
網(wǎng)絡(luò)可承載的 GPU 卡的規(guī)模和所采用交換機(jī)的端口密度、網(wǎng)絡(luò)架構(gòu)相關(guān)。網(wǎng)絡(luò)的層次多,承載的 GPU 卡的規(guī)模會(huì)變大,但轉(zhuǎn)發(fā)的跳數(shù)和時(shí)延也會(huì)變大,需要結(jié)合實(shí)際業(yè)務(wù)情況進(jìn)行權(quán)衡。
兩層胖樹架構(gòu)
8 臺(tái)接入交換機(jī)組成一個(gè)智算資源池 AI-Pool。圖中 P 代表單臺(tái)交換機(jī)的端口數(shù)。單臺(tái)交換機(jī)最大可下聯(lián)和上聯(lián)的端口為P/2 個(gè),即單臺(tái)交換機(jī)最多可以下聯(lián) P/2 臺(tái)服務(wù)器和 P/2 臺(tái)交換機(jī)。兩層胖樹網(wǎng)絡(luò)可以接入 P*P/2 張 GPU 卡。
三層胖樹架構(gòu)
三層網(wǎng)絡(luò)架構(gòu)中會(huì)新增匯聚交換機(jī)組和核心交換機(jī)組。每個(gè)組里面的最大交換機(jī)數(shù)量為 P/2。匯聚交換機(jī)組最大數(shù)量為 8,核心交換機(jī)組的最大數(shù)量為 P/2。三層胖樹網(wǎng)絡(luò)可以接入 P*(P/2)*(P/2)=P*P*P/4 張 GPU 卡。
在三層胖樹組網(wǎng)中,InfiniBand 的 40 端口的 200Gbps HDR 交換機(jī)能容納的最多 GPU 數(shù)量是 16000。這個(gè) 16000GPU 卡的規(guī)模也是目前 InfiniBand 當(dāng)前在國內(nèi)實(shí)際應(yīng)用的 GPU 集群的最大規(guī)模網(wǎng)絡(luò),當(dāng)前這個(gè)記錄被百度保持。
兩層和三層胖樹網(wǎng)絡(luò)架構(gòu)的對(duì)比
可容納的 GPU 卡的規(guī)模
兩層胖樹和三層胖樹最重要的區(qū)別是可以容納的 GPU 卡的規(guī)模不同。在下圖中 N 代表 GPU 卡的規(guī)模,P 代表單臺(tái)交換機(jī)的端口數(shù)量。比如對(duì)于端口數(shù)為 40 的交換機(jī),兩層胖樹架構(gòu)可容納的 GPU 卡的數(shù)量是 800 卡,三層胖樹架構(gòu)可容納的 GPU 卡的數(shù)量是 16000 卡。
轉(zhuǎn)發(fā)路徑
兩層胖樹和三層胖樹網(wǎng)絡(luò)架構(gòu)另外一個(gè)區(qū)別是任意兩個(gè)節(jié)點(diǎn)的網(wǎng)絡(luò)轉(zhuǎn)發(fā)路徑的跳數(shù)不同。
對(duì)于同智算資源池 AI-Pool 的兩層胖樹架構(gòu),智算節(jié)點(diǎn)間同 GPU 卡號(hào)轉(zhuǎn)發(fā)跳數(shù)為 1 跳。智算節(jié)點(diǎn)間不同 GPU 卡號(hào)在沒有做智算節(jié)點(diǎn)內(nèi)部 Rail Local 優(yōu)化的情況下轉(zhuǎn)發(fā)跳數(shù)為 3 跳。
對(duì)于同智算資源池 AI-Pool 的三層胖樹架構(gòu),智算節(jié)點(diǎn)間同 GPU 卡號(hào)轉(zhuǎn)發(fā)跳數(shù)為 3 跳。智算節(jié)點(diǎn)間不同 GPU 卡號(hào)在沒有做智算節(jié)點(diǎn)內(nèi)部 Rail Local 優(yōu)化的情況下轉(zhuǎn)發(fā)跳數(shù)為 5 跳。
典型實(shí)踐
不同型號(hào)的 InfiniBand/RoCE 交換機(jī)和不同的網(wǎng)絡(luò)架構(gòu)下所支持的 GPU 的規(guī)模不同。結(jié)合當(dāng)前已成熟商用的交換機(jī),我們推薦幾種物理網(wǎng)絡(luò)架構(gòu)的規(guī)格供客戶選擇。
Regular:InfiniBand 兩層胖樹網(wǎng)絡(luò)架構(gòu),基于 InfiniBand HDR 交換機(jī),單集群最大支持 800 張 GPU 卡。
Large:RoCE 兩層胖樹網(wǎng)絡(luò)架構(gòu),基于 128 端口 100G 數(shù)據(jù)中心以太交換機(jī),單集群最大支持 8192 張 GPU 卡。
XLarge:InfiniBand 三層胖樹網(wǎng)絡(luò)架構(gòu),基于 InfiniBand HDR 交換機(jī),單集群最大支持 16000 張 GPU 卡。
XXLarge:基于 InfiniBand Quantum-2 交換機(jī)或同等性能的以太網(wǎng)數(shù)據(jù)中心交換機(jī),采用三層胖樹網(wǎng)絡(luò)架構(gòu),單集群最大支持 100000 張 GPU 卡。
Large智算物理網(wǎng)絡(luò)架構(gòu)實(shí)踐
支撐上層創(chuàng)新應(yīng)用和算法落地的關(guān)鍵環(huán)節(jié)之一是底層的算力,而支撐智算集群的算力發(fā)揮其最大效用的關(guān)鍵之一是高性能網(wǎng)絡(luò)。度小滿的單個(gè)智算集群的規(guī)??蛇_(dá) 8192 張 GPU 卡,在每個(gè)智算集群內(nèi)部的智算資源池 AI-Pool 中可支持 512張 GPU 卡。通過無阻塞、低時(shí)延、高可靠的網(wǎng)絡(luò)設(shè)計(jì),高效的支撐了上層智算應(yīng)用的快速迭代和發(fā)展。
XLarge智算物理網(wǎng)絡(luò)架構(gòu)實(shí)踐
為了實(shí)現(xiàn)更高的集群運(yùn)行性能,百度智能云專門設(shè)計(jì)了適用于超大規(guī)模集群的 InfiniBand 網(wǎng)絡(luò)架構(gòu)。該網(wǎng)絡(luò)已穩(wěn)定運(yùn)行多年,2021 年建設(shè)之初就直接采用了 200Gbps 的 InfiniBand HDR 交換機(jī),單臺(tái) GPU 服務(wù)器的對(duì)外通信帶寬為1.6Tbps。
責(zé)任編輯:彭菁
-
帶寬
+關(guān)注
關(guān)注
3文章
994瀏覽量
42190 -
服務(wù)器
+關(guān)注
關(guān)注
13文章
9795瀏覽量
88001 -
交換機(jī)
+關(guān)注
關(guān)注
22文章
2747瀏覽量
101930 -
數(shù)據(jù)中心
+關(guān)注
關(guān)注
16文章
5230瀏覽量
73529 -
智能計(jì)算
+關(guān)注
關(guān)注
0文章
191瀏覽量
16722
原文標(biāo)題:智算中心網(wǎng)絡(luò)架構(gòu)設(shè)計(jì)實(shí)踐(2023)
文章出處:【微信號(hào):架構(gòu)師技術(shù)聯(lián)盟,微信公眾號(hào):架構(gòu)師技術(shù)聯(lián)盟】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
評(píng)論