2023年1月7日,中國信息通信研究院聯(lián)合開放數(shù)據(jù)中心委員會發(fā)布了《DPU發(fā)展分析報告(2022年)》。
DPU 將成為下一代芯片技術(shù)競爭的高地。作為數(shù)據(jù)中心繼 CPU 和GPU之后的"第三顆主力芯片",DPU的演進也經(jīng)歷了從眾核CPUNP、FPGA+CPU到ASIC+CPU的多個發(fā)展階段或者技術(shù)演進。
基于CPU/NP、FPGA+CPU的硬件架構(gòu)分別具備軟件可編程和硬件可編程的靈活優(yōu)勢,在DPU發(fā)展的初期尤其受到互聯(lián)網(wǎng)云廠商大廠自研方案的青睞,在快速迭代和靈活定制方面有比較明顯的收益。
然而,隨著網(wǎng)絡(luò)帶寬的快速增長,網(wǎng)絡(luò)接入帶寬迅速從10G、25G演進到了100G、200G之后,基于CPU/NP和FPGA+CPU這類硬件架構(gòu)的DPU除了在性能上難以為繼以外,在成本和功耗上則有更大的挑戰(zhàn)?;贏SIC+CPU的硬件架構(gòu)則是結(jié)合了ASIC和CPU二者的優(yōu)勢,即將通用處理器的可編程靈活性與專用的加速引擎相結(jié)合,正在成為最新的產(chǎn)品趨勢。
業(yè)界的頭部廠商NVIDIA、Intel和AMD(收購Pensando)的DPU架構(gòu)都采用了這種架構(gòu)路線。
從DPU 芯片的實現(xiàn)角度看,以 ASIC+CPU 的硬件架構(gòu)為例,CPU的研發(fā)更多的是以系統(tǒng)級芯片的方式集成第三方成熟的CPU多核IP,不同DPU廠商的核心競爭壁壘在于專用加速引擎的硬件實現(xiàn)上。由于DPU是數(shù)據(jù)中心中所有服務(wù)器的流量入口,并以處理報文的方式處理數(shù)據(jù),在網(wǎng)絡(luò)芯片領(lǐng)域積累更多的廠商將更有優(yōu)勢。
(一)RDMA高速網(wǎng)絡(luò)技術(shù)1、RDMA的技術(shù)背景
傳統(tǒng)TCP/IP協(xié)議棧在處理報文轉(zhuǎn)發(fā)的過程當(dāng)中,從用戶態(tài)到內(nèi)核協(xié)議棧再經(jīng)過網(wǎng)卡轉(zhuǎn)發(fā)出去這個過程中,要觸發(fā)多次CPU的上下文切換,發(fā)生多次的內(nèi)存拷貝,由于多次數(shù)據(jù)拷貝,轉(zhuǎn)發(fā)延時一直較高,隨著網(wǎng)絡(luò)帶寬的提升,傳統(tǒng)內(nèi)核處理報文的方式已經(jīng)無法滿足更高帶寬,更低延時的業(yè)務(wù)需求。
RDMA 是一種遠(yuǎn)程直接內(nèi)存訪問技術(shù),它將數(shù)據(jù)直接從一臺計算機的內(nèi)存?zhèn)鬏數(shù)搅硪慌_計算機的內(nèi)存,數(shù)據(jù)從一端主機的內(nèi)存通過DMA方式從網(wǎng)卡轉(zhuǎn)發(fā)出去,到另一端通過網(wǎng)卡DMA直接寫入另一端主機的內(nèi)存,整個數(shù)據(jù)傳輸過程無須操作系統(tǒng)以及CPU參與,這種CPU/內(nèi)核協(xié)議棧的bypass技術(shù)通過硬件網(wǎng)卡實現(xiàn),可以滿足未來網(wǎng)絡(luò)對高帶寬、低延時的需求,并進一步釋放CPU的計算資源。?RDMA技術(shù)具有以下特點:
CPU卸載:用戶態(tài)應(yīng)用程序通過調(diào)用IB verbs接口直接訪問遠(yuǎn)程主機的內(nèi)存,可以對遠(yuǎn)程內(nèi)存執(zhí)行讀取、寫入、原子操作等多種操作,而且無須兩端主機CPU參與。
內(nèi)核旁路:RDMA采用基于verbs的編程方式,不同于socket編程方式,需要用戶態(tài)與內(nèi)核態(tài)的切換,應(yīng)用程序可以直接在用戶態(tài)調(diào)用RDMA的verbs接口,消除上下文切換帶來的額外開銷,并實現(xiàn)了額內(nèi)核系統(tǒng)旁路。
零拷貝:本端應(yīng)用程序內(nèi)存數(shù)據(jù)通過網(wǎng)卡DMA直接發(fā)送到遠(yuǎn)端網(wǎng)卡,遠(yuǎn)端網(wǎng)卡通過DMA方式直接寫入對端內(nèi)存,整個過程中消除了傳統(tǒng)TCP/IP傳輸方式的多次內(nèi)存拷貝的過程,實現(xiàn)內(nèi)存零拷貝,進一步降低整個網(wǎng)絡(luò)延時。
為了達(dá)到RDMA在高性能和低延時上的技術(shù)優(yōu)勢,RDMA有高的技術(shù)門檻,需要端到端的擁塞控制來避免擁塞和降低網(wǎng)絡(luò)延時。實現(xiàn)端到端的高性能RDMA網(wǎng)絡(luò)需要考慮:
1)網(wǎng)絡(luò)收斂比。進行數(shù)據(jù)中心網(wǎng)絡(luò)架構(gòu)設(shè)計時,從成本和收益兩方面來考慮,多數(shù)會采取非對稱帶寬設(shè)計,即上下行鏈路帶寬不一致,交換機的收斂比簡單說就是總的輸入帶寬除以總的輸出帶寬;
2)ECMP等價哈希均衡。當(dāng)前數(shù)據(jù)中心網(wǎng)絡(luò)多采用Fabric架構(gòu),并采用ECMP來構(gòu)建多條等價負(fù)載均衡的鏈路,通過設(shè)置擾動因子,采用 HASH 選擇一條鏈路來轉(zhuǎn)發(fā)是簡單的,但這個過程中卻沒有考慮到所選鏈路本身是否有擁塞。ECMP并沒有擁塞感知的機制,只是將流分散到不同的鏈路上轉(zhuǎn)發(fā),對于已經(jīng)產(chǎn)生擁塞的鏈路來說,很可能加劇鏈路的擁塞;
3)Incast流量模型,Incast是多打一的通信模式,在數(shù)據(jù)中心云化的大趨勢下這種通信模式常常發(fā)生,尤其是那些以Scale-Out方式實現(xiàn)的分布式存儲和計算應(yīng)用,包括EBS云存儲、AI集群、高性能數(shù)據(jù)庫、Hadoop、MapReduce、HDFS等;
4)無損網(wǎng)絡(luò)交換機的流量控制、QoS和擁塞控制機制以及相應(yīng)的水線設(shè)置,能夠讓RDMA得到規(guī)模部署且廣泛應(yīng)用的就需要RDMA的擁塞控制算法支撐。在Fabric網(wǎng)絡(luò)復(fù)雜、多路徑的場景下,伴隨著多打一、突發(fā)等情況的出現(xiàn),是擁塞控制算法讓RDMA的高性能得以充分展現(xiàn),為RDMA的高性能保駕護航。
端到端擁塞控制算法的基本原理是依托擁塞節(jié)點交換機對出向?報文的 ECN標(biāo)記,目的端通過ECN標(biāo)記處理反饋 CNP使得源端進行速率調(diào)節(jié),從而達(dá)到解決擁塞的目的。
隨著RDMA技術(shù)的普及,不同的云廠商用戶結(jié)合不同的業(yè)務(wù)場景和網(wǎng)絡(luò)環(huán)境提出了多種擁塞控制算法,比較有代表的算法有被業(yè)界?大規(guī)模驗證過的DCOCN算法,阿里提出的HPCC算法,以及谷歌提?出的TIMELY和Swift算法等。不同的用戶或者業(yè)務(wù)場景有不同擁塞控制算法的需求。因此,DPU芯片需要支持多種擁塞控制算法,或者能夠一步到位支持擁塞控制算法的可編程能力。
2、RDMA的應(yīng)用價值
RDMA對比傳統(tǒng)TCP傳輸方式在提升吞吐,降低CPU占用、降低延時方面均有明顯的優(yōu)勢。后摩爾時期尤其是在網(wǎng)絡(luò)進入100G甚至200G以上的帶寬情況下,傳統(tǒng)TCP協(xié)議棧內(nèi)核轉(zhuǎn)發(fā)完全無法滿足性能要求,隨著網(wǎng)絡(luò)技術(shù)的演進,高吞吐、低延時的RDMA技術(shù)將承擔(dān)基礎(chǔ)的網(wǎng)絡(luò)傳輸功能,進一步提升數(shù)據(jù)中心整體算力。
RDMA 憑借其高吞吐、低延時、CPU旁路、適應(yīng)性廣、技術(shù)成熟等特點,已經(jīng)成為數(shù)據(jù)中心基礎(chǔ)服務(wù)的一個重要組成部分,承載著多種不同的業(yè)務(wù)類型,并且隨著網(wǎng)絡(luò)技術(shù)以及應(yīng)用的發(fā)展,RDMA的應(yīng)用將進一步擴大。
(二)數(shù)據(jù)面轉(zhuǎn)發(fā)技術(shù)
隨著網(wǎng)絡(luò)流量的指數(shù)增長,基于硬件數(shù)據(jù)面轉(zhuǎn)發(fā)技術(shù)越來越受到關(guān)注,在傳統(tǒng)交換機和路由器上已經(jīng)成熟應(yīng)用的數(shù)據(jù)面轉(zhuǎn)發(fā)技術(shù)也被應(yīng)用到了DPU領(lǐng)域。在數(shù)據(jù)面硬件轉(zhuǎn)發(fā)技術(shù)中,基本的硬件處理架構(gòu)有兩種:基于NP的run-to-completion(RTC)架構(gòu)和pipeline架構(gòu)。
1、基于NP的RTC轉(zhuǎn)發(fā)架構(gòu)
通用RTC(Real-Time Clock)處理器轉(zhuǎn)發(fā)模型,報文進入后,經(jīng)過調(diào)度分發(fā)器后,被分配到一個報文處理引擎上處理。RTC是一種非搶占機制,當(dāng)報文進入該處理引擎后,根據(jù)轉(zhuǎn)發(fā)需求進行處理,直到處理結(jié)束退出。
在RTC架構(gòu)中,每個處理器上都是標(biāo)準(zhǔn)的馮諾依曼架構(gòu),包括:程序計數(shù)器(PC)、指令存儲器、譯碼器、寄存器堆、邏輯運算單元(ALU),其中指令存儲器多個核之間共享。通常報文處理流程通過C語言或微碼編程后,會被編譯成一系列的指令執(zhí)行。由于轉(zhuǎn)發(fā)需求和報文長度不同,每個報文在處理器內(nèi)部的處理時間差異很大。
2、Pipeline轉(zhuǎn)發(fā)架構(gòu)
Pipeline架構(gòu)中,整個處理流程被拆分成多個不同的處理階段,對應(yīng)到不同的步驟,每一級轉(zhuǎn)發(fā)處理可以做成專用的硬件處理單元。當(dāng)?shù)谝粋€報文執(zhí)行完第一個步驟,進入第二個步驟時,第二個報文可以進入流水線中的第一個步驟進行處理。
根據(jù)業(yè)務(wù)需求,將轉(zhuǎn)發(fā)流程拆分成多個處理步驟,每個步驟中只執(zhí)行特定的邏輯處理,主要應(yīng)用在數(shù)據(jù)中心交換機上,比如:Broadcom TD系列。
Match-Action Pipeline架構(gòu)也是一種業(yè)界常用的pipeline架構(gòu)為,與固化Pipeline架構(gòu)相比,每個步驟中可根據(jù)業(yè)務(wù)生成靈活的查表信息,根據(jù)查表結(jié)果,對報文進行相應(yīng)的邏輯處理,如下圖所示。
在性能上,固化Pipeline架構(gòu)近乎定制化ASIC,相比于可編程Pipeline架構(gòu),吞吐更高,時延更低,邏輯處理單元復(fù)雜度更低?與可編程Pipeline相比,固化Pipeline,不支持可編程和新的業(yè)務(wù)添加。而可編程MA架構(gòu)可以保留一部分靈活可拓展性,在資源允許的情況下,支持新業(yè)務(wù)拓展。
3、Pipeline vs RTC
Pipeline 和 RTC 作為兩個主流轉(zhuǎn)發(fā)架構(gòu),RTC架構(gòu)在轉(zhuǎn)發(fā)業(yè)務(wù)中表項出豐富的靈活性,但隨著網(wǎng)絡(luò)流量的不斷增加,Pipeline架構(gòu)表現(xiàn)出相對優(yōu)勢:
在性能方面,1)在相同處理性能下,RTC架構(gòu)中通常采用多核多線程,來提高轉(zhuǎn)發(fā)性能,由于多線程面積占比較高(每個線程獨立維護相應(yīng)的寄存器信息),報文進入處理器的調(diào)度和多核報文調(diào)度轉(zhuǎn)發(fā)邏輯資源面積較大,導(dǎo)致芯片面積和功耗通常為Pipeline架構(gòu)的數(shù)倍。2)由于多核處理器訪問內(nèi)存,導(dǎo)致帶寬壓力較大。為提高轉(zhuǎn)發(fā)性能,內(nèi)存會被復(fù)制多份,降低內(nèi)存訪問沖突,導(dǎo)致內(nèi)存占用率很高。
時延方面,在Pipeline架構(gòu)下,不同步驟中的memory資源靜態(tài)分配,報文在轉(zhuǎn)發(fā)過程中執(zhí)行的指令信息提前預(yù)知。和 RTC 架構(gòu)相比,能夠大大降低由于讀寫/查表沖突帶來的時延,通常 pipeline架構(gòu)對報文的處理時延是 RTC 架構(gòu)的數(shù)十分之一。
從功耗、性能、面積的角度考慮,DPU跟隨網(wǎng)絡(luò)流量需求變化(業(yè)務(wù)需求不斷豐富、網(wǎng)絡(luò)時延敏感、功耗要求更低),基于可編程Pipeline的硬件架構(gòu)更符合DPU加速硬件報文轉(zhuǎn)發(fā)的發(fā)展方向。
(三)網(wǎng)絡(luò)可編程技術(shù)
在以算力為中心的時代,網(wǎng)絡(luò)邊緣設(shè)備已經(jīng)從柜頂交換機延展到DPU,DPU已經(jīng)成為數(shù)據(jù)中心內(nèi)部網(wǎng)絡(luò)連接計算、存儲的新的接入節(jié)?點,面對不斷變化的網(wǎng)絡(luò)業(yè)務(wù)需求和自定義網(wǎng)絡(luò)擴展能力的需要,支持網(wǎng)絡(luò)可編程技術(shù)成為DPU應(yīng)用于新一代數(shù)字基礎(chǔ)設(shè)施的關(guān)鍵技術(shù)因素。
DPU上網(wǎng)絡(luò)可編程技術(shù)主要包括控制平面網(wǎng)絡(luò)可編程技術(shù)和數(shù)據(jù)平面網(wǎng)絡(luò)可編程技術(shù),其中控制平面網(wǎng)絡(luò)可編程技術(shù)主要應(yīng)用于DPU 內(nèi)部的通用系統(tǒng)級芯片上,而數(shù)據(jù)平面網(wǎng)絡(luò)可編程技術(shù)則主要應(yīng)用在硬件加速器部分。
目前DPU數(shù)據(jù)平面網(wǎng)絡(luò)可編程技術(shù)主要包括基于快速流表和基于P4流水線兩種常見技術(shù)。
(四)開放網(wǎng)絡(luò)及DPU軟件生態(tài)
由于DPU芯片的發(fā)展還處于早期階段,DPU的軟件生態(tài)也處于萌芽狀態(tài)。目前,市場上主流的開放網(wǎng)絡(luò)及 DPU 軟件生態(tài)主要有Linux 基金會宣布的開放可編程基礎(chǔ)設(shè)施——OPI項目、由 Intel 驅(qū)動主導(dǎo)的 IPDK 框架、Nvidia DPU的開源軟件開發(fā)框架 DOCA、開放數(shù)據(jù)中心委員會開展的無損網(wǎng)絡(luò)項目等。
DPU 作為數(shù)據(jù)中心基礎(chǔ)設(shè)施的一顆重要芯片,擁有一個社區(qū)驅(qū)動的、基于標(biāo)準(zhǔn)的開放生態(tài)系統(tǒng),以開放的形式定義DPU標(biāo)準(zhǔn)可編程基礎(chǔ)設(shè)施生態(tài),對DPU的長期發(fā)展至關(guān)重要。
一個富有生命力的DPU的軟件生態(tài)需要具備條件為提供一個基于開放社區(qū)的DPU軟件堆棧以及用戶驅(qū)動,且與供應(yīng)商無關(guān)的軟件框架和架構(gòu)。支持既有的DPU開源應(yīng)用程序生態(tài)系統(tǒng),包括DPDK,OVS,SPDK 等已經(jīng)在用戶側(cè)有廣泛應(yīng)用的開源應(yīng)用軟件。
基于以上標(biāo)準(zhǔn)我們對現(xiàn)有的DPU軟件生態(tài)做比較,SONiC是由用戶驅(qū)動的開放網(wǎng)絡(luò)平臺項目。SONiC是由微軟于2016年發(fā)起,其所有軟件功能模塊都來自開源生態(tài)。如下圖所示,SONiC通過將SAI 接口作為統(tǒng)一的硬件管理接口,由各廠商在SAI接口之下實現(xiàn)對應(yīng)硬件驅(qū)動,通過這樣的方式屏蔽不同廠商硬件之間的驅(qū)動差異,使 SONiC軟件可以運行在各種硬件設(shè)備中,形成白盒交換機統(tǒng)一的軟件生態(tài)。
在P4 可編程和DPU的支持方面,SONiC先是通過PINS(P4 Integrated Network Stack)在 SDN 市場白盒交換機中落地了最佳實踐,得到了產(chǎn)業(yè)界的廣泛支持;之后又推出了 SONiC DASH (Disaggregated API for SONiC Hosts)版本,將SONiC在 SDN 交換機市場的最佳實踐引入到主機側(cè),實現(xiàn)了主機端與網(wǎng)絡(luò)白盒交換機統(tǒng)一的開放網(wǎng)絡(luò)生態(tài),為DPU順利加入數(shù)字基礎(chǔ)設(shè)施的SDN網(wǎng)絡(luò)域打下了基礎(chǔ)。
審核編輯:陳陳
-
芯片技術(shù)
+關(guān)注
關(guān)注
1文章
159瀏覽量
17475 -
DPU
+關(guān)注
關(guān)注
0文章
353瀏覽量
24100 -
RDMA
+關(guān)注
關(guān)注
0文章
75瀏覽量
8912
原文標(biāo)題:引領(lǐng)DPU發(fā)展的關(guān)鍵技術(shù)
文章出處:【微信號:架構(gòu)師技術(shù)聯(lián)盟,微信公眾號:架構(gòu)師技術(shù)聯(lián)盟】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論