芯片采購網專注于整合國內外授權IC代理商現貨資源,芯片庫存實時查詢,行業價格合理,采購方便IC芯片,國內專業芯片采購平臺。
嚴貴海在中國計算機學會芯片會議上DPU主題報告
在DPU在概念誕生之初,人們爭論它應該如何定義,但后來發現,只有定義不能解釋 DPU能做什么,有什么作用,如何更好地與現有系統合作。本文將討論DPU發展中的四個關鍵問題:DPU是什么?DPU能標準化嗎?DPU工業化面臨哪些挑戰?還有中國計劃嗎?有些問題目前還很難給出確切的答案,但拋磚引玉,希望能引起大家的關注。
一、DPU是什么?
DPU它是一種新開發的專用處理器,但對于DPU釋意不像以前的處理器那么容易不言而喻。比如GPU,聽名字就知道是什么,名字就是定義。數字信號處理器也是類似的DSP,深度學習處理器NPU等。其實,CPU這也是一個解釋不清楚的概念。大約50年前,關于中央的含義沒有太多爭論。但是CPU需要做什么,系統中的角色是什么,真的很清楚——這其實是首要問題。所謂之下,所謂的定義就沒那么重要了。簡言之,DPU什么是參考結構,什么樣的負載可以處理,如何集成到現有的計算系統中DPU研發要解決的關鍵問題。
DPU是基礎設施層的數據處理單元。有鑒于此,Intel也把自己的DPU稱之為“IPU所以所謂的基礎設施層不同于應用層Epson代理提供物理或虛擬化資源,甚至提供基本服務的邏輯層。事實上,這個概念很容易理解。從我們先進計算系統的宏觀邏輯水平來看,它本身被人為地分為基礎設施層(IaaS),平臺層(PaaS),軟件層(SaaS),上層為應用層。如果看微觀,會更清晰。基礎層主要包括網絡、存儲、服務器等與硬件資源交互、抽象硬件功能的組件。從優化技術的重點來看,基礎層組件越多,性能優先,機器依賴就越多(Machine-dependent)上層優化越以生產效率為導向,通過層層封裝,屏蔽底層差異,對用戶透明。
DPU數據處理單元面向基礎設施層
那么,現有的數據中心嗎?CPU、GPU、路由器和開關不能繼續作為基礎設施層的數據處理單元嗎?計算系統的研究在很大程度上是優化的研究。現有的基礎設施不是不可能的,而是不夠的優化。如果沒有新技術的發明和引進,需求和供給之間的矛盾將越來越突出。
DPU首先要解決的是網絡數據包處理的問題。傳統上,網卡處理了兩層網絡的數據幀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),周期性或偶發性的部分應用,如系統監控、故障隔離、在線修復等。此外,行業通常會增加第三個層次,即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的主戰場。
二、DPU能標準化嗎?
在回答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標準化是一個過程,而不是目的。標準化的過程在很大程度上與市場化相互作用。因此,標準化的目的是市場化,市場化的進展將反過來促進標準化。
三、DPU工業化面臨的挑戰
DPU它主要在基礎層和平臺層發揮作用,這決定了現階段DPU優化主要是性能導向。這實際上是一塊特別硬的骨頭。現在有一些DPU設計過于依賴于一般核的使用。雖然靈活性得到了保證,但客戶往往無法支付性能。性能好,靈活性差,客戶會嘗試;相反,根本沒有機會。
在這里,我將介紹一個更具個人經驗的挑戰——產品適配。DPU需要適應不同的CPU平臺,不同的操作系統。適配說起來容易,做起來難,面臨工作量指數爆炸的適配困境。例如,馭數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流程自動化程度有待提高,但對于流程階段的劃分,可以有效地指導100人的工程師團隊合作開發。
編譯、發布和測試多生態環境自動化系統平臺:HADOS ADIP
以上內容僅表明我們正在開發中DPU在應對這一挑戰時,我們分享了我們提出的工程解決方案。其實,DPU還面臨著一些其他挑戰,一些是國內集成電路設計行業面臨的共同問題,如芯片制造供應鏈問題、高水平研發人員短缺等有DPU這條軌道的特點挑戰,如需求多樣化、需求多樣化和DPU設計功能不匹配(Mismatch),DPU軟件生態不成熟等問題,雖然道阻長,但行則即將到來!
四、DPU是否有中國計劃?
DPU是否有適合我們自己的發展道路或中國計劃?這也是我們一直在思考的問題,但還沒有定論。DPU不分國界DPU工業化可能仍然需要找到適合中國國情的途徑。
在計算系統的發展過程中,決定一類產品/技術商業化成功的重要因素有三個。第一個是性能,它取決于創新結構、算法發明、創新技術采用等。二是生產率三是成本
首先,DPU一方面,性能問題是設計問題,DPU結構是否優秀,功能是否完善;另一方面,問題是DPU芯片制造問題。從我們DPU從設計的功能和指標來看,我們自主研究DPU和已經公布的一些DPU與產品相比,可以說是不落后不落后,甚至在一些單一指標上領先,如延遲。但是,我們的優勢是局部技術優勢,NVIDIA,Marvell所有產品都借鑒了前代相關產品的功能模塊,結構更加成熟,采用了更加先進(如7)nm)從綜合產品實力的角度來看,工藝仍有一定的優勢。因此,現在DPU整體格局是典型的西強東弱。
然而,中國目前的計算能力需求是世界上最強勁的。服務器需求增長率居世界第一。國家層面還包括新基礎設施中計算基礎設施的宏大布局、今年2月啟動的東西計算戰略布局、運營商開始廣泛投資的計算網絡建設等。這不僅為DPU為整個信息技術和計算技術的發展提供了機遇。中國人擅長摸著石頭過河。我們堅信,甚至相信,期待與全行業同事合作,探索一套中國計劃,引領DPU這種新技術的發展。