當前位置:
首頁 > 科技 > 淺析GPU通信技術:GPUDirect RDMA

淺析GPU通信技術:GPUDirect RDMA

1. 背景

前兩篇文章我們介紹的GPUDirect P2P和NVLink技術可以大大提升GPU伺服器單機的GPU通信性能,當前深度學習模型越來越複雜,計算數據量暴增,對於大規模深度學習訓練任務,單機已經無法滿足計算要求,多機多卡的分散式訓練成為了必要的需求,這個時候多機間的通信成為了分散式訓練性能的重要指標。

本篇文章我們就來談談GPUDirect RDMA技術,這是用於加速多機間GPU通信的技術。

2. RDMA介紹

我們先來看看RDMA技術是什麼?RDMA即Remote DMA,是Remote Direct Memory Access的英文縮寫。

2.1 DMA原理

在介紹RDMA之前,我們先來複習下DMA技術。

我們知道DMA(直接內存訪問)技術是Offload CPU負載的一項重要技術。DMA的引入,使得原來設備內存與系統內存的數據交換必須要CPU參與,變為交給DMA控制來進行數據傳輸。

直接內存訪問(DMA)方式,是一種完全由硬體執行I/O交換的工作方式。在這種方式中, DMA控制器從CPU完全接管對匯流排的控制,數據交換不經過CPU,而直接在內存和IO設備之間進行。DMA工作時,由DMA 控制器向內存發出地址和控制信號,進行地址修改,對傳送字的個數計數,並且以中斷方式向CPU 報告傳送操作的結束。

使用DMA方式的目的是減少大批量數據傳輸時CPU 的開銷。採用專用DMA控制器(DMAC) 生成訪存地址並控制訪存過程。優點有操作均由硬體電路實現,傳輸速度快;CPU 基本不干預,僅在初始化和結束時參與,CPU與外設並行工作,效率高。

2.2 RMDA原理

RDMA則是在計算機之間網路數據傳輸時Offload CPU負載的高吞吐、低延時通信技術。

如上圖所示,傳統的TCP/IP協議,應用程序需要要經過多層複雜的協議棧解析,才能獲取到網卡中的數據包,而使用RDMA協議,應用程序可以直接旁路內核獲取到網卡中的數據包。

RDMA可以簡單理解為利用相關的硬體和網路技術,伺服器1的網卡可以直接讀寫伺服器2的內存,最終達到高帶寬、低延遲和低資源利用率的效果。如下圖所示,應用程序不需要參與數據傳輸過程,只需要指定內存讀寫地址,開啟傳輸並等待傳輸完成即可。

在實現上,RDMA實際上是一種智能網卡與軟體架構充分優化的遠端內存直接高速訪問技術,通過在網卡上將RDMA協議固化於硬體,以及支持零複製網路技術和內核內存旁路技術這兩種途徑來達到其高性能的遠程直接數據存取的目標。

(1)零複製:零複製網路技術使網卡可以直接與應用內存相互傳輸數據,從而消除了在應用內存與內核之間複製數據的需要。因此,傳輸延遲會顯著減小。

(2)內核旁路:內核協議棧旁路技術使應用程序無需執行內核內存調用就可向網卡發送命令。在不需要任何內核內存參與的條件下,RDMA請求從用戶空間發送到本地網卡並通過網路發送給遠程網卡,這就減少了在處理網路傳輸流時內核內存空間與用戶空間之間環境切換的次數。

在具體的遠程內存讀寫中,RDMA操作用於讀寫操作的遠程虛擬內存地址包含在RDMA消息中傳送,遠程應用程序要做的只是在其本地網卡中註冊相應的內存緩衝區。遠程節點的CPU除在連接建立、註冊調用等之外,在整個RDMA數據傳輸過程中並不提供服務,因此沒有帶來任何負載。

2.3 RDMA實現

如下圖RMDA軟體棧所示,目前RDMA的實現方式主要分為InfiniBand和Ethernet兩種傳輸網路。而在乙太網上,又可以根據與乙太網融合的協議棧的差異分為iWARP和RoCE(包括RoCEv1和RoCEv2)。

其中,InfiniBand是最早實現RDMA的網路協議,被廣泛應用到高性能計算中。但是InfiniBand和傳統TCP/IP網路的差別非常大,需要專用的硬體設備,承擔昂貴的價格。相比之下RoCE和iWARP的硬體成本則要低的多。

3. GPUDirect RDMA介紹

3.1 原理

有了前文RDMA的介紹,從下圖我們可以很容易明白,所謂GPUDirect RDMA,就是計算機1的GPU可以直接訪問計算機2的GPU內存。而在沒有這項技術之前,GPU需要先將數據從GPU內存搬移到系統內存,然後再利用RDMA傳輸到計算機2,計算機2的GPU還要做一次數據從系統內存到GPU內存的搬移動作。GPUDirect RDMA技術使得進一步減少了GPU通信的數據複製次數,通信延遲進一步降低。

3.2 使用

需要注意的是,要想使用GPUDirect RDMA,需要保證GPU卡和RDMA網卡在同一個ROOT COMPLEX下,如下圖所示:

3.3 性能

Mellanox網卡已經提供了GPUDirect RDMA的支持(既支持InfiniBand傳輸,也支持RoCE傳輸)。

下圖分別是使用OSU micro-benchmarks在Mellanox的InfiniBand網卡上測試的延時和帶寬數據,可以看到使用GPUDirect RDMA技術後延時大大降低,帶寬則大幅提升:

下圖是一個實際的高性能計算應用的性能數據(使用HOOMD做粒子動態模擬),可以看到隨著節點增多,使用GPUDirect RDMA技術的集群的性能有明顯提升,最多可以提升至2倍:

本文作者:擷峰,本文來自:雲棲社區

溫馨提示:


喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 架構師技術聯盟 的精彩文章:

Intel推出10nm 3D新CPU架構,讓失效的摩爾定律再次生效!
數據可視化分析工具大集合

TAG:架構師技術聯盟 |