在 AI 算力建設中, RDMA 技術(shù)是支持高吞吐、低延遲網(wǎng)絡通信的關鍵。目前,RDMA技術(shù)主要通過兩種方案實現(xiàn):Infiniband和RoCE(基于RDMA的以太網(wǎng)技術(shù),以下簡稱為RoCE)。
RoCE與IB網(wǎng)絡架構(gòu)概述
RoCE和InfiniBand均是InfiniBand Trade Association(IBTA)定義的網(wǎng)絡協(xié)議棧,其中Infiniband是一種專為RDMA設計的高性能網(wǎng)絡,它從硬件層面確保了數(shù)據(jù)傳輸?shù)目煽啃?,為了進一步發(fā)揮RDMA的優(yōu)勢,IBTA在2010年定義了RoCE。RoCE則是Infiniband與以太網(wǎng)技術(shù)的融合,它在保持Infiniband核心優(yōu)勢的同時,實現(xiàn)了與現(xiàn)有以太網(wǎng)基礎設施的兼容性。具體來說,RoCE在鏈路層和網(wǎng)絡層與Infiniband有所不同,但在傳輸層和RDMA協(xié)議方面,RoCE繼承了Infiniband的精髓。
從市場應用占比來看,2000年,IB架構(gòu)規(guī)范的1.0版本正式發(fā)布,2015年,InfiniBand技術(shù)在TOP500榜單中的占比首次超過了50%,但據(jù)最新統(tǒng)計,在全球TOP500的超級計算機中,RoCE和IB的占比相當。以計算機數(shù)量計算,IB占比為47.8%,RoCE占比為39%;而以端口帶寬總量計算,IB占比為39.2%,RoCE為48.5%。
圖1 超級計算機 500 強中 RoCE 和 InfiniBand 的利用率
圖2 超級計算機 500 強中 RoCE 和 InfiniBand 的利用率
RoCE與IB報文格式對比
- RoCE報文格式下圖所示:
其中,RoCEv1使用了IB的全局路由頭(Global Routing Header),IB BTH是IB的基本傳輸頭(Base Transport Header),ICRC是對InfiniBand層不變字段進行校驗的循環(huán)冗余校驗碼,FCS是以太網(wǎng)鏈路層的校驗序列碼。
RoCEv2中添加了IP Header和UDP Headrer,引入IP解決了擴展性問題。
圖3 RoCE數(shù)據(jù)包格式
- IB報文格式如下圖所示:
在一個子網(wǎng)(Subnet)內(nèi)部,只有Local Routing Header(LRH),對應OSI的鏈路層。在子網(wǎng)之間,還有一個Global Routing Header(GRH),對應OSI的網(wǎng)絡層。在Routing Header之上,是Transport Header,提供端到端的傳輸服務,包括數(shù)據(jù)的分段、重組、確認和流量控制。接著就是報文的數(shù)據(jù)部分,包含應用層數(shù)據(jù)或上層協(xié)議信息。最后是不變字段和可變字段的循環(huán)冗余校驗碼(CRC),用于檢測報文在傳輸過程中的錯誤。
圖4 IB數(shù)據(jù)包格式
RoCE與IB網(wǎng)絡層級對比
IB與RoCE協(xié)議棧在傳輸層以上是相同的,在鏈路層與網(wǎng)絡層有所區(qū)別:
RoCEv1中,以太網(wǎng)替代了IB的鏈路層(交換機需要支持PFC等流控技術(shù),在物理層保證可靠傳輸),然而,由于RoCEv1中使用的是L2 Ethernet網(wǎng)絡,依賴于以太網(wǎng)的MAC地址和VLAN標簽進行通信,而不涉及網(wǎng)絡層(IP層,即OSI模型的第三層)的路由功能,因此,RoCE v1數(shù)據(jù)包不能實現(xiàn)跨不同的IP子網(wǎng)傳輸,只能在同一廣播域或L2子網(wǎng)內(nèi)進行傳輸。
RoCEv2在RoCEv1的基礎上,融合以太網(wǎng)網(wǎng)絡層,IP又替代了IB的網(wǎng)絡層,因此也稱為IP routable RoCE,使得RoCE v2協(xié)議數(shù)據(jù)包可以在第3層進行路由,可擴展性更優(yōu)。
圖5 RoCE和IB協(xié)議棧對比
物理層
- RoCE的物理層基于標準以太網(wǎng),使用PAM4 (Pulse Amplitude Modulation 4)編碼方式和64/66b編碼。支持銅纜和光纖,接口有 SFP+、QSFP+ 、OSFP等。支持速率從 10GbE到800GbE。
- IB的物理層則是專有的,采用更傳統(tǒng)的NRZ(Non-Return-to-Zero)調(diào)制技術(shù)和64/66b編碼。支持銅纜和光纖,接口通常為 QSFP、OSFP,支持速率從 10Gbps 到 400Gbps,并可以通過多通道的組合實現(xiàn)更高的總帶寬(如 800Gbps)。
對比來看,IB采用的NRZ每個符號只有兩個電平,而RoCE采用的PAM4使用 4個不同的電壓電平來表示數(shù)據(jù),也就是說RZ信號中,每個周期傳輸1bit的邏輯信息,PAM4每個周期可以傳輸2bit的信息,因此在相同的波特率下,PAM4的數(shù)據(jù)傳輸速率是NRZ的兩倍,具有更高的帶寬效率,在支持更高速率(如1.6T,3.2T)時具有潛在的優(yōu)勢。目前,六進制(PAM6)和八進制(PAM8)調(diào)制技術(shù)正處于實驗和測試階段,而InfiniBand(IB)也在逐漸從傳統(tǒng)的NRZ(非歸零)調(diào)制技術(shù)轉(zhuǎn)型至PAM4,例如,400G光模塊現(xiàn)已能夠同時支持IB和以太網(wǎng)標準。相比之下,以太網(wǎng)在調(diào)制技術(shù)的應用上展現(xiàn)出更為迅速的發(fā)展勢頭。
圖6 頻域中 PAM4 與 NRZ 信號的頻率內(nèi)容
鏈路層
- RoCE的鏈路層是標準以太網(wǎng),為了在傳統(tǒng)以太網(wǎng)上實現(xiàn)無損傳輸,引入了 PFC (Priority-based Flow Control),由IEEE 802.1Qbb標準定義,當交換機的某個優(yōu)先級隊列的緩沖區(qū)接近滿載時,會發(fā)送 PFC幀給上游設備,通知其暫停發(fā)送該優(yōu)先級的流量,防止緩沖區(qū)溢出,避免數(shù)據(jù)包在鏈路層被丟棄。
此外,以太網(wǎng)引入了ETS(Enhanced Transmission Selection) ,它是DCB (Data Center Bridging)標準的一部分,由 IEEE 802.1Qaz 規(guī)范定義。ETS 將流量分配到不同的隊列,為每個隊列分配一個權(quán)重,控制每個流量隊列能夠使用的帶寬百分比,保證高優(yōu)先級的流量,如RDMA等,獲得足夠的帶寬資源。
- IB的鏈路層是專有的,包頭稱為Local Routing Header,如圖所示。
其中,VL是虛擬通道 (Virtual Lanes),SL是服務等級 (Service Level),Source/Destination Local Identifier則是鏈路層地址。
它內(nèi)建了對無損傳輸?shù)闹С?,這是因為它實現(xiàn)了基于信用的流量控制( Credit -based Flow Control)。接收方在每個鏈路上提供一個信用值,表示其緩沖區(qū)能夠接收的數(shù)據(jù)量。發(fā)送方根據(jù)此信用值發(fā)送數(shù)據(jù),確保不會超過接收方的處理能力,從而避免緩沖區(qū)溢出和 數(shù)據(jù)丟失 。
IB鏈路層結(jié)合SL和VL實現(xiàn)QoS,SL共有16個業(yè)務等級,用于標識流量優(yōu)先級,每個數(shù)據(jù)包可以根據(jù)業(yè)務需求被分配到不同的服務等級,通過SL-VL映射,將不同優(yōu)先級的流量分配到不同的VL上,從而確保高優(yōu)先級流量(如RDMA)不會因低優(yōu)先級流量的擁塞而受到影響。
對比而言,IB的鏈路層由專用硬件實現(xiàn),效率較高,具有超低時延的特點,而RoCE基于標準以太網(wǎng)硬件,時延稍長。但由于兩者都達到了100ns級別,而根據(jù)UEC的最新定義,在傳輸RDMA時,端到端性能要求通常為10μs左右,它們的差別不大。
網(wǎng)絡層
- RoCE的網(wǎng)絡層使用IP,可以是IPv4或IPv6。它采用成熟的BGP/OSPF等路由協(xié)議,適應任何網(wǎng)絡拓撲并具有快速自愈能力;支持ECN(EXPLICIT CONGESTION NOTIFICATION ),用于端到端的擁塞控制;支持DSCP,替代IB的TRAFFIC CLASS,用于實現(xiàn)QoS。
- IB的網(wǎng)絡層借鑒了IPv6。Global Routing Header的格式與IPv6完全相同,具有128bit地址,只是字段命名不同。但它沒有定義路由協(xié)議,而是采用子網(wǎng)管理器(Subnet Manager)來處理路由問題,這是一種集中式的[服務器] ,每個網(wǎng)卡端口和交換芯片都通過由SM分配的唯一[身份標識] (Local ID,LID)進行識別,不具備互操作性,因此很難快速響應網(wǎng)絡的變化。
顯然,IB網(wǎng)絡層是專有的、集中管理的,而RoCE的網(wǎng)絡層基于標準以太網(wǎng)和UDP,在互聯(lián)網(wǎng)數(shù)以十億計算的設備上使用,技術(shù)成熟,并在持續(xù)發(fā)展中;引入SRv6等技術(shù)后,IP進一步增強了流量工程、業(yè)務鏈、靈活性和可擴展性等能力,非常適合組建超大規(guī)模可自愈的RDMA網(wǎng)絡。
傳輸層
RoCE
RoCE采用了IB的傳輸層。RoCEv2協(xié)議棧雖然包含UDP,但它僅借用了UDP的封裝格式,傳輸層的連接、重傳、擁塞控制等功能由IB傳輸層完成。UDP層的目的端口固定分配給RDMA協(xié)議,源端口則是動態(tài)分配的,但在一個連接過程中保持固定。這樣可以讓網(wǎng)絡設備通過源端口區(qū)分不同的RDMA 數(shù)據(jù)流 。
InfiniBand
IB的傳輸層采用了模塊化的靈活設計,通常包含一個基本傳輸頭 BTH(Base Transport Header) 和若干個(0到多個)擴展的傳輸頭(Extended Transport Header)。
BTH(Base Transport Header) 是InfiniBand傳輸層頭部的一部分。它是InfiniBand網(wǎng)絡協(xié)議中L4傳輸層的基本頭部,用于描述數(shù)據(jù)包傳輸?shù)目刂菩畔?。格式如下?/p>
關鍵信息有:
- OpCode , 操作碼 。由8個bit組成。前3個bit代表傳輸服務類型,如可靠連接/不可靠連接/可靠數(shù)據(jù)報/不可靠數(shù)據(jù)報/RAW數(shù)據(jù)報等。后5個bit代表操作類型,如SEND/READ/WRITE/ACK等。
- Destination QP,目的QP號 (Queue Pair Number)。與TCP端口號類似,代表了RDMA連接(稱為Channel)的目的端。但與TCP端口不同的是,QP由Send/Recv兩個隊列組成,但用同一個號碼標識。
- Packet Sequence Number,包序列號 ,簡稱PSN。與TCP序列號類似,用于檢查數(shù)據(jù)包的傳輸順序。
- Partition Key,分區(qū)鍵。 可以將一個RDMA網(wǎng)絡分為多個邏輯分區(qū)。在RoCE中可采用新一代的VxLAN等技術(shù)替代。
- ECN,顯示擁塞通知。 用于擁塞控制,包含F(xiàn)orward和Backward兩個bit,分別表示在發(fā)送和返回路徑上遇到了擁塞,在RoCE中被IP頭部的ECN替代。
BTH幫助接收方理解該包屬于哪個連接以及如何處理接收到的包,包括驗證包的順序、識別操作類型等。
在BTH之后,還有 RDMA Extended Transport Header ,它包含遠端的虛擬地址、密鑰和數(shù)據(jù)長度等信息。格式如下,
其中:
- VirtualAddress ,虛擬地址,代表目的端內(nèi)存地址。
- DMA Length ,直接內(nèi)存訪問長度,是要讀寫的數(shù)據(jù)長度,以字節(jié)為單位。
- Remote Key ,用于訪問遠端內(nèi)存的密鑰。
IB傳輸層通常由RDMA網(wǎng)卡硬件實現(xiàn),在IB中稱為Channel Adapter(CA),在RoCE中稱為RoCE網(wǎng)卡,從而提升RDMA傳輸?shù)男阅?。在一些高級的RoCE交換機中,還可以感知IB傳輸層信息并對RDMA數(shù)據(jù)流做加速處理。
RDMA操作
借助RDMA擴展頭,RoCE和IB的傳輸層對遠程主機的地址進行直接的讀寫操作(Operation)。
- RDMA寫操作 (RDMA Write)
在 QP(Queue Pair) 建立后可以直接進行,允許發(fā)送方直接寫入接收方的內(nèi)存,不需要接收方的CPU參與,并且無需請求。這種操作方式是 RDMA 高性能和低延遲的核心特性之一。
RDMA Write 是一種單向操作。寫入方在寫入數(shù)據(jù)后不需要等待接收方的響應,這種操作與常規(guī)的 Send/Receive 模式不同,不需要接收方預先準備接收隊列。
- RDMA讀操作 (RDMA Read)
允許發(fā)送方從接收方的內(nèi)存中讀取數(shù)據(jù),不需要接收方CPU參與。目標地址和數(shù)據(jù)大小在發(fā)送方指定。如下圖所示,在一次請求后,可以通過多次響應返回數(shù)據(jù),提高了數(shù)據(jù)傳輸效率。
圖7 RDMA 讀操作
- 發(fā)送/接收操作 (Send/Receive)
這是傳統(tǒng)的消息傳遞操作,數(shù)據(jù)從發(fā)送方傳遞到接收方的接收隊列中,需要接收方預先準備接收隊列。
在RoCE中,RDMA跳過操作系統(tǒng)的TCP/IP協(xié)議棧,直接與RoCE網(wǎng)卡上的傳輸層連接,借助DMA機制,直接訪問本地和遠端內(nèi)存,實現(xiàn)了零拷貝傳輸,大幅度提升了性能。
同樣,IB網(wǎng)卡在硬件上實現(xiàn)RDMA操作,零拷貝傳輸,兩者的性能相當。
當然,無論在RoCE還是IB中,RDMA 連接的初始化、資源分配、隊列對 (QP) 管理、以及一些控制路徑上的操作(如連接建立、內(nèi)存注冊等)仍然依賴于軟件棧。
應用層
RDMA在 數(shù)據(jù)中心 、HPC集群、超級計算機中獲得了廣泛的應用,用于承載AI訓練、推理、[分布式存儲] 等數(shù)據(jù)中心內(nèi)部的關鍵業(yè)務。
例如,在AI訓練/推理時, xCCL或者MPI使用RDMA實現(xiàn)點對點和集合通信;在分布式存儲時,NVMEoF, Ceph使用RDMA對網(wǎng)絡存儲器進行讀寫操作。
網(wǎng)絡層級對比小結(jié)
- 在物理層,RoCE和IB都支持800G,但PAM4相比NRZ具有更強的升級潛力,以太網(wǎng)成本也低于IB,RoCE更勝一籌。
- 在鏈路層,兩者均實現(xiàn)了無損傳輸,RoCE的ETS能夠為不同優(yōu)先的流量提供帶寬保證,且RoCE和IB的時延均達到了100ns級別,在實際應用中差不大。
- 在網(wǎng)絡層,RoCE借助IP的成熟的持續(xù)發(fā)展,更能適應大規(guī)模網(wǎng)絡。
- 傳輸層及以上,RoCE和IB使用同樣的協(xié)議,沒有區(qū)別。
RoCE與IB的較量,究竟誰更勝一籌
總的來說,RoCE和InfiniBand都由IBTA定義,沒有本質(zhì)的不同。RoCE實際上是將成熟的IB傳輸層和RDMA移植到了同樣成熟的以太網(wǎng)和IP網(wǎng)絡上,是一種強強聯(lián)合,在保持高性能的同時,降低了RDMA網(wǎng)絡的成本,能夠適應更大規(guī)模的網(wǎng)絡。
根據(jù)亞馬遜的高級首席工程師Brian Barrett,AWS之所以放棄IB方案,主要是因為:“云數(shù)據(jù)中心很多時候是要滿足資源調(diào)度和共享等一系列彈性部署的需求,專用的IB網(wǎng)絡構(gòu)建的集群如同在汪洋大海中的孤島”。
出于AI算力建設對于成本和開放性的考量,越來越多的公司已經(jīng)在使用以太網(wǎng)交換機用于大規(guī)模AI算力中心,例如當前全球最大的AI超級集群(xAI Colossus,造價數(shù)億美元、配備十萬片NVIDIA H100 GPU),便是采用64 x 800G,51.2T以太網(wǎng)方案構(gòu)建集群網(wǎng)絡。
參考文獻
https://mp.weixin.qq.com/s/PZ_Q5rS5a5YJlczao9SMXw
https://support.huawei.com/enterprise/zh/doc/EDOC1100203347
https://community.fs.com/cn/article/roce-technology-in-high-performance-computing.html
https://ascentoptics.com/blog/cn/understanding-infiniband-a-comprehensive-guide/
https://blog.csdn.net/jkh920184196/article/details/141461235
https://www.servethehome.com/inside-100000-nvidia-gpu-xai-colossus-cluster-supermicro-helped-build-for-elon-musk/
審核編輯 黃宇
-
協(xié)議
+關注
關注
2文章
615瀏覽量
40645 -
網(wǎng)絡
+關注
關注
14文章
8019瀏覽量
92170 -
iB
+關注
關注
0文章
5瀏覽量
9561
發(fā)布評論請先 登錄
評論