很長(zhǎng)一段時(shí)間以來(lái),算力的天下都由中央處理器(CPU)和圖形處理單元(GPU)平分,也是因?yàn)镃PU和GPU為龐大的新超大規(guī)模數(shù)據(jù)中心提供了動(dòng)力,才使得計(jì)算得以擺脫P(yáng)C和服務(wù)器的繁瑣局限。
然而,近幾年,隨著系統(tǒng)中的CPU承受越來(lái)越多的網(wǎng)絡(luò)和存儲(chǔ)工作負(fù)載,已有的通用CPU和GPU開(kāi)始不能完全滿足快速變化的應(yīng)用需求,而性能更強(qiáng)大,更加專用,更加異構(gòu)的數(shù)據(jù)處理單元(DPU)登上了歷史的舞臺(tái)。
當(dāng)前,DPU已成為以數(shù)據(jù)為中心的加速計(jì)算模型的三大支柱之一。其改變計(jì)算體系的端倪也正在浮現(xiàn)。
從二分天下到三分天下
自1950年代以來(lái),中央處理器(CPU)就一直是每臺(tái)計(jì)算機(jī)或智能設(shè)備的核心,是大多數(shù)計(jì)算機(jī)中唯一的可編程元件。并且,CPU誕生后,工程師也一直沒(méi)放棄讓CPU以消耗最少的能源實(shí)現(xiàn)最快的計(jì)算速度的努力。即便如此,人們還是發(fā)現(xiàn)CPU做圖形計(jì)算太慢。在這樣的背景下,圖形處理單元(GPU)應(yīng)運(yùn)而生。
英偉達(dá)提出了GPU的概念,將GPU提升到了一個(gè)單獨(dú)的計(jì)算單元的地位。GPU是在緩沖區(qū)中快速操作和修改內(nèi)存的專用電路,因?yàn)榭梢约铀賵D片的創(chuàng)建和渲染,所以得以在嵌入式系統(tǒng)、移動(dòng)設(shè)備、個(gè)人電腦以及工作站等設(shè)備上廣泛應(yīng)用。1990年代以來(lái),GPU則逐漸成為了計(jì)算的中心。
事實(shí)上,最初的GPU還只是用來(lái)做功能強(qiáng)大的實(shí)時(shí)圖形處理。后來(lái),憑借其優(yōu)秀的并行處理能力,GPU已經(jīng)成為各種加速計(jì)算任務(wù)的理想選擇。隨著機(jī)器學(xué)習(xí)和大數(shù)據(jù)的發(fā)展,很多公司都會(huì)使用GPU加速訓(xùn)練任務(wù)的執(zhí)行,這也是今天數(shù)據(jù)中心中比較常見(jiàn)的用例。
相較于CPU,大多數(shù)的CPU不僅期望在盡可能短的時(shí)間內(nèi)更快地完成任務(wù)以降低系統(tǒng)的延遲,還需要在不同任務(wù)之間快速切換保證實(shí)時(shí)性。正是因?yàn)檫@樣的需求,CPU往往都會(huì)串行地執(zhí)行任務(wù)。而GPU的設(shè)計(jì)則與CPU完全不同,它期望提高系統(tǒng)的吞吐量,在同一時(shí)間竭盡全力處理更多的任務(wù)。
設(shè)計(jì)理念上的差異也最終反映到了CPU和GPU的核心數(shù)量上,GPU往往具有更多的核心數(shù)量。當(dāng)然,CPU和GPU的差異也很好地形成了互補(bǔ),其組合搭配在過(guò)去的幾十年里,也為龐大的新超大規(guī)模數(shù)據(jù)中心提供了的動(dòng)力,使得計(jì)算得以擺脫P(yáng)C和服務(wù)器的繁瑣局限。
然而,近幾年,隨著系統(tǒng)中的CPU承受越來(lái)越多的網(wǎng)絡(luò)和存儲(chǔ)工作負(fù)載,已有的通用CPU和GPU開(kāi)始不能完全滿足快速變化的應(yīng)用需求。據(jù)IDC統(tǒng)計(jì),近10年來(lái)全球算力增長(zhǎng)明顯滯后于數(shù)據(jù)的增長(zhǎng)。每3.5個(gè)月全球算力的需求就會(huì)翻一倍,遠(yuǎn)遠(yuǎn)超過(guò)了當(dāng)前算力的增長(zhǎng)速度。
在此驅(qū)動(dòng)下,全球計(jì)算、存儲(chǔ)和網(wǎng)絡(luò)基礎(chǔ)設(shè)施也在發(fā)生根本轉(zhuǎn)變,一些復(fù)雜的工作負(fù)載,在通用的CPU上不能很好的處理?;蛘哒f(shuō),以CPU為中心的數(shù)據(jù)中心架構(gòu)已經(jīng)不能滿足需求,以數(shù)據(jù)為中心才能更好滿足市場(chǎng)和應(yīng)用需求。
英偉達(dá)網(wǎng)絡(luò)事業(yè)部亞太區(qū)市場(chǎng)開(kāi)發(fā)高級(jí)總監(jiān)宋慶春此前就表示:“以前計(jì)算規(guī)模和數(shù)據(jù)量沒(méi)那么大,馮諾依曼架構(gòu)很好地解決了提高計(jì)算性能的問(wèn)題。隨著數(shù)據(jù)量越來(lái)越大,以及AI技術(shù)的發(fā)展,傳統(tǒng)的計(jì)算模型會(huì)造成網(wǎng)絡(luò)擁塞,繼續(xù)提升數(shù)據(jù)中心的性能面臨挑戰(zhàn)。”
數(shù)據(jù)處理單元(DPU)的出現(xiàn)或?qū)⒔饩冗@一困境,作為最新發(fā)展起來(lái)的專用處理器的一個(gè)大類,DPU為高帶寬、低延遲、數(shù)據(jù)密集的計(jì)算場(chǎng)景提供計(jì)算引擎。當(dāng)前,DPU已成為以數(shù)據(jù)為中心的加速計(jì)算模型的三大支柱之一,其還將成為CPU的卸載引擎,釋放CPU算力到上層。
DPU蔚然成風(fēng)
按照技術(shù)出現(xiàn)的時(shí)間順序和特點(diǎn),DPU的發(fā)展則可以分為三個(gè)階段。
第一階段即智能設(shè)備階段,這一階段也可以稱為DPU的史前時(shí)代。在這一階段,解決節(jié)點(diǎn)間流量問(wèn)題的最簡(jiǎn)單的方式是增加網(wǎng)卡的處理能力,通過(guò)在網(wǎng)卡上面引入SoC或者FPGA的方式加速某些特定流量應(yīng)用,從而加強(qiáng)網(wǎng)絡(luò)的可靠性,降低網(wǎng)絡(luò)延遲,提升網(wǎng)絡(luò)性能。
其中,Xilinx和Mellanox在這個(gè)領(lǐng)域進(jìn)行的比較早,可惜由于戰(zhàn)略能力不足,錯(cuò)失了進(jìn)一步發(fā)展的機(jī)會(huì),逐漸被DPU取代,最終被淘汰。其中Mellanox被Nvidia收購(gòu),Xilinx被AMD拿下。智能網(wǎng)卡成為DPU的應(yīng)用產(chǎn)品而存在。
第二階段是數(shù)據(jù)處理芯片階段,這個(gè)階段也是數(shù)據(jù)芯片真正開(kāi)始被重視的階段。最開(kāi)始由Fungible在2019年提出,但沒(méi)有引起太多反響英偉達(dá)將收購(gòu)來(lái)的Mellanox重新包裝之后,2020年10月又重新定義了DPU這個(gè)概念,這一次的重新定義使得DPU這個(gè)概念一炮而紅。
具體來(lái)看,DPU被定義為一種新型可編程處理器,集三個(gè)關(guān)鍵要素于一身,包括:行業(yè)標(biāo)準(zhǔn)的、高性能及軟件可編程的多核CPU,通?;谝褢?yīng)用廣泛的Arm架構(gòu),與其的SOC組件密切配合;高性能網(wǎng)絡(luò)接口,能以線速或網(wǎng)絡(luò)中的可用速度解析、處理數(shù)據(jù),并高效地將數(shù)據(jù)傳輸?shù)紾PU和CPU;以及各種靈活和可編程的加速引擎,可以卸載AI、機(jī)器學(xué)習(xí)、安全、電信和存儲(chǔ)等應(yīng)用,并提升性能。
第三階段則是基礎(chǔ)設(shè)施芯片階段。第三階段的方案由Intel提出,變成了FPGA+Xeon-D的模式,通過(guò)PCB版的方式放在一個(gè)智能網(wǎng)卡上。不難發(fā)現(xiàn),Intel將IPU定位成host CPU上面一個(gè)“外掛”的小CPU。并且,未來(lái)這個(gè)“外掛”CPU和FPGA會(huì)封裝到一個(gè)芯片中,形成一個(gè)通過(guò)PCIe總線互聯(lián)的兩個(gè)CPU系統(tǒng)。
當(dāng)然,無(wú)論處于哪個(gè)階段,所有這些DPU功能對(duì)于實(shí)現(xiàn)安全的、裸性能的、原生云計(jì)算的下一代云上大規(guī)模計(jì)算都具有重要意義。正如英偉達(dá)首席執(zhí)行官黃仁勛此前在演講中表示,“它將成為未來(lái)計(jì)算的三大支柱之一”,“CPU用于通用計(jì)算,GPU用于加速計(jì)算,而數(shù)據(jù)中心中傳輸數(shù)據(jù)的DPU則進(jìn)行數(shù)據(jù)處理”。
一方面,GPU更安全,因?yàn)榭刂破矫婵梢栽谙到y(tǒng)內(nèi)和系統(tǒng)集群之間與數(shù)據(jù)平面分離。DPU可以執(zhí)行原本需要CPU處理的網(wǎng)絡(luò)、存儲(chǔ)和安全等任務(wù)。這就意味著如果在數(shù)據(jù)中心中采用了DPU,那么CPU的不少運(yùn)算能力可以被釋放出來(lái),去執(zhí)行廣泛的企業(yè)應(yīng)用。
另一方面,DPU還釋放了服務(wù)器的容量,以便它們可以恢復(fù)到應(yīng)用程序計(jì)算。在一些具有大量I/O和沉重虛擬化的系統(tǒng)上內(nèi)核成本縮減一半,因此吞吐量提高了2倍。除了內(nèi)核的成本,還要計(jì)算整個(gè)機(jī)器的成本,包括其內(nèi)存和I/O以及所釋放的工作量。
此外,DPU豐富的、靈活和可編程的加速引擎可減輕和改善AI和機(jī)器學(xué)習(xí)應(yīng)用的性能。所有的這些DPU功能對(duì)于實(shí)現(xiàn)隔離的裸機(jī)云原生計(jì)算至關(guān)重要,它將定義下一代云規(guī)模計(jì)算,其改變存儲(chǔ)行業(yè)的端倪也正在浮現(xiàn)。
以數(shù)據(jù)為中心
DPU廣闊的市場(chǎng)空間,也讓國(guó)際巨頭開(kāi)始紛紛提前布局。目前DPU主要廠商有Intel(收購(gòu)Bearfoot),Mellanox(已被Nvidia收購(gòu)),Marvell(收購(gòu)了Cavium),Broadcom,F(xiàn)ungible(初創(chuàng)),Pensando(初創(chuàng))等。
其中,Intel是基于FPGA實(shí)現(xiàn)的,主要面向交換機(jī)、路由器芯片;Broadcom基于Arm實(shí)現(xiàn),也是主要面向交換機(jī)、路由器芯片;Marvell通過(guò)收購(gòu)Cavium,基于Arm實(shí)現(xiàn),主要面向5G的基帶;初創(chuàng)公司Pensando通過(guò)軟件定義網(wǎng)絡(luò)處理器,主要面向支持P4的SDN。
中科馭數(shù)的創(chuàng)始團(tuán)隊(duì)是國(guó)內(nèi)較早進(jìn)行DPU芯片研發(fā)的先行者。他們創(chuàng)新性提出了軟件定義加速器技術(shù)(Software Defined Accelerator),自主研發(fā)了KPU(Kernel Processing Unit)芯片架構(gòu),2019年設(shè)計(jì)了業(yè)界首顆數(shù)據(jù)庫(kù)與時(shí)序數(shù)據(jù)處理融合加速芯片,已經(jīng)成功流片。
此外,以KPU架構(gòu)為核心,在2019年流片第一顆芯片的基礎(chǔ)上,中科馭數(shù)宣布了其下一顆DPU芯片研發(fā)計(jì)劃,功能層面包括完善的L2/L3/L4層的網(wǎng)絡(luò)協(xié)議處理,可處理高達(dá)200G網(wǎng)絡(luò)帶寬數(shù)據(jù)。其次融合數(shù)據(jù)庫(kù)、大數(shù)據(jù)處理能力,直接面向OLAP、OLTP及大數(shù)據(jù)處理平臺(tái),如Spark等。另外還囊括機(jī)器學(xué)習(xí)計(jì)算核以及安全加密運(yùn)算核。該芯片預(yù)計(jì)將于2021年底流片。
幾乎可以確定,DPU已成為未來(lái)以數(shù)據(jù)為中心的必須。但DPU依然面臨其本身需要克服的關(guān)卡?,F(xiàn)在,DPU最大的問(wèn)題就是“過(guò)熱”,即功耗太高。以前一個(gè)網(wǎng)絡(luò)DMA芯片功耗才5瓦左右,現(xiàn)在一個(gè)DPU動(dòng)則100瓦以上(Fungible F1 120瓦)。
這意味著,大部分應(yīng)用場(chǎng)景將無(wú)法用承受這么大功耗的網(wǎng)絡(luò)設(shè)備。尤其是在100/200G以上,光模塊功耗已經(jīng)超過(guò)網(wǎng)絡(luò)設(shè)備的情況下,再增加一個(gè)100瓦的網(wǎng)絡(luò)DPU,會(huì)極大的提升網(wǎng)絡(luò)的能源消耗,所以必須解決DPU功耗問(wèn)題。
和功耗一樣,當(dāng)前的的DPU還面臨成本太高的問(wèn)題,基于DPU的解決方案變沒(méi)有降低網(wǎng)絡(luò)互聯(lián)的成本。此外,目前DPU都是面向數(shù)據(jù)中心的應(yīng)用場(chǎng)景。但服務(wù)器增長(zhǎng)空間更多在邊緣計(jì)算中心,而且未來(lái)邊緣計(jì)算互聯(lián)將成為網(wǎng)絡(luò)技術(shù)趨勢(shì)。因此,DPU還必須考慮邊緣計(jì)算場(chǎng)景。
當(dāng)然,無(wú)論如何,DPU的出現(xiàn)并非要替代CPU和GPU,而是更好地滿足數(shù)據(jù)中心市場(chǎng)的需求??梢灶A(yù)見(jiàn),從CPU、GPU再到DPU的一體的架構(gòu)將會(huì)讓管理程序、調(diào)度程序都會(huì)變得更加容易。從邊緣到核心數(shù)據(jù)中心,統(tǒng)一架構(gòu)、統(tǒng)一管理、統(tǒng)一調(diào)度或?qū)⒃诓痪弥蟮靡詫?shí)現(xiàn)。