999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

專用數據處理器綜述*

2023-02-20 02:48:28劉忠沛呂高鋒王繼昌楊翔瑞
計算機工程與科學 2023年2期
關鍵詞:功能模型

劉忠沛,呂高鋒,王繼昌,楊翔瑞

(國防科技大學計算機學院,湖南 長沙 410073)

1 引言

伴隨著數據中心的不斷發展,通信能力和計算能力成為數據中心基礎設施緊密相關的2個重要發展方向。如果數據中心僅關注計算能力的提升,忽視通信基礎設施的提升,那么數據中心的整體系統性能仍然會被限制。數據處理器DPU(Data Processing Unit)的提出背景就是應對數據中心的數據量和復雜性的指數級增長帶來的性能瓶頸。它是新近發展起來的專用處理器的一個大類,是繼中央處理器CPU(Central Processing Unit)、圖形處理器GPU(Graphics Processing Unit)之后,數據中心場景中的第3顆重要的算力芯片,為高帶寬、低延遲、數據密集的計算場景提供計算引擎[1]。

DPU可以作為CPU的卸載引擎,為上層應用釋放CPU算力。例如,進行網絡協議處理時要迅速處理10 Gb的網絡需要大約4個Intel Xeon CPU核,相當于占去一個8核高端CPU的一半算力。如果考慮更高速度的網絡,CPU算力的開銷將會更大。Amazon把這些開銷都稱之為“數據中心稅”——還未運行業務程序,先接入網絡數據就要占去的計算資源。未來,需要將計算移至接近數據的位置,這是目前業界所公認的以數據為中心的體系結構下的創新。

DPU市場仍處于初步發展階段,廠商對DPU的定義也各不相同[2 - 6]。目前市場上主流的DPU定義是NVIDIA提出的,即DPU是集數據中心基礎架構于芯片的通用處理器。DPU的出現是異構計算的一個階段性標志。與GPU的發展相似,DPU也屬于應用驅動的體系結構設計;然而DPU面向的應用更加底層。它包含了:(1)行業標準的、高性能及軟件可編程的多核CPU,基于ARM架構的占大多數,并與片上系統SoC(System on a Chip)組件共同工作。(2)高性能網絡接口,能以線速解析并處理數據,高效地將數據傳輸到GPU和CPU。(3)各種靈活和可編程的加速引擎,可以卸載人工智能AI(Artificial Intelligence)、機器學習、安全、電信和存儲等應用,以達到更高性能。(4)擁有開放性集成功能,將來可以集成更多功能。例如NVIDIA計劃在之后的Bluefield-4[3]產品中,將GPU集成到DPU中,進而完成數據中心架構的終極整合。(5)NVIDIA DPU的軟件開發包DOCA(Data center Infrastructure On a Chip Architecture)提供了統一的面向各種應用的編程接口,使用戶注意力不必放在DPU的底層硬件接口而是直接對硬件進行編程。

綜上,DPU可以在數據中心中通過更明細的分工來提升系統效率,實現總體成本最優化。本文首先介紹了DPU技術并與網絡處理器NP(Network Processor)進行對比;然后基于運行至終結RTC(Run To Completion)模型與流水線(Pipeline)模型分析了DPU的硬件架構,介紹了目前業界的DPU產品、DPU的編程模型與DPU的應用;最后總結并展望了DPU未來的研究發展方向。

2 DPU體系結構

對DPU來說,核心問題是基礎設施的“降本增效”,就是把“CPU處理效率低下、GPU處理不了”的負載卸載到專用DPU,提高整個計算系統的效率,降低整體系統的總體擁有成本TCO(Total Cost of Ownership)。DPU是體系結構朝著專用化路線發展的又一個標志。DPU最直接的作用是作為CPU的卸載引擎,接管各種基礎設施層服務,釋放CPU的算力到上層應用。

2.1 DPU處理模型

傳統的NP轉發模型可以分為RTC模型和Pipeline模型。RTC模型與Pipeline模型如圖1所示。從名字上就可以看出,Pipeline模型來源于工業中的流水線模型,將一個功能(大于模塊級的功能)分解成多個獨立的階段,每個階段間通過隊列傳遞產品。這樣,對于一些CPU密集和輸入/輸出I/O(Input/Output)密集的應用,通過Pipeline模型,可以把CPU密集的操作放在一個微處理引擎上執行,將I/O密集的操作放在另外一個微處理引擎上執行,以此來達到最好的并發效率。

Figure 1 Pipeline model and RTC model圖1 Pipeline模型與RTC模型

RTC模型是主要針對數據平面開發套件DPDK(Data Plane Development Kit)一般程序的運行方法[7],一般會將一個程序分成幾個不同的邏輯功能,然而這些邏輯功能會在同一個CPU核上運行,CPU核通過指令調用對應的硬件資源來運行程序。水平擴展可以在系統的多個核上執行一樣邏輯的程序,以此提高事務處理效率。但是,由于每個核上的處理能力大致相同,并沒有針對某個邏輯功能進行優化,因此在這個層面上與Pipeline模型相比,RTC模型并不高效。RTC與Pipeline模型的對比如表1所示。

Table 1 Comparison between RTC and Pipeline表1 RTC與Pipeline的對比

無論是對于可編程交換機還是智能網卡(Smart NIC(Network Interface Controller))來說,數據平面的可編程性都是重要的發展趨勢。針對當前交換芯片和OpenFlow協議中的2個限制:(1)“匹配-動作”處理僅限于在一組固定的字段上進行;(2)僅定義了有限的包處理動作集,提出了RMT (Reconfigurable Match Tables)模型[8],這是一種新的基于精簡指令集計算機RISC(Reduced Instruction Set Computing)的流水線架構,用于交換芯片,確定了基本的最小動作原語集,以指定報頭在硬件中如何處理。RMT允許在不修改硬件的情況下通過修改匹配字段更改轉發平面。與在OpenFlow中一樣,設計者可以在資源允許的范圍內指定任意寬度和深度的多個匹配表,每個表經過配置后具備在任意字段上進行匹配的能力。然而,相比于OpenFlow,RMT允許更全面地修改所有報頭字段。

Table 2 Comparison between Smart NIC and DPU表2 智能網卡和DPU對比分析

Table 3 Comparison between NP and DPU表3 NP與DPU的對比

Table 4 Product introduction of DPU 表4 DPU產品介紹

從應用特征來看,可以把應用分為“I/O密集型”和“計算密集型”2類,一個處理器芯片是“I/O密集”還是“計算密集”只部分決定了芯片的結構特征,并不能完全定義芯片的主體架構。無論是I/O密集,還是計算密集,既可以以通用CPU為核心構造主體計算架構,也可以以專用加速器為核心構造主體計算架構。前者稱為以控制為中心(Control-Centric)的模式,可對應RTC模型。后者稱為以數據為中心(Data-Centric)的模式,可對應Pipeline模型。以控制為中心的核心是實現“通用”,以數據為中心的核心是通過定制化實現“高性能”。DPU比較偏向于以數據為中心的結構,形式上集成了更多類別的專用加速器,犧牲一定的指令靈活性以獲得更極致的性能。DPU同時會配置少量通用核(如ARM(Acorn RISC Machine)和MIPS(Microprocessor without Interlocked Piped Stages))來處理一些控制平面上的任務,運行輕量級操作系統來管理DPU上數量較多的異構核資源,所以體現了一定的“通用”性,但性能優勢并不主要取決于這些通用核,更多的是來源于大量的專用計算核。

2.2 DPU架構

CPU+xPU架構,是以CPU為中心,I/O路徑很長,I/O成為了性能的瓶頸。通信的本質是共享內存,而馮·諾依曼架構的瓶頸在內存,這是DPU需要解決的本質問題。解決這個問題的核心方法是讓計算發生在最靠近數據的地方,進而降低通信量以規避馮·諾依曼架構的瓶頸,并盡可能降低成本。傳統的異構計算都是采用CPU的協處理器,隨著I/O的數據量與網絡流量的增速超過CPU計算能力,CPU的計算和I/O處理能力都會成為主要性能瓶頸。因此,以CPU為中心的架構需要變革。當前由指令控制流驅動計算;未來將以數據為中心,數據流驅動計算。如圖2所示,傳統“以計算為中心”的架構將隨著數據量的增長轉變為“以數據為中心”,而DPU將作為“以數據為中心”的服務器架構中的核心器件進行數據處理,并協調包括CPU與GPU在內的其他器件充分發揮其計算能力。

Figure 2 From compute centric to data centric圖2 從“以計算為中心”到“以數據為中心”

數據平面與控制平面分離是軟件定義網絡SDN(Software Defined Network)中最核心的思想。DPU被定義為強化了數據平面性能的專用處理器,配合控制平面的CPU,可以實現性能與通用性的更好平衡。

大規模云計算網絡面對著提高傳輸效率與可靠性等挑戰。鑒于目前“以計算為中心”的數據中心體系中所存在的局限,一個宏觀趨勢是數據中心的體系架構將會從“以計算為中心”轉向“以數據為中心”。為了滿足“以數據為中心”的設計理念,研究人員提出了一個通用的DPU參考設計[2],如圖3所示。該架構是RTC模型與Pipeline模型相結合的設計,其中控制平面通常由通用處理器核來實現,屬于RTC模型,數據平面通常集成多個處理核,主要面向高速數據包處理,目前較為典型的方式是采用專用的加速引擎,屬于Pipeline模型。例如,NVIDIA的BlueField-3系列DPU,就由16個ARM核及多個專用加速引擎組成;Fungible的DPU具有6大類的專用核以及52個MIPS小型通用核[1]。

Figure 3 Reference design of DPU architecture 圖3 DPU架構參考設計

宏觀來看,DPU架構至少可以分為以下幾個核心組成部分:

(1)控制平面組件:負責管理與配置,大多由通用處理器核來實現。控制平面負責DPU設備的運行管理,以及計算任務和計算資源的配置。運行管理通常包含設備的安全管理和實時監控2個主要功能。計算任務和計算資源配置方面,根據計算任務的實施配置數據平面中處理單元間的通路,以及各處理單元參數。根據資源利用情況實時進行任務調度及其在計算單元的映射和部署。當DPU集成第三方計算平臺,如GPU、現場可編程門陣列FPGA(Field Programmable Gate Array)等,還需要參與部分卸載任務調度。由于控制平面任務種類多,靈活性要求較高,算力要求較低,大多由通用處理器核來實現,例如ARM、MIPS等。此外,控制平面與數據平面數據交互驅動程序需要進行深度優化,以此提高控制平面與數據平面的交互效率及任務調度效率。

(2)數據平面組件:主要負責高速數據通路的功能單元的集成,通常集成多個處理核。數據平面的功能主要分為高速數據包處理、虛擬化協議加速、安全加密、流量壓縮和算法加速5類。數據平面既是整個DPU設計中最有挑戰的模塊,也是DPU設計的關鍵所在。DPU數據平面在處理核規模上要具有非常強的可擴展性。隨著DPU數據平面處理核數量越來越多,再加上高并發處理線程運行,同時還要兼顧數據處理的靈活性,這就要求處理核之間的數據交互既要靈活又要兼顧高帶寬。數據中心業務的復雜多變決定了DPU數據平臺可編程性的硬性需求。這一部分各廠商的實現方式差別較大,有基于通用處理器核的方式,有基于可編程門陣列FPGA的方式,也有基于異構眾核的方式,還有待探索。

(3)I/O組件:主要分為系統I/O、網絡I/O和主存I/O。系統I/O負責DPU和其他處理平臺或高速外部設備(如SSD(Solid State Disk))的集成。系統I/O通常傳輸數據量較大,因此對帶寬要求極高,大多使用PCIe來實現。網絡I/O負責DPU與高速網絡相連接。為了能應對急劇增加的網絡帶寬,DPU中通常輔以專門的網絡協議處理核來加速網絡包的處理。主存I/O負責緩存網絡I/O、系統I/O輸入輸出數據,以及數據平面中間數據結果。也可作為共享內存,用來進行不同處理核之間的數據通信。目前主存I/O主要包含DDR和高帶寬存儲器HBM(High Bandwidth Memory)接口類型[9]。2種存儲接口相結合可以滿足不同存儲容量和帶寬的需求,但是需要精細的數據管理,這也是DPU設計中具有挑戰性的部分。

DPU也需要根據具體應用場景進行架構的改變,即具備可擴展性。DPU自身可以是包含CPU、GPU、FPGA、DSA(Domain Specific Architecture)和ASIC等各種處理引擎的一個超大的SoC,具有獨立處理所有任務的能力。在一些應用層算力要求不高的業務中,作為最小計算系統的獨立的DPU就能滿足計算的要求。在業務應用層有更高的算力要求或者在業務和基礎設施必須分離的場景中,DPU+CPU的中等計算系統能夠滿足其需求。在AI訓練類的場景或者一些應用需要加速的場景,并且需要業務和基礎設施分離的時候,就必須選擇DPU+CPU+DPU組成的大系統。

nanoPU[10]是經過網絡優化的新型CPU,是一種基于RISC-V的網絡接口控制器NIC和CPU聯合的設計。通過繞過高速緩存和內存層次結構,nanoPU直接將到達的消息存入CPU寄存器文件中。nanoPU將關鍵功能從軟件轉移到硬件,例如可靠的網絡傳輸、擁塞控制、核心選擇和線程調度,減輕CPU的算力負擔。通過限制消息處理時間來限制尾部延遲,應用程序之間的線對線延遲僅為65 ns,比當前的最新技術快13倍。nanoPU作為一種創新架構可應用于DPU中,RTC模型與Pipeline模型相結合的形式將給DPU帶來高速處理能力,顯著降低了延遲并具備可編程能力。

2.3 DPU的主要功能

通過分析DPU的架構,可以總結出DPU的主要功能有:

(1)算力卸載。將不適合CPU執行的任務卸載到智能網卡或DPU上,可節約更多CPU算力以支撐更多的應用業務。

(2)虛擬網絡控制平面隔離。DPU需要獨立的網絡控制平面,從主機中完全隔離,可以服務于各種資源池能力的組合和伸縮。

(3)主機側總線通信的延展。

(4)網絡側無損網絡傳輸。網絡側提供具有針對性的擁塞控制機制以及更強的負載均衡能力,降低長尾時延,提供更可靠、更高效的傳輸網絡。

(5)精細化的測量和故障檢測能力。精細化的流量測量支撐精細化的故障檢測能力,使流量數據更透明。

2.4 DPU與智能網卡

智能網卡(Smart NIC)具有獨立的計算單元,除了能完成標準網卡所具有的網絡傳輸功能之外,還提供內置的可編程、可配置的硬件加速引擎,提升了應用的性能,大幅降低了CPU在通信過程中的消耗,為應用提供更多的CPU資源。主要解決的問題是網絡傳輸上無法線性傳輸數據問題,以及卸載更適合在網絡上執行的業務[11]。最初的智能網卡具有3個重要特征:(1)釋放CPU開銷及可編程;(2)實現任務加速,通過專用加速器實現特定功能并保證數據轉發的線速;(3)流量管理和監測。

DPU概念的確立是在2020年10月NVIDIA將基于Mellanox的Smart NIC卡命名為“DPU”,因此DPU延續了智能網卡“釋放CPU開銷”“可編程”“任務加速”和“流量管理”等功能。表2為智能網卡與DPU二者的對比分析。智能網卡中包括FPGA型和ARM核心型,FPGA型處理控制平面任務較為困難,ARM核心型則會因處理其它任務而負載過重;DPU包含數據平面和控制平面的雙平面可編程卸載及加速,能夠解決以上問題。

傳統智能網卡上沒有CPU,需要主機CPU進行管理,驅動通常是在所在主機內,而DPU完全不需要任何驅動。隨著網絡速度的提高,傳統智能網卡將消耗大量寶貴的為通用應用程序而設計的CPU內核來進行流量的分類、跟蹤和控制。Smart NIC實現了部分卸載,即只卸載數據平面,控制平面仍然在主機CPU處理。從總體上來說Smart NIC的卸載操作是一個系統內的協作。DPU實現了完全的卸載,包括軟件卸載和硬件加速2個方面,即將負載從主機CPU卸載到DPU的嵌入式CPU中,同時將負載數據平面通過DPU內部的其他類型硬件加速引擎,如協處理器、GPU、FPGA和DSA等來處理。從總體上來說,DPU是2個系統間的交互協作,把一個系統卸載到另一個運行實體,然后通過特定的接口交互。智能網卡只能幫助CPU減輕部分壓力,但整個系統的復雜度仍然由CPU側軟件處理;DPU要做到業務應用和基礎設施分離,CPU側的應用完全對底層系統無感。從云計算業務的角度看,DPU是把整個基礎設施即服務IaaS(Infrastructure as a Service)完整地卸載到硬件進行加速。從功能性的角度來看,DPU除了擁有Smart NIC功能之外,還包括易于擴展且可用C語言編程的Linux環境。DPU有獨立的CPU和操作系統,而智能網卡僅是驅動設備,因此,DPU是一種全新的軟件定義基礎設施的設備,而不是已有網卡設備的增強版。另外,DPU與智能網卡的最大區別是可作為數據中心的最小節點存在,擁有計算功能、網卡功能、加速計算引擎、安全引擎等并可拓展,未來將成為數據中心的標配與三大核心之一(CPU、GPU、DPU)。

2.5 DPU與NP對比分析

NP是一種主要用于各種通信任務的可編程器件,專門為處理數據包而設計的,具有較強的I/O能力[12]。NP器件內部通常包含微碼處理器和硬件協處理器,多個微碼處理器在NP內部并行處理,通過預先編制的微碼來控制處理流程。針對個別較為復雜的操作使用硬件協處理器來進行加速處理,進而最大限度地結合業務靈活性和高性能。與通用處理器相比,網絡處理器在網絡分組數據處理上性能優勢明顯。NP不以通用處理能力如定點和浮點計算能力、CPU主頻為主要性能指標,而是針對網絡分組的處理和轉發這一中心任務采取了架構上的優化,提供線速的分組轉發能力NP主要聚焦通信相關的任務,而DPU可以支持P4(Programming Protocol-independent Packet Processors)與C語言混合編程,實現包括網絡、存儲、安全和虛擬化等所有底層I/O的卸載加速。以eBPF(extended Berkeley Packet Filter)卸載為例,eBPF程序通過快速數據路徑XDP(eXpress Data Path)卸載方式,降低CPU占用率,提升eBPF運行容量和效率,使eBPF程序更靠近數據平面。eBPF卸載應用中,根據標準編寫eBPF程序,通過底層虛擬機LLVM(Low Level Virtual Machine)將程序編譯為eBPF bytecode,然后通過iproute clibbpf等工具將eBPF程序導入內核;eBPF通過驗證后,實時編譯工具將eBPF bytecode程序編譯為芯片能運行的機器語言并部署在DPU上運行。

NP與DPU的對比分析如表3所示。NP偏向于基于通用處理器來進行專用化擴展,但是非常注重高通量的性能屬性。NP要支持數Tbps的轉發帶寬,與DPU同為I/O密集型應用,然而NP主要以通用CPU為核心構造主體計算架構,以控制為中心,偏向于RTC架構;而DPU主要以專用加速器為核心構造主體計算架構,以數據為中心,偏向于Pipeline架構。

3 DPU編程模型

異構計算的一個特點是“異構”,即缺少“通用性”,開發難度較高。尤其是當DPU興起之后的“多PU”共存(CPU+DPU+GPU/XPU)時代,怎么協同調度好每個處理器編程框架,使其發揮最大效用,同時形成一個對開發人員較為友好的軟件開發生態,是當前比較重要的問題。

針對這個問題,根據職責分層與功能抽象的思路,一個針對DPU芯片應用場景的異構計算5層架構模型被提出。該模型定義了在異構計算場景下的通用開發架構模式,以此來降低包括DPU芯片在內的異構計算應用研發難度,提高開發、維護和迭代效率。

3.1 DPU異構計算架構5層開發模型

一般說來,異構計算在定義每一層功能時,要達到以下幾個目標:(1)各層職責單一;(2)層間邊界清晰;(3)層內功能實現獨立;(4)靈活易擴展。

基于上述目標,將一個異構計算的系統抽象為5層,如圖4[2]所示,自下而上分別是:領域特定架構DSA設備層、DSA操作層、計算引擎層、應用服務層和業務開發層,具體詳述如下:

(1)DSA設備層代表的是執行異構計算的DSA處理器和集成了該處理器的硬件設備。異構計算設備需要具備以下2個核心要素:①支持專用計算操作的指令集;②CPU或其他DSA設備的標準通信接口。

(2)DSA操作層是對DSA處理器的指令集的管理以及對基礎開發平臺的整合,該層完成了對硬件資源的抽象,從而使上層軟件對底層設備透明。它基于如DPU芯片等DSA處理器提供的指令集,對上層提供更加抽象和編程友好的接口。

(3)計算引擎層是對計算邏輯的封裝,為上層提供通用的計算能力。與DSA操作層的對計算資源封裝不同,它使用DSA操作層提供的資源訪問接口,依據上層應用層軟件對算力的需求,提供了可復用的算子集合及執行接口。

(4)應用服務層是數據處理的應用服務軟件,也是算力的需求側。應用服務層代表具有通用功能的軟件系統,這些軟件系統可以利用計算引擎提供的算子進行異構計算,以此提升計算性能。

(5)業務開發層是針對某特定領域的業務系統。業務開發層是與現實中業務場景最為相似的軟件系統。它是根據不同場景下具體業務需求定制的,整體異構計算架構實質上就是解決業務層遇到的性能瓶頸,而且也要保證底層構建對具體的業務系統完全透明。

3.2 P4編程模型

P4是數據平面上的高級編程語言,能夠改進OpenFlow的不足。P4語言的設計初衷其實是想要達到以下3個目標:(1)協議無關性:網絡設備不與任何特定的網絡協議相關聯,用戶能夠使用P4語言描述任何網絡數據平面協議和數據包處理行為。這個特點由自定義包解析器、匹配-動作表的匹配流程和流控制程序來實現。(2)目標無關性:用戶不必過分在意底層硬件的細節就能夠編程數據包的處理方式。(3)可重構性:用戶可以在任何時刻改變包解析和處理的程序,并在編譯完成后對交換機進行配置,真正實現現場可重配能力[13]。

以這些目標為出發點,P4語言對編譯器進行了模塊化的設計,使用標準格式的配置文件進行各個模塊之間的輸入輸出。

圖5是P4抽象轉發模型[14]。它包含:(1)解析器:將數據包頭從報文中提取出來并根據數據包頭解析圖解析,剩余的載荷與頭部分開緩存,并且載荷不參與后續匹配。(2)匹配-動作表:多級匹配-動作表階段組織起來形成流水線,分為入口流水線和出口流水線2部分。入口流水線的匹配-動作表決定了報文的輸出端口與隊列,基于入口流水線的處理,報文可能被轉發、復制、丟棄或者觸發流控;出口流水線的匹配-動作表主要負責修改數據包頭部。(3)定義控制流: 編程人員可以按照P4語法規范定義控制流以及每張匹配-動作表要匹配什么樣的數據包、執行什么樣的動作,從而達到自定義數據平面流水線處理邏輯的目的。(4)緩沖區:緩沖區用來緩存載荷與交換機隊列中等待被匹配動作表處理的已解析的頭部。(5)逆解析器:將修改后的報文頭與原報文合并發送出去。

Figure 5 Programming model of P4 圖5 P4編程模型

以實現簡單的負載均衡為例,假如想要將源IP地址為245.22.0.0/16的報文目的IP地址修改為192.168.4.121并從M端口發送出去,這一過程使用P4實現的具體步驟如下所示:(1)使用控制程序和動作表配置更改各個模塊的功能。(2)報文到來時,解析器負責根據解析圖提取的報文頭中的目的地址與源地址字段,將提取字段傳給匹配-動作流水線并將原報文存入緩沖區。(3)匹配-動作表提取出源地址并進行動作匹配,若源地址為245.22.0.0/16,則執行修改目的地址為192.168.4.121的操作。(4)在逆解析器中將修改后的報文頭與原報文合并發送。

除P4外,OpenFlow[15]作為軟件定義網絡SDN中的網絡通信協議規范了消息傳遞應用程序接口API(Application Programming Interface)來控制轉發平面的功能,以改變網絡數據包所經過的網絡路徑。SDN應用程序就可以利用這個API提供的功能來實現網絡控制。然而作為OpenFlow的基礎的具體數據平面是不能改變的。而且OpenFlow只允許在一組固定的字段上進行匹配-動作處理,僅定義了有限的包處理動作集。與P4的任意字段匹配與修改相比,OpenFlow對數據平面的控制十分有限。

FlowBlaze[16]、NICA(Network Interface Card Architecture)[17]或hXDP(hardware eXpress Data Path)[18]等系統在RMT或eBPF等FPGA之上提供了更高級的抽象。每次程序員更新程序時,編譯器都會重新配置這種更高級別的抽象,而不是每次都合成一個新的FPGA比特流,這樣將會增加邏輯部署的時間開銷。在P4誕生前,這些系統的靈活性弱于RTC模型,可編程性差。

P4提供了一系列抽象,以供用戶將交換機理解為圖5中的模型,并根據這個模型進行開發。DPU作為數據中心中網絡相關的數據處理、卸載載體,可成為P4編程模型新的應用場景。通過P4的3個特性為DPU設計可編程的數據平面,可最大限度發揮DPU在數據中心中的作用,使DPU適應不斷變化與發展的網絡協議與數據處理業務。

4 DPU行業現狀

當前DPU市場十分廣闊,各廠商相繼推出DPU產品[2-6]。如表4所示,DPU方案類型大致可以分為3種:(1)以通用眾核處理器為基礎DPU,以多核ARM為核心,可編程靈活性較好,但是應用針對性不夠,對于特殊算法和應用的支持,與通用CPU相比并無太顯著的優勢;(2)以專用核為基礎的異構核陣列,這種架構的特點是針對性較強、性能較好,但是犧牲了部分靈活性,如IPU;(3)結合了前面二者優勢,即將通用處理器的可編程靈活性與專用的加速引擎相結合,正在成為最新產品的趨勢。

4.1 基于ARM架構的DPU

NVIDIA推出的BlueField系列DPU,能夠支持網絡處理、安全和存儲功能,并且實現了網絡虛擬化、硬件資源池化等一系列基礎設施層服務,可以從業務應用中將數據中心的基礎設施服務卸載和隔離出來[3],實現了由傳統基礎設施到現代基于“零信任”環境的轉型。BlueField-3 DPU是首款為AI和加速計算而設計的達400 Gbps的DPU,基于ARM架構,采用ARM+ASIC+專用加速器構成SoC,可以通過ARM核處理部分控制平面的任務,具備一定的通用能力。在BlueField-3中,數據路徑加速分組DPA(Data Path Accelerator)包括16個處理器核,可并行處理256個線程任務。BlueField-3是首款支持第5代PCIe總線并提供數據中心時間同步加速的DPU。在兼容性上,通過使用DOCA[1]庫,BlueField-3與上一代DPU上開發的應用保持完全的軟件兼容性,得到了更高的性能和可擴展性。

最早進行類DPU功能產品研究和開發的是AWS(Amazon Web Services)。AWS走的同樣是ARM+ASIC+專用加速器構成SoC的技術路線。AWS為了尋找新的方法來改進純軟件虛擬機管理程序架構,探索更靈活可行的虛擬機管理方式,研發出Nitro[19]卸載卡。2015年初,AWS在計算實例中采用了硬件與定制ASIC芯片。ASIC芯片具有功耗低、性能高、成本低和可靠性強的特點,將此用于承載AWS虛擬機管理程序,能夠使服務器的幾乎全部CPU與內存資源都可用于運行業務負載。AWS提出的架構創新,使最小的成本承擔最緊要的部分(虛擬化),得到了接近裸機服務器的高性能。

Netronome Agilio SmartNIC采用ARM+網絡流處理器NFP(Network Flow Processor)+專用加速器組成SoC的技術路線,能夠加速OVS(Open VSwitch)和Contrail vRouter,提供更好的CPU效率,更低的復雜度,增強可伸縮性,提高網絡性能[6]。在OVS應用程序中,Agilio CX SmartNICs可以回收原本專用于OVS的服務器CPU資源的80%以上,同時向更多的應用程序提供5倍或更多的數據吞吐量。相比于應用于計算節點的Agilio CX系列,Netronome也研發出了應用于裸金屬服務器的Agilio FX以及用于服務器節點的Agilio LX,以應對服務器和網絡彈性帶來的挑戰[22]。

博通采用了單芯片的方法裝配Stingray SmartNIC[21]。博通采取的技術路線是以通用眾核為基礎的同構眾核DPU,運用了通用SoC和ASIC,網速能達到100 Gbps,也配備了通用的工具包。用ASIC作為卸載功能芯片,是DPU幾種方案中定制化程度最高、效能最好的方案,但是可移植性差[23]。

4.2 基于ASIC的DPU

阿里云智能在2017年10月發布第一代神龍服務器[20]。神龍采用FPGA+ASIC的技術路線,具有高彈性、高穩定和高性能等特點,能夠將整個阿里巴巴經濟體業務全面遷移到公共云上。它真正使用軟硬融合、軟硬件協同設計的模式,改進了以往虛擬化技術與當前計算架構不友好的地方,使用專用芯片來解決虛擬化技術帶來的性能損耗問題,完全發揮處理器和內存等計算資源的性能。第1代神龍,主要為了解決上云后如何支持裸金屬服務。在神龍(X-Dragon)卡里,一個神龍芯片進行高速數據平面的轉發,另一個芯片作為加速引擎,將控制平面完全卸載到芯片中。整個生命周期的管理、所有的接口都和虛擬機保持一致。第2代的神龍不僅可以支持裸金屬系統,還可以支持虛擬機。它為虛擬機設計了幾乎不占資源的Hypervisor(稱為Dragonfly),可以支撐很多的虛擬機系統,完全做到資源和性能無損。第3代神龍架構擁有極致的性能,所有的數據平面路徑全面芯片化,存儲、網絡、數據都芯片化,其性能處于業界頂尖水平[24]。

4.3 基于FPGA的DPU

在2021年6月英特爾推出了全新的基礎設施處理器IPU(Infrastructure Processing Unit)[4]。IPU采用FPGA+X86組成SoC的技術路線,是一個可以安全地加速和管理數據中心基礎設施功能與可編程硬件的網絡設備,目的是讓云和通信服務提供商減少在CPU方面的開銷,充分發揮其效能。IPU增強了基礎NIC中豐富的以太網網絡功能,通過高度優化的硬件加速器和緊密耦合的計算引擎的組合來實現任務加速。適應性是通過標準且易于使用的編程框架實現的,該框架結合了硬件和軟件功能[25]。IPU可以通過專用協議加速器來加速基礎設施功能,包括存儲虛擬化、網絡虛擬化和安全;通過把軟件中的存儲和網絡虛擬化功能從CPU轉移到IPU,從而釋放CPU算力。還能進行靈活的工作負載分配,提高數據中心利用率。

5 DPU應用

DPU比較典型的應用場景有:數據中心和云計算、網絡安全、高性能計算及AI、通信及邊緣計算、數據存儲和流媒體等。當前最主要的3大應用場景主要包括網絡功能卸載、存儲功能卸載及安全功能卸載。

5.1 網絡功能卸載

隨著云計算網絡的發展,網絡功能卸載的需求開始產生,主要是對云計算主機上的虛擬交換機的能力進行硬件卸載,從而減少主機在網絡上消耗的CPU算力,提高可售賣計算資源。

目前除了公有云大廠商采用自主研發的云平臺外,絕大部分私有云廠商都使用開源的OpenStack云平臺生態。在OpenStack云平臺中,虛擬交換機通常是Open vSwitch[26],在云計算中主要負責網絡虛擬化的工作,以及虛擬機與同主機上虛擬機、虛擬機與其它主機上虛擬機、虛擬機與外部的網絡通信。虛擬交換機的場景是最通用的應用場景,所以,虛擬交換機的發展狀況也直接影響著虛擬化網絡的發展。Mellanox最早提出在其智能網卡上支持OVS Fastpath硬件卸載,提供接近線速轉發的網絡能力。在OVS Fastpath卸載后,OVS轉發報文時,數據流首包依然進行軟件轉發,在轉發過程中生成Fastpath轉發流表并配置到硬件網卡上,這個數據流的后續報文則可以直接通過硬件轉發給虛擬機。由于早期的Mellanox智能網卡還沒有集成通用CPU核,OVS的控制平面依然在物理主機上運行。后來在BlueField-2上,由于集成了ARM核,所以NVIDIA在與UCloud的合作中,將OVS的控制平面也完全卸載到網卡的ARM核上,這樣在主機上就可以將OVS完全卸載到網卡上。

伴隨著越來越多的業務部署在云中,部分之前在專用設備或者特定主機上運行的網絡產品也逐漸關注在云服務中的按需擴縮容能力,因此出現了網絡功能虛擬化NFV(Network Functions Virtualization)產品。NFV產品主要以虛擬機或者容器的形態部署到云計算平臺上,對外提供對應的網絡功能,如負載均衡、防火墻、網絡地址轉換、虛擬路由器和深度包檢測等。此類NFV產品之前全都是基于DPDK在X86 CPU上運行,但是CPU算力達到上限,吞吐能力難以支持對應的網絡帶寬。DPU智能網卡的出現,為NFV加速提供了資源和可能性[27]。

面對計算量與數據量的激增以及各種應用對低延時的要求,當前TCP/IP軟硬件架構以及對CPU要求較高的技術特征很難滿足應用的需求,主要原因是各種復雜的操作導致時延太大,存儲轉發模式以及丟包也會帶來額外的時延。而與TCP/IP相比,RDMA通過網絡在2個端點的應用軟件之間實現Buffer的直接傳遞,不需要CPU、OS和協議棧的介入,可以避免網絡數據的處理和傳輸消耗過多的資源,可以實現端點間的超低時延、超高吞吐量傳輸。RDMA的本質是一種內存讀寫技術。RDMA和TCP/IP網絡對比[2]如圖6所示。可以看出,RDMA的性能優勢主要體現在零拷貝以及不需要內核介入[28]。通過DPU實現對RDMA技術的卸載可以有效提高通信效率,RoCEv2是目前主要的RDMA網絡技術,以NVIDIA的Mellanox和Intel為代表的廠商,都支持RoCEv2的硬件卸載能力。

Figure 6 Comparison of data sending and receiving of RDMA and TCP/IP 圖6 RDMA和TCP/IP收發數據對比圖

5.2 存儲功能卸載

NVMe-oF(NVMe over Fabric)[29]協議是為了使用NVMe通過網絡結構將主機連接到存儲,能夠對數據中心的計算和存儲進行分解。NVMe-oF協議定義了使用各種通用的傳輸協議來實現NVMe功能的方式。NVMe-oF提高了以往數據存儲協議的性能,也可以為高度分布式、高度可用的應用程序實施橫向擴展的存儲。可以把NVMe協議擴展到存儲區域網絡SAN(Storage Area Network)設備,不僅能夠提高CPU的使用效率,也能夠加速服務器與存儲應用程序之間的連接。

NVMe-oF主要支持3大類Fabric傳輸選項,分別是光纖通道FC(Fibre Channel)、RDMA和TCP,其中RDMA支持InfiniBand、RoCEv2和iWARP。

NVMe支持Host端(Initiator或Client)和Controller端(Target或Server),如圖7[2]所示,目前DPU智能網卡硬件加速主要應用在如下4種場景:(1)普通智能網卡硬件加速NVMe-oF Initiator。(2)支持GPU Direct Storage的智能網卡加速NVMe-oF Initiator和NVMe-oF Target。(3)智能網卡硬件加速NVMe-oF Target。(4)DPU芯片硬件加速NVMe-oF Target,該場景是通過DPU芯片提供多個PCIe Root Complex通道以及多個100 Gbps的網卡實現的超大吞吐量的存儲服務器。

Figure 7 Hardware offloading mode of NVMe-oF圖7 NVMe-oF硬件卸載方式

5.3 安全功能卸載

在安全領域有很多的安全功能產品,比如下一代防火墻NGFW(Next Generation FireWall)、網站應用級入侵防御系統WAF(Web Application Firewall)和DDoS(Distributed Denial of Service)防御設備等。云和虛擬化技術在不斷發展,越來越多的安全功能產品的實現方式轉為虛擬化方式,并通過云平臺來部署管理。數據中心中大量的數據可能流經這些安全功能產品,因此轉發數據時的效率對整體網絡的吞吐量和時延會有很大的影響。使用基于X86的軟件方式來實現,需要大量CPU資源來處理對應的業務邏輯,具有明顯的性能瓶頸。通過DPU對這些安全功能產品進行硬件加速是必然趨勢。由于安全功能產品對報文處理的深度不同,所以在DPU的卸載方式上也會有所不同。

如果把云平臺虛擬化應用在傳統的網卡上,那么Hypervisor以及對應的虛擬化網絡都是在主機操作系統上實現的,這樣一旦遭受攻擊導致Hypervisor被攻陷,主機操作系統的根權限(root權限)被拿到,那么虛擬化網絡配置就可以被篡改,租戶網絡也會受到攻擊,甚至會影響其它計算節點受到范圍更廣的攻擊。DPU智能網卡能夠把虛擬化網絡的控制平面完全卸載到DPU上,和主機操作系統隔離開,即使黑客攻陷了Hypervisor,獲取了主機操作系統的root權限,也無法篡改虛擬化網絡的配置,能夠將黑客的攻擊范圍限制在主機操作系統上,不會影響到虛擬化網絡及其它主機,進而達到了安全隔離的效果。

6 結束語

DPU是一類專用處理器,CPU則是一類通用處理器,二者的差異導致二者將可能有不同的發展歷程。專用計算體系結構和通用計算體系結構所面向的應用場景有所差異,專用計算主要面向數據平面,而通用計算主要面向控制平面。未來DPU的發展可能會有如下3個趨勢:

(1)控制平面采用RISC-V指令集[30]。RISC-V架構具有簡潔、模塊化的特點,方便組織,很容易通過一套統一的架構適應紛繁復雜的應用場景。可以通過靈活選擇不同的模塊組合,來滿足定制化設備的需要。該指令集還擁有足夠的軟件提供支持,為新指令集提供了良好的發展生態,未來數據中心DPU需要RISC-V所帶來的輕量級與靈活性優勢。

(2)數據平面融合RMT架構。RMT允許在不修改硬件的情況下通過修改匹配字段來更改轉發平面,相比OpenFlow,允許更全面地修改所有報頭字段,使硬件支持足夠靈活的可編程性,幾乎不帶來額外的損耗。RMT通過可重配置的轉發模型,解決了當前交換機芯片協議相關性問題,做到了協議無關的流水線處理。對于以數據為中心且I/O密集的DPU來說,與RMT相結合將更有利于發揮DPU的數據處理效率與靈活性。

(3)數據平面在RMT的基礎上采用與RISC-V指令集相結合的nanoPU架構[31]。采用nanoPU架構的DPU設計將顯著降低云服務提供商的RPC尾部延遲,給微服務帶來更高的穩定性與可編程能力,提高細粒度任務的調度與運行效率。

目前DPU技術架構也遇到發展瓶頸。目前主流的DPU采用FPGA+SoC解決方案,預計在200 Gbps網絡,芯片面積將達到800 mm2,功耗將達到150 W,芯片面積和單卡功耗都將達到上限。FPGA廠商開始有轉向FPGA+ASIC混合方案的趨勢,而ASIC架構的靈活性不足,硬件邏輯不可變,需求變更開發周期長,長期演進風險高。標準化方面,運營商多云多業務場景需適配不同類型智能網卡,產品落地面臨接口解耦壓力,標準化較為困難。同時,DPU的成本、帶寬、集成度、靈活性及可靠性等核心指標相互制約,需要在不同應用場景進行適當的權衡。

在未來可以采用多種處理引擎共存來共同協作完成復雜系統的計算任務。并且,CPU、GPU、FPGA以及特定的算法引擎,都可以被集成到更大的系統中構建一個更大規模的芯片,稱之為“超異構計算”。通過軟硬件融合的超異構,進一步提升DPU的系統規模,使DPU能夠覆蓋更多復雜計算場景。

DPU的發展任重而道遠,需要為DPU的發展提供更加開放良好的生態環境,基于“軟件定義”的思想,構造更加完整的DPU軟硬件體系。DPU的發展前景十分廣闊,未來將在信息化時代發展中大顯身手,提高產業效能,成為新的生產力。

猜你喜歡
功能模型
一半模型
也談詩的“功能”
中華詩詞(2022年6期)2022-12-31 06:41:24
重要模型『一線三等角』
重尾非線性自回歸模型自加權M-估計的漸近分布
關于非首都功能疏解的幾點思考
懷孕了,凝血功能怎么變?
媽媽寶寶(2017年2期)2017-02-21 01:21:24
“簡直”和“幾乎”的表達功能
3D打印中的模型分割與打包
FLUKA幾何模型到CAD幾何模型轉換方法初步研究
中西醫結合治療甲狀腺功能亢進癥31例
主站蜘蛛池模板: 黄网站欧美内射| 5555国产在线观看| 亚洲一区二区三区香蕉| 国产va视频| 人妻精品全国免费视频| 国产拍揄自揄精品视频网站| 欧美精品亚洲精品日韩专区va| 亚洲三级色| 一区二区在线视频免费观看| 国产成a人片在线播放| 波多野吉衣一区二区三区av| 999精品色在线观看| 真实国产乱子伦视频| 欧美一级高清片欧美国产欧美| 九色视频线上播放| 特级aaaaaaaaa毛片免费视频| 久久频这里精品99香蕉久网址| 国产成人免费视频精品一区二区 | 成人国产精品2021| 亚洲视频在线网| 4虎影视国产在线观看精品| 伊人久久大香线蕉aⅴ色| 一级香蕉人体视频| 在线观看av永久| 国产视频欧美| 在线看片免费人成视久网下载| 中文成人无码国产亚洲| 国产精品冒白浆免费视频| 欧美国产日本高清不卡| 蜜桃臀无码内射一区二区三区| 91网在线| 久久精品一卡日本电影| 亚洲Aⅴ无码专区在线观看q| аv天堂最新中文在线| 亚洲精品欧美重口| 韩日午夜在线资源一区二区| 在线中文字幕日韩| 亚洲中文字幕久久无码精品A| 亚洲第一综合天堂另类专| 欧美日韩国产系列在线观看| 国产不卡一级毛片视频| 伊人久综合| 日韩视频福利| 第一页亚洲| 久久黄色影院| 中文无码精品A∨在线观看不卡| 久久久精品国产亚洲AV日韩| 国产亚洲精| 91福利一区二区三区| 日本一区中文字幕最新在线| 福利姬国产精品一区在线| 91九色视频网| 色妺妺在线视频喷水| 91蜜芽尤物福利在线观看| 亚洲男人的天堂网| 青青青国产视频手机| 99re这里只有国产中文精品国产精品 | 草逼视频国产| 亚洲一区二区三区在线视频| 国产导航在线| AV老司机AV天堂| 嫩草在线视频| 亚洲色中色| 一区二区三区四区精品视频| 亚洲综合久久成人AV| 日本人妻一区二区三区不卡影院| 亚洲国产成人久久77| 国产噜噜在线视频观看| 国产va在线观看免费| 亚洲国产理论片在线播放| 国产成人福利在线视老湿机| 成人午夜免费观看| 免费毛片全部不收费的| 成人伊人色一区二区三区| 亚洲第一香蕉视频| 97成人在线视频| 国产成人a在线观看视频| 国产在线高清一级毛片| 亚洲精品第五页| 人妻精品久久无码区| 在线观看热码亚洲av每日更新| 国产视频一区二区在线观看|