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

面向眾核GPU加速系統(tǒng)的網(wǎng)絡(luò)編碼并行化及優(yōu)化

2014-09-12 11:17:14唐紹華
關(guān)鍵詞:優(yōu)化

唐紹華

湖南工程職業(yè)技術(shù)學(xué)院信息工程系,長沙 410151

◎網(wǎng)絡(luò)、通信、安全◎

面向眾核GPU加速系統(tǒng)的網(wǎng)絡(luò)編碼并行化及優(yōu)化

唐紹華

湖南工程職業(yè)技術(shù)學(xué)院信息工程系,長沙 410151

網(wǎng)絡(luò)編碼允許網(wǎng)絡(luò)節(jié)點(diǎn)在數(shù)據(jù)存儲轉(zhuǎn)發(fā)的基礎(chǔ)上參與數(shù)據(jù)處理,已成為提高網(wǎng)絡(luò)吞吐量、均衡網(wǎng)絡(luò)負(fù)載和提高網(wǎng)絡(luò)帶寬利用率的有效方法,但是網(wǎng)絡(luò)編碼的計(jì)算復(fù)雜性嚴(yán)重影響了系統(tǒng)性能。基于眾核GPU加速的系統(tǒng)可以充分利用眾核GPU強(qiáng)大的計(jì)算能力和有效利用GPU的存儲層次結(jié)構(gòu)來優(yōu)化加速網(wǎng)絡(luò)編碼?;贑UDA架構(gòu)提出了以片段并行的技術(shù)來加速網(wǎng)絡(luò)編碼和基于紋理Cache的并行解碼方法。利用提出的方法實(shí)現(xiàn)了線性隨機(jī)編碼,同時(shí)結(jié)合體系結(jié)構(gòu)對其進(jìn)行優(yōu)化。實(shí)驗(yàn)結(jié)果顯示,基于眾核GPU的網(wǎng)絡(luò)編碼并行化技術(shù)是行之有效的,系統(tǒng)性能提升顯著。

網(wǎng)絡(luò)編碼;圖形處理器(GPU);并行;計(jì)算統(tǒng)一設(shè)備架構(gòu)(CUDA);優(yōu)化

1 引言

網(wǎng)絡(luò)編碼在提高網(wǎng)絡(luò)吞吐量、改善負(fù)載均衡、減小傳輸延遲、節(jié)省節(jié)點(diǎn)能耗、增強(qiáng)網(wǎng)絡(luò)魯棒性等方面均顯示出其優(yōu)越性[1]。因此,網(wǎng)絡(luò)編碼一經(jīng)提出便引起了國際學(xué)術(shù)界的廣泛關(guān)注,其理論和應(yīng)用已廣泛應(yīng)用于分布式文件存儲[2]、P2P系統(tǒng)[3-4]、無線網(wǎng)絡(luò)[5]。然而,現(xiàn)實(shí)網(wǎng)絡(luò)環(huán)境的非確定性[6]、網(wǎng)絡(luò)編碼的計(jì)算復(fù)雜性[7]等因素嚴(yán)重影響了系統(tǒng)整體性能,使得網(wǎng)絡(luò)編碼技術(shù)的實(shí)用性不強(qiáng)。因此,網(wǎng)絡(luò)編碼優(yōu)化成為推動(dòng)網(wǎng)絡(luò)編碼技術(shù)更具實(shí)用性的重要手段[8-9],其中,優(yōu)化網(wǎng)絡(luò)編碼的計(jì)算通信開銷更是研究的熱點(diǎn),包括網(wǎng)絡(luò)編碼算法的構(gòu)造設(shè)計(jì)以及基于硬件的網(wǎng)絡(luò)編碼加速[7,10-12]。

雖然研究者在利用GPU加速網(wǎng)絡(luò)編碼方面進(jìn)行了較為深入的研究,也取得了可喜的成績。但是,他們的工作都傾向于最大化GPU計(jì)算資源的利用率,GPU計(jì)算資源耗費(fèi)不少,然而并行網(wǎng)絡(luò)編碼系統(tǒng)的效率并不高;同時(shí),對結(jié)合GPU體系結(jié)構(gòu)和存儲層次而展開的優(yōu)化工作也尚有不足。本文的工作將致力于結(jié)合眾核GPU體系結(jié)構(gòu)設(shè)計(jì)高效的并行網(wǎng)絡(luò)編碼算法和面向GPU存儲層次對并行網(wǎng)絡(luò)編碼進(jìn)行優(yōu)化。

圖1 CUDA執(zhí)行模型

2 眾核GPU體系結(jié)構(gòu)及CUDA編程模型

CUDA(Computing Unified Device Architecture,CUDA)是NVidia為適應(yīng)GPU通用計(jì)算而推出的一種高性能GPU體系架構(gòu),支持CUDA的GPU是一塊具有可擴(kuò)展處理器數(shù)量的處理器陣列,與傳統(tǒng)GPU最大的區(qū)別在于,它擁有片內(nèi)共享存儲空間用以減小片外訪存延遲[13]。CUDA執(zhí)行模型以CUDA硬件架構(gòu)為基礎(chǔ),如圖1所示。

CUDA源程序由運(yùn)行于host(CPU)上的控制程序和運(yùn)行于device(GPU)上的計(jì)算核心(kernel)兩部分組成。每一個(gè)kernel由一組相同大小的線程塊(thread block)來并行執(zhí)行,同一線程塊里面的線程通過共享存儲空間來協(xié)作完成計(jì)算,線程塊之間是相互獨(dú)立的。運(yùn)行時(shí),每一個(gè)線程塊會被分派到一個(gè)流多處理器(Streaming Multi-processor,SM)上運(yùn)行,一個(gè)SM包括8個(gè)線程處理器(Threaded Processor,TP)和一段大小為16 KB的共享存儲空間(Shared Memory),另外,GPU還提供了一定數(shù)量的全局的只讀的紋理Cache和常量Cache[14]。

3 基于CUDA架構(gòu)的并行網(wǎng)絡(luò)編碼

網(wǎng)絡(luò)編碼的本質(zhì)是賦予節(jié)點(diǎn)計(jì)算能力以提高鏈路帶寬的利用率。圖2(b)闡述了網(wǎng)絡(luò)編碼的基本原理,圖中s是信源,x和y是信宿,假設(shè)各邊的帶寬均為1 bit/s,現(xiàn)要將2比特?cái)?shù)據(jù)a和b同時(shí)從s傳到x和y。s與x和y之間均分別存在兩條獨(dú)立路徑,若采用傳統(tǒng)路由方法,如圖2(a)所示,由于存在共有鏈路wz,a和b不能同時(shí)在wz上傳輸;若采用網(wǎng)絡(luò)編碼方法,在節(jié)點(diǎn)w上對a和b執(zhí)行異或操作并轉(zhuǎn)發(fā),則節(jié)點(diǎn)x可以通過a⊕b⊕a計(jì)算解碼得到b,同理y也可以解碼得到a,從而提高了帶寬利用率。

圖2 路由分發(fā)與網(wǎng)絡(luò)編碼比較

網(wǎng)絡(luò)編碼按照節(jié)點(diǎn)輸出和輸入的關(guān)系可劃分為線性網(wǎng)絡(luò)編碼和非線性網(wǎng)絡(luò)編碼,根據(jù)編碼系數(shù)生成的隨機(jī)性可劃分為隨機(jī)網(wǎng)絡(luò)編碼和確定網(wǎng)絡(luò)編碼[1],實(shí)用的網(wǎng)絡(luò)編碼系統(tǒng)大多采用隨機(jī)線性編碼[2-3,6-7,9-12]。然而,隨機(jī)網(wǎng)絡(luò)編碼計(jì)算復(fù)雜度較高,嚴(yán)重影響了編碼系統(tǒng)的性能,為此,本文基于眾核GPU加速的系統(tǒng)設(shè)計(jì)并實(shí)現(xiàn)了并行的隨機(jī)網(wǎng)絡(luò)編碼算法,并且有效利用GPU存儲層次對其進(jìn)行優(yōu)化,使得隨機(jī)網(wǎng)絡(luò)編碼系統(tǒng)的性能有了顯著性的提升。

3.1 隨機(jī)線性編碼

所謂線性網(wǎng)絡(luò)編碼就是將節(jié)點(diǎn)傳送信息線性映射到一個(gè)有限域內(nèi),利用線性關(guān)系實(shí)現(xiàn)編譯碼的過程[9]。通信網(wǎng)絡(luò)G(V,E)中,信源s∈V的輸入數(shù)據(jù)b被分割為n個(gè)數(shù)據(jù)片段b1b2…bn,每個(gè)片段含有k個(gè)字節(jié)。一個(gè)網(wǎng)絡(luò)節(jié)點(diǎn)可以在有限域內(nèi)獨(dú)立地選擇一組隨機(jī)編碼系數(shù)c1c2…cn,生成一個(gè)k字節(jié)的編碼片段X,即

由于每個(gè)編碼片段X是原始數(shù)據(jù)片段的一個(gè)線形組合,因此編碼片段可以由線形組合中的參數(shù)集唯一確定。當(dāng)一個(gè)節(jié)點(diǎn)接收到n個(gè)線性無關(guān)的編碼片段[X1,X2,…,Xn]T,就可以進(jìn)行解碼。

根據(jù)每個(gè)原始片段的系數(shù)構(gòu)造一個(gè)n×n的系數(shù)矩陣C,C的每一行對應(yīng)于一個(gè)編碼片段的系數(shù),然后利用C解碼得出原始片段。

在方程(2)中,可以利用高斯消元法計(jì)算矩陣C的逆,再與X相乘,其復(fù)雜度為ο(n2·k)。其中,當(dāng)C是行線性無關(guān)時(shí),C的逆存在。

3.2 片段編碼并行化

正如文獻(xiàn)[7,10-12]中歸納的:線性編碼的主要性能瓶頸集中于有限域上的乘法操作和循環(huán)計(jì)算每個(gè)片段中n×k個(gè)字節(jié)的乘加操作。因此,優(yōu)化加速有限域上的乘法、循環(huán)乘加操作對提高網(wǎng)絡(luò)編碼的性能至關(guān)重要。文獻(xiàn)[7,10-12]都采用將有限域上的乘法操作轉(zhuǎn)換為基于對數(shù)和指數(shù)的并行查表,即

將有限域上的對數(shù)和指數(shù)預(yù)先計(jì)算好存儲起來,將有限域上的一次乘法操作轉(zhuǎn)換為三次查表和一次加法操作。

在計(jì)算受限的系統(tǒng)中,上述過程將昂貴的乘法操作轉(zhuǎn)換為相對廉價(jià)的查表和加法操作,對系統(tǒng)的性能有一定的提升。但是,在存儲受限的GPU結(jié)構(gòu)中,訪存查表很可能比乘法計(jì)算的延遲更大,并且,將有限域上的對數(shù)表和指數(shù)表緩存起來對共享存儲空間的壓力太大并且訪存沖突、復(fù)用率等因素也值得考慮;即使在計(jì)算受限的結(jié)構(gòu)中,可以更加激進(jìn)地將有限域上的一次乘法操作轉(zhuǎn)換為一次查表完成。

支持CUDA的GPU雖然擁有一定的片內(nèi)共享存儲空間用以減小片外訪存延遲,但是共享存儲空間受限只有16 KB,并且顯式地分派管理數(shù)據(jù)極易引起訪存沖突。但是,支持CUDA的GPU擁有數(shù)以百計(jì)的計(jì)算核,計(jì)算比訪存更有優(yōu)勢。因此,基于片段的并行編碼將采用啟動(dòng)數(shù)以千記的線程同時(shí)編碼的方法來分?jǐn)偘嘿F的乘法開銷。

在支持CUDA架構(gòu)的GPU上,最直接的并行算法就是將每一個(gè)數(shù)據(jù)片段都交付給一個(gè)獨(dú)立的線程去處理,這樣只要數(shù)據(jù)片段足夠多,就可以啟動(dòng)大量的線程來同時(shí)執(zhí)行,因此,可以將片段劃分得足夠小,以獲得啟動(dòng)更多的線程。片段的大小為1 bit不合適,數(shù)據(jù)片段沒有實(shí)際意義;數(shù)據(jù)通常以字節(jié)為單位,那么以字節(jié)為單位似乎更合理。但是片段太小只會浪費(fèi)計(jì)算資源,更重要的是會增加線程之間的通訊開銷。由于現(xiàn)有的支持CUDA的GPU計(jì)算核的字長為32位,因此,選擇片段的大小為2個(gè)字節(jié),不夠的可以在末尾補(bǔ)0,這樣兩個(gè)大小為2個(gè)字節(jié)的數(shù)據(jù)相乘,其結(jié)果在有效范圍內(nèi),并且數(shù)據(jù)精確度高。

設(shè)輸入數(shù)據(jù)b被可以分割為n個(gè)大小為2個(gè)字節(jié)數(shù)據(jù)片段b1b2…bn,將每一個(gè)片段都分派給一個(gè)線程來處理,則所需要的線程數(shù)目為:

若設(shè)置每個(gè)線程塊包含512個(gè)線程,則所需要的線程塊的數(shù)目為:

并行編碼的流組織過程如圖3所示。圖3中演示了一個(gè)線程塊中512個(gè)線程并行加載數(shù)據(jù)和進(jìn)行數(shù)據(jù)編碼的過程。在CUDA架構(gòu)中同一個(gè)線程塊內(nèi)的線程在編譯調(diào)度時(shí)會被分派到同一個(gè)流多處理器上,因此它們共享一個(gè)大小為16 KB的共享存儲空間(Shared Memory)。在并行編碼中使用共享存儲空間加載原始數(shù)據(jù)片段,處理完后直接存放在共享存儲空間,通過有效使用共享存儲空間可以減少數(shù)據(jù)的存取訪問時(shí)間。

圖3 并行編碼

3.3 主機(jī)協(xié)作并行解碼

正如文獻(xiàn)[7]中歸納的:解碼過程與編碼相比具有更高的計(jì)算復(fù)雜度,最為關(guān)鍵的是解碼過程內(nèi)在的并行性更少,后面節(jié)點(diǎn)的解碼依賴于前面節(jié)點(diǎn)的解碼結(jié)果,因此節(jié)點(diǎn)之間還必須同步。文獻(xiàn)[10]提出了一種漸進(jìn)式的高斯-約當(dāng)消元法來提高解碼效率;Shojania等人在文獻(xiàn)[7,11]中也是采用高斯-約當(dāng)消元法來解碼,不同的是,他們建議將GPU與CPU協(xié)作起來進(jìn)行解碼?;痉椒ㄊ牵河蒀PU生成隨機(jī)系數(shù),在GPU上計(jì)算矩陣的逆并解碼。

表1 支持CUDA的GPU存儲結(jié)構(gòu)

CPU與GPU協(xié)作進(jìn)行解碼是一個(gè)明智的選擇,但是,CPU還可以承擔(dān)系數(shù)矩陣求逆的任務(wù),然后將C-1傳遞給顯存,因?yàn)榫仃嚽竽婧虶PU計(jì)算kernel可以異步執(zhí)行,即,CPU將編碼kernel啟動(dòng)后可以執(zhí)行主機(jī)上的矩陣求逆,等待編碼結(jié)束后可以在最短時(shí)間內(nèi)將CPU計(jì)算的逆矩陣傳遞給顯存??紤]到C-1的復(fù)用性高,還可以進(jìn)一步將其緩存起來,在支持CUDA的GPU中,紋理Cache專門為二維空間位置而優(yōu)化過并且C-1無需更新,所以將C-1直接綁定緩存至紋理存儲空間。

考慮到網(wǎng)絡(luò)解碼過程內(nèi)在并行性的特點(diǎn),并行網(wǎng)絡(luò)解碼將參考文獻(xiàn)[13]中tiled模式的矩陣乘法來解碼。

4 面向體系結(jié)構(gòu)的并行編碼優(yōu)化

面向GPU結(jié)構(gòu)的編程需要顯式管理分派數(shù)據(jù),因此結(jié)合GPU體系結(jié)構(gòu),尤其是有效利用GPU的存儲層次進(jìn)行優(yōu)化對整個(gè)系統(tǒng)的性能提升尤為重要,因此,下面將面向GPU的體系結(jié)構(gòu)對并行網(wǎng)絡(luò)編碼系統(tǒng)進(jìn)行優(yōu)化。

4.1 有效利用GPU存儲層次

CUDA線程可在執(zhí)行過程中訪問多個(gè)存儲器空間的數(shù)據(jù),如表1所示。

共享存儲空間(Shared Memory)的有效使用是CUDA應(yīng)用優(yōu)化最常用、最容易想到的存儲優(yōu)化技術(shù),這是因?yàn)楣蚕泶鎯ζ魑挥诹鞫嗵幚砥髌?,并且它為一個(gè)線程塊內(nèi)的線程共享,為同一線程塊內(nèi)的線程之間的通信提供了便利,同時(shí),與全局存儲器相比,其速度要快得多。但是,共享存儲器的存儲空間大小有限,并且對數(shù)據(jù)的分派管理不當(dāng),會引起存儲體沖突,這時(shí)訪存就必須序列化,降低了有效帶寬。因此,并行編譯碼時(shí),謹(jǐn)慎使用共享存儲器很有必要。

并行編碼過程中,使用共享存儲空間存放中間數(shù)據(jù)結(jié)果,為后面的數(shù)據(jù)處理做準(zhǔn)備,可以避免數(shù)據(jù)在全局存儲空間來回傳遞,有效減少了訪存延遲,并且簡化了中間流的管理;并行解碼過程中,可以將系數(shù)矩陣的逆復(fù)制給每一個(gè)流多處理的共享存儲器,可以避免同一個(gè)線程塊里面的線程重復(fù)訪問全局存儲器??紤]到共享存儲器的空間受限并且作用廣泛,解碼過程將求助于其他優(yōu)化方法。

4.2 基于設(shè)備運(yùn)行時(shí)組件加速乘法操作

如前面所述,文獻(xiàn)[7,10-12]都采用將有限域上的乘法操作轉(zhuǎn)換為基于對數(shù)和指數(shù)的并行查表來避免乘法操作,本文通過大量線程并行來分?jǐn)偝朔ú僮鞯拈_銷。同時(shí),CUDA運(yùn)行時(shí)庫支持的設(shè)備運(yùn)行時(shí)組件中包括了幾乎所有的數(shù)學(xué)標(biāo)準(zhǔn)庫函數(shù)[11]。這些設(shè)備運(yùn)行時(shí)組件會被映射到GPU上的一條指令或一個(gè)指令系列,這些設(shè)備組件內(nèi)部的數(shù)學(xué)函數(shù)是標(biāo)準(zhǔn)庫函數(shù)精確度較低但速度更快的版本,但是,加法和乘法是符合IEEE規(guī)范的[11],因此精度與標(biāo)準(zhǔn)庫函數(shù)相同。

因此,設(shè)備運(yùn)行組件支持的數(shù)學(xué)函數(shù)__fmul_(x,y)和__fadd_(x,y)將嘗試應(yīng)用于網(wǎng)絡(luò)編碼計(jì)算中以進(jìn)一步改善系統(tǒng)性能。

4.3 基于紋理Cache并行解碼

紋理Cache其實(shí)就是全局存儲器的一個(gè)特定區(qū)域。但是,紋理Cache空間是被緩存的,因此紋理獲取僅需在緩存內(nèi)容失效時(shí)才讀取一次全局存儲器,否則只需讀取紋理緩存即可。同時(shí),紋理緩存已為二維空間位置而優(yōu)化過,通過只讀的紋理Cache也可以緩存無需更新的系數(shù)矩陣的逆,并且紋理Cache專門為二維空間位置而優(yōu)化過[11],有利于存儲二維的數(shù)據(jù)結(jié)構(gòu)。因此,并行解碼過程中,將主機(jī)計(jì)算好的系數(shù)矩陣的逆存儲在紋理Cache中,可以充分利用紋理Cache的優(yōu)勢,加快各個(gè)線程對系數(shù)矩陣逆的訪問,基于紋理Cache的并行解碼過程如圖4所示。

圖4 基于紋理Cache并行解碼

5 實(shí)驗(yàn)評估與性能分析

為了驗(yàn)證基于GPU架構(gòu)的并行網(wǎng)絡(luò)編碼系統(tǒng)的有效性和高效性,在Nvidia GTX280實(shí)驗(yàn)平臺上模擬了網(wǎng)絡(luò)編碼過程,其中GTX280的主要參數(shù)如表2所示。測試的原數(shù)據(jù)大小包括16 KB、32 KB、64 KB和128 KB;評估了并行編碼速度和基于紋理Cache解碼帶寬兩個(gè)主要的性能指標(biāo)。

表2 Nvidia GTX280的相關(guān)配置

5.1 基于紋理Cache并行解碼

圖5顯示了編碼片段大小對編碼運(yùn)行速度的影響,由圖5可以發(fā)現(xiàn),片段越小(1 Byte),雖然可開發(fā)的并行性越多,但是編碼速度卻遠(yuǎn)低于期望值;編碼片段大小選擇為2個(gè)Byte,雖然可開發(fā)的并行性似乎減少了,但是性能卻表現(xiàn)較好;編碼片段大小選擇為4個(gè)Byte時(shí)所表現(xiàn)出來的性能與選擇為2個(gè)Byte時(shí)差別不大,同時(shí),由于受到GPU計(jì)算核字長的限制,片段大小超過2個(gè)Byte后,計(jì)算的精確度就很難保證了。由圖5可以得出,片段并不是越大越好,也不是越小越好,這是因?yàn)?,并行粒度的大小與計(jì)算資源的利用率以及線程間的通信息息相關(guān),只要充分利用計(jì)算資源就好,并不是所有計(jì)算資源都忙起來就好,當(dāng)然也不能讓它們處于空閑。因此,實(shí)驗(yàn)數(shù)據(jù)也說明選擇片段大小為2個(gè)Byte是正確的、高效的。

圖5 片段大小對編碼時(shí)間的影響

5.2 基于片段的并行編碼速度

為了驗(yàn)證基于片段的并行網(wǎng)絡(luò)編碼的高效性,標(biāo)識文獻(xiàn)[7,10-12]采用將有限域上的乘法操作轉(zhuǎn)換為基于對數(shù)和指數(shù)的并行查表的技術(shù)進(jìn)行編碼的方法為TB(Table-Based);標(biāo)識本文提出的基于片段并行編碼的方法為Frag;Frag方法是一個(gè)原生的并行技術(shù),并沒有對其結(jié)合GPU結(jié)構(gòu)進(jìn)行優(yōu)化;因此,標(biāo)識經(jīng)過優(yōu)化的片段并行方法為Frag+Opt,這些優(yōu)化方法主要包括面向GPU體系結(jié)構(gòu)的一些優(yōu)化技術(shù),主要包括:基于設(shè)備運(yùn)行時(shí)組件加速乘法操作和有效利用共享存儲空間優(yōu)化線程間通信和簡化中間流管理。

圖6和表3顯示了基于片段的并行編碼及其優(yōu)化技術(shù)對編碼性能提升的影響,基于片段的并行編碼與基于查表的編碼方法相比較,性能提升顯著,但是面向GPU體系結(jié)構(gòu)的優(yōu)化對編碼速度的提升并不是很明顯,這是因?yàn)椴⑿芯幋a的性能瓶頸不在于乘法操作到底是多少個(gè)周期內(nèi)完成,同時(shí),由于選擇的片段大小為2 Byte,其乘法操作符合GPU字長的要求,因此不需要分割數(shù)據(jù)進(jìn)行循環(huán)乘加運(yùn)算,也減少了進(jìn)程間通信的機(jī)會。因此,面向GPU結(jié)構(gòu)的優(yōu)化在此對性能的提升不明顯,但是這些優(yōu)化方法可以推廣至其他GPU應(yīng)用中。

圖6 編碼速度比較圖

表3 編碼速度比較表

5.3 基于紋理Cache的并行解碼帶寬

圖7和表4顯示了紋理Cache對并行解碼性能的提升是顯著的。在不引入紋理Cache進(jìn)行緩存優(yōu)化的情況下,在平臺Nvidia GTX280下,每個(gè)線程塊運(yùn)行512個(gè)線程時(shí),其帶寬利用率與Shojania等人在文獻(xiàn)[11]中的相同配置下的表現(xiàn)相當(dāng);引入紋理Cache對系數(shù)矩陣的逆進(jìn)行緩存優(yōu)化后性能攀升顯著。性能提升的另外一個(gè)重要原因就是本文將隨機(jī)系數(shù)生成、矩陣求逆等任務(wù)都交給了主機(jī),也減少了GPU的處理時(shí)間,主機(jī)協(xié)作對帶寬利用率的提升貢獻(xiàn)也不少。而Shojania等人在文獻(xiàn)[11]中只是將部分任務(wù)交給了主機(jī)。因此,紋理Cache緩存以及主機(jī)協(xié)作計(jì)算等都是并行解碼過程中帶寬利用率提升的重要原因。

圖7 解碼帶寬比較圖

表4 解碼帶寬比較表

5.4 系統(tǒng)性能分析

分析圖6和圖7的實(shí)驗(yàn)數(shù)據(jù)可以發(fā)現(xiàn),F(xiàn)rag方法與TB方法比較,編碼的速度提升了2倍之多;基于紋理Cache的并行解碼的帶寬利用率也提升了近2倍。雖然這個(gè)加速比不是很高,但是它比較的對象是網(wǎng)絡(luò)編碼在GPU上優(yōu)化后的實(shí)現(xiàn)版本,并不是與單核或多核CPU比較的結(jié)果,因此這個(gè)性能加速比還是可以接受的。

但是,從圖6還可以發(fā)現(xiàn)Frag+Opt方法與Frag方法比較,性能提升不明顯,這與設(shè)計(jì)的初衷是不統(tǒng)一的。為了充分發(fā)揮Shared Memory的效用,減輕Shared Memory的壓力而求助紋理Cache優(yōu)化并行解碼,但是Shared Memory最后發(fā)揮的效用甚微,因此,Shared Memory可以嘗試用來緩存系數(shù)矩陣,因?yàn)樵L問Shared Memory比訪問紋理Cache更有優(yōu)勢。當(dāng)然,基于紋理Cache緩存系數(shù)矩陣也有自己的優(yōu)勢,它的空間比較大,可以緩存較大量的數(shù)據(jù)集,這是Shared Memory所不能比的。

同時(shí),比較表2和圖6還可以發(fā)現(xiàn),即使是基于紋理Cache優(yōu)化后的帶寬利用率也是很低的,當(dāng)然,這個(gè)帶寬利用率不能僅僅只與GPU內(nèi)部的最大的可用帶寬比較,因?yàn)樗€受限從CPU到GPU的數(shù)據(jù)傳輸速率。但是,比較表2和圖6至少可以說明基于GPU的并行網(wǎng)絡(luò)編碼系統(tǒng)的性能瓶頸在于存儲帶寬。如何進(jìn)一步提高GPU存儲帶寬的利用率將會成為研究的難點(diǎn)。

總之,基于眾核GPU加速應(yīng)用必須深入理解GPU的體系結(jié)構(gòu)及存儲層次,權(quán)衡技術(shù)的利弊及相互影響,最大限度開發(fā)利用GPU的資源。

6 結(jié)束語

網(wǎng)絡(luò)編碼一經(jīng)提出便引起了工業(yè)界和學(xué)術(shù)界的廣泛關(guān)注和認(rèn)同,但是現(xiàn)實(shí)中網(wǎng)絡(luò)編碼的應(yīng)用還遠(yuǎn)未普及,在很大程度上是因?yàn)榫W(wǎng)絡(luò)編碼引入的計(jì)算開銷?;诒姾薌PU加速的系統(tǒng)來優(yōu)化加速網(wǎng)絡(luò)編碼可以有效緩解上述難題,但是,GPU結(jié)構(gòu)是一種新涌現(xiàn)的高性能體系結(jié)構(gòu),如何更好地利用其強(qiáng)大的計(jì)算資源和可用的存儲帶寬、GPU與主機(jī)之間的通訊協(xié)作、GPU應(yīng)用的自動(dòng)優(yōu)化技術(shù)等亟需更深入的研究。

[1]楊林,鄭剛,胡曉惠,等.網(wǎng)絡(luò)編碼的研究進(jìn)展[J].計(jì)算機(jī)研究與發(fā)展,2008,45(3):400-407.

[2]Dimakis A G,Godfrey P B,Wainwright M,et al.Network coding for distributed storage systems[C]//Proceedings of the 26th Annual IEEE Conference on Computer Communications(INFOCOM 2007),Anchorage,USA,2007:2000-2008.

[3]Jafarisiavoshani M,F(xiàn)ragouli C,Diggavi S.Bottleneck discovery and overlay management in network coded Peerto-Peer systems[C]//Proceedings of the SIGCOMM Workshop on Internet Network Management,Kyoto,Japan,2007:293-298.

[4]Gkantsidis C,Miller J,Rodriguez P.Comprehensive view of a live network coding P2P system[C]//Proceedings of the 6th ACM SIGCOMM on Internet Measurement,New York,NY,2006:177-188.

[5]汪洋,林闖,李泉,等.基于非合作博弈的無線網(wǎng)絡(luò)路由機(jī)制研究[J].計(jì)算機(jī)學(xué)報(bào),2009,32(1):54-68.

[6]Chou P.Practical network coding[C]//Proceedings of the Allerton Conference on Communication,Control,and Computing,Monticello,IL,2003:63-68.

[7]Shojania H,Li Baochun.Pushing the envelope:extreme network coding on the GPU[C]//Proceedings of the 29th IEEE International Conference on Distributed Computing Systems,Montreal,QC,2009.

[8]黃政,王新,Huang Z.網(wǎng)絡(luò)編碼中的優(yōu)化問題研究[J].軟件學(xué)報(bào),2009,20(5):1349-1360.

[9]Ho T,Medard M,Koetter R,et al.A random linear network coding approach to multicast[J].IEEE Transactions on Information Theory,2006,52(10):4413-4430.

[10]Shojania H,Li Baochun.Parallelized network coding with hardware acceleration[C]//Proceedings of the 15th IEEE International Workshop on Quality of Service,Chicago,IL:2007:1-9.

[11]Shojania H,Li Baochun,Xin W.Nuclei:GPU-accelerated many-core network coding[C]//Proceedings of the INFOCOM,Rio de Janeiro,Brazil,2009:459-467.

[12]Chu X W,Zhao K Y,Wang M.Massively parallel network coding on GPUs[C]//Proceedings of the IEEE Performance,Computing and Communications Conference,Austin,Texas,2008:144-151.

[13]NVIDIA.CUDA programming guide 2.0[S].NVIDIA Corporation,2008.

[14]甘新標(biāo),沈立,王志英.基于CUDA的并行全搜索運(yùn)動(dòng)估計(jì)算法[J].計(jì)算機(jī)輔助設(shè)計(jì)與圖形學(xué)學(xué)報(bào),2010,22(3):457-460.

TANG Shaohua

Department of Information Engineering,Hunan Engineering Polytechnic,Changsha 410151,China

It is well known that network coding has emerged as a promising technique to improve network throughput, balance network loads as well as better utilization of the available bandwidth of networks,in which intermediate nodes are allowed to perform processing operations on the incoming packets other than forwarding packets.But,its potential for practical use has remained to be a challenge,due to its high computational complexity which also severely damages its performance.However,system accelerated by many-core GPU can advance network coding with powerful computing capacity and optimized memory hierarchy from GPU.A fragment-based parallel coding and texture-based parallel decoding are proposed on CUDA-enable GPU.Moreover,random linear coding is parallelizing using CUDA with optimization based on proposed techniques.Experimental results demonstrate a remarkable performance improvement,and prove that it is extraordinarily effective to parallelize network coding on many-core GPU-accelerated system.

network coding;Graphic Processing Unit(GPU);parallelizing;Compute Unified Device Architecture(CUDA); optimization

A

TP338.6

10.3778/j.issn.1002-8331.1403-0071

TANG Shaohua.Parallelizing network coding on manycore GPU-accelerated system with optimization.Computer Engineering and Applications,2014,50(21):79-84.

國家高技術(shù)研究發(fā)展計(jì)劃(863)(No.2012AA010905);國家自然科學(xué)基金(No.60803041,No.61070037);湖南省教育廳2012年度科技項(xiàng)目(No.12C1024)。

唐紹華(1980—),男,講師,工程師,研究領(lǐng)域?yàn)樾畔踩?jì)算機(jī)網(wǎng)絡(luò),高性能計(jì)算。E-mail:tsh1181@163.com

2014-03-10

2014-04-28

1002-8331(2014)21-0079-06

CNKI出版日期:2014-07-11,http://www.cnki.net/kcms/doi/10.3778/j.issn.1002-8331.1403-0071.html

猜你喜歡
優(yōu)化
超限高層建筑結(jié)構(gòu)設(shè)計(jì)與優(yōu)化思考
PEMFC流道的多目標(biāo)優(yōu)化
能源工程(2022年1期)2022-03-29 01:06:28
民用建筑防煙排煙設(shè)計(jì)優(yōu)化探討
關(guān)于優(yōu)化消防安全告知承諾的一些思考
一道優(yōu)化題的幾何解法
由“形”啟“數(shù)”優(yōu)化運(yùn)算——以2021年解析幾何高考題為例
圍繞“地、業(yè)、人”優(yōu)化產(chǎn)業(yè)扶貧
事業(yè)單位中固定資產(chǎn)會計(jì)處理的優(yōu)化
4K HDR性能大幅度優(yōu)化 JVC DLA-X8 18 BC
幾種常見的負(fù)載均衡算法的優(yōu)化
電子制作(2017年20期)2017-04-26 06:57:45
主站蜘蛛池模板: 中文字幕 91| 亚洲欧美不卡中文字幕| 四虎永久免费在线| 久久香蕉国产线看观看式| 青草国产在线视频| 久久综合伊人 六十路| 国产美女精品一区二区| 国产免费久久精品99re不卡| 免费看美女自慰的网站| 国产97公开成人免费视频| www.99精品视频在线播放| 天堂av综合网| 亚洲精品卡2卡3卡4卡5卡区| 久久国产精品无码hdav| 综1合AV在线播放| 亚洲国产在一区二区三区| 成人字幕网视频在线观看| 欧美伦理一区| 91精品国产自产91精品资源| 国产精品成人免费综合| 青青青国产视频手机| 在线观看国产小视频| 免费精品一区二区h| a亚洲视频| 欧美成人午夜影院| 国产精品性| 久一在线视频| 欧美一级大片在线观看| 免费一极毛片| 天堂网国产| 国产sm重味一区二区三区| 亚洲人在线| 伊在人亚洲香蕉精品播放 | 国产在线观看91精品| 亚洲色图欧美一区| 在线五月婷婷| 国产成人一区在线播放| 国产精品午夜福利麻豆| 亚洲区欧美区| 欧美啪啪视频免码| 国产大片喷水在线在线视频| 亚洲成肉网| 久久免费视频6| 激情视频综合网| 国产不卡在线看| 午夜色综合| 国产精品自在拍首页视频8| 国产清纯在线一区二区WWW| 亚洲成人黄色在线观看| 制服无码网站| 午夜精品久久久久久久无码软件| 欧美一级一级做性视频| 国产不卡网| 欧美第二区| yjizz国产在线视频网| 91探花在线观看国产最新| 国产一级视频久久| 欧美国产日本高清不卡| 国产美女免费| 国产综合在线观看视频| 伊人色天堂| 亚洲综合色区在线播放2019| 中文字幕66页| 99久视频| 人妻一本久道久久综合久久鬼色| 本亚洲精品网站| 免费看av在线网站网址| 亚洲第一香蕉视频| 在线观看国产精美视频| 久久香蕉国产线看观| 日本一区二区不卡视频| 国产尹人香蕉综合在线电影 | 久久精品无码一区二区日韩免费| 亚洲第一中文字幕| 亚洲精品另类| av一区二区三区高清久久| 国产高清精品在线91| 国产精品福利在线观看无码卡| 久久成人18免费| 欧美日本在线一区二区三区| 在线视频一区二区三区不卡| 超碰精品无码一区二区|