DPU發(fā)展中的四個(gè)關(guān)鍵問(wèn)題
來(lái)源:中科馭數

在DPU概念誕生之初,人們爭論它“應如何定義”,但后來(lái)發(fā)現,只有定義,還遠不能說(shuō)明 DPU能做什么、有什么作用、如何與現有系統更好地協(xié)同。本文將討論DPU發(fā)展中的四個(gè)關(guān)鍵問(wèn)題:DPU是什么?DPU可以標準化嗎?DPU產(chǎn)業(yè)化面臨哪些挑戰?以及是否有“中國方案”?一些問(wèn)題目前還很難給出確切的答案,但拋磚引玉,希望引起大家的關(guān)注。
01DPU是什么?DPU是新進(jìn)發(fā)展起來(lái)的一種專(zhuān)用處理器,但是對于DPU的釋意卻不如之前的一些處理器一樣容易做到“不言自明”。比如GPU,大家聽(tīng)名稱(chēng)就知道是什么,名稱(chēng)就是定義了。類(lèi)似的還有數字信號處理器DSP,深度學(xué)習處理器NPU等。其實(shí),CPU也是一個(gè)釋義并不清晰的概念,對于“中央”是什么含義,大概在50年前也沒(méi)有太多爭論。但是CPU需要干什么,在系統中的角色是什么,確實(shí)比較清楚的——這其實(shí)才是首要的問(wèn)題。相較而言,所謂的“定義”反而不是那么重要。簡(jiǎn)言之,DPU的參考結構是什么、能處理什么類(lèi)型的負載,怎么集成到現有的計算體系中去才是DPU研發(fā)要解決的關(guān)鍵問(wèn)題。
DPU是面向基礎設施層的數據處理單元。鑒于此,Intel也把自己的DPU稱(chēng)之為“IPU”。那么所謂的基礎設施層,是有別于應用層而言的,是為了給予應用提供物理或虛擬化資源,甚至提供基礎服務(wù)的邏輯層。其實(shí)這個(gè)概念很好理解,從我們先有的計算系統的宏觀(guān)邏輯層次來(lái)看,本身就被人為的分為基礎設施層(IaaS),平臺層(PaaS),軟件層(SaaS),最上層就是應用層。如果微觀(guān)來(lái)看,就會(huì )更清晰了?;A層主要包括與硬件資源交互、抽象硬件功能的組件,包括的網(wǎng)絡(luò ),存儲,服務(wù)器等。從優(yōu)化技術(shù)的側重點(diǎn)來(lái)看,越基礎層的組件越傾向于以性能優(yōu)先為導向,存在更多的“機器依賴(lài)(Machine-dependent)”,越上層的優(yōu)化越以生產(chǎn)效率為導向,通過(guò)層層封裝,屏蔽底層差異,對用戶(hù)透明。

那么,難道現有的數據中心的CPU、GPU、以及路由器、交換機,不能繼續作為“面向基礎設施層的數據處理單元”嗎?在計算系統的研究,很大程度上是“優(yōu)化”的研究。現有的基礎設施不是不能,而是不夠“優(yōu)化”。如果沒(méi)有新技術(shù)的發(fā)明和引入,最終需求和供給之間的矛盾就會(huì )越來(lái)越突出。

DPU的出現首先要解決的就是網(wǎng)絡(luò )數據包處理的問(wèn)題。傳統來(lái)看,2層網(wǎng)絡(luò )的數據幀是網(wǎng)卡來(lái)處理,由CPU上運行的OS中的內核協(xié)議棧來(lái)來(lái)處理網(wǎng)絡(luò )數據包的收發(fā)問(wèn)題。這個(gè)開(kāi)銷(xiāo)在網(wǎng)絡(luò )帶寬比較低的時(shí)候,不是大問(wèn)題,甚至中斷開(kāi)銷(xiāo)都可以接受。但是,隨著(zhù)核心網(wǎng)、匯聚網(wǎng)朝著(zhù)100G、200G發(fā)展,接入網(wǎng)也達到50G、100G時(shí),CPU就無(wú)法在提供足夠的算力來(lái)處理數據包了。我們發(fā)現了一個(gè)現象,稱(chēng)之為“性能帶寬增速比失調”,簡(jiǎn)單理解就是CPU性能由于摩爾定律的放緩,性能增速也隨之放緩,但是網(wǎng)絡(luò )帶寬的增速來(lái)自于應用的豐富,數據中心規模的擴大,數字化進(jìn)展的驅動(dòng),所以增速反而更加的迅速,這就進(jìn)一步加劇了服務(wù)器節點(diǎn)上CPU的計算負擔。

另外一個(gè)例子是在云計算場(chǎng)景下的一個(gè)核心應用,虛擬機之間的數據轉發(fā)問(wèn)題,即OVS。通常而言,20個(gè)VM需要消耗的算力,如果用Xeon的多核CPU來(lái)處理,大概需要5個(gè)核的算力——這確實(shí)還是比較大的開(kāi)銷(xiāo)。
此外,目前的系統結構,其實(shí)并不是為處理網(wǎng)絡(luò )數據而生的,而是為了更高效的管理本地資源,支持多用戶(hù)、多任務(wù)并行,本地安全,適當并發(fā),所以必須劃分不同特權指令的執行和訪(fǎng)問(wèn)權限,采用復雜的中斷機制。這些機制對于高帶寬網(wǎng)絡(luò )、隨機訪(fǎng)問(wèn)、高并發(fā)度收發(fā)的場(chǎng)景效率并不高。所以現有技術(shù)開(kāi)辟了用戶(hù)態(tài)訪(fǎng)問(wèn)機制,直接繞過(guò)操作系統內核態(tài),用輪詢(xún)替代中斷來(lái)處理IO操作。這些在現在體系基礎上的“修修補補”的權宜之計,本質(zhì)上是經(jīng)典技術(shù)在新場(chǎng)景下的不適應。
為了更好的理解DPU在系統中的角色,可以借助一種經(jīng)典的計算系統模型,把系統按照邏輯功能劃分為三個(gè)部分:1)數據平面(Data Plane),定義為用于數據包解析和處理的數據通路,代表計算與數據密集的功能部分;2)控制平面(Control Plane),定義是為輸入輸出數據流提供和配置數據平面的算法集合,代表資源調度、系統配置、鏈路建立等控制密集的功能部分。此外,業(yè)界通常還增加了第三個(gè)層面,即3)管理平面(Mgmt. Plane),代表系統監控,故障隔離,在線(xiàn)修復等周期性或偶發(fā)性的部分應用。其實(shí)這也是在“軟件定義網(wǎng)絡(luò )SDN”方法學(xué)下的一種劃分。如果把一個(gè)城市的路網(wǎng)基礎設施比做SDN,那么眾橫交錯的道路就是其“數據平面”,其路網(wǎng)密度和寬度決定了路網(wǎng)的流量上限;所有的交通燈及其控制系統就是其“控制平面”,其控制算法優(yōu)劣、部署位置的合理程度決定了交通流量實(shí)際容量;各種測速點(diǎn)、流量監控、臨時(shí)交通管制、事故擁塞疏導等就是其“管理平面”。有了這套基礎設施,各類(lèi)用戶(hù)就可以應用各種車(chē)輛(相當于用戶(hù)的應用程序)來(lái)開(kāi)展運輸服務(wù)了。
對于不同平面,對可并行度、性能、靈活性、可靠性等屬性通常都有比較大的不同。對于數據平面,突出的訴求就是性能,通過(guò)開(kāi)發(fā)數據級、線(xiàn)程級,任務(wù)級并行度,高度定制化專(zhuān)用計算單元,一切優(yōu)化設計都是性能導向。而對于控制平面,主要訴求是通用靈活,便于作為控制數據平面的抓手,把使用權交給用戶(hù)。管理平面的功能主要是安全、可靠、易用,便于系統狀態(tài)監控、維護,方便支持自動(dòng)化運維等機制的實(shí)施。
為什么要從這三個(gè)平面來(lái)入手來(lái)看待DPU在系統中的角色呢?因為這三個(gè)邏輯平面反映了DPU設計過(guò)程中需要關(guān)注的內容。有人把DPU單純的理解為給CPU“減負”,把DPU作為一個(gè)網(wǎng)卡的“變種”,只是一個(gè)被動(dòng)設備,把DPU視為一個(gè)單純的算法硬件化的載體,以“頭腦簡(jiǎn)單,四肢發(fā)達”的形象示人,屬于單純追求強數據平面,弱控制面的設計。比較典型的如數據加密,圖像轉碼專(zhuān)用卡,AI加速卡等,這是異構計算的“1.0時(shí)代”。

如果我們重新審視一下系統功能的載體分布情況,就會(huì )看到DPU其實(shí)越來(lái)越不像是一個(gè)單純的加速器,而是與CPU全方位配合的一個(gè)關(guān)鍵組件。傳統的經(jīng)典的計算系統,我們稱(chēng)之為類(lèi)型I(Type-I)是主機端負責所有的管理、控制、數據面的功能;異構計算的發(fā)展最先牽住的“牛鼻子”就是數據密集、計算密集的算法加速,所以主要卸載的就是數據面的計算負載,但是控制、管理都很少涉及,我們稱(chēng)之為類(lèi)型II(Type-II)。一個(gè)典型的表征就是從Host端只能發(fā)現這個(gè)計算設備,但是對于設備的狀態(tài),啟動(dòng)、關(guān)閉、任務(wù)分配等都比較不方便。隨著(zhù)智能網(wǎng)卡等形態(tài)的產(chǎn)品出現,在設備端除了數據面的優(yōu)勢得以強化外,出現了完整的控制面功能,我們稱(chēng)之為類(lèi)型III(Type- III)。例如ARM的控制器,運行了輕量級的操作系統用于管理板卡上的資源;這也是目前比較常見(jiàn)的類(lèi)型。還有最后一類(lèi),Type-IV,是DPU承擔所有數據面、控制面、管理面的功能,而HOST側反而不那么重要的,這被認為是DPU的終極形態(tài),即完全以DPU為中心來(lái)構建計算系統。前不久阿里云公布的CIPU(Could Infrastrucutre Procesing Unit)宣稱(chēng)替代CPU成為新一代云計算核心硬件,可以說(shuō)是把DPU推向了舞臺的中心,雖然也有很多爭議,但這也許正是DPU發(fā)展的方向。
我們再來(lái)看看DPU具體能干什么。我們把DPU發(fā)揮作用的場(chǎng)景分為四個(gè)方向,分別為網(wǎng)絡(luò )、存儲、計算和安全,這四個(gè)方向其實(shí)是有依賴(lài)關(guān)系的,在這個(gè)圖中,具有相鄰關(guān)系的部分代表了一定的依賴(lài);計算的部分涉及到的PaaS的內容偏多,網(wǎng)絡(luò )的部分偏IaaS層,存儲、安全在IaaS和PaaS層都比較多。覆蓋這個(gè)分類(lèi)圖中越多的場(chǎng)景就是目前DPU各廠(chǎng)商努力的目標。

為了實(shí)現這個(gè)功能,我們可以通過(guò)我們研發(fā)的第二代架構的DPU產(chǎn)品結構來(lái)體現。在這個(gè)架構中,有幾個(gè)比較創(chuàng )新的功能單元,比如NOE,是傳統TOE的升級版;DOE,是專(zhuān)門(mén)用于做數據查詢(xún)加速,還有DOMS,是一種高效的管理片上緩存數據的結構。其它的創(chuàng )新的結構還包括,FlashNOC的片上互聯(lián)技術(shù),還有多種面向特定IO的DMA的單元等等。

最后,如果說(shuō)DPU發(fā)展最大的驅動(dòng)力,其實(shí)還是來(lái)自需求側。數據中心的架構發(fā)展趨勢已經(jīng)從20年前的本地部署集群,到十年前的云化資源,再到目前的云原生階段。基礎設施層變得越來(lái)越厚重,向下越來(lái)越強化硬件資源的池化,向上是“XaaS”,即“一切皆可服務(wù)化”。K8S等系統成為了新的“操作系統”,服務(wù)網(wǎng)格成為了新的網(wǎng)絡(luò )化應用開(kāi)發(fā)基礎,DevOps開(kāi)發(fā)運維一體化……在“生產(chǎn)率”得到提升的同時(shí),也直接催生了算力的需求,特別是IaaS和PaaS層的算力需求——這也是DPU的主戰場(chǎng)。

02DPU可以標準化嗎?在回答DPU是否可以標準化之前,需要明確標準化的確切含義是什么,以及為什么要標準化。我認為,DPU的標準化涉及兩個(gè)方面:DPU的架構是否可以標準化,這影響到DPU的研發(fā)成本問(wèn)題;DPU的應用是否可以標準化,這影響DPU的應用生態(tài)的問(wèn)題。
現在廣泛存在一種認識的誤區:籠統的認為DPU是一種專(zhuān)用處理器,既然是“專(zhuān)用”,那么就不可避免的采用“定制化”才能實(shí)現,一旦“定制化”,那么“標準化”也就無(wú)從談起了,從而得到了一個(gè)武斷的結論:DPU沒(méi)有產(chǎn)業(yè)化價(jià)值!
其實(shí)專(zhuān)用化、定制化、標準化這三個(gè)概念,并沒(méi)有直接的因果關(guān)系。
專(zhuān)用化強調的是應用場(chǎng)景,是否值的專(zhuān)用化,取決于需求的的剛性。定制化是技術(shù)實(shí)現的路徑選擇,經(jīng)常是創(chuàng )新和核心技術(shù)的“發(fā)源地”。標準化是為了降低邊際成本,通常通過(guò)建立或融入產(chǎn)業(yè)生態(tài)、創(chuàng )造規模效益,實(shí)現創(chuàng )新技術(shù)的價(jià)值變現。
比如,GPU無(wú)疑是一種“專(zhuān)用”處理器,因為人們對圖形圖像這種信息交互方式是絕對的剛需;GPU中通過(guò)定制化來(lái)實(shí)現光柵操作處理器(ROP)、紋理處理器(TPC)等高度定制化的功能單元,還有超大規模的數據集同步并行處理技術(shù),都是面向像素級海量數據處理的定制化技術(shù);最終,通過(guò)OpenGL,DirectX等圖形操作API,CUDA的通用編程框架來(lái)做標準化。所以,“專(zhuān)用”并不比“通用”低人一等,“定制化”甚至是解決一些應用剛需必須采用的技術(shù)選擇。

我們去年在中國計算機學(xué)會(huì )通訊上發(fā)表了一篇文章《DPU:以數據為中心的專(zhuān)用處理器》,其中有一個(gè)圖,反映的是目前幾類(lèi)處理器的特征分布。從功能導向劃分為計算密集 vs. IO密集,從結構設計劃分為控制為中心和數據為中心;從中我們可以看到,目前DPU所處的分布區域,確實(shí)還有一定的空白。簡(jiǎn)單的演繹一下,在其它三個(gè)區域都有很好的產(chǎn)業(yè)化格局的時(shí)候,DPU所屬的區域應該也沒(méi)有道理不能產(chǎn)業(yè)化。

我們團隊在DPU標準化工作上也作出過(guò)一點(diǎn)貢獻。首先是組織編寫(xiě)了行業(yè)第一本DPU技術(shù)白皮書(shū),這本白皮書(shū)比較全面的刻畫(huà)了DPU的功能集,以及DPU的應用場(chǎng)景,并且給出了一個(gè)比較通用的DPU設計的參考模型。今年在過(guò)往的基礎上,我們又組織編寫(xiě)了第二部技術(shù)白皮書(shū),但關(guān)注的重點(diǎn)從DPU參考設計遷移到了DPU的性能評測方法,作為后續細分應用設計基準測試程序的參考。
我認為,DPU標準化是一個(gè)過(guò)程,而不是目的。標準化的進(jìn)程很大程度與市場(chǎng)化程度相互作用。因此,標準化的目的是市場(chǎng)化,而市場(chǎng)化的進(jìn)展也將反過(guò)來(lái)促進(jìn)標準化的工作。
03DPU產(chǎn)業(yè)化面臨的挑戰DPU主要在基礎層和平臺層發(fā)揮作用,這決定了現階段DPU的優(yōu)化主要是性能導向。這其實(shí)一塊特別硬的骨頭?,F在有些DPU的設計,過(guò)于依賴(lài)通用核的使用,盡管靈活性得到了保證,但是性能往往上不去,根本就不可能有客戶(hù)買(mǎi)單。性能好,靈活性差,客戶(hù)還會(huì )試一試;反之,是一點(diǎn)機會(huì )都沒(méi)有的。
這里我將介紹一個(gè)大家更有切身體會(huì )的挑戰——產(chǎn)品適配。DPU需要適配不同的CPU平臺、不同的操作系統?!斑m配”說(shuō)起來(lái)容易,做起來(lái)難,面臨工作量“指數爆炸”的適配困境。例如,馭數DPU中的NOE功能是DPU行業(yè)內低延遲性能最好,在X86上的TCP和UDP的1/2 RTT回環(huán)時(shí)延可以達到1.2us甚至更低。做到如此極致,除了硬件卸載之外,也需要 YUSUR HADOS 的InstantA? NOE SDK 針對不同CPU架構做深度優(yōu)化。因此,我們在適配鯤鵬CPU + OpenEuler 操作系統時(shí),需要解決和優(yōu)化不少ARM架構和X86架構的差異化問(wèn)題,例如ARM架構上的指令讀寫(xiě)亂序的問(wèn)題,最終做到了在鯤鵬CPU上TCP和UDP的1/2 RTT達到1.6us的業(yè)界領(lǐng)先的低時(shí)延性能。然而,當我們以為可以輕易的去適配“鯤鵬CPU + 麒麟操作系統”時(shí),又出現了不少新的問(wèn)題,例如需要解決麒麟中斷處理差異,并且需要新一輪的性能優(yōu)化。
鑒于此,我們提出了一套自動(dòng)化多生態(tài)環(huán)境的編譯、發(fā)布、測試系統平臺(ADIP),把適配工作系統的分解為兩條四個(gè)階段的流水線(xiàn),分別針對Host側的軟件適配和DPU側的軟件適配。這個(gè)開(kāi)發(fā)集成平臺已經(jīng)支持了馭數的DPU在多個(gè)國產(chǎn)CPU和OS的適配工作,目前還在快速的完善過(guò)程中。雖然目前我們的ADIP流程自動(dòng)化程度還有待提高,但是對于流程階段的劃分,已經(jīng)可以非常高效的指導過(guò)百人的工程師團隊來(lái)協(xié)作開(kāi)發(fā)。

以上的內容只表述了我們在開(kāi)發(fā)DPU過(guò)程中的一個(gè)較大的挑戰,并且分享了我們的在應對這個(gè)挑戰時(shí)提出的工程化解決方案。其實(shí),DPU還面臨一些其它的挑戰,一些是屬于目前國內集成電路設計行業(yè)面臨的共性問(wèn)題,比如芯片制造的供應鏈問(wèn)題,高水平研發(fā)人員短缺問(wèn)題等等;也有DPU這個(gè)賽道的特性挑戰,比如需求比較多樣化,存在需求多樣化與DPU設計功能出現失配(Mismatch),DPU的軟件生態(tài)不夠成熟等問(wèn)題,雖“道阻且長(cháng)”,但“行則將至”!
04DPU的發(fā)展是否有“中國方案”?DPU的發(fā)展是否有適合我們自己的道路或“中國方案”?這也是我們一直在思考,但尚無(wú)定論的問(wèn)題。雖然DPU不分“國界”,但是DPU的產(chǎn)業(yè)化可能還是要找到適合我國國情的途徑。
在計算系統發(fā)展的歷程中,大體有三個(gè)重要的因素決定了一類(lèi)產(chǎn)品/技術(shù)的是否能取得商業(yè)化的成功。第一就是“性能”,取決于創(chuàng )新結構、算法的發(fā)明,創(chuàng )新技術(shù)、工藝的采用等。第二就是“生產(chǎn)率”,與開(kāi)發(fā)效率,系統與現有系統的兼容性,學(xué)習成本等因素有關(guān)。第三是“成本”,涉及到規模效應,工程化水平,供應鏈,以及服務(wù)成本等。

首先,DPU的性能問(wèn)題一方面是設計問(wèn)題,DPU的結構是不是優(yōu)秀,功能是不是完善等;另一方面的問(wèn)題是DPU芯片生產(chǎn)制造的的問(wèn)題。從我們DPU設計的功能和指標上來(lái)看,我們自研的DPU和目前已經(jīng)公布的一些DPU的產(chǎn)品相比可以說(shuō)不落下風(fēng),甚至在一些單項指標上還有領(lǐng)先,比如時(shí)延。但是,我們的優(yōu)勢是局部技術(shù)上的優(yōu)勢,NVIDIA,Marvell的產(chǎn)品都有借鑒前代相關(guān)產(chǎn)品的功能模塊,架構更加的成熟,而且已經(jīng)采用了更加先進(jìn)(如7nm)的工藝,從綜合的產(chǎn)品力上來(lái)看,客觀(guān)說(shuō)還是有一定優(yōu)勢。因此,現在DPU得整體格局還是典型的“西強東弱”。
但是,中國目前算力需求是全球最強勁的。服務(wù)器的需求增速是全球第一,國家層面還有“新基建”中的“算力基礎設施”的宏大布局、今年2月份啟動(dòng)的“東數西算”戰略布局、運營(yíng)商開(kāi)始廣泛投入的“算力網(wǎng)絡(luò )”的建設等等。這不僅為DPU的發(fā)展提供了機遇,還給整個(gè)信息技術(shù)、計算技術(shù)的發(fā)展都提供了新的機遇。中國人擅長(cháng)“摸著(zhù)石頭過(guò)河”,我們堅信、甚至篤信,更期待與全行業(yè)的同仁,通力協(xié)作,探索出一套“中國方案”,引領(lǐng)DPU這樣一個(gè)新技術(shù)的發(fā)展。
*博客內容為網(wǎng)友個(gè)人發(fā)布,僅代表博主個(gè)人觀(guān)點(diǎn),如有侵權請聯(lián)系工作人員刪除。
熱式質(zhì)量流量計相關(guān)文章:熱式質(zhì)量流量計原理 流量計相關(guān)文章:流量計原理