<menu id="6c4oc"><tt id="6c4oc"></tt></menu>
  • 博客專欄

    EEPW首頁 > 博客 > DPU發展中的四個關鍵問題

    DPU發展中的四個關鍵問題

    發布人:旺材芯片時間:2022-08-13來源:工程師

    來源:中科馭數


    原文刊登于《中國科學報》(2022-08-10,第3版),本文根據中科馭數創始人鄢貴海在中國計算機學會第一屆芯片大會上的特邀報告整理而成。
    圖片鄢貴海在中國計算機學會芯片大會上做DPU主題報告
    在DPU概念誕生之初,人們爭論它“應如何定義”,但后來發現,只有定義,還遠不能說明 DPU能做什么、有什么作用、如何與現有系統更好地協同。本文將討論DPU發展中的四個關鍵問題:DPU是什么?DPU可以標準化嗎?DPU產業化面臨哪些挑戰?以及是否有“中國方案”?一些問題目前還很難給出確切的答案,但拋磚引玉,希望引起大家的關注。 
    01DPU是什么?DPU是新進發展起來的一種專用處理器,但是對于DPU的釋意卻不如之前的一些處理器一樣容易做到“不言自明”。比如GPU,大家聽名稱就知道是什么,名稱就是定義了。類似的還有數字信號處理器DSP,深度學習處理器NPU等。其實,CPU也是一個釋義并不清晰的概念,對于“中央”是什么含義,大概在50年前也沒有太多爭論。但是CPU需要干什么,在系統中的角色是什么,確實比較清楚的——這其實才是首要的問題。相較而言,所謂的“定義”反而不是那么重要。簡言之,DPU的參考結構是什么、能處理什么類型的負載,怎么集成到現有的計算體系中去才是DPU研發要解決的關鍵問題。
    DPU是面向基礎設施層的數據處理單元。鑒于此,Intel也把自己的DPU稱之為“IPU”。那么所謂的基礎設施層,是有別于應用層而言的,是為了給予應用提供物理或虛擬化資源,甚至提供基礎服務的邏輯層。其實這個概念很好理解,從我們先有的計算系統的宏觀邏輯層次來看,本身就被人為的分為基礎設施層(IaaS),平臺層(PaaS),軟件層(SaaS),最上層就是應用層。如果微觀來看,就會更清晰了?;A層主要包括與硬件資源交互、抽象硬件功能的組件,包括的網絡,存儲,服務器等。從優化技術的側重點來看,越基礎層的組件越傾向于以性能優先為導向,存在更多的“機器依賴(Machine-dependent)”,越上層的優化越以生產效率為導向,通過層層封裝,屏蔽底層差異,對用戶透明。圖片DPU是面向基礎設施層的數據處理單元
    那么,難道現有的數據中心的CPU、GPU、以及路由器、交換機,不能繼續作為“面向基礎設施層的數據處理單元”嗎?在計算系統的研究,很大程度上是“優化”的研究。現有的基礎設施不是不能,而是不夠“優化”。如果沒有新技術的發明和引入,最終需求和供給之間的矛盾就會越來越突出。
    圖片
    DPU的出現首先要解決的就是網絡數據包處理的問題。傳統來看,2層網絡的數據幀是網卡來處理,由CPU上運行的OS中的內核協議棧來來處理網絡數據包的收發問題。這個開銷在網絡帶寬比較低的時候,不是大問題,甚至中斷開銷都可以接受。但是,隨著核心網、匯聚網朝著100G、200G發展,接入網也達到50G、100G時,CPU就無法在提供足夠的算力來處理數據包了。我們發現了一個現象,稱之為“性能帶寬增速比失調”,簡單理解就是CPU性能由于摩爾定律的放緩,性能增速也隨之放緩,但是網絡帶寬的增速來自于應用的豐富,數據中心規模的擴大,數字化進展的驅動,所以增速反而更加的迅速,這就進一步加劇了服務器節點上CPU的計算負擔。
    圖片
    另外一個例子是在云計算場景下的一個核心應用,虛擬機之間的數據轉發問題,即OVS。通常而言,20個VM需要消耗的算力,如果用Xeon的多核CPU來處理,大概需要5個核的算力——這確實還是比較大的開銷。
    此外,目前的系統結構,其實并不是為處理網絡數據而生的,而是為了更高效的管理本地資源,支持多用戶、多任務并行,本地安全,適當并發,所以必須劃分不同特權指令的執行和訪問權限,采用復雜的中斷機制。這些機制對于高帶寬網絡、隨機訪問、高并發度收發的場景效率并不高。所以現有技術開辟了用戶態訪問機制,直接繞過操作系統內核態,用輪詢替代中斷來處理IO操作。這些在現在體系基礎上的“修修補補”的權宜之計,本質上是經典技術在新場景下的不適應。
    為了更好的理解DPU在系統中的角色,可以借助一種經典的計算系統模型,把系統按照邏輯功能劃分為三個部分:1)數據平面(Data Plane),定義為用于數據包解析和處理的數據通路,代表計算與數據密集的功能部分;2)控制平面(Control Plane),定義是為輸入輸出數據流提供和配置數據平面的算法集合,代表資源調度、系統配置、鏈路建立等控制密集的功能部分。此外,業界通常還增加了第三個層面,即3)管理平面(Mgmt. Plane),代表系統監控,故障隔離,在線修復等周期性或偶發性的部分應用。其實這也是在“軟件定義網絡SDN”方法學下的一種劃分。如果把一個城市的路網基礎設施比做SDN,那么眾橫交錯的道路就是其“數據平面”,其路網密度和寬度決定了路網的流量上限;所有的交通燈及其控制系統就是其“控制平面”,其控制算法優劣、部署位置的合理程度決定了交通流量實際容量;各種測速點、流量監控、臨時交通管制、事故擁塞疏導等就是其“管理平面”。有了這套基礎設施,各類用戶就可以應用各種車輛(相當于用戶的應用程序)來開展運輸服務了。
    對于不同平面,對可并行度、性能、靈活性、可靠性等屬性通常都有比較大的不同。對于數據平面,突出的訴求就是性能,通過開發數據級、線程級,任務級并行度,高度定制化專用計算單元,一切優化設計都是性能導向。而對于控制平面,主要訴求是通用靈活,便于作為控制數據平面的抓手,把使用權交給用戶。管理平面的功能主要是安全、可靠、易用,便于系統狀態監控、維護,方便支持自動化運維等機制的實施。
    為什么要從這三個平面來入手來看待DPU在系統中的角色呢?因為這三個邏輯平面反映了DPU設計過程中需要關注的內容。有人把DPU單純的理解為給CPU“減負”,把DPU作為一個網卡的“變種”,只是一個被動設備,把DPU視為一個單純的算法硬件化的載體,以“頭腦簡單,四肢發達”的形象示人,屬于單純追求強數據平面,弱控制面的設計。比較典型的如數據加密,圖像轉碼專用卡,AI加速卡等,這是異構計算的“1.0時代”。
    圖片
    如果我們重新審視一下系統功能的載體分布情況,就會看到DPU其實越來越不像是一個單純的加速器,而是與CPU全方位配合的一個關鍵組件。傳統的經典的計算系統,我們稱之為類型I(Type-I)是主機端負責所有的管理、控制、數據面的功能;異構計算的發展最先牽住的“牛鼻子”就是數據密集、計算密集的算法加速,所以主要卸載的就是數據面的計算負載,但是控制、管理都很少涉及,我們稱之為類型II(Type-II)。一個典型的表征就是從Host端只能發現這個計算設備,但是對于設備的狀態,啟動、關閉、任務分配等都比較不方便。隨著智能網卡等形態的產品出現,在設備端除了數據面的優勢得以強化外,出現了完整的控制面功能,我們稱之為類型III(Type- III)。例如ARM的控制器,運行了輕量級的操作系統用于管理板卡上的資源;這也是目前比較常見的類型。還有最后一類,Type-IV,是DPU承擔所有數據面、控制面、管理面的功能,而HOST側反而不那么重要的,這被認為是DPU的終極形態,即完全以DPU為中心來構建計算系統。前不久阿里云公布的CIPU(Could Infrastrucutre Procesing Unit)宣稱替代CPU成為新一代云計算核心硬件,可以說是把DPU推向了舞臺的中心,雖然也有很多爭議,但這也許正是DPU發展的方向。
    我們再來看看DPU具體能干什么。我們把DPU發揮作用的場景分為四個方向,分別為網絡、存儲、計算和安全,這四個方向其實是有依賴關系的,在這個圖中,具有相鄰關系的部分代表了一定的依賴;計算的部分涉及到的PaaS的內容偏多,網絡的部分偏IaaS層,存儲、安全在IaaS和PaaS層都比較多。覆蓋這個分類圖中越多的場景就是目前DPU各廠商努力的目標。
    圖片DPU功能場景
    為了實現這個功能,我們可以通過我們研發的第二代架構的DPU產品結構來體現。在這個架構中,有幾個比較創新的功能單元,比如NOE,是傳統TOE的升級版;DOE,是專門用于做數據查詢加速,還有DOMS,是一種高效的管理片上緩存數據的結構。其它的創新的結構還包括,FlashNOC的片上互聯技術,還有多種面向特定IO的DMA的單元等等。
    圖片
    最后,如果說DPU發展最大的驅動力,其實還是來自需求側。數據中心的架構發展趨勢已經從20年前的本地部署集群,到十年前的云化資源,再到目前的云原生階段。基礎設施層變得越來越厚重,向下越來越強化硬件資源的池化,向上是“XaaS”,即“一切皆可服務化”。K8S等系統成為了新的“操作系統”,服務網格成為了新的網絡化應用開發基礎,DevOps開發運維一體化……在“生產率”得到提升的同時,也直接催生了算力的需求,特別是IaaS和PaaS層的算力需求——這也是DPU的主戰場。
    圖片
    02DPU可以標準化嗎?在回答DPU是否可以標準化之前,需要明確標準化的確切含義是什么,以及為什么要標準化。我認為,DPU的標準化涉及兩個方面:DPU的架構是否可以標準化,這影響到DPU的研發成本問題;DPU的應用是否可以標準化,這影響DPU的應用生態的問題。
    現在廣泛存在一種認識的誤區:籠統的認為DPU是一種專用處理器,既然是“專用”,那么就不可避免的采用“定制化”才能實現,一旦“定制化”,那么“標準化”也就無從談起了,從而得到了一個武斷的結論:DPU沒有產業化價值!
    其實專用化、定制化、標準化這三個概念,并沒有直接的因果關系。
    專用化強調的是應用場景,是否值的專用化,取決于需求的的剛性。定制化是技術實現的路徑選擇,經常是創新和核心技術的“發源地”。標準化是為了降低邊際成本,通常通過建立或融入產業生態、創造規模效益,實現創新技術的價值變現。
    比如,GPU無疑是一種“專用”處理器,因為人們對圖形圖像這種信息交互方式是絕對的剛需;GPU中通過定制化來實現光柵操作處理器(ROP)、紋理處理器(TPC)等高度定制化的功能單元,還有超大規模的數據集同步并行處理技術,都是面向像素級海量數據處理的定制化技術;最終,通過OpenGL,DirectX等圖形操作API,CUDA的通用編程框架來做標準化。所以,“專用”并不比“通用”低人一等,“定制化”甚至是解決一些應用剛需必須采用的技術選擇。
    圖片

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

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

    首先,DPU的性能問題一方面是設計問題,DPU的結構是不是優秀,功能是不是完善等;另一方面的問題是DPU芯片生產制造的的問題。從我們DPU設計的功能和指標上來看,我們自研的DPU和目前已經公布的一些DPU的產品相比可以說不落下風,甚至在一些單項指標上還有領先,比如時延。但是,我們的優勢是局部技術上的優勢,NVIDIA,Marvell的產品都有借鑒前代相關產品的功能模塊,架構更加的成熟,而且已經采用了更加先進(如7nm)的工藝,從綜合的產品力上來看,客觀說還是有一定優勢。因此,現在DPU得整體格局還是典型的“西強東弱”。
    但是,中國目前算力需求是全球最強勁的。服務器的需求增速是全球第一,國家層面還有“新基建”中的“算力基礎設施”的宏大布局、今年2月份啟動的“東數西算”戰略布局、運營商開始廣泛投入的“算力網絡”的建設等等。這不僅為DPU的發展提供了機遇,還給整個信息技術、計算技術的發展都提供了新的機遇。中國人擅長“摸著石頭過河”,我們堅信、甚至篤信,更期待與全行業的同仁,通力協作,探索出一套“中國方案”,引領DPU這樣一個新技術的發展。


    圖片


    *博客內容為網友個人發布,僅代表博主個人觀點,如有侵權請聯系工作人員刪除。

    熱式質量流量計相關文章:熱式質量流量計原理
    流量計相關文章:流量計原理


    關鍵詞: DPU

    技術專區

    關閉
    熟妇女的欲乱
    <menu id="6c4oc"><tt id="6c4oc"></tt></menu>