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