有人說它叫DPU(dataprocessing units),,也有人說它叫IPU(infrastructureprocessing units),,我們不妨用“數(shù)據(jù)基礎(chǔ)設(shè)施”一詞來一個(gè)和稀泥式的命名,因?yàn)樗某霈F(xiàn)本就是數(shù)據(jù)基礎(chǔ)設(shè)施領(lǐng)域近年來的一大創(chuàng)新,。
為了方便起見,,本文還是把它叫做DPU。
經(jīng)典的傳統(tǒng)服務(wù)器架構(gòu)中,,CPU在處理各種業(yè)務(wù)工作負(fù)載的同時(shí),,還要負(fù)責(zé)包括網(wǎng)絡(luò)、存儲(chǔ),、安全以及虛擬化軟件等非業(yè)務(wù)型工作負(fù)載,,由于CPU需要承擔(dān)很多非工作型負(fù)載,導(dǎo)致可用于運(yùn)行業(yè)務(wù)負(fù)載的空間大大壓縮,,DPU的出現(xiàn)就是為了緩解這一問題,。
DPU與SmartNIC智能網(wǎng)卡有千絲萬縷的關(guān)系,有人說DPU就是SmartNIC的加強(qiáng)版,,在一些語境下兩者就是一回事兒,,在下文講出具體的區(qū)別之前,我們談兩者的共同點(diǎn),,那就是,,都能用卸載來減少CPU資源消耗,從而提升服務(wù)器乃至數(shù)據(jù)中心的運(yùn)行效率,。
英偉達(dá)的黃仁勛曾表示,,在虛擬化和微服務(wù)等技術(shù)的推動(dòng)下,,數(shù)據(jù)中心CPU要處理的任務(wù)越來越多,在每年出貨的大約3000萬臺(tái)服務(wù)器中,,有三分之一用來運(yùn)行數(shù)據(jù)中心的軟件定義的網(wǎng)絡(luò)堆棧,他認(rèn)為必須將這部分工作負(fù)載卸載掉,。
來自谷歌和Facebook的研究也表明,,CPU周期里有22%到80%都用來處理各種微服務(wù)工作負(fù)載。
我們可以粗暴地認(rèn)為,,如果能把這些工作負(fù)載交給別人來做,,數(shù)據(jù)中心在CPU資源方面的投入,可以省下22%到80%,。
許多研究數(shù)字表明,,卸載的效果將非常誘人,然而,,這場(chǎng)關(guān)于卸載的創(chuàng)新與變革,,歷經(jīng)近二十年時(shí)間才完成。
1998年的VMware x86虛擬化完全由軟件獨(dú)立完成,,由于缺少硬件支持,,全靠軟件模擬,其性能損耗堪稱災(zāi)難,,以至于沒多少人能看出這有什么用,。
2005年以來,Intel VT-x和AMD-V技術(shù)的出現(xiàn),,解決了CPU和內(nèi)存的硬件虛擬化問題,,從而提升了整個(gè)虛擬化系統(tǒng)的性能,越來越多的人開始注意到虛擬化技術(shù)的價(jià)值,。
隨著PCIe SR-IOV以及IntelVT-d等技術(shù)的興起,,I/O硬件虛擬化,包括網(wǎng)絡(luò)和存儲(chǔ)的硬件虛擬化方面都取得重大進(jìn)步,,在性能和靈活性上都有極大提升,。
從純軟件模擬的原始虛擬化階段,到后來的半虛擬化階段,,虛擬化技術(shù)越來越多地利用硬件本身的能力,,系統(tǒng)的性能和運(yùn)行的效率也隨之提升。
下圖是技術(shù)大神Brendan Gregg匯總的亞馬遜云(AWS) EC2虛擬化技術(shù)變遷的歷史,,同樣也記錄了整個(gè)虛擬化技術(shù)的發(fā)展歷程,。
發(fā)展歷程中,值得劃重點(diǎn)的歷史時(shí)刻是2017年,。
這一年,,亞馬遜云發(fā)布Nitro系統(tǒng),,同年,阿里云也宣布有類似功能的神龍架構(gòu),。
回看過去,,我們可以將這一年稱之為DPU元年,直到三年后英偉達(dá)將其命名為DPU之后,,才有了一個(gè)統(tǒng)一的叫法,。
亞馬遜云的Nitro系統(tǒng)有專有的硬件,不僅完成了I/O的硬件虛擬化,,更重要的是,,它還將虛擬化管理程序Hypervisior從原來的CPU卸載到了專用硬件上,于是,,虛擬化技術(shù)的性能損耗趨近于零,,CPU的能力幾乎完全用來運(yùn)行業(yè)務(wù)負(fù)載。
從使用的角度看,,亞馬遜云Nitro不僅為云主機(jī)帶來了虛擬化技術(shù)的靈活性,,還帶來了近似裸金屬的性能,魚和熊掌兼得,。
從經(jīng)濟(jì)的角度看,,當(dāng)寶貴的CPU資源能被充分利用,同樣的成本可以得到更多性能,,整個(gè)工業(yè)界為之震撼,。
從虛擬化技術(shù)的角度看,虛擬化技術(shù)的性能損耗問題,,因?yàn)橛辛藢S杏布男遁d而取得了巨大進(jìn)步,,同時(shí),也意味著cpu的卸載也進(jìn)入了新階段,。
DPU燃起來的三把火
雖然,,此前也有過一些把存儲(chǔ)和網(wǎng)絡(luò)以及安全等能力卸載到專用硬件上的做法,但直到2020年英偉達(dá)發(fā)布BlueField-2并將其命名為DPU之后,,DPU一詞才真正走進(jìn)了大眾視野,。
盡管有爭(zhēng)議,但DPU的名字能叫起來說明還是有些道理的,,那么,,到底什么是DPU?DPU的命名者英偉達(dá)是怎么區(qū)別SmartNIC和DPU的呢,?
英偉達(dá)認(rèn)為基于SoC的智能網(wǎng)卡就是DPU,,DPU是功能最強(qiáng)大的SmartNIC,DPU新增了虛擬化,網(wǎng)絡(luò)功能虛擬化(NFV),,安全,,存儲(chǔ)等功能,這種說法也基本符合我們看到的趨勢(shì),。
維基百科上解釋,,DPU通常包含做通用計(jì)算的CPU、NIC網(wǎng)卡和可編程數(shù)據(jù)加速引擎,,使得DPU同時(shí)具有通用計(jì)算能力和可編程性,,而且,在網(wǎng)絡(luò)數(shù)據(jù)包,、存儲(chǔ)IO處理方面的效率都非常高。
所以,,我們可以認(rèn)為,,做網(wǎng)絡(luò)、安全,、存儲(chǔ)以及虛擬化的專用系統(tǒng)都算是DPU,。
DPU話題熱度非常高,DPU被稱作是CPU,、GPU之后的第三個(gè)主力芯片,,市場(chǎng)空間不難想象的大,國(guó)內(nèi)市場(chǎng)上芯啟源,、中科馭數(shù),、星云智聯(lián)、云豹智能都受到了很高的關(guān)注,,包括資本市場(chǎng)的青睞,。
DPU之所這么火,說起來有不止三把火的助攻,。
2020年英偉達(dá)BlueField-2的發(fā)布點(diǎn)燃了DPU的第一把火,。
BlueField-2集成了Mellanox的網(wǎng)卡和ARM處理器,可以將包括Hypervisor,、網(wǎng)絡(luò),、安全以及存儲(chǔ)方面的工作負(fù)載從CPU遷移到DPU上。
英特爾的入局則是點(diǎn)燃了第二把火,。
2021年,,英特爾發(fā)布了2個(gè)IPU卡和一個(gè)代號(hào)為MountEvans的IPU SoC,IPU卡基于FPGA和低功耗至強(qiáng),,Mount Evans則是基于ASIC和ARM核心,,總之都是打破原來由CPU扛下所有的模式,將一部分工作負(fù)載交給了專有的設(shè)備(未來支持Hypervisior卸載),。
Pensando的Distributed Services Card
這是AMD收購(gòu)Pensando是DPU領(lǐng)域的又一大事件,,Pensando的思路與前者沒有太大區(qū)別,,也做網(wǎng)絡(luò)、存儲(chǔ)以及虛擬化的卸載,,它用的也是ARM處理器,,網(wǎng)絡(luò)部分是強(qiáng)項(xiàng),它帶有一個(gè)P4可編程pipeline引擎,。
除了英偉達(dá),、英特爾、AMD三家巨頭的三把火,,還能看見,,Marvell也有基于ARM的Octeon10,F(xiàn)ungibled有基于MIPS架構(gòu)的F1,,Broadcom也有基于ARM的Stingray,,做的事情大體上一樣,局部有不同的側(cè)重點(diǎn),,可以粗暴地認(rèn)為,,都是在搶戰(zhàn)DPU市場(chǎng)。另外,,DPU的背后還有2個(gè)不可忽略的大佬,。
第一個(gè)是ARM,不難發(fā)現(xiàn),,多個(gè)DPU方案都用到了ARM核心,,ARM在數(shù)據(jù)中心市場(chǎng)的門口輾轉(zhuǎn)了好些年,終于被DPU以一種更容易接受的方式,,正式抬進(jìn)了數(shù)據(jù)中心的大門,。
另外一個(gè)是VMware,VMware的Project Montery支持讓ESXi Hypervisior軟件運(yùn)行在除CPU以外的更多設(shè)備上,,幫DPU卸載Hypervisior,,已有多家DPU廠商參與了Project Montery。
DPU會(huì)任由幾家大廠吃獨(dú)食嗎,?
可以肯定的是,,DPU絕對(duì)不會(huì)像通用計(jì)算CPU那么聚集,也絕對(duì)比GPU市場(chǎng)更加多元化,,從構(gòu)成上來看,,就分為基于ASIC的和基于FPGA的兩大類,ASIC和FPGA兩者已經(jīng)共存多年,,可見的未來兩者必將長(zhǎng)期存在,。
從功能上來看,除了卸載存儲(chǔ)、網(wǎng)絡(luò),、安全以及虛擬化以外,,還有許多方案提供用于機(jī)器學(xué)習(xí)等加速功能,也就是說,,做網(wǎng)卡和智能網(wǎng)卡的廠商,,以及許多做機(jī)器學(xué)習(xí)加速芯片的廠商都可能以各種形式參與到DPU的混戰(zhàn)中。
但最終想取得成功,,得看用戶需求,,DPU興起于亞馬遜云等大型公有云服務(wù)商,目前最大的用戶群體仍然是大型互聯(lián)網(wǎng)公司,、大型公有云服務(wù)商以及大型電信運(yùn)營(yíng)商,。
大型公有云都多少有自己的DPU,比如亞馬遜云有自己的Nitro系統(tǒng),,阿里云有自己的神龍架構(gòu),,此外,華為云,、騰訊云也都有一些功能相對(duì)少一些的智能網(wǎng)卡。
谷歌與英特爾合作推出了Mount Evans,,微軟的Catapult v3用的其實(shí)是英特爾的FPGA,。
UCloud和國(guó)內(nèi)另外一個(gè)規(guī)模較小的公有云服務(wù)商也使用了英偉達(dá)的DPU方案,百度同時(shí)使用了英偉達(dá)和英特爾的DPU方案,。
云服務(wù)商對(duì)技術(shù)很開放,,完全不介意幾種方案并存,未來市場(chǎng)上,,如果有誰宣布采用了多種DPU解決方案將非常正常,,因?yàn)樵茝S商相互間內(nèi)卷得非常厲害。
比如,,云廠商的云主機(jī)類型就非常多樣,,很多公有云主機(jī)同時(shí)使用英特爾、AMD的x86和ARM處理器,,按照不同場(chǎng)景又分為不同的類型,,比如內(nèi)存優(yōu)化型、計(jì)算優(yōu)化型和網(wǎng)絡(luò)優(yōu)化型等,,分門別類多種多樣,。
有不同側(cè)重的DPU將幫助云服務(wù)商提供更豐富多樣的云主機(jī)。
比較典型的是亞馬遜云,,亞馬遜的Nitro卡插在服務(wù)器上就能很快讓服務(wù)器變成云主機(jī),,Nitro卡成了亞馬遜云實(shí)例類型豐富的重要推動(dòng)力。
多樣化的云主機(jī)類型將幫助云服務(wù)商構(gòu)建差異化的服務(wù),免于在同質(zhì)化的競(jìng)爭(zhēng)中遭受價(jià)格戰(zhàn),,從這一角度看,,無疑是有利于云行業(yè)發(fā)展的。