DPU演化、技術(shù)派別和玩家


編者注:Fungible最先于2016年提出DPU(Date Processing Unit)的概念,也是第一家專注于設(shè)計DPU的創(chuàng)業(yè)公司。Nvidia于2020年在收購Mellanox(提供基于IB、以太網(wǎng)的計算機網(wǎng)絡(luò)產(chǎn)品)后,同年提出BlueField DPU,自此,DPU開始活躍起來,國外Marvell、Pensando、Broadcom、Intel等紛紛加入,國內(nèi)中科馭數(shù)、星云智聯(lián)等也通過自身的技術(shù)積累入局DPU。
下載鏈接:
在維基百科中,DPU是一種具有硬件加速數(shù)據(jù)處理功能的可編程的用于數(shù)據(jù)中心計算的專用電路(a programmable specialized electronic circuit with hardware acceleration of data processing for data-centric computing)。定義比較寬泛,F(xiàn)PGA以及一些交換機芯片粗略地看,也能歸于“DPU”一類,只劃分了DPU的功能表現(xiàn)。
Fungible的DPU能實現(xiàn)跨數(shù)據(jù)中心規(guī)模的計算和存儲資源的隔離的設(shè)備(Enabling hyper disaggregation of compute and storage resources across data center scales)。Fungible的DPU側(cè)重于計算(CPU)與存儲的隔離,顯然DPU承擔(dān)的任務(wù)不僅僅于此。
Marvell設(shè)計的DPU用于無線基礎(chǔ)設(shè)施和網(wǎng)絡(luò)設(shè)備,包括交換機、路由器、安全網(wǎng)關(guān)、防火墻、網(wǎng)絡(luò)監(jiān)控和智能網(wǎng)卡(Designed for use in wireless infrastructure and networking equipment including switches, routers, secure gateways, firewall, network monitoring, and smartNICs.)。這種定義,將DPU視為網(wǎng)卡的一種延申,不能夠解決數(shù)據(jù)中心面臨的所有問題。
Nvidia的DPU需要具備工業(yè)標(biāo)準(zhǔn)、軟件可編程的多核CPU;高性能的網(wǎng)絡(luò)接口和可編程的加速引擎(System on a chip that combines: Industry-standard, high-performance, software-programmable multi-core CPU ; High-performance network interface and Flexible and programmable acceleration engines)。
Nvidia通過具體的組成定義DPU,與CPU具有五大部分的組成(計算、存儲、控制、輸入、輸出)定義類似,但仍難以描述清楚DPU,是什么本質(zhì)特征,能讓其承擔(dān)CPU、GPU之后又一大算力支柱。
但從上述的定義中,可以總結(jié)出DPU涉及的領(lǐng)域有網(wǎng)絡(luò)、安全和存儲。從DPU承擔(dān)的功能的歷史變化中,去總結(jié)DPU需要解決的問題。
最早在1958年IBM 709、1964年IBM360就有關(guān)于IO processor的概念,為通道控制器,也有Data Synchronizer(數(shù)據(jù)同步器)的說法,我們可以從下圖看到最早計算機I/O管理的特點。

每個I/O設(shè)備有自己的控制單元,接入總線中,通道控制器相當(dāng)于一個仲裁模塊(后面的發(fā)展將有自己的通道指令),接收CPU的指令,執(zhí)行操作,選擇相應(yīng)的外設(shè)。設(shè)備都是低速設(shè)備,以IBM360為例,IBM 360性能較低的可以每秒執(zhí)行34500次指令,最高的每秒執(zhí)行1660萬次指令,而同時期的磁盤IBM 2302為156KB/s,更不用說打孔的卡處理器、紙帶處理設(shè)備了。
這個階段的I/O重點在于要兼容低速設(shè)備,管理多樣的I/O設(shè)備,由于CPU與I/O設(shè)備的速度鴻溝,通過I/O processor釋放CPU資源,更好的服務(wù)于計算密集型任務(wù)。
由于外設(shè)速度的兩級分化,漸漸形成了南北橋的結(jié)構(gòu),北橋通過FSB(前端總線)與CPU相連,并與高速外設(shè)(內(nèi)存、顯卡)、南橋相連,而南橋則負責(zé)與低速外設(shè)(鍵盤、鼠標(biāo))相連。南北橋的結(jié)構(gòu)同樣起到了一定隔離I/O資源的作用,讓CPU更好的服務(wù)于計算密集型任務(wù)。

高速總線(PCIe)的出現(xiàn),南北橋的結(jié)構(gòu)名存實亡,除了DDR內(nèi)存(并行總線,不包括IBM的串行內(nèi)存總線方案),所有的外設(shè)都可以掛載在PCIe上。但I/O的控制權(quán)還在CPU中。如下圖所示:

隨著網(wǎng)絡(luò)速度的不斷提高,CPU的運行資源在I/O處理中被剝奪了很大一部分且不能滿足高速I/O的需求。CPU的運算處于低效率的過程,這在今天仍然是一個問題,這也是DPU作為I/O角色需要解決的問題——高效的I/O平面。
網(wǎng)絡(luò)處理器,是一種專門應(yīng)用于網(wǎng)絡(luò)應(yīng)用數(shù)據(jù)包的處理器(ASIC)。由于網(wǎng)絡(luò)處理的復(fù)雜性,通過CPU+NP的結(jié)構(gòu),能夠獲得對網(wǎng)絡(luò)處理的較大提升。

上圖是Freescale Semiconductor 2000在“Network Processors: A Definition and Comparison”關(guān)于Network Processor的設(shè)計。與路由器、交換機的芯片不同,NP需要更多的功能集成、開放的編程接口、提供較高的靈活性等等。但NP卻只局限于對網(wǎng)絡(luò)的處理,發(fā)包接包,路由算法的加速,協(xié)議規(guī)則的加速等等。從下圖2010年IBM 的NP,可以看到現(xiàn)在基于FPGA加速的思路。

PowerEN不僅提供了網(wǎng)絡(luò)處理能力——Packet processing engine,同時能看到它的其他加速核心,加密(Crypto Engine)、正則表達式(RegEx Engine)、壓縮(Compress Engine)、XML解析(XML Engine)。從通用逐漸向特定的需求優(yōu)化,從只聚焦網(wǎng)絡(luò)處理到融合一些基礎(chǔ)功能的加速器,這也將是DPU將要承擔(dān)的功能角色。
通過硬件卸載不同的協(xié)議,或者通過利用硬件的流水線對某些算法達到一個很好的加速效果,這是基于FPGA加速的一些思路。DPU需要協(xié)議的卸載,也需要對某些常用功能的加速。協(xié)議的標(biāo)準(zhǔn)從來都不會停滯不前,常用功能也會隨著時間的推移而變化(PowerEN的XML Engine已然不再),需要DPU的軟硬件配合,提供更大粒度的調(diào)度或者轉(zhuǎn)換。
網(wǎng)絡(luò)是DPU發(fā)展的第一推動力,網(wǎng)卡的發(fā)展,也將隱藏著DPU的網(wǎng)絡(luò)功能的發(fā)展。下圖來自2021 STH NIC Continuum,概述了不同階段網(wǎng)卡的特點。

從左至右,網(wǎng)卡承擔(dān)的任務(wù)越來越多,復(fù)雜性越來越高,但可編程性是面對協(xié)議不斷變化的必備特征。

上圖是Ethernity基于FPGA的智能網(wǎng)卡?;贔PGA構(gòu)建智能網(wǎng)卡是提供網(wǎng)絡(luò)編程靈活性的有效解決方法。DPU繼承網(wǎng)卡的功能,就需要具備可編程性,但要新的體系結(jié)構(gòu)去結(jié)合不僅網(wǎng)絡(luò)相關(guān)的功能,還有計算、存儲等其他功能。
從計算為中心的時代,慢慢轉(zhuǎn)變?yōu)橐詳?shù)據(jù)為中心的時代。尤其是以數(shù)據(jù)中心云計算為應(yīng)用場景,需要對龐大數(shù)據(jù)的處理能力,CPU由于復(fù)雜的軟件協(xié)議棧,在高速的數(shù)據(jù)交換處理中根本沒有優(yōu)勢,無法承擔(dān)得起這樣的任務(wù)。


下圖是Facebook在2020年關(guān)于數(shù)據(jù)中心加速的研究實驗現(xiàn)象,上圖是Google在大規(guī)模數(shù)據(jù)集群中的現(xiàn)象。兩者的研究都表明22%到80%的CPU周期可能被微服務(wù)的通信開銷所消耗。而這也是CPU在數(shù)據(jù)中心表現(xiàn)低效的原因。
為了減少開銷釋放CPU性能,工業(yè)界不同廠商做了很多嘗試,提出了不同的解決方法(XPUs)。Amazon于2016年提出Nitro System,如下圖所示。

Nitro System提供了硬件卸載的高速網(wǎng)絡(luò)、EBS存儲、NVMe本地存儲、RDMA遠程存儲、安全控制等功能,通過Nitro Cards和Nitro Security Chip實現(xiàn),嘗試將CPU從繁雜的數(shù)據(jù)處理中解放出來。
中科馭數(shù)提出的KPU,同樣是基于這樣的嘗試,作為CPU的數(shù)據(jù)處理單元,直接面向大規(guī)模數(shù)據(jù)應(yīng)用,通過高度定制化KPU核,提供應(yīng)用加速能力。

從上面的架構(gòu)圖中,我們可以看到KPU試圖實現(xiàn)的是高性能、統(tǒng)一性、可復(fù)用性,解決CPU數(shù)據(jù)處理能力不足的問題。
IBM最新的大型機(main frame)——Z15,通過SAP(DPU的位置)將CPU從網(wǎng)絡(luò)、存儲、加密、壓縮中釋放出來。

也是在這樣的情況下,DPU的出現(xiàn)或許將是解決目前問題的關(guān)鍵。
Intel——IPU
在數(shù)據(jù)中心應(yīng)用場景中,Intel于2021年6月首次提出IPU(Infrastructure Processing Unit)概念,由于其功能和應(yīng)用場景與DPU有較大重合,也可以看作是DPU的一種嘗試。IPU的定義:Programmable network devices that intelligently manage system-level resources by securely accelerating networking and storage infrastructure functions in a data center。同樣是基于功能定義,具有三大特征,安全、存儲加速、網(wǎng)絡(luò)加速。

從上圖我們可以看到IPU的功能劃分,左側(cè)的Block design,Processor Complex and/or FPGA 提供軟硬件可編程性,運行ISP/CSP的特定服務(wù),Infrastructure Acceleration加速存儲虛擬化、安全(加解密)、網(wǎng)路虛擬化等負載請求,Network提供高帶寬的包處理、包分析等能力。

從上圖可以看到,應(yīng)用IPU之后,數(shù)據(jù)中心原有的網(wǎng)卡將被IPU代替,這也是DPU在未來重要的應(yīng)用場景之一。同時通過IPU的基礎(chǔ)功能(軟件虛擬化——>硬件虛擬化,以及其他的資源管理能力)的卸載,實現(xiàn)資源的隔離與CPU的充分利用。CPU將耗費極少的時間管理資源(通信),而真正專注于用戶任務(wù)。
Intel Architecture Day 2021為我們揭露了IPU加速的兩種路線,一種是基于ASIC的IPU,另一種是基于FPGA的加速。

從上圖可以看到,ASIC將提供相比于FPGA更優(yōu)的安全、網(wǎng)絡(luò)和存儲加速的性能以及較低的功耗。FPGA的加速將適合于不斷改進的標(biāo)準(zhǔn),具有可編程性,更短的TTM(Time to Market),滿足可定制需求。
ASIC IPU —— Mount Evans
Mount Evans于2021.8月發(fā)布,分為兩大子系統(tǒng),網(wǎng)絡(luò)單元與計算單元,如下圖所示:

網(wǎng)絡(luò)單元
網(wǎng)絡(luò)單元實現(xiàn)與CPU、各種外設(shè)的互連,并提供高效的數(shù)據(jù)處理能力。最多支持4個物理機(PF)的連接(全雙工200Gb/s),實現(xiàn)SR-IOV、S-IOV虛擬化協(xié)議(VF)的硬件實現(xiàn),RDMA(基于ROCEv2),NVMe存儲控制協(xié)議,IPSec等。
計算單元
計算單元由16個Arm N1核、Cache、加速引擎和管理處理器四部分組成。實現(xiàn)對整個IPU的控制與功能拓展。
IPU的ASIC版本,通過Arm核賦予其通用能力,通過協(xié)議的卸載加速基礎(chǔ)應(yīng)用存儲、網(wǎng)絡(luò),通過軟硬件協(xié)同設(shè)計,通過硬件加速引擎加速壓縮、加解密等功能,能夠利用DPDK、SPDK和P4,提供一定程度的靈活性。
FPGA IPU —— Oak Springs Canyon
Oak Springs Canyon由Agilex FPGA與Xeon-D SoC兩部分構(gòu)成。如下圖所示:

Xeon-D SoC 將運行嵌入式Linux,提供足夠的靈活性,Agilex FPGA將提供可編程性,根據(jù)應(yīng)用場景,專用加速CSP/ISP所需要的功能,提供高性能的數(shù)據(jù)處理。
Fungible —— F1、S1
Fungible有兩款DPU芯片,專注于網(wǎng)卡的S1與面向服務(wù)器端業(yè)務(wù)的F1。

F1硬件架構(gòu)如下:

數(shù)據(jù)集群(Data Cluster),每個集群中六核四線程,一共192個線程加速數(shù)據(jù)移動、數(shù)據(jù)保護、數(shù)據(jù)分析。
控制集群(Control Cluster)運行Linux系統(tǒng),負責(zé)安全認證,加速不同加密算法(RSA等)。
網(wǎng)絡(luò)單元(Network Unit),實現(xiàn)低延遲以太網(wǎng)、P4語言支持、包加密、與數(shù)據(jù)集群的緊耦合以及精確的時間控制。


F1將扮演三個角
16個獨立全雙工的控制器; X86或Arm架構(gòu)CPU的端設(shè)備; PCIe可拓展的RC。
DPU的誕生,是目前計算機馮諾伊曼架構(gòu)造成的巨大瓶頸——存儲程序、指令驅(qū)動可以解決一切問題,但并不是對所有程序應(yīng)用在這種架構(gòu)中能獲得最大的處理能力。DPU的未來可能是在架構(gòu)上的創(chuàng)新彌補當(dāng)前架構(gòu)的不足。
原文鏈接:
https://zhuanlan.zhihu.com/p/402706136
下載鏈接:
中國數(shù)據(jù)處理器行業(yè)概覽(2021)
DPU在數(shù)據(jù)中心和邊緣云上的應(yīng)用

轉(zhuǎn)載申明:轉(zhuǎn)載本號文章請注明作者和來源,本號發(fā)布文章若存在版權(quán)等問題,請留言聯(lián)系處理,謝謝。
推薦閱讀
更多架構(gòu)相關(guān)技術(shù)知識總結(jié)請參考“架構(gòu)師全店鋪技術(shù)資料打包”相關(guān)電子書(37本技術(shù)資料打包匯總詳情可通過“閱讀原文”獲取)。
全店內(nèi)容持續(xù)更新,現(xiàn)下單“全店鋪技術(shù)資料打包(全)”,后續(xù)可享全店內(nèi)容更新“免費”贈閱,價格僅收198元(原總價350元)。
溫馨提示:
掃描二維碼關(guān)注公眾號,點擊閱讀原文鏈接獲取“架構(gòu)師技術(shù)全店資料打包匯總(全)”電子書資料詳情。

