国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

面向網(wǎng)絡(luò)通信的高實(shí)時(shí)壓縮引擎設(shè)計(jì)*

2018-05-08 09:38任秀江周建毅謝向輝
關(guān)鍵詞:壓縮算法測(cè)試題數(shù)據(jù)量

任秀江,王 磊,周建毅,謝向輝

(1.江南計(jì)算技術(shù)研究所,江蘇 無(wú)錫 214083;2.數(shù)學(xué)工程與先進(jìn)計(jì)算國(guó)家重點(diǎn)實(shí)驗(yàn)室,江蘇 無(wú)錫 214125)

1 引言

現(xiàn)代高性能計(jì)算系統(tǒng)由高性能處理器和高性能互連網(wǎng)絡(luò)兩大主要組件構(gòu)成。近些年來(lái),隨著微電子集成電路工藝的迅猛發(fā)展,單硅片上可集成的電路數(shù)量越來(lái)越多,極大地促進(jìn)了以GPU(Graphics Processing Unit)、Xeon Phi為代表的新型高性能眾核處理器的發(fā)展,推動(dòng)著處理器性能持續(xù)按照摩爾定律發(fā)展,將單個(gè)計(jì)算結(jié)點(diǎn)的計(jì)算能力提高到了前所未有的高度。例如,NVIDIA的最新GPU芯片Tesla K80能夠提供2.91 TFLOPS的雙精度浮點(diǎn)計(jì)算性能[1],Intel最新款的Xeon Phi 7120X的峰值性能也達(dá)到了1.238 TFLOPS[2],應(yīng)用于“神威太湖之光”的國(guó)產(chǎn)申威26010眾核處理器雙精度浮點(diǎn)峰值性能超過(guò)3 TFLOPS[3]。而在互連網(wǎng)絡(luò)方面,受限于Serdes工藝的發(fā)展,互連網(wǎng)絡(luò)的帶寬每年以大約26%的速度提高,遠(yuǎn)低于處理器性能59%的提高速度。有研究預(yù)計(jì),到2020年,遠(yuǎn)程結(jié)點(diǎn)的訪(fǎng)存延遲將達(dá)到驚人的670 000個(gè)FLOPS的執(zhí)行時(shí)間,而帶寬只能達(dá)到0.05 b/FLOPS[4]?;ミB網(wǎng)絡(luò)的延遲和帶寬已成為制約高性能計(jì)算機(jī)性能提高的瓶頸之一[5]。

為提高互連網(wǎng)絡(luò)性能,已經(jīng)有很多研究人員從不同角度做了大量工作,比如高效的新型網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)、均衡的網(wǎng)絡(luò)負(fù)載算法、提高鏈路傳輸工藝等方面。本文從減少網(wǎng)絡(luò)注入數(shù)據(jù)量的角度出發(fā),對(duì)高性能互連網(wǎng)絡(luò)通信中的數(shù)據(jù)壓縮技術(shù)進(jìn)行研究,基于數(shù)據(jù)相似性原理,給出了一種高性能的實(shí)時(shí)壓縮網(wǎng)絡(luò)傳輸引擎設(shè)計(jì),在發(fā)送端進(jìn)行數(shù)據(jù)壓縮、接收端進(jìn)行數(shù)據(jù)解壓縮,實(shí)現(xiàn)了對(duì)用戶(hù)透明的硬件壓縮數(shù)據(jù)通信方式,通過(guò)減少網(wǎng)絡(luò)傳輸數(shù)據(jù)量來(lái)降低網(wǎng)絡(luò)負(fù)載。

本文剩余部分章節(jié)安排如下:第2節(jié)給出了相關(guān)研究,介紹了無(wú)損數(shù)據(jù)壓縮原理和主要算法,總結(jié)了實(shí)時(shí)壓縮算法的發(fā)展以及實(shí)現(xiàn)中存在的問(wèn)題;第3節(jié)介紹了網(wǎng)絡(luò)通信中的數(shù)據(jù)傳輸引擎結(jié)構(gòu),根據(jù)網(wǎng)絡(luò)包在數(shù)據(jù)傳輸引擎中的處理過(guò)程,給出了基于數(shù)據(jù)特征分析的實(shí)時(shí)數(shù)據(jù)壓縮引擎設(shè)計(jì);第4節(jié)對(duì)所實(shí)現(xiàn)的數(shù)據(jù)壓縮引擎進(jìn)行了模擬實(shí)驗(yàn)分析;第5節(jié)對(duì)全文進(jìn)行了小結(jié)。

2 相關(guān)研究

在計(jì)算機(jī)科學(xué)和信息論中,對(duì)數(shù)據(jù)壓縮的定義是:按照某種特定的編碼機(jī)制,用比原始數(shù)據(jù)少的數(shù)據(jù)比特(或其他信息單位)表示信息的過(guò)程。數(shù)據(jù)壓縮是利用縮減數(shù)據(jù)量來(lái)達(dá)到提高數(shù)據(jù)傳輸、存儲(chǔ)和處理效率的目的。

2.1 無(wú)損數(shù)據(jù)壓縮

根據(jù)壓縮數(shù)據(jù)復(fù)原后與原始數(shù)據(jù)是否有差別,數(shù)據(jù)壓縮可以分為有損壓縮和無(wú)損壓縮兩大類(lèi)。有損數(shù)據(jù)壓縮是通過(guò)犧牲數(shù)據(jù)中的次要信息來(lái)減少數(shù)據(jù)量,提高壓縮比,主要應(yīng)用于多媒體領(lǐng)域。無(wú)損數(shù)據(jù)壓縮則是通過(guò)減少冗余數(shù)據(jù)的方式來(lái)縮減數(shù)據(jù)量,無(wú)損壓縮后的數(shù)據(jù)在復(fù)原后與原始數(shù)據(jù)完全一致。在高性能計(jì)算領(lǐng)域,不允許數(shù)據(jù)損失,需使用無(wú)損壓縮。

按照尋找冗余信息的方式不同,無(wú)損壓縮算法可以分為基于統(tǒng)計(jì)的方法和基于字典的方法兩大類(lèi)。Huffman編碼、Arithmetic編碼、Shannon-Fano算法等是基于統(tǒng)計(jì)無(wú)損壓縮的典型代表[6],它們需要統(tǒng)計(jì)原始數(shù)據(jù)中各個(gè)字符的頻率,然后依據(jù)統(tǒng)計(jì)信息對(duì)輸入字符進(jìn)行重新編碼,從而達(dá)到減少數(shù)據(jù)量的目的。Lempel-Ziv類(lèi)算法[7,8]屬于基于字典的算法,基本思想是選擇輸入數(shù)據(jù)流中已經(jīng)出現(xiàn)過(guò)的字符串作為字典,后續(xù)數(shù)據(jù)流中再有相同的字符串出現(xiàn),則使用該字典中指向該字符串的指針來(lái)代替?;谧值涞膲嚎s算法中,字典的選擇對(duì)壓縮效果影響特別大。

在無(wú)損數(shù)據(jù)壓縮算法中,無(wú)論是基于統(tǒng)計(jì)還是基于字典的方法都需要對(duì)壓縮數(shù)據(jù)進(jìn)行字符串分析匹配等預(yù)處理操作,這需要大量的邏輯運(yùn)算操作,對(duì)計(jì)算能力要求高,一般都采用CPU處理器專(zhuān)門(mén)處理,有的甚至采用專(zhuān)門(mén)的ASIC芯片或GPU加速器來(lái)加速處理[9 - 11]。通常情況下,壓縮比越高,壓縮算法的處理時(shí)間越長(zhǎng)。

2.2 高實(shí)時(shí)性壓縮算法

近些年來(lái),一些新型高實(shí)時(shí)性的壓縮算法被提出并應(yīng)用于片上Cache和訪(fǎng)問(wèn)主存的數(shù)據(jù)中,用于節(jié)省訪(fǎng)存帶寬和提高訪(fǎng)存效率。文獻(xiàn)[12]給出了一種基于差值的實(shí)時(shí)壓縮算法BDI(Base-Delta-Immediate),BDI算法的原理是利用數(shù)據(jù)相似性[13 - 15],計(jì)算輸入數(shù)據(jù)相對(duì)于基值計(jì)算偏移值Delta,只要Delta值的位表示小于原始值位寬,就能達(dá)到減少數(shù)據(jù)量的目的。BDI壓縮算法最大的好處是實(shí)時(shí)性,易于硬件快速實(shí)現(xiàn),具有較小的壓縮/解壓縮延遲性。文獻(xiàn)[16,17]發(fā)現(xiàn)頻繁從主存中讀出或?qū)懭氲臄?shù)據(jù)值大多數(shù)集中在一個(gè)范圍內(nèi);文獻(xiàn)[18]利用這個(gè)特性給出了FVC(Frequent Value Compression)算法,可以用較少的bit位標(biāo)識(shí)重復(fù)的數(shù)值。FVC的基本原理與前面所述基于字典的壓縮算法類(lèi)似,只是所用字典容量較小,簡(jiǎn)化了數(shù)據(jù)統(tǒng)計(jì)的過(guò)程,能夠達(dá)到高實(shí)時(shí)性、低硬件開(kāi)銷(xiāo)的目標(biāo)。

文獻(xiàn)[19]則發(fā)現(xiàn)大多數(shù)數(shù)據(jù)都具有一定的模式規(guī)律。例如,32 bit數(shù)據(jù)中的高16 bit都是0或者都是1,或者4 B中的每個(gè)字節(jié)都相同。FPC(Frequent Pattern Compression)就是利用這種規(guī)律來(lái)壓縮數(shù)據(jù)。文獻(xiàn)[20]給出了一種叫做C-Pack的FPC壓縮算法,能夠?qū)⒍鄠€(gè)等長(zhǎng)度的數(shù)據(jù)段壓縮為1個(gè)數(shù)據(jù)段,實(shí)現(xiàn)多個(gè)word字并行壓縮。與FVC類(lèi)似,當(dāng)出現(xiàn)同一個(gè)數(shù)據(jù)段內(nèi)的字有的能壓縮,有的不能壓縮時(shí),解壓縮過(guò)程串行化。為了優(yōu)化解壓縮延遲,文獻(xiàn)[21]中實(shí)現(xiàn)了5級(jí)流水的解壓縮設(shè)計(jì),來(lái)緩解解壓縮的延遲壓力;文獻(xiàn)[22]則針對(duì)數(shù)據(jù)段中混合的壓縮數(shù)據(jù)和非壓縮數(shù)據(jù)的片上管理給出了一種新型管理架構(gòu)。

2.3 高速互連網(wǎng)絡(luò)中的數(shù)據(jù)壓縮問(wèn)題

通過(guò)前面的研究可以知道,高效的數(shù)據(jù)壓縮算法是建立在對(duì)數(shù)據(jù)規(guī)律的分析基礎(chǔ)上的。高實(shí)時(shí)性環(huán)境中,對(duì)數(shù)據(jù)處理的低延遲需求決定了對(duì)數(shù)據(jù)不能過(guò)多迭代分析,在高實(shí)時(shí)性環(huán)境中實(shí)現(xiàn)數(shù)據(jù)壓縮要解決好壓縮效率和壓縮延遲的矛盾關(guān)系。

在高性能計(jì)算系統(tǒng)中,對(duì)高速互連網(wǎng)絡(luò)的延遲、帶寬都有嚴(yán)格的要求,對(duì)通信數(shù)據(jù)進(jìn)行壓縮能夠帶來(lái)減少通信數(shù)據(jù)量的好處,但是不能以犧牲通信延遲或降低通信帶寬為代價(jià)。因此,對(duì)高速互連網(wǎng)絡(luò)中的通信數(shù)據(jù)進(jìn)行壓縮時(shí),所面臨的挑戰(zhàn)不僅僅是算法的壓縮收益,還要解決算法的實(shí)時(shí)性、硬件可實(shí)現(xiàn)性等問(wèn)題。

Figure 1 Structure of data transmission engine and processing flow of a packet圖1 數(shù)據(jù)傳輸引擎結(jié)構(gòu)和網(wǎng)絡(luò)包處理過(guò)程

3 網(wǎng)絡(luò)通信數(shù)據(jù)壓縮

本節(jié)根據(jù)網(wǎng)絡(luò)接口中數(shù)據(jù)傳輸引擎的結(jié)構(gòu)特征,實(shí)現(xiàn)了一種高效流水的硬件數(shù)據(jù)壓縮、解壓縮機(jī)制,在不需要用戶(hù)干預(yù)、不影響原有通信性能的前提下,實(shí)現(xiàn)對(duì)通信數(shù)據(jù)自動(dòng)壓縮/解壓縮處理,能夠降低網(wǎng)絡(luò)上數(shù)據(jù)傳輸量,相當(dāng)于提高了網(wǎng)絡(luò)傳輸效率。減少網(wǎng)絡(luò)上的數(shù)據(jù)傳輸量,對(duì)降低實(shí)際應(yīng)用過(guò)程中的網(wǎng)絡(luò)系統(tǒng)負(fù)載也有積極意義。

3.1 網(wǎng)絡(luò)接口與數(shù)據(jù)傳輸引擎

高速互連網(wǎng)絡(luò)由路由器、網(wǎng)絡(luò)接口組成。其中,路由器的互連構(gòu)成網(wǎng)絡(luò)的拓?fù)浣Y(jié)構(gòu);網(wǎng)絡(luò)接口則是計(jì)算結(jié)點(diǎn)與網(wǎng)絡(luò)的中間橋梁,通過(guò)配置不同的網(wǎng)絡(luò)接口,計(jì)算結(jié)點(diǎn)可以接入不同的互連網(wǎng)絡(luò)中。

如圖1所示,數(shù)據(jù)傳輸引擎是網(wǎng)絡(luò)接口中的主要組成部件,按照數(shù)據(jù)傳輸?shù)姆较?,?shù)據(jù)傳輸引擎分為數(shù)據(jù)發(fā)送和數(shù)據(jù)接收兩個(gè)模塊。數(shù)據(jù)發(fā)送部件DSU(Data Send Unit)負(fù)責(zé)從計(jì)算結(jié)點(diǎn)主存中讀取數(shù)據(jù),按照傳輸協(xié)議組織成網(wǎng)絡(luò)包后注入網(wǎng)絡(luò)。數(shù)據(jù)接收部件DRU(Data Receive Unit)則是從網(wǎng)絡(luò)中接收網(wǎng)絡(luò)包,解析網(wǎng)絡(luò)包中控制信息,將數(shù)據(jù)寫(xiě)入結(jié)點(diǎn)主存。

眾所周知,處理器為了優(yōu)化訪(fǎng)存性能通常會(huì)設(shè)置片上緩存Cache,為了提高主存訪(fǎng)問(wèn)效率內(nèi)存控制器中也會(huì)設(shè)置各種緩沖,為了保持?jǐn)?shù)據(jù)在主存和片上緩存、以及片上緩存間的一致性,對(duì)主存的訪(fǎng)問(wèn)粒度通常設(shè)置為Cache行大小,Cache行的大小一般為32字節(jié)或64字節(jié)。

處理器之間的通信則需要通過(guò)互連網(wǎng)絡(luò)以消息傳輸?shù)姆绞竭M(jìn)行。消息通信與處理器核心訪(fǎng)存相比,通信距離遠(yuǎn)延遲大,網(wǎng)絡(luò)包中不僅包含有效數(shù)據(jù),還包含一些必要的通信控制信息(如路由信息等),這些有效負(fù)荷之外的內(nèi)容也會(huì)占用網(wǎng)絡(luò)傳輸帶寬。為提高一次網(wǎng)絡(luò)通信的有效帶寬,增加網(wǎng)絡(luò)包中有效負(fù)荷是常用的辦法,一個(gè)網(wǎng)絡(luò)包中的最大數(shù)據(jù)量通常為幾百字節(jié)到幾千字節(jié)[23],一般都比處理器中Cache行的容量大。

如圖2所示,網(wǎng)絡(luò)包與主存訪(fǎng)問(wèn)粒度之間的差異,通常由網(wǎng)絡(luò)接口中的數(shù)據(jù)傳輸引擎來(lái)處理。一個(gè)網(wǎng)絡(luò)包的產(chǎn)生、傳輸和接收過(guò)程中,需要在數(shù)據(jù)傳輸引擎中進(jìn)行兩次存儲(chǔ)轉(zhuǎn)發(fā)。我們?cè)诰W(wǎng)絡(luò)傳輸引擎中加入壓縮、解壓縮部件,利用存儲(chǔ)轉(zhuǎn)發(fā)的過(guò)程優(yōu)化壓縮算法實(shí)現(xiàn),完成網(wǎng)絡(luò)包的壓縮和解壓縮過(guò)程,減少網(wǎng)絡(luò)包的實(shí)際傳輸長(zhǎng)度。

(1)網(wǎng)絡(luò)包生成階段:在數(shù)據(jù)發(fā)送模塊中,緩存主存數(shù)據(jù),完成壓縮后轉(zhuǎn)發(fā)到高速互連網(wǎng)上;

(2)網(wǎng)絡(luò)包接收階段:在數(shù)據(jù)接收模塊中,緩存網(wǎng)絡(luò)包,完成解壓縮后轉(zhuǎn)發(fā)寫(xiě)入主存。

Figure 2 Processes of sending and receiving a packet圖2 網(wǎng)絡(luò)包發(fā)送和接收過(guò)程

3.2 基于數(shù)據(jù)特征預(yù)分析的實(shí)時(shí)壓縮引擎

在DSU中實(shí)現(xiàn)了實(shí)時(shí)數(shù)據(jù)壓縮引擎RTCE(Real-Time Compress Engine),RTCE由數(shù)據(jù)特征分析模塊DFU(Data Feature-analysis Unit)和壓縮網(wǎng)絡(luò)包生成模塊PCU(Packet Compression Uint)兩部分組成。數(shù)據(jù)特征分析模塊對(duì)離散返回的訪(fǎng)存數(shù)據(jù)進(jìn)行特征過(guò)濾,并保存分析結(jié)果;網(wǎng)絡(luò)包的所有數(shù)據(jù)都返回后,PCU模塊根據(jù)數(shù)據(jù)特征分析結(jié)果,對(duì)數(shù)據(jù)進(jìn)行壓縮,然后將壓縮數(shù)據(jù)和壓縮說(shuō)明信息(Compress Direction)一并生成網(wǎng)絡(luò)包,發(fā)送到互連網(wǎng)絡(luò)中。

3.2.1 壓縮網(wǎng)絡(luò)包格式

實(shí)時(shí)壓縮算法的主要原理是利用數(shù)據(jù)的空間局部相似性特征。網(wǎng)絡(luò)通信中,網(wǎng)絡(luò)包數(shù)據(jù)量較大,若以網(wǎng)絡(luò)包為單位進(jìn)行壓縮,不僅并行壓縮器的開(kāi)銷(xiāo)大,還可能存在數(shù)據(jù)相似性較差導(dǎo)致壓縮收益低的問(wèn)題;若以訪(fǎng)存粒度為單位進(jìn)行壓縮,壓縮單位數(shù)量增加,附加的壓縮說(shuō)明信息比例增大,也會(huì)影響壓縮效果。

為解決這個(gè)問(wèn)題,在網(wǎng)絡(luò)包粒度和訪(fǎng)存粒度之間尋找一個(gè)折衷的數(shù)據(jù)量單位實(shí)現(xiàn)數(shù)據(jù)壓縮,稱(chēng)為壓縮數(shù)據(jù)塊CDB(Compress Data Block)。如圖2a所示為網(wǎng)絡(luò)包懸掛緩沖條目、壓縮數(shù)據(jù)塊CDB、訪(fǎng)存響應(yīng)之間的粒度大小關(guān)系。數(shù)據(jù)壓縮后的數(shù)據(jù)塊需要攜帶數(shù)據(jù)塊壓縮說(shuō)明DCI(Data Compress Information),到達(dá)目標(biāo)結(jié)點(diǎn)后,數(shù)據(jù)傳輸引擎可以根據(jù)DCI對(duì)CDB進(jìn)行解壓縮。如圖3a和圖3b所示,分別為不帶壓縮數(shù)據(jù)網(wǎng)絡(luò)包和帶壓縮數(shù)據(jù)網(wǎng)絡(luò)包PCD(Packet with Compress Data-block)的格式。PCD的有效負(fù)荷中攜帶了DCI,DCI信息在網(wǎng)絡(luò)傳輸中屬于數(shù)據(jù)壓縮的開(kāi)銷(xiāo)。如果數(shù)據(jù)塊不能壓縮或者壓縮后網(wǎng)絡(luò)包負(fù)荷大于壓縮前,DCI的存在會(huì)增加網(wǎng)絡(luò)傳輸量,可以在網(wǎng)絡(luò)包傳輸信息中采用標(biāo)記位來(lái)區(qū)分壓縮網(wǎng)絡(luò)包和非壓縮網(wǎng)絡(luò)包。

Figure 3 Structure of a network packet圖3 網(wǎng)絡(luò)包結(jié)構(gòu)

3.2.2 數(shù)據(jù)特征分析

從前面第2節(jié)的介紹中可以知道,BDI算法和FVC算法易于硬件實(shí)現(xiàn),是常用的實(shí)時(shí)壓縮算法。圖4為兩種算法的壓縮原理示意圖,可以看到兩種壓縮算法的壓縮效率與Base基值粒度和數(shù)值選擇都有很大關(guān)系。

Figure 4 Principle of real time compression algorithm圖4 實(shí)時(shí)壓縮算法原理示意

RTCE中同時(shí)選擇BDI算法和FVC算法作為壓縮算法。使用DFU模塊在訪(fǎng)存響應(yīng)數(shù)據(jù)返回階段,對(duì)數(shù)據(jù)特征進(jìn)行分析。DFU模塊中選擇了7種壓縮算法對(duì)數(shù)據(jù)進(jìn)行過(guò)濾,7種算法如表1所示。訪(fǎng)存響應(yīng)數(shù)據(jù)返回時(shí),DFU累計(jì)每種壓縮算法的壓縮收益。數(shù)據(jù)塊的訪(fǎng)存數(shù)據(jù)全部返回后,DFU形成對(duì)CBD內(nèi)數(shù)據(jù)壓縮收益評(píng)估。在PCU進(jìn)行數(shù)據(jù)壓縮時(shí),根據(jù)DFU模塊的評(píng)估結(jié)果,選擇收益最高的壓縮算法對(duì)數(shù)據(jù)進(jìn)行壓縮傳輸。

Table 1 Description of the hybrid compression algorithm表1 混合壓縮算法組成說(shuō)明

3.2.3 壓縮網(wǎng)絡(luò)包生成和解壓縮

網(wǎng)絡(luò)包的所有訪(fǎng)存數(shù)據(jù)返回后,PCU部件開(kāi)始?jí)嚎s網(wǎng)絡(luò)包。按照數(shù)據(jù)塊順序,從DFU中讀取數(shù)據(jù)塊的壓縮說(shuō)明DCI,根據(jù)壓縮說(shuō)明中提示的壓縮算法,對(duì)數(shù)據(jù)塊中的數(shù)據(jù)進(jìn)行壓縮移位,然后將壓縮后的數(shù)據(jù)塊保存到網(wǎng)絡(luò)包發(fā)送緩沖中;等到網(wǎng)絡(luò)包中所有數(shù)據(jù)塊都完成壓縮處理后,再將網(wǎng)絡(luò)包發(fā)送到互連網(wǎng)絡(luò)中,網(wǎng)絡(luò)包發(fā)送過(guò)程中將壓縮數(shù)據(jù)移位拼接成連續(xù)數(shù)據(jù)。

由于壓縮后的數(shù)據(jù)移位邏輯較長(zhǎng),為優(yōu)化時(shí)序?qū)⒕W(wǎng)絡(luò)包的生成和發(fā)送分為上述兩階段進(jìn)行。如圖1中所示,為保證網(wǎng)絡(luò)包流水傳輸,PCU中設(shè)置多份數(shù)據(jù)壓縮邏輯。接收部件處理壓縮網(wǎng)絡(luò)包的過(guò)程正好相反,先將網(wǎng)絡(luò)包解析為壓縮數(shù)據(jù)塊,再由數(shù)據(jù)塊還原為原始數(shù)據(jù),最后寫(xiě)入主存中。

4 模擬實(shí)驗(yàn)與分析

對(duì)實(shí)時(shí)壓縮引擎RTCE進(jìn)行了RTL編碼實(shí)現(xiàn),建立了模擬仿真環(huán)境,從數(shù)據(jù)壓縮收益和數(shù)據(jù)處理效率兩個(gè)方面對(duì)RTCE進(jìn)行了測(cè)試。第3節(jié)中分析的不同壓縮數(shù)據(jù)塊大小劃分,對(duì)壓縮收益可能會(huì)有影響。模擬實(shí)驗(yàn)中,配置了64 B、128 B、256 B、512 B四種不同數(shù)據(jù)塊大小的情況,比較不同數(shù)據(jù)分塊大小對(duì)數(shù)據(jù)壓縮效率的影響。

為了保證測(cè)試數(shù)據(jù)的真實(shí)性,選擇從通用測(cè)試題和實(shí)際應(yīng)用課題兩個(gè)方面,抽取數(shù)據(jù)流軌跡作為RTCE的測(cè)試源數(shù)據(jù)。SPEC2006是業(yè)界通用測(cè)試集,包含了各個(gè)領(lǐng)域的應(yīng)用測(cè)試題,從SPEC2006[24]測(cè)試集選擇了20道數(shù)據(jù)密集型測(cè)試題,抓取測(cè)試題運(yùn)行過(guò)程中的數(shù)據(jù)流軌跡用作測(cè)試數(shù)據(jù);Graph500是衡量計(jì)算機(jī)處理數(shù)據(jù)密集型應(yīng)用能力的測(cè)試基準(zhǔn),從Graph500中抓取不同運(yùn)行階段的通信數(shù)據(jù)流軌跡用作測(cè)試數(shù)據(jù);此外,還對(duì)并行應(yīng)用課題化學(xué)非平衡流CFD(Computational Fluid Dynamics)算法[25]中的通信數(shù)據(jù)進(jìn)行了壓縮測(cè)試。

4.1 數(shù)據(jù)壓縮性能測(cè)試

實(shí)驗(yàn)中使用壓縮收益來(lái)表述壓縮結(jié)果,即壓縮后數(shù)據(jù)減少量占原數(shù)據(jù)量的比例進(jìn)行表述,比例越大表示數(shù)據(jù)被壓縮的幅度越大,壓縮效果越好。

壓縮收益 = (原始數(shù)據(jù)量-壓縮后數(shù)據(jù)量)/ 原始數(shù)據(jù)量

Figure 5 Data compression results of tests圖5 測(cè)試課題數(shù)據(jù)壓縮結(jié)果

圖5a所示為SPEC2006測(cè)試題中抽取數(shù)據(jù)的壓縮結(jié)果,每個(gè)測(cè)試題按數(shù)據(jù)塊大小分別測(cè)試了四組壓縮實(shí)驗(yàn)。從圖5結(jié)果可以看到,20道測(cè)試題的數(shù)據(jù)壓縮收益均在20%以上,有12道測(cè)試題的數(shù)據(jù)壓縮收益達(dá)到30%,測(cè)試題libquantum的數(shù)據(jù)壓縮收益最高達(dá)到47%,平均數(shù)據(jù)壓縮收益為32.8%。

圖5b所示為Graph500測(cè)試題中抽取數(shù)據(jù)的壓縮結(jié)果,橫坐標(biāo)上s16、s18、s20、s22表示測(cè)試題的不同運(yùn)行階段的通信數(shù)據(jù)。從圖5b中可以看到,Graph500測(cè)試題中各階段數(shù)據(jù)的壓縮收益達(dá)到47%以上。在課題運(yùn)行初期的s16階段,采用512 B數(shù)據(jù)塊時(shí)壓縮收益最高達(dá)到52.9%,平均數(shù)據(jù)壓縮收益為48.7%。

圖5c所示為CFD算法中通信數(shù)據(jù)的壓縮結(jié)果,橫坐標(biāo)為不同計(jì)算結(jié)點(diǎn)發(fā)出的通信數(shù)據(jù)。從圖5c中可以看到,數(shù)據(jù)壓縮收益在38%~51%,平均數(shù)據(jù)壓縮收益為46.2%。

Figure 6 Comparison of compression gains for different data block sizes圖6 不同數(shù)據(jù)塊大小的壓縮收益比較

圖6中對(duì)不同數(shù)據(jù)塊大小下的壓縮收益進(jìn)行了比較。SPEC2006中的測(cè)試題結(jié)果顯示,不同數(shù)據(jù)塊大小對(duì)大多數(shù)課題的壓縮收益沒(méi)有太大影響,差異最大的是omnetpp測(cè)試題,壓縮收益差異范圍小于5%;從Graph500中數(shù)據(jù)測(cè)試結(jié)果來(lái)看,數(shù)據(jù)塊越大壓縮效果越好,但差異范圍也在5%以?xún)?nèi);CFD算法的數(shù)據(jù)結(jié)果中,數(shù)據(jù)塊越大數(shù)據(jù)壓縮收益越大,但差異程度較小,在6%以?xún)?nèi)。綜上可以知道,RTCE采用不同數(shù)據(jù)塊劃分下的數(shù)據(jù)壓縮收益變化不大,差異小于6%。

最后,在CDB數(shù)據(jù)塊為64 B的情況下,對(duì)RTCE中采用的混合壓縮算法與各個(gè)單一壓縮算法進(jìn)行測(cè)試比較。從圖7的對(duì)比結(jié)果可以看到,與單一壓縮算法相比,采用混合算法的壓縮收益提高明顯。有些測(cè)試數(shù)據(jù)采用單一壓縮算法甚至出現(xiàn)了數(shù)據(jù)量增加的情況,這是因?yàn)椴煌臏y(cè)試課題數(shù)據(jù)具有不同的特征,采用單一算法雖然能夠簡(jiǎn)化硬件設(shè)計(jì)復(fù)雜度,但也同時(shí)降低了壓縮結(jié)構(gòu)的適用范圍。

4.2 RTCE引擎實(shí)現(xiàn)開(kāi)銷(xiāo)評(píng)估

RTCE引擎增加的數(shù)據(jù)壓縮邏輯和解壓縮邏輯,通過(guò)增加數(shù)據(jù)緩沖將數(shù)據(jù)的移位拼接分為數(shù)據(jù)塊間和數(shù)據(jù)塊內(nèi)兩步進(jìn)行,通過(guò)增加有限的啟動(dòng)延遲,保證了壓縮/解壓縮過(guò)程的處理流水。在NC-Verilog模擬環(huán)境觀測(cè)增加的啟動(dòng)延遲小于20個(gè)時(shí)鐘節(jié)拍。在28 nm工藝下,采用標(biāo)準(zhǔn)單元庫(kù)對(duì)RTCE的RTL代碼進(jìn)行了邏輯綜合和后端物理設(shè)計(jì),時(shí)序分析結(jié)果顯示RTCE能夠運(yùn)行在1 GHz以上;布局布線(xiàn)后,RTCE的面積開(kāi)銷(xiāo)為2 744 132.493 1 μm2,其中壓縮/解壓縮組合邏輯開(kāi)銷(xiāo)占比7.8%,面積開(kāi)銷(xiāo)占比16.4%,面積開(kāi)銷(xiāo)增加主要是由于壓縮/解壓縮邏輯中增加了大量SRAM構(gòu)成的存儲(chǔ)器所致。

Figure 7 Comparison of compression gains for different compression algorithms圖7 不同算法壓縮收益比較

5 結(jié)束語(yǔ)

本文對(duì)實(shí)時(shí)數(shù)據(jù)壓縮進(jìn)行了研究,面向網(wǎng)絡(luò)通信給出了一種實(shí)時(shí)壓縮網(wǎng)絡(luò)傳輸引擎RTCE設(shè)計(jì),實(shí)現(xiàn)了對(duì)用戶(hù)透明的硬件壓縮數(shù)據(jù)通信方式;使用SPEC2006、Graph500等測(cè)試題中數(shù)據(jù)流軌跡對(duì)RTCE進(jìn)行了壓縮測(cè)試實(shí)驗(yàn),實(shí)驗(yàn)結(jié)果表明經(jīng)過(guò)RTCE后數(shù)據(jù)量平均減少35.4%;在應(yīng)用課題CFD算法的數(shù)據(jù)測(cè)試中,壓縮后數(shù)據(jù)量平均減少46.2%。NC-Verilog模擬結(jié)果顯示,RTCE的數(shù)據(jù)處理過(guò)程流水,傳輸帶寬不變,啟動(dòng)延遲增加20個(gè)時(shí)鐘節(jié)拍,壓縮/解壓縮邏輯面積開(kāi)銷(xiāo)僅增加16.4%。綜上所述,RTCE實(shí)現(xiàn)了通信數(shù)據(jù)的硬件壓縮,能夠在不降低數(shù)據(jù)傳輸引擎性能的前提下,減少網(wǎng)絡(luò)注入數(shù)據(jù)量,對(duì)通信帶寬日益寶貴的高性能互連網(wǎng)絡(luò)有一定的現(xiàn)實(shí)意義。

最后,感謝為本文工作提供測(cè)試數(shù)據(jù)幫助的張昆博士、林恒博士、劉鑫博士。

參考文獻(xiàn):

[1] http://images.nvidia.com/content/tesla/pdf/nvidia-tesla-k80-overview.

[2] https://www.intel.com/content/www/us/en/high-performance-computing/high-performance-xeon-phi-coprocessor-brief.html.

[3] https://www.top500.org/system/178764.

[4] Graham S,Snir M,Patterson C.Getting up to speed:The future of supercomputing [J].National Academies Press Washington Dc,2004,149(1):147-153.

[5] Ang J, Brightwell R, Donofrio D, et al. Exascale computing and the roll of co-design[J].Advance in Parallel Computing,2012,20:43-64.

[6] Hu Yu-chen,Chang Chin-chen.A new lossless compression scheme based on Huffman coding scheme for image compression [J].Signal Processing:Image Communication,2000,16(4):367-372.

[7] Ziv J,Lempel A.A universal algorithm for sequential data compression[J].IEEE Transactions on Information Theory,1977,23(3):337-343.

[8] Shun J,Zhao F.Practical parallel lempel-Ziv factorization[C]∥Proc of Data Compression Conference,2013:123-132.

[9] Ozsoy A,Swany M.CULZSS:LZSS lossless data compression on CUDA[C]∥Proc of IEEE International Conference on CLUSTER Computing,2011:403-411.

[10] Ozsoy A, Swany M,Chauhan A.Pipelined parallel LZSS for streaming data compression on GPGPUs[C]∥IEEE,International Conference on Parallel and Distributed Systems.IEEE Computer Society,2012:37-44.

[11] Erdodi L. File compression with LZO algorithm using NVIDIA CUDA architecture[C]∥Proc of 2012 4th IEEE International Symposium on Logistics and Industrial Informatics(LINDI),2012:251-254.

[12] Pekhimenko G,Seshadri V,Mutlu O,et al.Base-delta-immediate compression:Practical data compression for on-chip caches[C]∥Proc of International Conference on Parallel Architectures and Compilation Techniques,2012:377-388.

[13] Collange S,Defour D,Zhang Y.Dynamic detection of uniform and affine vectors in GPGPU computations[C]∥Proc of International Conference on Parallel Processing,2009:46-55.

[14] Collange S,Kouyoumdjian A.Affine vector cache for memory bandwidth savings:Technical Report ensl-00649200[R].ENS de lyon,University de lyon,2011.

[15] Kim J,Torng C,Srinath S,et al.Microarchitectural mechanisms to exploit value structure in SIMT architectures[C]∥Proc of International Symposium on Computer Architecture,2013:130-141.

[16] Lefurgy C,Bird P,Chen I,et al.Improving code density using compression techniques[C]∥Proc of the 13th IEEE/ACMInternational Symposium on Microarchitecture,1997:194-203.

[17] Orosa L, Azevedo R. Temporal frequent value locality[C]∥Proc of the 27th International Conference on Application-specific Systems,Architectures and Processors(ASAP),2016:147-152.

[18] Lee Y, Krashinsky R, Grover V,et al.Convergence and scalarization for data-parallel architectures[C]∥Proc of IEEE/ACM International Symposium on Code Generation and Optimization,2013:1-11.

[19] Alameldeen A R,Wood D A.Adaptive cache compression for high-performance processors[C]∥Proc of International Symposium on Computer Architecture,2004:212-223.

[20] Chen X,Yang L,Dick R P,et al.C-pack:A high-performance microprocessor cache compression algorithm [J].IEEE Transactions on Very Large Scale Integration Systems,2010,18(8):1196-1208.

[21] Alameldeen A R,Wood D A.Frequent pattern compression:A significance-based compression scheme for L2 caches:Technical Report 1500[R].Madison:University of Wisconsin-Madison Department of Computer Sciences,2004.

[22] Pekhimenko G,Seshadri V,Kim Y,et al.Linearly compressed pages:A low-complexity,low-latency main memory compression framework[C]∥Proc of IEEE/ACM International Symposium on Microarchitecture,2013:172-184.

[24] Standard Performance Evaluation Corporation.SPEC CPU2006 benchmark [EB/OL].[2016-04-21].http://www.spec.org/cpu2006.

[23] InfiniBand Architecture specification[EB/OL].[2000-10-24]. http://www.infinibandta.org.

[25] Wang Z J, Fidkowski K,Abgrall R,et al.High-order CFD methods:Current status and perspective [J].International Journal for Numerical Methods in Fluids,2013,72(8):811-845.

猜你喜歡
壓縮算法測(cè)試題數(shù)據(jù)量
基于大數(shù)據(jù)量的初至層析成像算法優(yōu)化
高刷新率不容易顯示器需求與接口標(biāo)準(zhǔn)帶寬
高一化學(xué)期末測(cè)試題(一)
高一化學(xué)期末測(cè)試題(二)
寬帶信號(hào)采集與大數(shù)據(jù)量傳輸系統(tǒng)設(shè)計(jì)與研究
基于參數(shù)識(shí)別的軌道電路監(jiān)測(cè)數(shù)據(jù)壓縮算法研究
《一次函數(shù)》測(cè)試題
一種基于嵌入式實(shí)時(shí)操作系統(tǒng)Vxworks下的數(shù)據(jù)壓縮技術(shù)
必修1、必修2第二輪復(fù)習(xí)測(cè)試題
基于HBASE的大數(shù)據(jù)壓縮算法的研究
鄂伦春自治旗| 依兰县| 江华| 辽源市| 资讯 | 疏附县| 张掖市| 屏山县| 高安市| 德钦县| 万荣县| 汝州市| 萨迦县| 台南市| 浑源县| 定襄县| 扬中市| 遂昌县| 汪清县| 和龙市| 武川县| 太保市| 梓潼县| 孝感市| 石家庄市| 施秉县| 新建县| 横山县| 钟山县| 满洲里市| 吴旗县| 宁津县| 彭水| 南通市| 忻城县| 吐鲁番市| 东港市| 高淳县| 沛县| 武川县| 达尔|