選擇最佳 DPU 智慧網絡卡

許多人都在討論 DPU(資料處理器)智慧網絡卡,但卻忽略了一個簡單的問題:智慧網絡卡是什麼,智慧網絡卡有什麼作用?

網絡卡(NIC),全稱網路介面卡,是一張 PCIe 卡,可以插入伺服器或儲存盒,實現與乙太網連線。

而 DPU 智慧網絡卡超越了簡單的連線,並在網絡卡上實現了網路流量處理

,相比其他的基礎網絡卡,這些處理必須交由 CPU 來執行。

部分供應商對 DPU 智慧網絡卡的定義是完全集中在應用上的,但是這樣定義並不準確,因為不同的供應商有不同的架構。例如,一張 DPU 智慧網絡卡可以基於 ASIC、FPGA 和 SoC 晶片。然而,只生產一種網絡卡的廠商通常會認為只有他們的網絡卡才稱得上是智慧網絡卡。

ASIC 型網絡卡

高性價比

高廠商開發成本

可程式設計及可擴充套件

其靈活性受限於預設定功能

FPGA 型網絡卡

效能好,但價格昂貴

程式設計難度大

特定應用的最佳化

SoC 型網絡卡 + CPU

價效比較好

可程式設計處理器

最高靈活性

最簡單的可程式設計性

不同的實現方式在成本、程式設計的難易程度和靈活性方面各有利弊。ASIC 的成本效益最高,價效比有可能最佳,但靈活性有限。NVIDIA ConnectX-5 等 ASIC 型網絡卡有一個可程式設計的資料路徑,配置起來相對簡單。然而,其功能是由 ASIC 內定義的功能所決定的,這可能導致某些應用無法得到支援。

相比之下,NVIDIA Innova-2 Flex 等 FPGA 型網絡卡具有高度可程式設計性。只要有足夠的時間和精力,在 FPGA 可用資源的限制範圍內,它可以相對有效地支援幾乎任何功能。但眾所周知,FPGA 程式設計難,價格高。

對於更復雜的用例,如

NVIDIA BlueField DPU 可程式設計智慧網絡卡 一類的 SoC 型智慧網絡卡似乎是最好的 DPU 智慧網絡卡實現選項:具有良好的價效比、易於程式設計且靈活性高。

選擇最佳 DPU 智慧網絡卡

圖1 智慧網絡卡的實現選項對比圖

單一討論特定供應商如何實現 DPU 智慧網絡卡,並不能回答其功能問題和架構設計的問題。NVIDIA 實際上提供基於上述每一種架構的產品,這些產品都可以歸類為 DPU 智慧網絡卡。事實上,客戶可以根據需求,將這些產品分別用於不同的應用。因此,對 ASIC、FPGA、SoC 等實現選項的關注顛覆了“形式服從功能”的理念,而這種理念是最佳架構的基礎。

筆者並沒有把重點放在架構設計上,而是調整了《個人電腦雜誌》百科全書條目,對什麼是 DPU 智慧網絡卡,給出了一個更實用的定義:

DPU 智慧網絡卡:

DPU 型網路介面卡(網路介面卡)可以解除安裝通常由系統 CPU 所負責處理的任務。DPU 智慧網絡卡使用其板載的處理器,來執行任何加密/解密、防火牆、TCP/IP 和 HTTP 網路處理不同任務的組合。智慧網絡卡非常適合於高流量的網路伺服器。

定義中有兩點需注意:第一點,它更專注於功能而非架構設計;第二點,定義中以“……使用其板載處理器……來執行任何……網路處理任務組合”這一敘述中的暗示。由此可見,嵌入式處理器是實現靈活執行絕大部分網路功能的關鍵。

使用者可以進一步拓展這一定義為“只需新增 DPU 智慧網絡卡,就有可能執行網路、儲存或 GPU 虛擬化”。除網路伺服器外,智慧網絡卡也同樣適用於電信、安全、機器學習、軟體定義儲存和超融合基礎設施伺服器。

網絡卡類別

我們可以透過網路介面卡所支援的功能,以及用於加速的不同應用來區分三類網絡卡:

選擇最佳 DPU 智慧網絡卡

圖2 早先的網絡卡功能類比

基礎網絡卡

智慧網絡卡

智慧網絡卡

NVIDIA BlueField DPU 從智慧網絡卡中脫穎而出成為了新興類別。

基礎網絡卡只能行動網路流量,並且除了可能的 SRIOV 和基本的 TCP 加速外,具有很少,甚至沒有解除安裝功能。它不能節省任何 CPU 週期,也不能解除安裝資料包轉發或資料流的處理。NVIDIA 已不再出售基礎網絡卡。

NVIDIA ConnectX 介面卡系列具有可程式設計資料路徑,並且可以加速公有云用例中十分重要的多個功能。因此,此類網絡卡可定義為智慧網絡卡(iNIC)。如今,與公有云提供商一樣,可能本地企業、電信公司和私有云也需要這種可程式設計性和加速功能。它還可以被稱為首字母不帶大寫“S”的高階智慧網絡卡(smarterNIC)。

許多客戶需要 DPU 智慧網絡卡功能,而往往卻只能找到其他供應商提供的 FPGA 型網絡卡,或者是 FPGA 加上有自定義能力的專有處理引擎而組成的網絡卡。但是,當客戶需要一款最符合他們的特殊處理流程的網絡卡時,客戶通常會最終選擇 ConnectX 系列 iNIC,因為 ConnectX 能實現特定應用所需要的功能,亦能夠提供這些供應商號稱的“智慧網絡卡”所具備的功能,效能和靈活性,而功耗和成本卻遠低於這些智慧網絡卡。

因此,根據部分其他業界內所使用的智慧網絡卡定義,NVIDIA的 ConnectX NIC 確實是他們定義的“智慧網絡卡”,雖然我們只把它稱為智慧網絡卡,或有高階智慧的網絡卡。NVIDIA 的 FPGA 型網絡卡(Innova)也同樣是傳統意義上的智慧網絡卡,而我們的 SoC 型網絡卡(BlueField)才是最智慧的智慧網絡卡,可以將它稱之為天才型的智慧網絡卡(Genius NIC)。

到底什麼才是智慧網絡卡的完整定義?

DPU 智慧網絡卡是一個具有加速能力並可解除安裝伺服器(或儲存伺服器)的 CPU 功能的網路介面卡。

那麼,該如何建造一個 DPU 智慧網絡卡?哪種智慧網絡卡才可以最好地滿足客戶需要執行的不同任務呢?要弄懂這些問題,必須深挖更多的細節。例如,搞清楚到底有哪些資料路徑以及虛擬化是可以被加速的,同時,這樣的加速是如何在 DPU 智慧網絡卡上使用的。