RDMA 技術簡介
不過,相對于以太網方案,RDMA 方案對網卡提出了新的要求,主要有兩點。
? 能夠解析頁表:由于應用程序申請的數據緩存一般都是虛擬地址連續而物理地址不連續的,因此要求硬件有解析頁表的能力,能夠訪問物理地址不連續的緩存。注意,此處所說的頁表是軟件專門為 RDMA 網卡建立的,不是 MMU 訪問的頁表。
? 能夠封裝和解析數據包:網卡需要按照協議,在發送數據前加上協議報頭與校驗和,并在接收數據后將其剝離。
13.2 RDMA 的優勢
人們經常用 100M、1G、10G、25G、100G(單位為 bit/s)等描述網卡支持的最大帶寬(常被稱為速率),無論是以太網卡和 RDMA 網卡都是如此。但如果同為 100G 帶寬,除了降低了 CPU 的工作負載,單純從網絡性能方面考慮,RDMA 網卡相比以太網卡的優勢在哪里呢?
先考慮使用以太網卡的情況。假設應用程序從時刻 0 開始產生數據(Data),之后每 1ns(納秒)持續產生 1 個 Data(100 位),每個 Data 產生之后的每個操作步驟都花費 1ns,可以得到如圖 13-4 所示的數據流水線模型。
對應圖 13-4 中的編號,每個 Data 的操作步驟如下。
① 應用程序申請用戶空間緩存并寫入數據。
② 內核協議棧申請內核空間緩存,并將數據從用戶空間緩存復制到內核空間緩存。
③ 驅動程序操作網卡把數據從內核空間緩存通過 DMA 復制到網卡內部緩存。
④ 網卡把數據發送到對端網卡。
理論上只要滿足如下三個條件就可以實現 100Gbit/s 的發送速率。
? ①②③④每一步的操作時長都小于 1ns(實際應該是 0.93ns,但不影響理解數據流水線模型的概念),即每一步都足夠快。
? 每隔 1ns 就有新的數據產生,即有源源不斷的數據。
? 從第一個 Data 處理的最后一步(第 4ns)之后開始計算帶寬,即合適的計算時機。
需要注意的是,這種模式下每個 Data 需要 4ns 發送到對端網卡,也就是說對端網卡當前接收到的是 4ns 之前產生的數據。
基于同樣的假設,可以得到 RDMA 網卡的數據流水線模型,如圖 13-5 所示。
對應圖 13-5 中的編號,每個 Data 的操作步驟如下:
② 應用程序向用戶空間緩存寫入數據。
② 驅動程序操作網卡把數據從用戶空間緩存通過 DMA 復制到網卡內部緩存。
③ 網卡把數據發送到對端網卡。
同樣地,只要滿足前文提到的三個條件,就可以實現 100Gbit/s 的發送速率。只是最后一個條件的計算時間可以提前 1ns,從第 3ns 開始算。在此可以看出 RDMA 方案的優勢:每個Data 只需要 3 ns 就可以到達對端網卡(即具有更低的時延)。
通信領域出現率最高的性能指標就是帶寬和時延。簡單來說,所謂帶寬是指單位時間內能夠傳輸的數據量(比如 100Gbit/s),而時延指的是數據從本端發出到被對端接收所消耗的時間。
相比傳統以太網,RDMA 技術實現了更低的時延,所以 RDMA 能夠在很多對時延要求較高的場景中(比如分布式神經網絡多個計算節點間的數據同步)得以發揮作用。
審核編輯:劉清
-
以太網
+關注
關注
40文章
5385瀏覽量
171161 -
dma
+關注
關注
3文章
559瀏覽量
100446 -
MMU
+關注
關注
0文章
91瀏覽量
18268 -
RDMA
+關注
關注
0文章
76瀏覽量
8929
原文標題:好書連載 | RDMA 技術簡介(2)
文章出處:【微信號:LinuxDev,微信公眾號:Linux閱碼場】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論