關于SmartNIC、DPU、IPU的定義和分類,在上一篇發布了STH的NIC分類框架之后,覺得這個分類有很大的問題。每家的功能集合不同,即使同一個功能,定義也不完全相同。并且,具體的實現形態還有不同:有FPGA的實現、NP的實現以及芯片的實現。如果把把這些具體的因素都考慮進去以后,整個定義和分類邏輯會非?;靵y。
本文透過現象看本質:忽略具體的實現形態,只考慮實現的功能;并且,我們把具體功能抽象化,避免不同廠家具體產品功能集的不同以及功能定義的差異導致的劃分困難和混淆。基于上述兩個原則,站在軟硬件融合的視角,給出了SmartNIC、DPU和IPU的定義。
1 軟硬件融合基礎
按照單位計算(指令)的復雜度,處理器平臺大致分為CPU、協處理器、GPU、FPGA、DSA和ASIC。從左往右,單位計算越來越復雜,靈活性越來越低。
隨著軟件新技術不斷涌現以及技術的迭代越來越快,但硬件規模越來越大但更新換代卻越來越慢。芯片開發高投入高風險等,嚴重制約著軟件的進一步發展空間。
軟硬件融合,強調要在更系統的層次理解軟件和硬件,以及兩者之間的關系和相互作用。在架構上指的是CPU+協處理器+GPU+FPGA+DSA+ASIC的超異構混合架構。目標是讓硬件更加靈活、彈性、可擴展,彌補硬件和軟件之間的鴻溝,并且能夠兼顧軟件靈活性和硬件高性能,實現既要又要。
2 DPU/IPU的本質
2.1 名稱解釋
SmartNIC,智能網卡;
DPU,Data Processing Unit,數據處理器;
IPU,Infrastructure Processing Unit,基礎設施處理器;
eIPU,elastic IPU,彈性的基礎設施處理器。
2.2 CPU性能瓶頸,必須卸載和加速
上世紀80-90年代,每18個月,CPU性能提升一倍,這就是著名的摩爾定律。如今,CPU性能提升每年只有3%,要想性能翻倍,需要20年。CPU的性能提升已經達到瓶頸。
因此,隨著網絡、存儲等IO的處理帶寬增加,各種相關的IO處理對CPU的消耗呈現完全增長的局面。這樣,底層基礎設施Workload所占的CPU資源越來越多,留給用戶應用的CPU資源越來越少。
這樣,把基礎設施層的所有任務都從Host CPU轉移到DPU或IPU中,把CPU完整的交給業務應用,達到了業務和管理分離。
業務和管理分離是云運營商最看中的價值,其優勢體現在:
CPU資源完全交付;
更高可擴展性,靈活主機配置;
傳統客戶方便上云(虛擬化嵌套);
主機側安全訪問;
物理機的性能 + 虛擬機的可擴展性及高可用;
統一公有云和私有云運維。
2.3 卸載和加速的區別
卸載不一定加速,加速不一定卸載。
一個Workload在CPU運行,則定義為軟件運行。一個任務在協處理器、GPU、FPGA、DSA或ASIC運行,則定義為硬件加速運行。
在CPU和DPU/IPU的場景下,卸載指的是把一個Workload從上面的CPU卸載到DPU/IPU。根據卸載的完整與否,卸載可以分為:
部分卸載,只卸載數據面,控制面依然在Host CPU;
完全卸載,數據面和控制面都卸載,控制面運行在DPU/IPU內部的嵌入式CPU。
根據數據面卸載到的處理引擎不同,可以將卸載分為:
軟件卸載,即將Workload從Host CPU卸載到DPU/IPU內部的嵌入式CPU;
硬件加速卸載,即將Workload的數據面完全由DPU/IPU內部的其他類型(協處理器、GPU、FPGA、DSA、ASIC)硬件加速引擎來處理。
加速和卸載最大的區別在于,加速一般是一個系統內的協作,基于CPU+xPU的架構,把系統內可加速部分拆分到xPU去運行。而卸載更多強調的是兩個系統間的協作,把一個系統卸載到另一個運行實體,然后通過特定的接口交互。
2.4 DPU/IPU的核心功能和擴展功能
DPU/IPU所做的事情,簡單來說,分為兩類:
第一類是處于應用之下的各種通用任務的卸載&加速,這類工作屬于DPU的“本職”工作。因此,DPU/IPU的核心功能是通用任務的卸載和加速。
另一類,是業務應用的加速。這一類工作通常是獨立GPU和AI等加速器要做的工作。但是,在一些輕量的場景,獨立的加速器有些浪費。在DPU內部集成業務加速引擎,可以有效降低數據交互的代價,使得整個計算更加高效。因此,DPU/IPU的擴展功能是業務應用的彈性加速。
2.5 卸載是一個過程:系統從軟件向硬件逐步沉淀
CPU已經達到性能瓶頸,隨著整個系統的算力需求依然不斷的上升。這樣,系統中的工作任務勢必不斷的從CPU軟件卸載到DPU/IPU中的 “硬件”進行加速。
但,從系統從軟件卸載到硬件,不是一個一蹴而就的事情,而是一個長期的過程。因此,我們需要有一個很好的平臺框架來支持任務持續不斷的卸載到硬件來加速。
3 BasicNIC - SmartNIC - DPU - IPU - eIPU
3.1 綜述
SmartNIC/DPU/IPU有各種不同形態的實現,比如基于Network Processor的實現、基于FPGA+CPU的實現,或者基于單芯片SOC的實現。如果要考慮各種不同形態的實現載體,也要考慮具體的功能分類,那勢必對SmartNIC/DPU/IPU的劃分會五花八門,這樣反而會混淆對整件事情的認知。
軟硬件融合對SmartNIC/DPU/IPU的定義:
透過現象看本質,忽略具體的實現形態,只考慮實現的功能;
把功能抽象化,避免不同廠家具體產品功能集的不同以及功能定義的差異導致的劃分困難和混淆。
我們認為,從基礎的網絡設備,發展到后面的eIPU,是一個設計規模逐步增大,功能逐步增強的過程。具體如下表所示。
注意:需要強調的是,這里的每個階段的名稱和其他各個廠家命名的SmartNIC、DPU、IPU的概念并不一一對應。
3.2 基礎狀態,標準NIC,無卸載
最開始的狀態,嚴格來說,應該是IO設備,而不僅僅是網絡設備。至少還有一個需要考慮的高速IO設備:存儲控制器。
但考慮到,我們討論的這個處理設備,一端是要支持PCIe接口,另一端需要支持高速網絡接口,跟網絡NIC非常接近。因此,我們可以當做是在標準NIC上的擴展,不斷的疊加新的功能,包括疊加存儲控制器以及其他存儲相關功能。
標準NIC,不支持Workload的卸載,主要是接口卡的功能,內部完成TCP/IP層以下PHY/MAC層的工作。幾乎所有現代NIC都有一些非?;镜男遁d,例如CRC校驗和大包的拆包/封包。案例如Intel經典網卡82599系列,這里不做詳細介紹。
3.3 第一階段,SmartNIC,卸載單點的網絡
SmartNIC最經典案例是NVIDIA Networking的CX5系列。CX5支持ASAP2加速,可以把網絡相關Workload卸載到eSwitch,即Fast path跑在硬件中,只有Slow path及控制面需要送到Host CPU。
在CX5中不具有獨立的CPU運行OS和軟件,因此所有的相關軟件部分依然運行在Host CPU。
3.4 第二階段,DPU,卸載IO底層處理,橫向擴展成線
云計算數據中心的每一臺服務器和交換機都運行獨立的堆棧,然后這些分布式的堆棧使得整個數據中心組成了一個完全池化的超級倉儲計算機。每臺服務器運行的復雜的、分層的系統,CPU性能瓶頸已經不堪重負。并且,數據中心的規模都日益龐大,一些主流的云運營商動輒百萬臺以上的服務器規模。
量變引起質變,這些趨勢促使了一個效果:運行在每臺服務器的底層Workload變的越來越趨同,例如,虛擬網絡、分布式存儲、安全加解密、虛擬化和容器等任務幾乎存在于每臺服務器中。DPU/IPU最核心的功能,就是要進行這些規模龐大的、性能敏感的通用任務的加速,這樣才能產生顯著的性能的提升和成本的優化。
NVIDIA BlueField-2是一個高度集成的DPU,集成ConnectX-6 DX網絡適配器與ARM處理器核陣列。BlueField-2 DPU:
通過ASAP2的網絡加速方案以及完整的數據面及控制面卸載,可以高效、高性能的支持虛擬化、裸金屬、邊緣計算場景的快速部署;
通過SNAP機制為存儲提供完整的端到端解決方案;
集成了各種安全加速,可以為數據中心提供隔離、安全性和加解密加速功能;
集成的ARM Core可以運行基礎設施層的虛擬化、管理監控等功能。
除了NVIDIA Bluefield DPU之外,其他可以劃歸到DPU分類的產品有:
NITRO系統。Nitro系統用于為AWS EC2實例類型提供網絡硬件卸載、EBS存儲硬件卸載、NVMe本地存儲、遠程直接內存訪問(RDMA)、裸金屬實例的硬件保護/固件驗證以及控制EC2實例所需的所有業務邏輯等。
Fungible DPU。Fungible DPU采用通用多線程處理器,結合標準以太網和PCIe接口。其他硬件組件包括高性能的片上Fabric、定制的內存系統、一套完整的靈活數據加速器、可編程網絡硬件流水線、可編程PCIe硬件流水線。
Pensando DPU。包括網絡功能(交換和路由、L3 ECMP, L4負載均衡、Overlay網絡VXLAN等、IP-NAT等)、安全功能(微分段、DoS保護、IPsec終止、TLS/DTLS終止等)以及存儲功能(NVMe over TCP/RoCEv2、壓縮/解壓、加密/解密、SHA3重復數據刪除、CRC64/32校驗和等)。
Intel IPU。IPU使用專用協議加速器加速基礎設施功能,包括存儲虛擬化、網絡虛擬化和安全性。允許靈活的工作負載放置來提高數據中心利用率。
Marvell DPU。Marvell OCTEON 10集成ARM Neoverse N2內核、1Tb的交換機,支持內聯加密,基于VPP的硬件加速器可將數據包處理速度提高多達5倍,基于機器學習的硬件加速引擎比軟件處理性能提升100倍。
3.5 第三階段,IPU,卸載更多層次的工作任務,縱向擴展從線成面
IPU階段,最顯著的特點是把業務加速也集成進來,這是DPU/IPU的一個長期的目標。但業務加速跟底層的通用任務加速相比,具有一些新的挑戰:
一方面,業務應用五花八門,遠比底層任務要數量眾多。具體到每臺服務器要運行什么任務,是完全未知的;
另一方面,業務系統和算法通常處于一個快速迭代持續更新的狀態,這樣,勢必要求硬件加速引擎也能夠快速編程和快速更新。
基于上述挑戰,業務加速需要的是一個足夠彈性的、可快速編程的,并且具有顯著加速效果的加速平臺。因為研發、運維和性能/成本等多方面考慮,這個平臺還需要規模足夠龐大,并且硬件完全一致性。
嚴格來說,目前還沒有符合IPU階段的產品面市。但有一些這方面的趨勢:
添加AI加速。NVIDIA在即將發布的Bluefield-3X板卡集成獨立DPU和獨立AI兩顆芯片,而Bluefield-4則是單芯片集成DPU+AI加速器。而Marvell先NVIDIA一步,率先發布了集成AI推理加速引擎的OCTEON 10 DPU。
添加FPGA彈性加速。Intel IPU和Xilinx SmartNIC當前都是FPGA+CPU的架構的,理論上可以通過FPGA編程的方式快速實現。但“用戶要的是牛奶,而不是奶牛”,不是簡單的把一個完整的FPGA交給用戶就OK。而是要像FaaS那樣,把基礎的環境準備好,用戶只是開發主機的加速內核和相應的控制面驅動而已。
3.6 第四階段,eIPU,任務引擎軟硬件均衡,擴展從面成體
在eIPU階段,把每個Workload均細致的權衡,把它映射到最合適的處理引擎,CPU、ASIC、DSA或者GPU、FPGA。并且,處理引擎間能夠實現完全靈活的任務間數據交互,包括對外部提供的接口,就如同軟件的IPC/RPC/Restful等交互接口一樣靈活。
eIPU是眾多Workload的集合體:
在內部,每個Workload均運行在最合適的處理器引擎,可以達到最極致的性能;
在內部,Workload之間的數據交互足夠高性能足夠靈活;
對外部,提供類似軟件的服務API接口。
微服務無處不在,把eIPU融入到微服務體系中去。eIPU既是微服務供其他微服務調用,同時,eIPU也可以調用其他微服務。
4 總結,DPU/IPU成功的關鍵,平衡好性能和靈活性
DPU/IPU本質上是在做硬件加速。站在硬件加速的角度,數據中心的整個計算架構跟手機端完全沒法比。如上圖所示,是高通在2014年發布的驍龍810處理器SOC的布局圖。手機端一直都是CPU+各種加速器的混合計算架構。
在手機端已經非常成熟的架構,在數據中心端為何如此姍姍來遲?原因在于,數據中心中業務應用的Workload,具有非常大的不確定性,因此需要提供足夠通用和靈活的計算平臺:
最開始,性能不是問題,CPU是最優的選擇;
隨著人工智能興起后,對算力的需求越來越高。這才有了GPU平臺的興起;
即使對算力如此渴求,DSA類加速的AI處理器依然沒有形成大規模落地,支撐AI訓練和推理的還主要是GPU平臺。
這說明一個道理:在數據中心領域(或者說高速迭代的復雜場景),如果不能提供靈活性(或者說易用性、可編程性),提供再多的性能都是“無本之木”。
反過來,如果想提供盡可能好的靈活性,最極端的做法依然是采用CPU。但這個設計要么性能不夠,要么代價太高。
基于平衡靈活性和性能的考慮,最優的設計應該是:在滿足一定的成本約束條件下,在提供一定靈活可編程能力的情況下,提供最極致的性能。
審核編輯:劉清
-
DPU
+關注
關注
0文章
354瀏覽量
24128 -
協處理器
+關注
關注
0文章
75瀏覽量
18155 -
IPU
+關注
關注
0文章
34瀏覽量
15550 -
SmartNIC
+關注
關注
0文章
19瀏覽量
3202
原文標題:軟硬件融合視角的SmartNIC、DPU和IPU定義
文章出處:【微信號:阿寶1990,微信公眾號:阿寶1990】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論