DPU發(fā)展中的四個關(guān)鍵問題
來源:中科馭數(shù)
鄢貴海在中國計(jì)算機(jī)學(xué)會芯片大會上做DPU主題報告
在DPU概念誕生之初,人們爭論它“應(yīng)如何定義”,但后來發(fā)現(xiàn),只有定義,還遠(yuǎn)不能說明 DPU能做什么、有什么作用、如何與現(xiàn)有系統(tǒng)更好地協(xié)同。本文將討論DPU發(fā)展中的四個關(guān)鍵問題:DPU是什么?DPU可以標(biāo)準(zhǔn)化嗎?DPU產(chǎn)業(yè)化面臨哪些挑戰(zhàn)?以及是否有“中國方案”?一些問題目前還很難給出確切的答案,但拋磚引玉,希望引起大家的關(guān)注。
01DPU是什么?DPU是新進(jìn)發(fā)展起來的一種專用處理器,但是對于DPU的釋意卻不如之前的一些處理器一樣容易做到“不言自明”。比如GPU,大家聽名稱就知道是什么,名稱就是定義了。類似的還有數(shù)字信號處理器DSP,深度學(xué)習(xí)處理器NPU等。其實(shí),CPU也是一個釋義并不清晰的概念,對于“中央”是什么含義,大概在50年前也沒有太多爭論。但是CPU需要干什么,在系統(tǒng)中的角色是什么,確實(shí)比較清楚的——這其實(shí)才是首要的問題。相較而言,所謂的“定義”反而不是那么重要。簡言之,DPU的參考結(jié)構(gòu)是什么、能處理什么類型的負(fù)載,怎么集成到現(xiàn)有的計(jì)算體系中去才是DPU研發(fā)要解決的關(guān)鍵問題。
DPU是面向基礎(chǔ)設(shè)施層的數(shù)據(jù)處理單元。鑒于此,Intel也把自己的DPU稱之為“IPU”。那么所謂的基礎(chǔ)設(shè)施層,是有別于應(yīng)用層而言的,是為了給予應(yīng)用提供物理或虛擬化資源,甚至提供基礎(chǔ)服務(wù)的邏輯層。其實(shí)這個概念很好理解,從我們先有的計(jì)算系統(tǒng)的宏觀邏輯層次來看,本身就被人為的分為基礎(chǔ)設(shè)施層(IaaS),平臺層(PaaS),軟件層(SaaS),最上層就是應(yīng)用層。如果微觀來看,就會更清晰了。基礎(chǔ)層主要包括與硬件資源交互、抽象硬件功能的組件,包括的網(wǎng)絡(luò),存儲,服務(wù)器等。從優(yōu)化技術(shù)的側(cè)重點(diǎn)來看,越基礎(chǔ)層的組件越傾向于以性能優(yōu)先為導(dǎo)向,存在更多的“機(jī)器依賴(Machine-dependent)”,越上層的優(yōu)化越以生產(chǎn)效率為導(dǎo)向,通過層層封裝,屏蔽底層差異,對用戶透明。DPU是面向基礎(chǔ)設(shè)施層的數(shù)據(jù)處理單元
那么,難道現(xiàn)有的數(shù)據(jù)中心的CPU、GPU、以及路由器、交換機(jī),不能繼續(xù)作為“面向基礎(chǔ)設(shè)施層的數(shù)據(jù)處理單元”嗎?在計(jì)算系統(tǒng)的研究,很大程度上是“優(yōu)化”的研究。現(xiàn)有的基礎(chǔ)設(shè)施不是不能,而是不夠“優(yōu)化”。如果沒有新技術(shù)的發(fā)明和引入,最終需求和供給之間的矛盾就會越來越突出。
DPU的出現(xiàn)首先要解決的就是網(wǎng)絡(luò)數(shù)據(jù)包處理的問題。傳統(tǒng)來看,2層網(wǎng)絡(luò)的數(shù)據(jù)幀是網(wǎng)卡來處理,由CPU上運(yùn)行的OS中的內(nèi)核協(xié)議棧來來處理網(wǎng)絡(luò)數(shù)據(jù)包的收發(fā)問題。這個開銷在網(wǎng)絡(luò)帶寬比較低的時候,不是大問題,甚至中斷開銷都可以接受。但是,隨著核心網(wǎng)、匯聚網(wǎng)朝著100G、200G發(fā)展,接入網(wǎng)也達(dá)到50G、100G時,CPU就無法在提供足夠的算力來處理數(shù)據(jù)包了。我們發(fā)現(xiàn)了一個現(xiàn)象,稱之為“性能帶寬增速比失調(diào)”,簡單理解就是CPU性能由于摩爾定律的放緩,性能增速也隨之放緩,但是網(wǎng)絡(luò)帶寬的增速來自于應(yīng)用的豐富,數(shù)據(jù)中心規(guī)模的擴(kuò)大,數(shù)字化進(jìn)展的驅(qū)動,所以增速反而更加的迅速,這就進(jìn)一步加劇了服務(wù)器節(jié)點(diǎn)上CPU的計(jì)算負(fù)擔(dān)。
另外一個例子是在云計(jì)算場景下的一個核心應(yīng)用,虛擬機(jī)之間的數(shù)據(jù)轉(zhuǎn)發(fā)問題,即OVS。通常而言,20個VM需要消耗的算力,如果用Xeon的多核CPU來處理,大概需要5個核的算力——這確實(shí)還是比較大的開銷。
此外,目前的系統(tǒng)結(jié)構(gòu),其實(shí)并不是為處理網(wǎng)絡(luò)數(shù)據(jù)而生的,而是為了更高效的管理本地資源,支持多用戶、多任務(wù)并行,本地安全,適當(dāng)并發(fā),所以必須劃分不同特權(quán)指令的執(zhí)行和訪問權(quán)限,采用復(fù)雜的中斷機(jī)制。這些機(jī)制對于高帶寬網(wǎng)絡(luò)、隨機(jī)訪問、高并發(fā)度收發(fā)的場景效率并不高。所以現(xiàn)有技術(shù)開辟了用戶態(tài)訪問機(jī)制,直接繞過操作系統(tǒng)內(nèi)核態(tài),用輪詢替代中斷來處理IO操作。這些在現(xiàn)在體系基礎(chǔ)上的“修修補(bǔ)補(bǔ)”的權(quán)宜之計(jì),本質(zhì)上是經(jīng)典技術(shù)在新場景下的不適應(yīng)。
為了更好的理解DPU在系統(tǒng)中的角色,可以借助一種經(jīng)典的計(jì)算系統(tǒng)模型,把系統(tǒng)按照邏輯功能劃分為三個部分:1)數(shù)據(jù)平面(Data Plane),定義為用于數(shù)據(jù)包解析和處理的數(shù)據(jù)通路,代表計(jì)算與數(shù)據(jù)密集的功能部分;2)控制平面(Control Plane),定義是為輸入輸出數(shù)據(jù)流提供和配置數(shù)據(jù)平面的算法集合,代表資源調(diào)度、系統(tǒng)配置、鏈路建立等控制密集的功能部分。此外,業(yè)界通常還增加了第三個層面,即3)管理平面(Mgmt. Plane),代表系統(tǒng)監(jiān)控,故障隔離,在線修復(fù)等周期性或偶發(fā)性的部分應(yīng)用。其實(shí)這也是在“軟件定義網(wǎng)絡(luò)SDN”方法學(xué)下的一種劃分。如果把一個城市的路網(wǎng)基礎(chǔ)設(shè)施比做SDN,那么眾橫交錯的道路就是其“數(shù)據(jù)平面”,其路網(wǎng)密度和寬度決定了路網(wǎng)的流量上限;所有的交通燈及其控制系統(tǒng)就是其“控制平面”,其控制算法優(yōu)劣、部署位置的合理程度決定了交通流量實(shí)際容量;各種測速點(diǎn)、流量監(jiān)控、臨時交通管制、事故擁塞疏導(dǎo)等就是其“管理平面”。有了這套基礎(chǔ)設(shè)施,各類用戶就可以應(yīng)用各種車輛(相當(dāng)于用戶的應(yīng)用程序)來開展運(yùn)輸服務(wù)了。
對于不同平面,對可并行度、性能、靈活性、可靠性等屬性通常都有比較大的不同。對于數(shù)據(jù)平面,突出的訴求就是性能,通過開發(fā)數(shù)據(jù)級、線程級,任務(wù)級并行度,高度定制化專用計(jì)算單元,一切優(yōu)化設(shè)計(jì)都是性能導(dǎo)向。而對于控制平面,主要訴求是通用靈活,便于作為控制數(shù)據(jù)平面的抓手,把使用權(quán)交給用戶。管理平面的功能主要是安全、可靠、易用,便于系統(tǒng)狀態(tài)監(jiān)控、維護(hù),方便支持自動化運(yùn)維等機(jī)制的實(shí)施。
為什么要從這三個平面來入手來看待DPU在系統(tǒng)中的角色呢?因?yàn)?strong style="margin: 0px; padding: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; outline: 0px;">這三個邏輯平面反映了DPU設(shè)計(jì)過程中需要關(guān)注的內(nèi)容。有人把DPU單純的理解為給CPU“減負(fù)”,把DPU作為一個網(wǎng)卡的“變種”,只是一個被動設(shè)備,把DPU視為一個單純的算法硬件化的載體,以“頭腦簡單,四肢發(fā)達(dá)”的形象示人,屬于單純追求強(qiáng)數(shù)據(jù)平面,弱控制面的設(shè)計(jì)。比較典型的如數(shù)據(jù)加密,圖像轉(zhuǎn)碼專用卡,AI加速卡等,這是異構(gòu)計(jì)算的“1.0時代”。
如果我們重新審視一下系統(tǒng)功能的載體分布情況,就會看到DPU其實(shí)越來越不像是一個單純的加速器,而是與CPU全方位配合的一個關(guān)鍵組件。傳統(tǒng)的經(jīng)典的計(jì)算系統(tǒng),我們稱之為類型I(Type-I)是主機(jī)端負(fù)責(zé)所有的管理、控制、數(shù)據(jù)面的功能;異構(gòu)計(jì)算的發(fā)展最先牽住的“牛鼻子”就是數(shù)據(jù)密集、計(jì)算密集的算法加速,所以主要卸載的就是數(shù)據(jù)面的計(jì)算負(fù)載,但是控制、管理都很少涉及,我們稱之為類型II(Type-II)。一個典型的表征就是從Host端只能發(fā)現(xiàn)這個計(jì)算設(shè)備,但是對于設(shè)備的狀態(tài),啟動、關(guān)閉、任務(wù)分配等都比較不方便。隨著智能網(wǎng)卡等形態(tài)的產(chǎn)品出現(xiàn),在設(shè)備端除了數(shù)據(jù)面的優(yōu)勢得以強(qiáng)化外,出現(xiàn)了完整的控制面功能,我們稱之為類型III(Type- III)。例如ARM的控制器,運(yùn)行了輕量級的操作系統(tǒng)用于管理板卡上的資源;這也是目前比較常見的類型。還有最后一類,Type-IV,是DPU承擔(dān)所有數(shù)據(jù)面、控制面、管理面的功能,而HOST側(cè)反而不那么重要的,這被認(rèn)為是DPU的終極形態(tài),即完全以DPU為中心來構(gòu)建計(jì)算系統(tǒng)。前不久阿里云公布的CIPU(Could Infrastrucutre Procesing Unit)宣稱替代CPU成為新一代云計(jì)算核心硬件,可以說是把DPU推向了舞臺的中心,雖然也有很多爭議,但這也許正是DPU發(fā)展的方向。
我們再來看看DPU具體能干什么。我們把DPU發(fā)揮作用的場景分為四個方向,分別為網(wǎng)絡(luò)、存儲、計(jì)算和安全,這四個方向其實(shí)是有依賴關(guān)系的,在這個圖中,具有相鄰關(guān)系的部分代表了一定的依賴;計(jì)算的部分涉及到的PaaS的內(nèi)容偏多,網(wǎng)絡(luò)的部分偏I(xiàn)aaS層,存儲、安全在IaaS和PaaS層都比較多。覆蓋這個分類圖中越多的場景就是目前DPU各廠商努力的目標(biāo)。
DPU功能場景
為了實(shí)現(xiàn)這個功能,我們可以通過我們研發(fā)的第二代架構(gòu)的DPU產(chǎn)品結(jié)構(gòu)來體現(xiàn)。在這個架構(gòu)中,有幾個比較創(chuàng)新的功能單元,比如NOE,是傳統(tǒng)TOE的升級版;DOE,是專門用于做數(shù)據(jù)查詢加速,還有DOMS,是一種高效的管理片上緩存數(shù)據(jù)的結(jié)構(gòu)。其它的創(chuàng)新的結(jié)構(gòu)還包括,F(xiàn)lashNOC的片上互聯(lián)技術(shù),還有多種面向特定IO的DMA的單元等等。
最后,如果說DPU發(fā)展最大的驅(qū)動力,其實(shí)還是來自需求側(cè)。數(shù)據(jù)中心的架構(gòu)發(fā)展趨勢已經(jīng)從20年前的本地部署集群,到十年前的云化資源,再到目前的云原生階段。基礎(chǔ)設(shè)施層變得越來越厚重,向下越來越強(qiáng)化硬件資源的池化,向上是“XaaS”,即“一切皆可服務(wù)化”。K8S等系統(tǒng)成為了新的“操作系統(tǒng)”,服務(wù)網(wǎng)格成為了新的網(wǎng)絡(luò)化應(yīng)用開發(fā)基礎(chǔ),DevOps開發(fā)運(yùn)維一體化……在“生產(chǎn)率”得到提升的同時,也直接催生了算力的需求,特別是IaaS和PaaS層的算力需求——這也是DPU的主戰(zhàn)場。
02DPU可以標(biāo)準(zhǔn)化嗎?在回答DPU是否可以標(biāo)準(zhǔn)化之前,需要明確標(biāo)準(zhǔn)化的確切含義是什么,以及為什么要標(biāo)準(zhǔn)化。我認(rèn)為,DPU的標(biāo)準(zhǔn)化涉及兩個方面:DPU的架構(gòu)是否可以標(biāo)準(zhǔn)化,這影響到DPU的研發(fā)成本問題;DPU的應(yīng)用是否可以標(biāo)準(zhǔn)化,這影響DPU的應(yīng)用生態(tài)的問題。
現(xiàn)在廣泛存在一種認(rèn)識的誤區(qū):籠統(tǒng)的認(rèn)為DPU是一種專用處理器,既然是“專用”,那么就不可避免的采用“定制化”才能實(shí)現(xiàn),一旦“定制化”,那么“標(biāo)準(zhǔn)化”也就無從談起了,從而得到了一個武斷的結(jié)論:DPU沒有產(chǎn)業(yè)化價值!
其實(shí)專用化、定制化、標(biāo)準(zhǔn)化這三個概念,并沒有直接的因果關(guān)系。
專用化強(qiáng)調(diào)的是應(yīng)用場景,是否值的專用化,取決于需求的的剛性。定制化是技術(shù)實(shí)現(xiàn)的路徑選擇,經(jīng)常是創(chuàng)新和核心技術(shù)的“發(fā)源地”。標(biāo)準(zhǔn)化是為了降低邊際成本,通常通過建立或融入產(chǎn)業(yè)生態(tài)、創(chuàng)造規(guī)模效益,實(shí)現(xiàn)創(chuàng)新技術(shù)的價值變現(xiàn)。
比如,GPU無疑是一種“專用”處理器,因?yàn)槿藗儗D形圖像這種信息交互方式是絕對的剛需;GPU中通過定制化來實(shí)現(xiàn)光柵操作處理器(ROP)、紋理處理器(TPC)等高度定制化的功能單元,還有超大規(guī)模的數(shù)據(jù)集同步并行處理技術(shù),都是面向像素級海量數(shù)據(jù)處理的定制化技術(shù);最終,通過OpenGL,DirectX等圖形操作API,CUDA的通用編程框架來做標(biāo)準(zhǔn)化。所以,“專用”并不比“通用”低人一等,“定制化”甚至是解決一些應(yīng)用剛需必須采用的技術(shù)選擇。
我們?nèi)ツ暝谥袊?jì)算機(jī)學(xué)會通訊上發(fā)表了一篇文章《DPU:以數(shù)據(jù)為中心的專用處理器》,其中有一個圖,反映的是目前幾類處理器的特征分布。從功能導(dǎo)向劃分為計(jì)算密集 vs. IO密集,從結(jié)構(gòu)設(shè)計(jì)劃分為控制為中心和數(shù)據(jù)為中心;從中我們可以看到,目前DPU所處的分布區(qū)域,確實(shí)還有一定的空白。簡單的演繹一下,在其它三個區(qū)域都有很好的產(chǎn)業(yè)化格局的時候,DPU所屬的區(qū)域應(yīng)該也沒有道理不能產(chǎn)業(yè)化。
我們團(tuán)隊(duì)在DPU標(biāo)準(zhǔn)化工作上也作出過一點(diǎn)貢獻(xiàn)。首先是組織編寫了行業(yè)第一本DPU技術(shù)白皮書,這本白皮書比較全面的刻畫了DPU的功能集,以及DPU的應(yīng)用場景,并且給出了一個比較通用的DPU設(shè)計(jì)的參考模型。今年在過往的基礎(chǔ)上,我們又組織編寫了第二部技術(shù)白皮書,但關(guān)注的重點(diǎn)從DPU參考設(shè)計(jì)遷移到了DPU的性能評測方法,作為后續(xù)細(xì)分應(yīng)用設(shè)計(jì)基準(zhǔn)測試程序的參考。
我認(rèn)為,DPU標(biāo)準(zhǔn)化是一個過程,而不是目的。標(biāo)準(zhǔn)化的進(jìn)程很大程度與市場化程度相互作用。因此,標(biāo)準(zhǔn)化的目的是市場化,而市場化的進(jìn)展也將反過來促進(jìn)標(biāo)準(zhǔn)化的工作。
03DPU產(chǎn)業(yè)化面臨的挑戰(zhàn)DPU主要在基礎(chǔ)層和平臺層發(fā)揮作用,這決定了現(xiàn)階段DPU的優(yōu)化主要是性能導(dǎo)向。這其實(shí)一塊特別硬的骨頭?,F(xiàn)在有些DPU的設(shè)計(jì),過于依賴通用核的使用,盡管靈活性得到了保證,但是性能往往上不去,根本就不可能有客戶買單。性能好,靈活性差,客戶還會試一試;反之,是一點(diǎn)機(jī)會都沒有的。
這里我將介紹一個大家更有切身體會的挑戰(zhàn)——產(chǎn)品適配。DPU需要適配不同的CPU平臺、不同的操作系統(tǒng)?!斑m配”說起來容易,做起來難,面臨工作量“指數(shù)爆炸”的適配困境。例如,馭數(shù)DPU中的NOE功能是DPU行業(yè)內(nèi)低延遲性能最好,在X86上的TCP和UDP的1/2 RTT回環(huán)時延可以達(dá)到1.2us甚至更低。做到如此極致,除了硬件卸載之外,也需要 YUSUR HADOS 的InstantA? NOE SDK 針對不同CPU架構(gòu)做深度優(yōu)化。因此,我們在適配鯤鵬CPU + OpenEuler 操作系統(tǒng)時,需要解決和優(yōu)化不少ARM架構(gòu)和X86架構(gòu)的差異化問題,例如ARM架構(gòu)上的指令讀寫亂序的問題,最終做到了在鯤鵬CPU上TCP和UDP的1/2 RTT達(dá)到1.6us的業(yè)界領(lǐng)先的低時延性能。然而,當(dāng)我們以為可以輕易的去適配“鯤鵬CPU + 麒麟操作系統(tǒng)”時,又出現(xiàn)了不少新的問題,例如需要解決麒麟中斷處理差異,并且需要新一輪的性能優(yōu)化。
鑒于此,我們提出了一套自動化多生態(tài)環(huán)境的編譯、發(fā)布、測試系統(tǒng)平臺(ADIP),把適配工作系統(tǒng)的分解為兩條四個階段的流水線,分別針對Host側(cè)的軟件適配和DPU側(cè)的軟件適配。這個開發(fā)集成平臺已經(jīng)支持了馭數(shù)的DPU在多個國產(chǎn)CPU和OS的適配工作,目前還在快速的完善過程中。雖然目前我們的ADIP流程自動化程度還有待提高,但是對于流程階段的劃分,已經(jīng)可以非常高效的指導(dǎo)過百人的工程師團(tuán)隊(duì)來協(xié)作開發(fā)。
自動化多生態(tài)環(huán)境的編譯、發(fā)布、測試系統(tǒng)平臺:HADOS ADIP
以上的內(nèi)容只表述了我們在開發(fā)DPU過程中的一個較大的挑戰(zhàn),并且分享了我們的在應(yīng)對這個挑戰(zhàn)時提出的工程化解決方案。其實(shí),DPU還面臨一些其它的挑戰(zhàn),一些是屬于目前國內(nèi)集成電路設(shè)計(jì)行業(yè)面臨的共性問題,比如芯片制造的供應(yīng)鏈問題,高水平研發(fā)人員短缺問題等等;也有DPU這個賽道的特性挑戰(zhàn),比如需求比較多樣化,存在需求多樣化與DPU設(shè)計(jì)功能出現(xiàn)失配(Mismatch),DPU的軟件生態(tài)不夠成熟等問題,雖“道阻且長”,但“行則將至”!
04DPU的發(fā)展是否有“中國方案”?DPU的發(fā)展是否有適合我們自己的道路或“中國方案”?這也是我們一直在思考,但尚無定論的問題。雖然DPU不分“國界”,但是DPU的產(chǎn)業(yè)化可能還是要找到適合我國國情的途徑。
在計(jì)算系統(tǒng)發(fā)展的歷程中,大體有三個重要的因素決定了一類產(chǎn)品/技術(shù)的是否能取得商業(yè)化的成功。第一就是“性能”,取決于創(chuàng)新結(jié)構(gòu)、算法的發(fā)明,創(chuàng)新技術(shù)、工藝的采用等。第二就是“生產(chǎn)率”,與開發(fā)效率,系統(tǒng)與現(xiàn)有系統(tǒng)的兼容性,學(xué)習(xí)成本等因素有關(guān)。第三是“成本”,涉及到規(guī)模效應(yīng),工程化水平,供應(yīng)鏈,以及服務(wù)成本等。
首先,DPU的性能問題一方面是設(shè)計(jì)問題,DPU的結(jié)構(gòu)是不是優(yōu)秀,功能是不是完善等;另一方面的問題是DPU芯片生產(chǎn)制造的的問題。從我們DPU設(shè)計(jì)的功能和指標(biāo)上來看,我們自研的DPU和目前已經(jīng)公布的一些DPU的產(chǎn)品相比可以說不落下風(fēng),甚至在一些單項(xiàng)指標(biāo)上還有領(lǐng)先,比如時延。但是,我們的優(yōu)勢是局部技術(shù)上的優(yōu)勢,NVIDIA,Marvell的產(chǎn)品都有借鑒前代相關(guān)產(chǎn)品的功能模塊,架構(gòu)更加的成熟,而且已經(jīng)采用了更加先進(jìn)(如7nm)的工藝,從綜合的產(chǎn)品力上來看,客觀說還是有一定優(yōu)勢。因此,現(xiàn)在DPU得整體格局還是典型的“西強(qiáng)東弱”。
但是,中國目前算力需求是全球最強(qiáng)勁的。服務(wù)器的需求增速是全球第一,國家層面還有“新基建”中的“算力基礎(chǔ)設(shè)施”的宏大布局、今年2月份啟動的“東數(shù)西算”戰(zhàn)略布局、運(yùn)營商開始廣泛投入的“算力網(wǎng)絡(luò)”的建設(shè)等等。這不僅為DPU的發(fā)展提供了機(jī)遇,還給整個信息技術(shù)、計(jì)算技術(shù)的發(fā)展都提供了新的機(jī)遇。中國人擅長“摸著石頭過河”,我們堅(jiān)信、甚至篤信,更期待與全行業(yè)的同仁,通力協(xié)作,探索出一套“中國方案”,引領(lǐng)DPU這樣一個新技術(shù)的發(fā)展。
*博客內(nèi)容為網(wǎng)友個人發(fā)布,僅代表博主個人觀點(diǎn),如有侵權(quán)請聯(lián)系工作人員刪除。
熱式質(zhì)量流量計(jì)相關(guān)文章:熱式質(zhì)量流量計(jì)原理 流量計(jì)相關(guān)文章:流量計(jì)原理