RDMA · RoCEv2 · 無損乙太網路

什麼是 RDMA?

RDMA(Remote Direct Memory Access)讓一台機器透過網路直接讀取或寫入另一台機器的記憶體,繞過雙方的 CPU 與作業系統。 網路介面卡直接在兩端的應用程式記憶體之間搬移位元組,因此延遲極低、CPU 額外負擔趨近於零。在乙太網路上,RoCEv2 承載 RDMA 使其能被路由,而由於 RDMA 假設沒有封包被丟棄,因此它運行在無損 fabric 上。

零拷貝核心繞過,介面卡對介面卡
接近零資料路徑上的 CPU 額外負擔
UDP 4791RoCEv2 封裝,可路由
無損OcNOS-DC 於 Broadcom TH5 上

零複製、CPU 繞過,以及為何這正是重點

一般的網路傳輸會透過核心複製資料,並在兩端都仰賴 CPU。RDMA 移除了兩者。介面卡直接從傳送端的應用程式記憶體讀取,並直接寫入接收端的應用程式記憶體,資料路徑上不經過 CPU。這正是提供 RDMA 極低延遲、極高吞吐量與幾乎零 CPU 成本這一組合的關鍵,也是 RDMA 成為 GPU 對 GPU 通訊標準的原因。

  • 零拷貝: 位元組直接在兩端的應用程式記憶體之間搬移,永不經由中介核心緩衝暫存。
  • 核心繞過: 是網路介面卡、而非作業系統驅動傳輸,因此 CPU 不在資料路徑上。
  • 趨近於零的負擔: CPU 被釋放去運行工作負載,而非搬移封包,這在 GPU 規模下具有決定性。

RoCEv2 如何在乙太網路上承載 RDMA

RoCEv2(RDMA over Converged Ethernet,第 2 版)將 RDMA 封裝於 UDP 與 IP 中,使用目的 UDP 埠 4791,使其能跨標準 Layer 3 乙太網路 fabric 路由,無需另建網路。RDMA 操作仍以介面卡對介面卡運行,具有相同的零複製行為;RoCEv2 只是賦予它一條可路由的乙太網路路徑。這正是讓多廠商乙太網路 fabric 得以在 GPU 叢集上取代 InfiniBand 的關鍵。

可路由的傳輸

RDMA 承載於 埠 4791 上的 UDP 與 IP,因此它跨越標準的路由式資料中心,而不需要專屬 fabric。

不丟包的網路

RDMA 假設網路永不丟棄封包,因此它運行在 無損 fabric 上,由 PFC 與 ECN 維持每一跳都不丟包。

AI 網路架構

此傳輸是以下項目的基礎 AI 網路架構:在訓練期間承載每一次集合通信的 GPU 間網路。

為何 AI 集合作業依賴 RDMA,以及為何 fabric 必須無損

AI 訓練運行 AllReduce 這類集合作業:每一步之後,所有 GPU 的梯度會在全部 GPU 之間合併,接著全部等待該交換完成,才進入下一步。資料量龐大而時程緊湊,因此 RDMA 讓每次交換保持快速並卸離 CPU。由於單一遺失的封包就會迫使進行恢復,使尾端延遲飆升並可能使整個集合作業停滯,乙太網路上的 RDMA 通常運行在無損 fabric 上。

  • 集合作業會阻擋每個 GPU,直到交換完成,因此 較低的延遲縮短了步驟 也就是整個叢集正在等待的那一步。
  • RDMA 讓交換 卸離 CPU 且免於複製,跨越數百萬個步驟累積後,這是對總訓練時間的直接槓桿。
  • OcNOS-DC 提供不丟包的 fabric,搭配 PFC、ECN 與動態負載平衡 於 Broadcom Tomahawk 5 上,讓資料流遠離熱點連結。

什麼是 RDMA,解答如下

什麼是RDMA?
RDMA 是 Remote Direct Memory Access(遠程直接記憶體訪問)的縮寫。它讓一台機器可以通過網路直接讀寫另一台機器的記憶體,無需任何一方的 CPU 參與,也無需經由作業系統內核複製資料。網路適配器直接在兩端的應用記憶體之間搬運位元組。其結果是極低的時延和極高的吞吐量,而 CPU 開銷幾乎為零,這正是 RDMA 成為 AI 訓練中 GPU 交換資料標準方式的原因。
RoCEv2 如何在乙太網路上承載 RDMA?
RoCEv2(RDMA over Converged Ethernet,第 2 版)將 RDMA 封裝於 UDP 與 IP 中,使用目的 UDP 埠 4791,使 RDMA 能跨標準 Layer 3 乙太網路資料中心路由,而非需要另一個網路。RDMA 操作仍以介面卡對介面卡運行,具有相同的零複製、CPU 繞過行為;RoCEv2 只是賦予它一條可路由的乙太網路路徑。這正是讓多廠商乙太網路 fabric 成為 GPU 叢集上 InfiniBand 可行替代方案的關鍵。
為何零複製與 CPU 繞過對 AI 重要?
AI training runs collective operations such as AllReduce, where the gradients from every GPU are combined across all GPUs after each step, moving enormous amounts of data on a tight schedule. If the CPU had to copy every message through the kernel, it would become the bottleneck and burn power doing it. RDMA removes the CPU and the copies from the data path, so a GPU's data lands in the peer GPU's memory with minimal latency, which shortens the exchange every GPU is waiting on.
為何 RDMA 需要無損 fabric?
RDMA 的設計假設網路不丟棄封包。當封包遺失時,恢復代價高昂並使尾端延遲飆升,這可能使整個 GPU 集合作業停滯。因此乙太網路上的 RDMA 運行在無損 fabric 上:Priority Flow Control 與 ECN 維持網路不丟包。OcNOS-DC 在 Broadcom Tomahawk 5 硬體上提供該 fabric,搭配 PFC、ECN 與動態負載平衡。詳見無損乙太網路與 RoCEv2 頁面了解細節。

要設計 RDMA fabric 嗎?讓我們把它建構為無損

告訴我們工作負載與 GPU 規模,IP Infusion 工程師便會在運行 OcNOS-DC 的開放硬體上,與您一起走過 RoCEv2 與無損 fabric 設計。