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