陳云斌 王全 陸威



【摘 ?要】
為了解決邊緣機(jī)房的供電、散熱以及承重能力有限,無(wú)法為MEC提供足夠的計(jì)算資源的問(wèn)題,分析了MEC在第三方應(yīng)用,OVS和虛擬化用戶(hù)面的性能瓶頸,提供硬件加速的方法。研究表明,通過(guò)上述方法,可突破MEC的性能和時(shí)延瓶頸,實(shí)現(xiàn)高性能、低時(shí)延,并兼顧性能、成本和開(kāi)放性。
【關(guān)鍵詞】5G;MEC;硬件加速;UPF;FPGA
[Abstract]
To solve the problems of power supply, cooling, and limited load-bearing capability in the edge DCs, which cannot provide sufficient computing resources for the MEC, the performance bottlenecks of MEC in third-party applications, OVS, and virtualized user planes are analyzed to provide hardware acceleration methods. Research shows that the above methods can break the bottlenecks of the MEC performance and latency, achieve ultra-high performance and ultra-low latency, and balance the performance, cost, and openness.
[Key words]5G; MEC; hardware acceleration; UPF; FPGA
0 ? 引言
5G時(shí)代,數(shù)字化和智能化對(duì)終端的算力需求迅速增加。而終端受功耗、成本和空間的限制,需要將算力向云端移動(dòng)。云端的算力不能滿(mǎn)足實(shí)時(shí)性要求高的業(yè)務(wù)的需求,為了降低時(shí)延,又使業(yè)務(wù)向邊緣移動(dòng)。如圖1所示,MEC(Multi-Access Edge Computing)技術(shù)的應(yīng)用使邊緣云成為數(shù)字化和智能化時(shí)代的算力洼地,業(yè)務(wù)和算力匯聚在邊緣云。MEC定位在網(wǎng)絡(luò)邊緣,可以有效降低終端成本,減少傳輸帶寬占用,降低業(yè)務(wù)時(shí)延,提高業(yè)務(wù)數(shù)據(jù)安全性。
MEC讓包括虛擬化用戶(hù)面和第三方應(yīng)用在內(nèi)的算力需求匯聚在邊緣,極大地增加了MEC邊緣云的計(jì)算開(kāi)銷(xiāo)。然而,邊緣機(jī)房的供電成本高、散熱以及承重能力有限,進(jìn)行DC化改造余地小、成本大,無(wú)法提供足夠的X86計(jì)算資源。因此,提升邊緣機(jī)房的單位面積算力成為關(guān)鍵。
NFV (Network Functions Virtualization)采用基于X86等通用硬件的虛擬化技術(shù),實(shí)現(xiàn)網(wǎng)絡(luò)功能軟硬件解耦,使網(wǎng)絡(luò)設(shè)備功能不再依賴(lài)于專(zhuān)用硬件。然而,NFV剛從專(zhuān)用硬件轉(zhuǎn)向通用硬件,卻發(fā)現(xiàn)以X86服務(wù)器為主的通用硬件并不能滿(mǎn)足MEC業(yè)務(wù)的網(wǎng)絡(luò)性能要求[3]。這主要有兩個(gè)原因:
一是X86通用處理器CPU為了保證通用性,卻喪失了專(zhuān)用性,即并不擅長(zhǎng)特定任務(wù)的處理。比如,不擅長(zhǎng)處理編解碼轉(zhuǎn)換、報(bào)文轉(zhuǎn)發(fā)、加解密等并行處理的任務(wù)。
二是CPU性能已經(jīng)無(wú)法按照摩爾定律進(jìn)行增長(zhǎng),而電信業(yè)務(wù)特性對(duì)計(jì)算性能要求超過(guò)了按“摩爾定律”增長(zhǎng)的速度。
NFV架構(gòu)基于通用硬件,在數(shù)據(jù)轉(zhuǎn)發(fā)效率與數(shù)據(jù)并行處理方面存在不足,為提升邊緣機(jī)房的單位面積算力,在MEC引入硬件加速技術(shù)是最佳的選擇。
1 ? MEC加速需求
按照歐洲技術(shù)標(biāo)準(zhǔn)委員會(huì)ETSI的定義,MEC[2] 指在包含一種或者多種接入技術(shù)的接入網(wǎng)絡(luò)中,靠近用戶(hù)的網(wǎng)絡(luò)邊緣,提供無(wú)線網(wǎng)絡(luò)能力、云計(jì)算能力和IT業(yè)務(wù)環(huán)境的系統(tǒng)[1]。在5G網(wǎng)絡(luò)中,用戶(hù)面UPF(User Plane Function)是5G網(wǎng)絡(luò)和MEC的結(jié)合點(diǎn)。通過(guò)UPF本地分流,打破傳統(tǒng)封閉的電信網(wǎng)絡(luò)架構(gòu),將邊緣網(wǎng)絡(luò)基礎(chǔ)設(shè)施和硬件加速能力,邊緣網(wǎng)絡(luò)分流能力和無(wú)線網(wǎng)絡(luò)感知能力開(kāi)放給第三方應(yīng)用,激活邊緣價(jià)值。
MEC加速需求主要包括下面三種場(chǎng)景:
(1)MEC應(yīng)用層加速。MEC的本質(zhì)是ICT融合。MEC在網(wǎng)絡(luò)邊緣,貼近用戶(hù)就近提供算力,需要滿(mǎn)足AR/VR、視頻直播等業(yè)務(wù)對(duì)視頻渲染、轉(zhuǎn)碼的加速,以及AI訓(xùn)練、推理的加速需求。這類(lèi)計(jì)算密集型的MEC應(yīng)用對(duì)CPU消耗極大,必須在邊緣引入加速硬件。
(2)NFVI(Network Functions Virtualization Infrastructure)層OVS加速。MEC應(yīng)用對(duì)基礎(chǔ)設(shè)施性的低時(shí)延、高速率轉(zhuǎn)發(fā)性能指標(biāo)提出了更高的要求。僅靠軟件實(shí)現(xiàn)上行10G,下行20G的速率非常困難,采用軟加速(DPDK)方案在轉(zhuǎn)發(fā)能力上依然不足。電信網(wǎng)絡(luò)的本質(zhì)是轉(zhuǎn)發(fā)網(wǎng)絡(luò),轉(zhuǎn)發(fā)處理能力的提升關(guān)鍵在緩存,數(shù)據(jù)并行處理能力的提升關(guān)鍵在核數(shù)。但是,摩爾定律失效,CPU的緩存和核數(shù)的提升緩慢。因此,需要引入加速硬件來(lái)突破NFVI層的轉(zhuǎn)發(fā)性能和時(shí)延的瓶頸。
(3)VNF(Virtualized Network Function)層虛擬化用戶(hù)面加速。虛擬化用戶(hù)面UPF下沉到MEC,提供本地分流,實(shí)現(xiàn)一跳直達(dá),降低傳輸時(shí)延,減少帶寬占用。虛擬化用戶(hù)面實(shí)現(xiàn)軟硬件解耦,但是相對(duì)傳統(tǒng)專(zhuān)用硬件而言,性能有所下降。對(duì)于工業(yè)控制、自動(dòng)駕駛等超低時(shí)延MEC業(yè)務(wù),基于X86服務(wù)器的純軟件用戶(hù)面不滿(mǎn)足其性能需求,也需要引入加速硬件。
在MEC邊緣云,重點(diǎn)將上述三種消耗CPU資源高的業(yè)務(wù)卸載到加速硬件上,不但可以提升邊緣業(yè)務(wù)體驗(yàn),還可以節(jié)省邊緣寶貴的CPU資源,大幅降低邊緣機(jī)房的功耗。
2 ? MEC加速硬件的選擇
常見(jiàn)的加速硬件包括FPGA、GPU、NP和ASIC等。根據(jù)MEC主要的三種場(chǎng)景的加速需求,建議采用FPGA和GPU進(jìn)行硬件加速。
CPU要做得很通用,就要同時(shí)很好地支持并行和串行操作,能夠處理各種不同的數(shù)據(jù)類(lèi)型,同時(shí)又要支持復(fù)雜通用的邏輯判斷,這樣會(huì)引入大量的分支跳轉(zhuǎn)和中斷。這就讓CPU的內(nèi)部結(jié)構(gòu)變得異常復(fù)雜,導(dǎo)致計(jì)算單元的比重被降低。而GPU面對(duì)的則是類(lèi)型高度統(tǒng)一、相互無(wú)依賴(lài)的大規(guī)模的數(shù)據(jù),而且是不會(huì)被打斷的純凈的計(jì)算環(huán)境。因此,GPU芯片比CPU芯片簡(jiǎn)單很多。由于GPU具有高并行結(jié)構(gòu),所以GPU在處理圖形數(shù)據(jù)和復(fù)雜算法方面擁有比CPU更高的效率。
圖2展示了GPU和CPU在結(jié)構(gòu)上的差異。CPU大部分面積為控制器和寄存器,而GPU擁有更多的ALU(Arithmetic Logic Unit,邏輯運(yùn)算單元)用于數(shù)據(jù)處理。GPU這樣的結(jié)構(gòu)適合對(duì)密集型數(shù)據(jù)進(jìn)行并行處理。GPU適合做大批量的同構(gòu)數(shù)據(jù)的處理,視頻渲染和AI加速這類(lèi)MEC應(yīng)用適合采用GPU加速硬件。
CPU、GPU都屬于馮·諾依曼結(jié)構(gòu),指令譯碼執(zhí)行,并共享內(nèi)存。而FPGA采用無(wú)指令、無(wú)需共享內(nèi)存的體系結(jié)構(gòu)。FPGA的每個(gè)邏輯單元的功能在重編程時(shí)就已經(jīng)確定,不需要指令。FPGA中的寄存器和內(nèi)存(BRAM)是屬于各自的控制邏輯,無(wú)需仲裁和緩存。FPGA的每個(gè)邏輯單元與周?chē)壿媶卧倪B接在重編程(燒寫(xiě))時(shí)就已經(jīng)確定,不需要通過(guò)共享內(nèi)存來(lái)通信。因此,F(xiàn)PGA具備極低的延遲優(yōu)勢(shì),適用于流式的計(jì)算密集型任務(wù)和通信密集型任務(wù)。因此,MEC的NFVI 層OVS(OpenVSwitch)加速和虛擬化用戶(hù)面加速適合采用FPGA加速硬件。
3 ? ?MEC基于FPGA智能網(wǎng)卡加速方案
3.1 ?NFVI層OVS加速
傳統(tǒng)軟件交換技術(shù)會(huì)消耗大量的CPU資源,在性能和性?xún)r(jià)比上無(wú)法滿(mǎn)足MEC業(yè)務(wù)需求。在MEC采用硬件加速技術(shù),通過(guò)硬件邏輯編程,把OVS中需要占用大量CPU資源的數(shù)據(jù)面功能卸載到基于FPGA的智能網(wǎng)卡上實(shí)現(xiàn);卸載之后釋放出來(lái)的CPU資源可以用于部署更多的MEC第三方業(yè)務(wù)。
基于FPGA的智能網(wǎng)卡的OVS加速方案如圖3所示。
OVS-vswitchd作為控制平面,接收來(lái)自SDN控制器的流表配置消息(或者命令行的控制命令),將流表項(xiàng)寫(xiě)入數(shù)據(jù)庫(kù),并更新到OVS-datapath。OVS-datapath由一系列哈希表組成。報(bào)文進(jìn)入OVS-datapath查表,命中后加上出向端口號(hào),直接執(zhí)行轉(zhuǎn)發(fā)。未命中的報(bào)文送到OVS-vswitchd,通過(guò)IP或MAC學(xué)習(xí)到出向端口號(hào),并轉(zhuǎn)發(fā)出去;同時(shí),將學(xué)習(xí)到的流表(入向端口、出向端口)下發(fā)到OVS-datapath,并更新OVS-datapath 哈希表。下次,相同流表的報(bào)文進(jìn)入后,直接經(jīng)OVS-datapath轉(zhuǎn)發(fā)。
OVS-datapath下沉到基于FPGA的智能網(wǎng)卡實(shí)現(xiàn),原OVS-datapath則由一個(gè)簡(jiǎn)單的根據(jù)端口轉(zhuǎn)發(fā)模塊替代。OVS-datapath數(shù)據(jù)通道下沉到智能網(wǎng)卡,可以節(jié)省超過(guò)2核的CPU;OVS-vswitchd控制面仍由CPU完成,與MEC業(yè)務(wù)共用2核CPU。
基于FPGA的智能網(wǎng)卡測(cè)試性能對(duì)比如表1所示:
基于FPGA的智能網(wǎng)卡具有如下優(yōu)勢(shì):
(1)高性能。基于FPGA的智能網(wǎng)卡實(shí)現(xiàn)DPDK內(nèi)存拷貝和流表查詢(xún)。在百萬(wàn)流表的條件下,512字節(jié)報(bào)文具有40G/100G線速轉(zhuǎn)發(fā)能力。
(2)低時(shí)延。軟件OVS需要數(shù)十微秒至上百微秒,而智能網(wǎng)卡僅數(shù)微秒,具有更低時(shí)延的轉(zhuǎn)發(fā)能力。而且,智能網(wǎng)卡具備微秒級(jí)的超低延遲流表生效時(shí)間。
(3)低成本。實(shí)現(xiàn)OVS轉(zhuǎn)發(fā)面的CPU完全卸載,僅控制面和MEC業(yè)務(wù)共用2核CPU;VirtIO后端功能下沉,還可減少2核CPU的消耗。
3.2 ?VNF層虛擬化用戶(hù)面加速
為了滿(mǎn)足AR/VR、工業(yè)控制、無(wú)人駕駛等新業(yè)務(wù)帶來(lái)的高帶寬、低時(shí)延的網(wǎng)絡(luò)需求,基于虛擬化技術(shù)的5G網(wǎng)元將控制面和轉(zhuǎn)發(fā)面分離,進(jìn)行分層部署;控制面集中部署,用戶(hù)面則貼近用戶(hù)、分散部署,實(shí)現(xiàn)管理成本和用戶(hù)體驗(yàn)的平衡。將用戶(hù)面UPF下沉到MEC邊緣云,可以縮短轉(zhuǎn)發(fā)路徑,降低傳輸時(shí)延,并在一定程度上提升了數(shù)據(jù)轉(zhuǎn)發(fā)效率[6]。但是,基于X86服務(wù)器部署的虛擬化用戶(hù)面UPF,性能上無(wú)法媲美專(zhuān)用硬件,而且需要消耗大量的CPU資源。采用基于FPGA的智能網(wǎng)卡,可以大幅提升MEC虛擬化用戶(hù)面轉(zhuǎn)發(fā)效率。
虛擬化用戶(hù)面UPF加速主要是將GTP(GPRS隧道協(xié)議)業(yè)務(wù)卸載,包括:
(1)Tunnel Offload:GTP報(bào)文的封裝和解包。
(2)Service Offload:報(bào)文不經(jīng)過(guò)主機(jī)處理以look-inside方式直接轉(zhuǎn)發(fā)出去,減少主機(jī)計(jì)算資源消耗。
GTP業(yè)務(wù)卸載原理如圖4:
基于FPGA智能網(wǎng)卡加速虛擬化用戶(hù)面UPF,在軟件VNF(Virtualized Network Function)層進(jìn)行數(shù)據(jù)報(bào)文的首包學(xué)習(xí),生成轉(zhuǎn)發(fā)流表,并將流表下發(fā)到智能網(wǎng)卡中。同一條流的后續(xù)數(shù)據(jù)報(bào)文將由智能網(wǎng)卡接收、解包、處理后直接轉(zhuǎn)發(fā),降低節(jié)點(diǎn)內(nèi)轉(zhuǎn)發(fā)處理層次,大幅減輕CPU計(jì)算、內(nèi)存讀取、PCIe總線的瓶頸,提升單服務(wù)器性能密度[5]。圖5是基于FPGA的智能網(wǎng)卡加速的虛擬化用戶(hù)面UPF的示意圖。
虛擬化用戶(hù)面流量卸載的性能與實(shí)際的業(yè)務(wù)模型有著極大的關(guān)系,單條流的包個(gè)數(shù)越多,卸載轉(zhuǎn)發(fā)的效率越高。基于此方案,視頻數(shù)據(jù)的轉(zhuǎn)發(fā)效率就非常高, 具有更高的性能功耗比和性?xún)r(jià)比。通過(guò)測(cè)試證明,基于FPGA的智能網(wǎng)卡加速的虛擬化用戶(hù)面,突破了當(dāng)前虛擬化轉(zhuǎn)發(fā)的性能和時(shí)延瓶頸,單服務(wù)器(雙網(wǎng)卡)吞吐量提升至3倍(180 Gb/s),時(shí)延降低90%(低于10 ?s),功耗降低55%。
4 ? 問(wèn)題與展望
在MEC引入加速硬件,進(jìn)一步提升性能、優(yōu)化能效和節(jié)省成本,這已在業(yè)界形成了共識(shí)。然而,據(jù)不同業(yè)務(wù)場(chǎng)景和自身優(yōu)勢(shì),通訊廠商引入GPU、FPGA等硬件進(jìn)行加速,推出了各種加速硬件方案。加速硬件的邏輯與軟件層面的加速邏輯強(qiáng)相關(guān),存在功能專(zhuān)一、接口不統(tǒng)一等問(wèn)題,造成軟硬件無(wú)法解耦。異構(gòu)加速硬件要運(yùn)行在各種云操作系統(tǒng)上,再被上層廠家的VNF調(diào)用,如果沒(méi)有一個(gè)統(tǒng)一的標(biāo)準(zhǔn)來(lái)管理這些加速硬件,沒(méi)有統(tǒng)一的接口來(lái)讓上層網(wǎng)元來(lái)調(diào)用,將會(huì)造成比較嚴(yán)重的問(wèn)題。
在加速硬件解耦方面(如圖6),當(dāng)前處在加速硬件與服務(wù)器可解耦階段,加速硬件可以資源池化。后續(xù),加速硬件主要有兩個(gè)解耦方向,包括軟硬解耦和軟軟解耦。
(1)軟硬解耦,即標(biāo)準(zhǔn)化硬件加速卡方案。硬件廠商僅提供可編程硬件加速卡,通訊廠商提供全部VNF軟件功能(包括加速卡鏡像)。需要在VNF軟件與硬件加速卡驅(qū)動(dòng)之間制定標(biāo)準(zhǔn)API接口。這種方案實(shí)現(xiàn)加速卡與加速功能的解耦,VNF軟件與加速功能尚無(wú)法解耦[4]。
(2)軟軟解耦,即用網(wǎng)元功能專(zhuān)用加速卡方案。專(zhuān)用加速卡廠商提供加速硬件及VNF加速能力。通訊廠商通過(guò)標(biāo)準(zhǔn)軟件接口與專(zhuān)用加速卡對(duì)接,通過(guò)調(diào)用專(zhuān)用加速卡的VNF加速能力來(lái)提供完整的VNF功能。這種方案實(shí)現(xiàn)VNF軟件與硬件加速卡之間解耦,但難點(diǎn)在于繁多的API接口需要標(biāo)準(zhǔn)化[4]。
為了實(shí)現(xiàn)NFV異構(gòu)加速硬件的統(tǒng)一管理,ETSI制定了NFV加速硬件統(tǒng)一管理的軟件框架標(biāo)準(zhǔn)。開(kāi)源社區(qū)OpenStack孵化出了Cyborg項(xiàng)目,旨在提供通用的硬件加速管理框架[3]。Cyborg主要面向基礎(chǔ)設(shè)施中對(duì)加速硬件的驅(qū)動(dòng)集成和VIM對(duì)加速硬件的感知。基于Cyborg的加速管理包括:
(1)加速卡驅(qū)動(dòng)管理。Cyborg管理各種加速器的驅(qū)動(dòng)程序,維護(hù)加速卡硬件類(lèi)型/版本與驅(qū)動(dòng)程序的依賴(lài)關(guān)系。
(2)加速卡資源,能力管理。Cyborg管理本資源池中的所有加速卡的類(lèi)別、數(shù)量、能力和容量等,并通過(guò)北向API通報(bào)給Mano等(Management and Orchestration)資源編排中心。
(3)加速卡生命周期管理。Cyborg通過(guò)與Nova接口,完成虛擬機(jī)生命周期中的加速卡生命周期管理。
(4)加速卡業(yè)務(wù)接口管理。目前主要是直通方式,使用函數(shù)接口;常見(jiàn)的SR-IOV模式,也是使用函數(shù)接口;如果加速卡支持完全虛擬化,則會(huì)采用VirtIO接口,此時(shí),Cyborg組件需要提供VirtIO前端的統(tǒng)一接口以及VirtIO后端與驅(qū)動(dòng)接口適配。
5 ? 結(jié)束語(yǔ)
隨著相關(guān)標(biāo)準(zhǔn)組織和開(kāi)源社區(qū)的推進(jìn),加速硬件接口和管理將逐漸標(biāo)準(zhǔn)化,在MEC邊緣引入硬件加速技術(shù),可以有效突破MEC的性能和時(shí)延瓶頸,實(shí)現(xiàn)超高性能、超低時(shí)延,并兼顧性能、成本和開(kāi)放性。
參考文獻(xiàn):
[1] ? ?ETSI. ETSI GS MEC 003 V2.1.1: Multi-access edge computing (MEC); framework and reference architecture[S]. 2019.
[2] ? ?ETSI. ETSI GS MEC 001 V2.1.1: Multi-access Edge Computing (MEC); Terminology[S]. 2019.
[3] ? ? 劉小華. NFV應(yīng)用中的硬件加速,提升媒體面處理性能[J]. 中興通訊技術(shù), 2019(5): 33-35.
[4] ? ?王文黎,王友詳,唐雄燕,等. 5G核心網(wǎng)UPF硬件加速技術(shù)[J]. 移動(dòng)通信, 2020,44(1): 19-23.
[5] ? ? 陸威,方琰威,陳亞權(quán). URLLC 超低時(shí)延解決方案和關(guān)鍵技術(shù)[J]. 移動(dòng)通信, 2020,44(2): 8-14.
[6] ? 朱堃. 面向5G邊緣計(jì)算[J]. 中興通訊技術(shù), 2019(9): 19-20.