




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
基于可編程網(wǎng)卡的
高性能數(shù)據(jù)中心系統(tǒng)研究背景軟件網(wǎng)絡(luò)功能和數(shù)據(jù)結(jié)構(gòu)處理的性能瓶頸可編程網(wǎng)卡在數(shù)據(jù)中心內(nèi)的部署研究?jī)?nèi)容基于可編程網(wǎng)卡的數(shù)據(jù)中心系統(tǒng)網(wǎng)絡(luò)功能加速–ClickNP數(shù)據(jù)結(jié)構(gòu)加速–KV-Direct通信原語(yǔ)加速–SocksDirect報(bào)告總結(jié)答辯報(bào)告提綱現(xiàn)代數(shù)據(jù)中心架構(gòu)計(jì)算節(jié)點(diǎn)存儲(chǔ)節(jié)點(diǎn)網(wǎng)絡(luò)節(jié)點(diǎn)柜頂交換機(jī)核心交換機(jī)核心交換機(jī)柜頂交換機(jī)柜頂交換機(jī)柜頂交換機(jī)管理節(jié)點(diǎn)匯聚交換機(jī)匯聚交換機(jī)匯聚交換機(jī)匯聚交換機(jī)InternetAWS,Azure,谷歌云,阿里云,騰訊云…虛擬化的云數(shù)據(jù)中心虛擬機(jī)監(jiān)視器(Hypervisor)虛擬機(jī)1虛擬機(jī)2虛擬機(jī)3計(jì)算節(jié)點(diǎn)虛擬本地盤虛擬云盤虛擬網(wǎng)絡(luò)普通網(wǎng)卡虛擬網(wǎng)絡(luò)功能普通網(wǎng)卡網(wǎng)絡(luò)節(jié)點(diǎn)數(shù)據(jù)結(jié)構(gòu)處理普通網(wǎng)卡存儲(chǔ)節(jié)點(diǎn)內(nèi)存/
Flash數(shù)據(jù)中心網(wǎng)絡(luò)客戶應(yīng)用操作系統(tǒng)客戶應(yīng)用操作系統(tǒng)客戶應(yīng)用操作系統(tǒng)內(nèi)存/
Flash網(wǎng)絡(luò)通信架構(gòu)客戶虛擬機(jī)1虛擬網(wǎng)絡(luò)軟件普通網(wǎng)卡防火墻負(fù)載均衡…普通網(wǎng)卡計(jì)算節(jié)點(diǎn)1網(wǎng)絡(luò)節(jié)點(diǎn)虛擬網(wǎng)數(shù)據(jù)包虛擬網(wǎng)數(shù)據(jù)包封裝網(wǎng)絡(luò)功能客戶應(yīng)用操作系統(tǒng)套接字通信原語(yǔ)客戶虛擬機(jī)2虛擬網(wǎng)絡(luò)軟件普通網(wǎng)卡計(jì)算節(jié)點(diǎn)2虛擬網(wǎng)數(shù)據(jù)包虛擬網(wǎng)數(shù)據(jù)包封裝客戶應(yīng)用操作系統(tǒng)套接字通信原語(yǔ)數(shù)據(jù)中心網(wǎng)絡(luò)性能的提升LOGSCALECPU核的網(wǎng)絡(luò)數(shù)據(jù)包
處理能力受限于CPU
主頻和指令級(jí)并行度吞吐量(Gbps)1GbE10GbE40GbE50GbE100GbE大規(guī)模部署的時(shí)間25GbE操作系統(tǒng)內(nèi)核占了網(wǎng)絡(luò)應(yīng)用的大部分CPU時(shí)間操作系統(tǒng)通信原語(yǔ)的性能瓶頸通信原語(yǔ)開(kāi)銷浪費(fèi)了低延遲數(shù)據(jù)中心網(wǎng)絡(luò)來(lái)源:LuizBarroso,MikeMarty,DavidPatterson,ParthasarathyRanganathan.AttackoftheKillerMicroseconds.CommunicationsoftheACM,April2017虛擬化的網(wǎng)絡(luò)功能傳統(tǒng)的專用硬件不夠靈活用軟件實(shí)現(xiàn)網(wǎng)絡(luò)功能以提高靈活性負(fù)載均衡
虛擬機(jī)防火墻
虛擬機(jī)IPSec網(wǎng)關(guān)
虛擬機(jī)NAT
虛擬機(jī)負(fù)載均衡防火墻IPSec
網(wǎng)關(guān)NAT8軟件網(wǎng)絡(luò)功能的性能瓶頸處理能力受限處理40Gbps線速所需的CPU核數(shù)膨脹且不穩(wěn)定的延遲給數(shù)據(jù)平面增加了數(shù)十微秒至數(shù)毫秒的延遲在高負(fù)載下的延遲膨脹更加嚴(yán)重然而1毫秒的延遲就已經(jīng)違反服務(wù)質(zhì)量保證網(wǎng)絡(luò)功能軟件實(shí)現(xiàn)1500Bpkt
(正常情況)64Bpkt
(最壞情況)NVGRE
隧道解包Hyper-V
虛擬交換機(jī)5100防火墻(8K
規(guī)則)Linuxiptables21480云存儲(chǔ)的概念架構(gòu)客戶虛擬機(jī)1網(wǎng)絡(luò)存儲(chǔ)軟件普通網(wǎng)卡計(jì)算節(jié)點(diǎn)1數(shù)據(jù)結(jié)構(gòu)處理普通網(wǎng)卡存儲(chǔ)節(jié)點(diǎn)1內(nèi)存/
Flash數(shù)據(jù)結(jié)構(gòu)處理普通網(wǎng)卡存儲(chǔ)節(jié)點(diǎn)2內(nèi)存/
Flash客戶虛擬機(jī)2網(wǎng)絡(luò)存儲(chǔ)軟件普通網(wǎng)卡計(jì)算節(jié)點(diǎn)2CPU并行度的限制同時(shí)計(jì)算和隨機(jī)訪存時(shí),CPU每個(gè)核每秒僅能處理5M次鍵值操作對(duì)比:僅隨機(jī)訪存時(shí),8個(gè)DDR4內(nèi)存通道每秒可達(dá)850M次軟件數(shù)據(jù)結(jié)構(gòu)處理僅利用了37%的內(nèi)存帶寬。多核負(fù)載均衡的難題每個(gè)鍵根據(jù)哈希映射到固定的CPU核由于不同鍵的訪問(wèn)頻率不均,CPU核的負(fù)載也不均衡CPU核數(shù)越多,負(fù)載越不均衡:在YCSB長(zhǎng)尾負(fù)載下,64核的最高負(fù)載是平均值的5.5倍,10核的最高負(fù)載只是均值的1.5倍。軟件數(shù)據(jù)結(jié)構(gòu)處理的性能問(wèn)題背景軟件網(wǎng)絡(luò)功能和數(shù)據(jù)結(jié)構(gòu)處理的性能瓶頸可編程網(wǎng)卡在數(shù)據(jù)中心內(nèi)的部署研究?jī)?nèi)容基于可編程網(wǎng)卡的數(shù)據(jù)中心系統(tǒng)網(wǎng)絡(luò)功能加速–ClickNP數(shù)據(jù)結(jié)構(gòu)加速–KV-Direct通信原語(yǔ)加速–SocksDirect報(bào)告總結(jié)答辯報(bào)告提綱異構(gòu)計(jì)算的興起LOGSCALE重定義摩爾定律:
定制硬件的性能
每18個(gè)月翻番通用處理器:頻率和Dennard縮放的終結(jié)用什么異構(gòu)硬件加速?CPUGPUFPGA網(wǎng)絡(luò)處理器(NP)網(wǎng)絡(luò)交換機(jī)(ToR)吞吐量低高高高很高延遲高很高低低低功耗高高低低低大規(guī)模部署價(jià)格高很高低低低可編程性很高高高高低通用性高高高低低通用處理器專用處理器高并行性數(shù)以十萬(wàn)計(jì)的邏輯單元(包含邏輯門和寄存器)數(shù)以千計(jì)的內(nèi)存塊(BRAM):總?cè)萘繑?shù)MB,總帶寬數(shù)TB/s數(shù)以千計(jì)的DSP乘法計(jì)算單元上述邏輯單元、內(nèi)存塊、DSP間可以靈活互連高速互連FPGA硬核(hard
IP)可連接網(wǎng)絡(luò)、PCIe、板上DRAM等延遲1
us以下,帶寬數(shù)十GB/s編程困難傳統(tǒng)上使用Verilog、VHDL等硬件描述語(yǔ)言編程FPGA可重構(gòu)硬件微軟Azure云的FPGA部署來(lái)源:AReconfigurableFabricforAcceleratingLarge-ScaleDatacenterServices,ISCA’14ACloud-ScaleAccelerationArchitecture,MICRO’16CPU/GPU/TPU計(jì)算+
NVMe
SSD存儲(chǔ)QPIDRAMDRAM普通網(wǎng)卡CPU140Gb/s2網(wǎng)絡(luò)Gen3x8Gen32x8FPGADRAMCPU40Gb/s可編程網(wǎng)卡組成的硬件加速平面搜索引擎深度學(xué)習(xí)加密解密數(shù)據(jù)庫(kù)可編程網(wǎng)卡可編程網(wǎng)卡=普通網(wǎng)卡+
FPGA通過(guò)已有的數(shù)據(jù)中心網(wǎng)絡(luò)互聯(lián)每臺(tái)Azure云的物理服務(wù)器安裝一塊智能網(wǎng)卡背景軟件網(wǎng)絡(luò)功能和數(shù)據(jù)結(jié)構(gòu)處理的性能瓶頸可編程網(wǎng)卡在數(shù)據(jù)中心內(nèi)的部署研究?jī)?nèi)容基于可編程網(wǎng)卡的數(shù)據(jù)中心系統(tǒng)網(wǎng)絡(luò)功能加速–ClickNP數(shù)據(jù)結(jié)構(gòu)加速–KV-Direct通信原語(yǔ)加速–SocksDirect報(bào)告總結(jié)答辯報(bào)告提綱回顧:數(shù)據(jù)中心架構(gòu)虛擬機(jī)監(jiān)視器(Hypervisor)虛擬機(jī)1虛擬機(jī)2虛擬機(jī)3計(jì)算節(jié)點(diǎn)虛擬本地盤虛擬云盤虛擬網(wǎng)絡(luò)普通網(wǎng)卡虛擬網(wǎng)絡(luò)功能普通網(wǎng)卡網(wǎng)絡(luò)節(jié)點(diǎn)數(shù)據(jù)結(jié)構(gòu)處理普通網(wǎng)卡存儲(chǔ)節(jié)點(diǎn)內(nèi)存/
Flash數(shù)據(jù)中心網(wǎng)絡(luò)計(jì)算、網(wǎng)絡(luò)、存儲(chǔ)節(jié)點(diǎn)存在性能瓶頸客戶應(yīng)用操作系統(tǒng)客戶應(yīng)用操作系統(tǒng)客戶應(yīng)用操作系統(tǒng)內(nèi)存/
Flash1.1.虛擬網(wǎng)絡(luò)加速虛擬機(jī)監(jiān)視器(Hypervisor)虛擬機(jī)1虛擬機(jī)2虛擬機(jī)3計(jì)算節(jié)點(diǎn)可編程網(wǎng)卡數(shù)據(jù)中心網(wǎng)絡(luò)虛擬網(wǎng)卡1虛擬網(wǎng)卡2虛擬網(wǎng)卡3虛擬網(wǎng)絡(luò)客戶應(yīng)用操作系統(tǒng)客戶應(yīng)用操作系統(tǒng)客戶應(yīng)用操作系統(tǒng)內(nèi)存/
Flash虛擬本地盤虛擬云盤虛擬網(wǎng)絡(luò)功能普通網(wǎng)卡網(wǎng)絡(luò)節(jié)點(diǎn)數(shù)據(jù)結(jié)構(gòu)處理普通網(wǎng)卡存儲(chǔ)節(jié)點(diǎn)內(nèi)存/
Flash1.2.虛擬網(wǎng)絡(luò)功能加速虛擬機(jī)監(jiān)視器(Hypervisor)虛擬機(jī)1虛擬機(jī)2虛擬機(jī)3計(jì)算節(jié)點(diǎn)可編程網(wǎng)卡數(shù)據(jù)中心網(wǎng)絡(luò)虛擬網(wǎng)卡1虛擬網(wǎng)卡2虛擬網(wǎng)卡3虛擬網(wǎng)絡(luò)客戶應(yīng)用操作系統(tǒng)客戶應(yīng)用操作系統(tǒng)客戶應(yīng)用操作系統(tǒng)內(nèi)存/
Flash虛擬本地盤虛擬云盤數(shù)據(jù)結(jié)構(gòu)處理普通網(wǎng)卡存儲(chǔ)節(jié)點(diǎn)內(nèi)存/
Flash網(wǎng)絡(luò)節(jié)點(diǎn)可編程網(wǎng)卡虛擬網(wǎng)絡(luò)功能數(shù)據(jù)面虛擬網(wǎng)絡(luò)功能控制面2.1.虛擬存儲(chǔ)加速虛擬機(jī)監(jiān)視器(Hypervisor)虛擬機(jī)1虛擬機(jī)2虛擬機(jī)3計(jì)算節(jié)點(diǎn)可編程網(wǎng)卡網(wǎng)絡(luò)節(jié)點(diǎn)數(shù)據(jù)中心網(wǎng)絡(luò)虛擬網(wǎng)卡1虛擬網(wǎng)卡2虛擬網(wǎng)卡3虛擬本地盤虛擬云盤虛擬網(wǎng)絡(luò)可編程網(wǎng)卡虛擬網(wǎng)絡(luò)功能數(shù)據(jù)面虛擬網(wǎng)絡(luò)功能控制面客戶應(yīng)用操作系統(tǒng)客戶應(yīng)用操作系統(tǒng)客戶應(yīng)用操作系統(tǒng)內(nèi)存/
Flash數(shù)據(jù)結(jié)構(gòu)處理普通網(wǎng)卡存儲(chǔ)節(jié)點(diǎn)內(nèi)存/
Flash2.2.數(shù)據(jù)結(jié)構(gòu)處理加速虛擬機(jī)監(jiān)視器(Hypervisor)虛擬機(jī)1虛擬機(jī)2虛擬機(jī)3計(jì)算節(jié)點(diǎn)可編程網(wǎng)卡網(wǎng)絡(luò)節(jié)點(diǎn)存儲(chǔ)節(jié)點(diǎn)內(nèi)存/
Flash數(shù)據(jù)中心網(wǎng)絡(luò)虛擬網(wǎng)卡1虛擬網(wǎng)卡2虛擬網(wǎng)卡3虛擬本地盤虛擬云盤虛擬網(wǎng)絡(luò)可編程網(wǎng)卡虛擬網(wǎng)絡(luò)功能數(shù)據(jù)面虛擬網(wǎng)絡(luò)功能控制面可編程網(wǎng)卡數(shù)據(jù)結(jié)構(gòu)處理數(shù)據(jù)面數(shù)據(jù)結(jié)構(gòu)處理控制面客戶應(yīng)用操作系統(tǒng)客戶應(yīng)用操作系統(tǒng)客戶應(yīng)用操作系統(tǒng)內(nèi)存/
Flash3.操作系統(tǒng)加速虛擬機(jī)監(jiān)視器(Hypervisor)虛擬機(jī)1虛擬機(jī)2虛擬機(jī)3計(jì)算節(jié)點(diǎn)可編程網(wǎng)卡網(wǎng)絡(luò)節(jié)點(diǎn)存儲(chǔ)節(jié)點(diǎn)內(nèi)存/
Flash數(shù)據(jù)中心網(wǎng)絡(luò)虛擬網(wǎng)卡1虛擬網(wǎng)卡2虛擬網(wǎng)卡3虛擬本地盤虛擬云盤虛擬網(wǎng)絡(luò)可編程網(wǎng)卡虛擬網(wǎng)絡(luò)功能數(shù)據(jù)面虛擬網(wǎng)絡(luò)功能控制面可編程網(wǎng)卡數(shù)據(jù)結(jié)構(gòu)處理數(shù)據(jù)面數(shù)據(jù)結(jié)構(gòu)處理控制面客戶應(yīng)用通信庫(kù)客戶應(yīng)用通信庫(kù)客戶應(yīng)用通信庫(kù)內(nèi)存/
Flash傳輸協(xié)議基于可編程網(wǎng)卡的數(shù)據(jù)中心系統(tǒng)虛擬機(jī)監(jiān)視器(Hypervisor)虛擬機(jī)1虛擬機(jī)2虛擬機(jī)3計(jì)算節(jié)點(diǎn)可編程網(wǎng)卡網(wǎng)絡(luò)節(jié)點(diǎn)存儲(chǔ)節(jié)點(diǎn)內(nèi)存/
Flash數(shù)據(jù)中心網(wǎng)絡(luò)虛擬網(wǎng)卡1虛擬網(wǎng)卡2虛擬網(wǎng)卡3虛擬本地盤虛擬云盤虛擬網(wǎng)絡(luò)可編程網(wǎng)卡虛擬網(wǎng)絡(luò)功能數(shù)據(jù)面虛擬網(wǎng)絡(luò)功能控制面可編程網(wǎng)卡數(shù)據(jù)結(jié)構(gòu)處理數(shù)據(jù)面數(shù)據(jù)結(jié)構(gòu)處理控制面客戶應(yīng)用通信庫(kù)客戶應(yīng)用通信庫(kù)客戶應(yīng)用通信庫(kù)內(nèi)存/
Flash傳輸協(xié)議背景軟件網(wǎng)絡(luò)功能和數(shù)據(jù)結(jié)構(gòu)處理的性能瓶頸可編程網(wǎng)卡在數(shù)據(jù)中心內(nèi)的部署研究?jī)?nèi)容基于可編程網(wǎng)卡的數(shù)據(jù)中心系統(tǒng)網(wǎng)絡(luò)功能加速–ClickNP數(shù)據(jù)結(jié)構(gòu)加速–KV-Direct通信原語(yǔ)加速–SocksDirect報(bào)告總結(jié)答辯報(bào)告提綱虛擬網(wǎng)絡(luò)、網(wǎng)絡(luò)功能加速虛擬機(jī)監(jiān)視器(Hypervisor)虛擬機(jī)1虛擬機(jī)2虛擬機(jī)3計(jì)算節(jié)點(diǎn)可編程網(wǎng)卡網(wǎng)絡(luò)節(jié)點(diǎn)存儲(chǔ)節(jié)點(diǎn)內(nèi)存/
Flash數(shù)據(jù)中心網(wǎng)絡(luò)虛擬網(wǎng)卡1虛擬網(wǎng)卡2虛擬網(wǎng)卡3虛擬本地盤虛擬云盤虛擬網(wǎng)絡(luò)可編程網(wǎng)卡虛擬網(wǎng)絡(luò)功能數(shù)據(jù)面虛擬網(wǎng)絡(luò)功能控制面可編程網(wǎng)卡數(shù)據(jù)結(jié)構(gòu)處理數(shù)據(jù)面數(shù)據(jù)結(jié)構(gòu)處理控制面客戶應(yīng)用通信庫(kù)客戶應(yīng)用通信庫(kù)客戶應(yīng)用通信庫(kù)內(nèi)存/
Flash傳輸協(xié)議挑戰(zhàn):FPGA編程困難硬件描述語(yǔ)言難寫、難調(diào)、難改PCIeCoreDMAEnginealways@(posedgeSYSCLKornegedgeRST_B)beginif(!RST_B)DMA_TX_DATA<=`UD8'hff;elseDMA_TX_DATA<=`UDDMA_TX_DATA_N;end//send:"helloworld!"always@(posedgeSYSCLK)beginif(rst)begindma_data<=88’h0;dma_valid<=1’b0;elseif(dma_start)begindma_data<=88’h68656C6C6F20776F726C64;dma_valid<=1’b1;endelsebegindma_data<=88’h0;dma_valid<=1’b0;endendend現(xiàn)有高層次綜合技術(shù)的不足OpenCL
(為GPU設(shè)計(jì)的批處理模型)28AmemBmemCmem并行執(zhí)行的核板上共享內(nèi)存問(wèn)題:板上共享內(nèi)存成為吞吐量瓶頸;批處理延遲高(1ms)主機(jī)內(nèi)存網(wǎng)絡(luò)ClickNP編程模型基于消息通信的流式處理29優(yōu)點(diǎn):管道的吞吐量可擴(kuò)放;流式處理延遲低(1μs)AmemBmemCmem并行執(zhí)行的核(元件)通過(guò)
管道,而非共享內(nèi)存來(lái)通信主機(jī)內(nèi)存網(wǎng)絡(luò)元件:類比一個(gè)處理器核輸入管道數(shù)據(jù)處理函數(shù)主機(jī)控制信號(hào)、命令輸出管道內(nèi)部狀態(tài)信號(hào)處理函數(shù)(中斷)(I/O)(I/O)(reg/mem)(主線程)(ISR)30ClickNP元件庫(kù)近200個(gè)元件包括數(shù)據(jù)包解析、校驗(yàn)和計(jì)算、隧道封裝/解封裝、加密、哈希表、前綴匹配、數(shù)據(jù)包調(diào)度、流量控制等吞吐量:200Mpps/100Gbps平均延遲0.19us,最高延遲0.8us代碼行數(shù):平均80,最高196元件時(shí)鐘頻率(MHz)峰值性能延遲(時(shí)鐘周期數(shù))邏輯資源%BRAM內(nèi)存資源%L4_Parser221.9113.6Gbps110.8%0.2%IPChecksum226.8116.1Gbps182.3%1.3%NVGRE_Encap221.8113.6Gbps91.5%0.6%AES_CTR217.027.8Gbps704.0%23.1%SHA1220.8113.0Gbps1057.9%6.6%CuckooHash209.7209.7Mpps382.0%65.5%HashTCAM207.4207.4Mpps4818.7%22.0%LPM_Tree221.8221.8Mpps1814.3%13.2%SRPrioQueue214.5214.5Mpps412.6%0.6%RateLimiter141.5141.5Mpps1416.9%14.1%網(wǎng)絡(luò)功能示例:抓包工具ClickNP配置文件(元件間的連接):from_torCountTeeto_torloggerFPGACPU32Count元件:ClickNP開(kāi)發(fā)工具鏈33CatapultFPGAOSClickNPFPGA主機(jī)CatapultPCIe驅(qū)動(dòng)ClickNP運(yùn)行庫(kù)ClickNP主機(jī)進(jìn)程管程工作線程ClickNP元件ClickNP管程ClickNP編譯器
HLS運(yùn)行庫(kù)PCIeI/O管道
FPGA上的HLS運(yùn)行庫(kù)ClickNP腳本中間C代碼VerilogC編譯器HLS工具優(yōu)化:利用FPGA并行性組件間并行流水線并行數(shù)據(jù)并行組件內(nèi)并行原則1:最小化內(nèi)存依賴
使用寄存器取代片上內(nèi)存
延遲寫入內(nèi)存
內(nèi)存分片原則2:平衡流水線各級(jí)延遲
循環(huán)展開(kāi)
把慢路徑卸載到另一個(gè)組件異步執(zhí)行34ClickNP開(kāi)發(fā)效率與性能網(wǎng)絡(luò)應(yīng)用代碼行數(shù)資源開(kāi)銷(占芯片面積比例)吞吐量(相比CPU軟件)平均延遲(相比CPU軟件)數(shù)據(jù)包生成器66516%18x25x抓包工具2508%17x18x防火墻53832%22x40xIPSec網(wǎng)關(guān)69535%60x3x負(fù)載均衡器86036%55x12x數(shù)據(jù)包調(diào)度器58411%32x10x應(yīng)用場(chǎng)景:通過(guò)Internet加密連接多個(gè)數(shù)據(jù)中心或數(shù)據(jù)中心與辦公園區(qū)IPSec網(wǎng)關(guān)的應(yīng)用性能吞吐量隨數(shù)據(jù)包大小的穩(wěn)定性延遲隨負(fù)載高低的穩(wěn)定性云數(shù)據(jù)中心辦公園區(qū)IPSec
網(wǎng)關(guān)IPSec
網(wǎng)關(guān)Internet問(wèn)題軟件網(wǎng)絡(luò)功能的性能瓶頸。創(chuàng)新點(diǎn)提出首個(gè)基于高級(jí)語(yǔ)言、能在40
Gbps網(wǎng)絡(luò)中實(shí)現(xiàn)線速處理的FPGA網(wǎng)絡(luò)功能處理框架。主要挑戰(zhàn)FPGA硬件描述語(yǔ)言難以編程,現(xiàn)有OpenCL高級(jí)語(yǔ)言編程框架不適合網(wǎng)絡(luò)功能處理。主要貢獻(xiàn)實(shí)現(xiàn)了ClickNP開(kāi)發(fā)工具鏈,與多種商用高層次綜合工具集成?;贑lickNP設(shè)計(jì)和實(shí)現(xiàn)了200多個(gè)網(wǎng)絡(luò)元件,并用這些元件組建起多種網(wǎng)絡(luò)功能。相比基于CPU的軟件網(wǎng)絡(luò)功能,ClickNP的吞吐量提高了10倍,延遲降低到1/10;且具有可忽略的CPU開(kāi)銷。是首個(gè)完全用高級(jí)語(yǔ)言編程,且能達(dá)到40
Gbps線速數(shù)據(jù)包處理的FPGA網(wǎng)絡(luò)功能處理平臺(tái)。ClickNP小結(jié)背景軟件網(wǎng)絡(luò)功能和數(shù)據(jù)結(jié)構(gòu)處理的性能瓶頸可編程網(wǎng)卡在數(shù)據(jù)中心內(nèi)的部署研究?jī)?nèi)容基于可編程網(wǎng)卡的數(shù)據(jù)中心系統(tǒng)網(wǎng)絡(luò)功能加速–ClickNP數(shù)據(jù)結(jié)構(gòu)加速–KV-Direct通信原語(yǔ)加速–SocksDirect報(bào)告總結(jié)答辯報(bào)告提綱數(shù)據(jù)結(jié)構(gòu)加速虛擬機(jī)監(jiān)視器(Hypervisor)虛擬機(jī)1虛擬機(jī)2虛擬機(jī)3計(jì)算節(jié)點(diǎn)可編程網(wǎng)卡網(wǎng)絡(luò)節(jié)點(diǎn)存儲(chǔ)節(jié)點(diǎn)內(nèi)存/
Flash數(shù)據(jù)中心網(wǎng)絡(luò)虛擬網(wǎng)卡1虛擬網(wǎng)卡2虛擬網(wǎng)卡3虛擬本地盤虛擬云盤虛擬網(wǎng)絡(luò)可編程網(wǎng)卡虛擬網(wǎng)絡(luò)功能數(shù)據(jù)面虛擬網(wǎng)絡(luò)功能控制面可編程網(wǎng)卡數(shù)據(jù)結(jié)構(gòu)處理數(shù)據(jù)面數(shù)據(jù)結(jié)構(gòu)處理控制面客戶應(yīng)用通信庫(kù)客戶應(yīng)用通信庫(kù)客戶應(yīng)用通信庫(kù)內(nèi)存/
Flash傳輸協(xié)議鍵值存儲(chǔ):基礎(chǔ)數(shù)據(jù)結(jié)構(gòu)緩存共享數(shù)據(jù)結(jié)構(gòu)最新微博用戶ID數(shù)據(jù)庫(kù)查詢查詢結(jié)果鍵值網(wǎng)站訪客瀏覽器信息圖中的點(diǎn)機(jī)器學(xué)習(xí)特征權(quán)重鍵值數(shù)據(jù)庫(kù)事務(wù)序列號(hào)相鄰的點(diǎn)越來(lái)越重要的應(yīng)用鍵值存儲(chǔ):基礎(chǔ)數(shù)據(jù)結(jié)構(gòu)共享數(shù)據(jù)結(jié)構(gòu)圖中的點(diǎn)機(jī)器學(xué)習(xí)特征權(quán)重鍵值數(shù)據(jù)庫(kù)事務(wù)序列號(hào)相鄰的點(diǎn)越來(lái)越重要的應(yīng)用設(shè)計(jì)目標(biāo)高性能低延遲寫操作比例高
向量操作
____原子操作KV-Direct相關(guān)工作軟件
(內(nèi)核繞過(guò))單邊RDMAKV-Direct
基于可編程網(wǎng)卡的鍵值存儲(chǔ)把鍵值處理從服務(wù)器端
CPU卸載到可編程網(wǎng)卡的FPGA上軟件
(內(nèi)核TCP/IP)瓶頸:操作系統(tǒng)
網(wǎng)絡(luò)協(xié)議棧瓶頸:CPU隨機(jī)內(nèi)存訪問(wèn)和鍵值操作處理瓶頸:1.通信:每次鍵值操作多輪訪問(wèn)2.同步:寫操作需要同步KV-Direct系統(tǒng)架構(gòu)網(wǎng)絡(luò)網(wǎng)絡(luò)解碼請(qǐng)求調(diào)度哈希表網(wǎng)絡(luò)編碼負(fù)載均衡PCIe
(主機(jī)內(nèi)存)智能網(wǎng)卡DRAM內(nèi)存分配挑戰(zhàn)1:網(wǎng)卡與CPU間帶寬小ToR交換機(jī)主機(jī)DRAM(256GB)PCIeGen3
x16DMA40GbEFPGACPUNIC
可編程網(wǎng)卡網(wǎng)卡DRAM(4GB)13GB/s120Mops需要盡量減少每次鍵值操作的內(nèi)存訪問(wèn)次數(shù)挑戰(zhàn)2:網(wǎng)卡與CPU間延遲高ToR交換機(jī)主機(jī)DRAM(256GB)PCIeGen3
x16DMA40GbEFPGACPUNIC
可編程網(wǎng)卡板上DRAM
(4GB)1us延遲原子操作存在依賴:需要亂序執(zhí)行,隱藏PCIe延遲挑戰(zhàn)3:利用網(wǎng)卡上的DRAMToR交換機(jī)主機(jī)DRAM(256GB)PCIeGen3
x16DMA40GbEFPGACPUNIC
可編程網(wǎng)卡板上DRAM
(4GB)如何充分利用板上DRAM?做緩存,太慢;做負(fù)載均衡,太小。方法:緩存與負(fù)載均衡結(jié)合13GB/s120Mops12GB/s100Mops挑戰(zhàn)4:網(wǎng)絡(luò)帶寬有限ToR交換機(jī)主機(jī)DRAM(256GB)PCIeGen3
x16DMA40GbEFPGACPUNIC
可編程網(wǎng)卡板上DRAM
(4GB)13GB/s120Mops5GB/s60
Mpps網(wǎng)卡與主存的PCIe帶寬有限
bucketizedchaining哈希表
slab動(dòng)態(tài)內(nèi)存分配+懶惰垃圾回收
網(wǎng)卡與主存的PCIe延遲較高
訪問(wèn)同一個(gè)鍵的操作有依賴
緩存+亂序執(zhí)行利用帶寬有限的網(wǎng)卡DRAM
緩存與負(fù)載均衡結(jié)合
一部分可緩存區(qū)域用DRAM緩存,另一部分直通PCIe
網(wǎng)絡(luò)帶寬有限
客戶端批量發(fā)送
向量操作性能優(yōu)化方案KV-Direct系統(tǒng)性能均勻分布吞吐量長(zhǎng)尾分布吞吐量延遲多網(wǎng)卡的性能可擴(kuò)放性多網(wǎng)卡的性能可擴(kuò)放性12.2億次KVop/s357瓦功耗KV-Direct性能比較吞吐量(Mops)
(讀/寫)功耗(Kops/W)技術(shù)延遲(us)
(讀/寫)Memcached1.5/1.55/5傳統(tǒng)50/50MemC34.3/4.314/14傳統(tǒng)50/50RAMCloud6/120/3.3內(nèi)核繞過(guò)5/14MICA(12網(wǎng)卡)137/135342/337內(nèi)核繞過(guò)81/81FARM6/330(261)/15單邊
RDMA4.5/10DrTM-KV115/14500(3972)
/60單邊RDMA3.4/6.3HERD35/25490/300雙邊RDMA4/4FPGA-Xilinx14/14106/106FPGA3.5/4.5Mega-KV166/80330/160GPU280/280KV-Direct(單網(wǎng)卡)180/1141487(5454)/942(3454)智能網(wǎng)卡4.3/5.4KV-Direct(10網(wǎng)卡)1220/6103417(4518)/1708(2259)智能網(wǎng)卡4.3/5.4*括號(hào)內(nèi)的功耗指的是網(wǎng)卡的功耗,針對(duì)KV-Direct、FARM等繞過(guò)服務(wù)器端CPU的系統(tǒng)。問(wèn)題軟件數(shù)據(jù)結(jié)構(gòu)處理的性能瓶頸。創(chuàng)新點(diǎn)提出用可編程網(wǎng)卡加速遠(yuǎn)程數(shù)據(jù)結(jié)構(gòu)訪問(wèn)。在服務(wù)器端繞過(guò)CPU,用可編程網(wǎng)卡通過(guò)PCIe直接訪問(wèn)主機(jī)內(nèi)存。主要挑戰(zhàn)可編程網(wǎng)卡訪問(wèn)主機(jī)內(nèi)存性能受限。主要貢獻(xiàn)把單邊RDMA的內(nèi)存操作語(yǔ)義擴(kuò)展到鍵值操作語(yǔ)義。為可編程網(wǎng)卡設(shè)計(jì)了哈希表、內(nèi)存分配器、亂序執(zhí)行引擎、負(fù)載均衡和緩存、向量操作等一系列性能優(yōu)化。實(shí)現(xiàn)了10倍于CPU的能耗效率和微秒級(jí)的延遲,是首個(gè)單機(jī)性能達(dá)到10億次每秒的通用鍵值存儲(chǔ)系統(tǒng)。KV-Direct小結(jié)背景軟件網(wǎng)絡(luò)功能和數(shù)據(jù)結(jié)構(gòu)處理的性能瓶頸可編程網(wǎng)卡在數(shù)據(jù)中心內(nèi)的部署研究?jī)?nèi)容基于可編程網(wǎng)卡的數(shù)據(jù)中心系統(tǒng)網(wǎng)絡(luò)功能加速–ClickNP數(shù)據(jù)結(jié)構(gòu)加速–KV-Direct通信原語(yǔ)加速–SocksDirect報(bào)告總結(jié)答辯報(bào)告提綱操作系統(tǒng)通信原語(yǔ)加速虛擬機(jī)監(jiān)視器(Hypervisor)虛擬機(jī)1虛擬機(jī)2虛擬機(jī)3計(jì)算節(jié)點(diǎn)可編程網(wǎng)卡網(wǎng)絡(luò)節(jié)點(diǎn)存儲(chǔ)節(jié)點(diǎn)內(nèi)存/
Flash數(shù)據(jù)中心網(wǎng)絡(luò)虛擬網(wǎng)卡1虛擬網(wǎng)卡2虛擬網(wǎng)卡3虛擬本地盤虛擬云盤虛擬網(wǎng)絡(luò)可編程網(wǎng)卡虛擬網(wǎng)絡(luò)功能數(shù)據(jù)面虛擬網(wǎng)絡(luò)功能控制面可編程網(wǎng)卡數(shù)據(jù)結(jié)構(gòu)處理數(shù)據(jù)面數(shù)據(jù)結(jié)構(gòu)處理控制面客戶應(yīng)用通信庫(kù)客戶應(yīng)用通信庫(kù)客戶應(yīng)用通信庫(kù)內(nèi)存/
Flash傳輸協(xié)議套接字:操作系統(tǒng)通信原語(yǔ)操作系統(tǒng)網(wǎng)卡發(fā)送方主機(jī)客戶應(yīng)用加鎖send系統(tǒng)調(diào)用VFS
send拷貝數(shù)據(jù),分配內(nèi)存TCP/IP協(xié)議TCP發(fā)送緩沖區(qū)網(wǎng)絡(luò)數(shù)據(jù)包標(biāo)準(zhǔn)C庫(kù)send套接字操作操作系統(tǒng)網(wǎng)卡接收方主機(jī)客戶應(yīng)用加鎖recv系統(tǒng)調(diào)用VFS
recv拷貝數(shù)據(jù),釋放內(nèi)存TCP/IP協(xié)議TCP接收緩沖區(qū)網(wǎng)絡(luò)數(shù)據(jù)包標(biāo)準(zhǔn)C庫(kù)recv套接字操作事件通知喚醒進(jìn)程進(jìn)程調(diào)度網(wǎng)絡(luò)數(shù)據(jù)包系統(tǒng)調(diào)用
用戶態(tài)庫(kù),管程負(fù)責(zé)特權(quán)操作多線程共享連接需要同步
基于令牌的共享,為常見(jiàn)情況優(yōu)化,并兼容特殊情況(如fork)緩沖區(qū)管理
新的環(huán)形緩沖區(qū)設(shè)計(jì)TCP/IP協(xié)議棧
用可編程網(wǎng)卡(RDMA)實(shí)現(xiàn)主機(jī)間可靠通信;
用共享內(nèi)存實(shí)現(xiàn)主機(jī)內(nèi)進(jìn)程間通信數(shù)據(jù)拷貝
批量頁(yè)面重映射技術(shù)操作系統(tǒng)的通知和調(diào)度
協(xié)作式多進(jìn)程消除套接字開(kāi)銷的技術(shù)SocksDirect性能單機(jī)進(jìn)程間吞吐量單機(jī)進(jìn)程間往返延遲跨機(jī)器網(wǎng)絡(luò)吞吐量跨機(jī)器網(wǎng)絡(luò)往返延遲SocksDirectCPU核數(shù)可擴(kuò)放性單機(jī)進(jìn)程間跨機(jī)器網(wǎng)絡(luò)SocksDirect實(shí)際應(yīng)用性能NginxHTTP請(qǐng)求端到端延遲問(wèn)題Linux套接字通信原語(yǔ)的性能差。創(chuàng)新點(diǎn)提出用戶態(tài)運(yùn)行庫(kù)和網(wǎng)卡硬件傳輸層相結(jié)合的方法實(shí)現(xiàn)套接字通信原語(yǔ),從而繞過(guò)操作系統(tǒng)內(nèi)核。主要挑戰(zhàn)操作系統(tǒng)虛擬文件系統(tǒng)層功能復(fù)雜,兼容性和性能存在矛盾。主要貢獻(xiàn)設(shè)計(jì)實(shí)現(xiàn)了一個(gè)用戶態(tài)套接字系統(tǒng)SocksDirect,與現(xiàn)有應(yīng)用程序完全兼容,能實(shí)現(xiàn)接近硬件極限的吞吐量和延遲,且多核性能具有可擴(kuò)放性。消除線程間同步、緩沖區(qū)管理、大數(shù)據(jù)拷貝、進(jìn)程喚醒等一系列開(kāi)銷。相比Linux提升了7至20倍吞吐量,降低延遲到1/17至1/35,并將Web服務(wù)器的HTTP延遲降低到1/5.5。SocksDirect小結(jié)背景軟件網(wǎng)絡(luò)功能和數(shù)據(jù)結(jié)構(gòu)處理的性能瓶頸可編程網(wǎng)卡在數(shù)據(jù)中心內(nèi)的部署研究?jī)?nèi)容基于可編程網(wǎng)卡的數(shù)據(jù)中心系統(tǒng)網(wǎng)絡(luò)功能加速–ClickNP數(shù)據(jù)結(jié)構(gòu)加速–KV-Direct通信原語(yǔ)加速–SocksDirect報(bào)告總結(jié)答辯報(bào)告提綱本文提出了一個(gè)基于可編程網(wǎng)卡的高性能數(shù)據(jù)中心系統(tǒng)。利用可編程網(wǎng)卡提高云計(jì)算中計(jì)算、網(wǎng)絡(luò)和存儲(chǔ)節(jié)點(diǎn)的性能,并降低成本。創(chuàng)新點(diǎn)1:提出用基于FPGA的可編程網(wǎng)卡加速云計(jì)算中的虛擬網(wǎng)絡(luò)功能。為了簡(jiǎn)化編程,提出了首個(gè)適用于高速網(wǎng)絡(luò)數(shù)據(jù)包處理、基于高級(jí)語(yǔ)言的FPGA編程框架。相比傳統(tǒng)基于CPU的網(wǎng)絡(luò)功能,把吞吐量提高了10倍,延遲降低到1/10,為每個(gè)計(jì)算節(jié)點(diǎn)節(jié)約了1/5的CPU核。創(chuàng)新點(diǎn)2:提出用可編程網(wǎng)卡加速遠(yuǎn)程數(shù)據(jù)結(jié)構(gòu)訪問(wèn)。我們以內(nèi)存鍵值存儲(chǔ)系統(tǒng)為例,在服務(wù)器端繞過(guò)CPU,用網(wǎng)卡直接訪問(wèn)主機(jī)內(nèi)存,實(shí)現(xiàn)了10倍于CPU的吞吐量和微秒級(jí)的延遲,是首個(gè)單機(jī)性能達(dá)到10億次每秒的通用鍵值存儲(chǔ)系統(tǒng)。創(chuàng)新點(diǎn)3:為了降低操作系統(tǒng)網(wǎng)絡(luò)協(xié)議棧的開(kāi)銷,提出一個(gè)軟硬件結(jié)合的用戶態(tài)套接字通信系統(tǒng),與現(xiàn)有應(yīng)用程序完全兼容,并能實(shí)現(xiàn)接近硬件極限的吞吐量和延遲,解決了長(zhǎng)期以來(lái)通用網(wǎng)絡(luò)協(xié)議棧性能較低、專用網(wǎng)絡(luò)協(xié)議棧兼容性較差的矛盾。報(bào)告總結(jié)展望:可編程網(wǎng)卡成為一等公民傳統(tǒng)加速架構(gòu)CPU把規(guī)則的任務(wù)卸載到FPGA可編程網(wǎng)卡架構(gòu)FPGA把不規(guī)則的任務(wù)卸載到CPUCPUDRAMFPGASSDGPU網(wǎng)卡網(wǎng)絡(luò)FPGADRAMCPUSSDGPU網(wǎng)卡網(wǎng)絡(luò)DRAMDRAM可編程網(wǎng)卡ClickNP:HighlyflexibleandHigh-performanceNetworkProcessingwithReconfigurableHardware
BojieLi,KunTan,Layong(Larry)Luo,YanqingPeng,RenqianLuo,NingyiXu,YongqiangXiong,PengCheng,EnhongChen
Proceedingsofthe2016ACMSIGCOMMConference(SIGCOMM‘16)KV-Direct:High-PerformanceIn-MemoryKey-ValueStorewithProgrammableNIC
BojieLi,ZhenyuanRuan,WencongXiao,YuanweiLu,YongqiangXiong,AndrewPutnam,EnhongChen,LintaoZhang
Proceedingsofthe26thSymposiumonOperatingSystemsPrinciples(SOSP‘17)SocksDirect:DatacenterSocketsCanBeFastandCompatibleBojieLi,TianyiCui,ZiboWang,WeiBai,LintaoZhangProceedingsofthe2019ACMSIGCOMMConference(SIGCOMM‘19)主要獲獎(jiǎng):2017年微軟學(xué)者獎(jiǎng)學(xué)金2017年博士生國(guó)家獎(jiǎng)學(xué)金主要科研成果FastandCompatibleUser-SpaceContainerNetworkingwithProgrammableNIC
BojieLi.(Collaborators:ZiboWanga
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 蘇州工業(yè)園區(qū)服務(wù)外包職業(yè)學(xué)院《瑤族民歌演唱》2023-2024學(xué)年第二學(xué)期期末試卷
- 山東輕工職業(yè)學(xué)院《大學(xué)英語(yǔ)4B級(jí)》2023-2024學(xué)年第一學(xué)期期末試卷
- 湖南體育職業(yè)學(xué)院《中國(guó)現(xiàn)當(dāng)代文學(xué)2》2023-2024學(xué)年第二學(xué)期期末試卷
- 賓川縣2024-2025學(xué)年數(shù)學(xué)三下期末學(xué)業(yè)水平測(cè)試模擬試題含解析
- 阜陽(yáng)幼兒師范高等專科學(xué)校《高等工程結(jié)構(gòu)》2023-2024學(xué)年第二學(xué)期期末試卷
- 河南省長(zhǎng)葛市第三實(shí)驗(yàn)高中2024-2025學(xué)年5月高考英語(yǔ)試題模練習(xí)(一)含解析
- 浙江農(nóng)業(yè)商貿(mào)職業(yè)學(xué)院《數(shù)據(jù)可視化技術(shù)》2023-2024學(xué)年第二學(xué)期期末試卷
- 廣州大學(xué)《舞蹈技能(男生)實(shí)訓(xùn)》2023-2024學(xué)年第二學(xué)期期末試卷
- 古代詩(shī)歌常識(shí)知識(shí)
- 針對(duì)大學(xué)生喜愛(ài)的舞種調(diào)研
- 體育室內(nèi)課-體育大富翁
- 180萬(wàn)噸柴油加氫裝置可行性研究報(bào)告
- DLT 5285-2018 輸變電工程架空導(dǎo)線(800mm以下)及地線液壓壓接工藝規(guī)程
- 2024年國(guó)家保安員資格考試題庫(kù)及參考答案(完整版)
- DL-T692-2018電力行業(yè)緊急救護(hù)技術(shù)規(guī)范
- 消防員訓(xùn)練傷的預(yù)防及恢復(fù)課件
- 研發(fā)綜合項(xiàng)目管理新規(guī)制度
- GB/T 43860.1220-2024觸摸和交互顯示第12-20部分:觸摸顯示測(cè)試方法多點(diǎn)觸摸性能
- 醫(yī)院感染防控基本知識(shí)2
- 泌尿外科專業(yè)英語(yǔ)詞匯 總結(jié)
- 醫(yī)療機(jī)構(gòu)制劑管理規(guī)范
評(píng)論
0/150
提交評(píng)論