本文來自微信公眾號(hào)“科技云報(bào)道”。
有人說它叫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ù)字表明,卸載的效果將非常誘人,然而,這場關(guān)于卸載的創(chuàng)新與變革,歷經(jīng)近二十年時(shí)間才完成。
01
虛擬化技術(shù)的創(chuàng)新
將CPU卸載進(jìn)行到底
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)入了新階段。
02
DPU燃起來的三把火
雖然,此前也有過一些把存儲(chǔ)和網(wǎng)絡(luò)以及安全等能力卸載到專用硬件上的做法,但直到2020年英偉達(dá)發(fā)布BlueField-2并將其命名為DPU之后,DPU一詞才真正走進(jìn)了大眾視野。
盡管有爭議,但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è)主力芯片,市場空間不難想象的大,國內(nèi)市場上芯啟源、中科馭數(shù)、星云智聯(lián)、云豹智能都受到了很高的關(guān)注,包括資本市場的青睞。
DPU之所這么火,說起來有不止三把火的助攻。
2020年英偉達(dá)BlueField-2的發(fā)布點(diǎn)燃了DPU的第一把火。
上圖是英偉達(dá)對(duì)DPU加速卡的介紹
BlueField-2集成了Mellanox的網(wǎng)卡和ARM處理器,可以將包括Hypervisor、網(wǎng)絡(luò)、安全以及存儲(chǔ)方面的工作負(fù)載從CPU遷移到DPU上。
英特爾對(duì)IPU定位的描述
英特爾的入局則是點(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
2022年,AMD的入局算是點(diǎn)燃了第三把火。
這是AMD收購Pensando是DPU領(lǐng)域的又一大事件,Pensando的思路與前者沒有太大區(qū)別,也做網(wǎng)絡(luò)、存儲(chǔ)以及虛擬化的卸載,它用的也是ARM處理器,網(wǎng)絡(luò)部分是強(qiáng)項(xiàng),它帶有一個(gè)P4可編程pipeline引擎。
Marvell的DPU平臺(tái)的基本架構(gòu)
除了英偉達(dá)、英特爾、AMD三家巨頭的三把火,還能看見,Marvell也有基于ARM的Octeon10,F(xiàn)ungibled有基于MIPS架構(gòu)的F1,Broadcom也有基于ARM的Stingray,做的事情大體上一樣,局部有不同的側(cè)重點(diǎn),可以粗暴地認(rèn)為,都是在搶戰(zhàn)DPU市場。
另外,DPU的背后還有2個(gè)不可忽略的大佬。
第一個(gè)是ARM,不難發(fā)現(xiàn),多個(gè)DPU方案都用到了ARM核心,ARM在數(shù)據(jù)中心市場的門口輾轉(zhuǎn)了好些年,終于被DPU以一種更容易接受的方式,正式抬進(jìn)了數(shù)據(jù)中心的大門。
另外一個(gè)是VMware,VMware的Project Montery支持讓ESXi Hypervisior軟件運(yùn)行在除CPU以外的更多設(shè)備上,幫DPU卸載Hypervisior,已有多家DPU廠商參與了Project Montery。
03
DPU會(huì)任由幾家大廠吃獨(dú)食嗎?
可以肯定的是,DPU絕對(duì)不會(huì)像通用計(jì)算CPU那么聚集,也絕對(duì)比GPU市場更加多元化,從構(gòu)成上來看,就分為基于ASIC的和基于FPGA的兩大類,ASIC和FPGA兩者已經(jī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)營商。
大型公有云都多少有自己的DPU,比如亞馬遜云有自己的Nitro系統(tǒng),阿里云有自己的神龍架構(gòu),此外,華為云、騰訊云也都有一些功能相對(duì)少一些的智能網(wǎng)卡。
谷歌與英特爾合作推出了Mount Evans,微軟的Catapult v3用的其實(shí)是英特爾的FPGA。
UCloud和國內(nèi)另外一個(gè)規(guī)模較小的公有云服務(wù)商也使用了英偉達(dá)的DPU方案,百度同時(shí)使用了英偉達(dá)和英特爾的DPU方案。
云服務(wù)商對(duì)技術(shù)很開放,完全不介意幾種方案并存,未來市場上,如果有誰宣布采用了多種DPU解決方案將非常正常,因?yàn)樵茝S商相互間內(nèi)卷得非常厲害。
比如,云廠商的云主機(jī)類型就非常多樣,很多公有云主機(jī)同時(shí)使用英特爾、AMD的x86和ARM處理器,按照不同場景又分為不同的類型,比如內(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ì)化的競爭中遭受價(jià)格戰(zhàn),從這一角度看,無疑是有利于云行業(yè)發(fā)展的。