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