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

一種基于三維可變換CNN加速結(jié)構(gòu)的并行度優(yōu)化搜索算法

2022-04-21 02:05:48屈心媛黃志洪
電子與信息學報 2022年4期
關(guān)鍵詞:優(yōu)化資源

屈心媛 徐 宇 黃志洪 蔡 剛 方 震

(中國科學院空天信息創(chuàng)新研究院 北京 100190)

(中國科學院大學電子電氣與通信工程學院 北京 100049)

1 引言

卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Network,CNN)以其突出的性能優(yōu)勢,在人工智能領(lǐng)域引起了廣泛的關(guān)注,并被應用于圖像分類、人臉識別、自動駕駛和醫(yī)學成像等場景中。LeCun等人[1]于1998年提出了第1個經(jīng)典CNN模型LeNet-5。此后,隨著人工智能的發(fā)展,CNN的結(jié)構(gòu)變得越來越復雜—層數(shù)更深,規(guī)模更大,計算量迅速增加。這為CNN硬件加速器的設(shè)計帶來了巨大的挑戰(zhàn)。圖形處理器(Graphic Processing Units, GPU)、專用集成電路(Application Specific Integrated Circuit,ASIC)、現(xiàn)場可編程門陣列(Field Programmable Gate Array, FPGA)是常見的CNN正向推斷平臺。其中,基于FPGA的CNN硬件加速器因高并行、低功耗、可重復編程的特性,越來越受到學界和業(yè)界的廣泛關(guān)注。

CNN是一種計算密集型網(wǎng)絡(luò),合理利用FPGA片上計算資源是加速器設(shè)計的關(guān)鍵。然而,文獻[2]經(jīng)過客觀全面的評估指出,許多現(xiàn)有CNN加速器的計算資源利用率不理想,這降低了加速器的計算吞吐率和性能功耗比[3–9]。卷積計算結(jié)構(gòu)與并行度算法靈活度不足是限制資源利用率優(yōu)化的主要原因,例如:文獻[6,7]中卷積計算結(jié)構(gòu)的時間粒度與資源粒度不均衡、文獻[8]中并行度探索空間受限等。

為優(yōu)化加速器性能,文獻[2]提出了一種3維可變換的CNN加速結(jié)構(gòu),通過細粒度調(diào)節(jié)極大地提高了計算結(jié)構(gòu)的靈活性。為選取與計算結(jié)構(gòu)匹配的并行度配置方案,本文提出一種并行度搜索算法。該算法在取值區(qū)間內(nèi)以最細粒度遍歷可行的并行度組合方案,篩選出資源利用率最高的并行度方案。然而,結(jié)構(gòu)靈活性的提升導致并行度探索空間爆炸增長,帶來遍歷元素過多、計算量過大的問題。這使得搜索最優(yōu)并行度的時間開銷激增,嚴重降低了加速器實現(xiàn)的可行性。為此本文提出一種優(yōu)化搜索算法。該算法首先通過多輪迭代的數(shù)據(jù)篩選,高效地排除冗余的并行度方案,壓縮了超過99%的搜索空間。之后算法采用剪枝操作刪減無效的計算分支,成功地將計算所需時長從106h量級減少到10 s內(nèi)。該算法適用于不同規(guī)格的FPGA芯片,其搜索得出的最優(yōu)并行度配置方案性能突出,可在不同規(guī)格的芯片上實現(xiàn)平均(0.957, 0.962)的卓越的計算資源利用率。

本工作具有普適性,可被廣泛應用于LeNet5,AlexNet, ResNet等經(jīng)典CNN網(wǎng)絡(luò)的加速工作中。其中AlexNet獲得2012年ImageNet大規(guī)模視覺識別挑戰(zhàn)賽冠軍[10],自此被廣泛應用于圖像識別領(lǐng)域。本文以AlexNet這一經(jīng)典CNN網(wǎng)絡(luò)作為驗證模型,通過計算結(jié)構(gòu)與并行度靈活配合,16 bit量化下在Xilinx KCU1500開發(fā)板實現(xiàn)了(0.955, 0.962)的計算資源利用率、2425.455 GOP/s的吞吐率、62.351 GOP/(s·W)的性能功耗比。本工作大幅提高了片上計算資源利用率,相比于其他FPGA CNN加速器[4,11,12]實現(xiàn)了吞吐率和性能功耗比的明顯優(yōu)化。

本文內(nèi)容安排如下:第2節(jié)介紹CNN網(wǎng)絡(luò)特性與AlexNet結(jié)構(gòu)參數(shù);第3節(jié)分析現(xiàn)有研究現(xiàn)狀,提出加速器設(shè)計優(yōu)化方向;第4節(jié)簡述加速器硬件架構(gòu),并詳細介紹一種細粒度迭代優(yōu)化并行度搜索算法;第5節(jié)分析加速器性能參數(shù),并與其他現(xiàn)有工作進行對比。

2 CNN算法分析

CNN是一種通過處理輸入特征圖數(shù)據(jù)以產(chǎn)生分類結(jié)果的網(wǎng)絡(luò),其由4個核心部分構(gòu)成:卷積(CONVolution, CONV)部分、全連(Fully Connection,FC)部分、池化(Pooling, Pool)部分和激活部分。CONV部分中多層循環(huán)嵌套引入的大量計算操作是硬件加速器設(shè)計優(yōu)化的主要難點。

AlexNet是一種典型的具有代表性的CNN結(jié)構(gòu),其網(wǎng)絡(luò)組織完整地包含了上述4個核心部分。表1所示為AlexNet的網(wǎng)絡(luò)結(jié)構(gòu)參數(shù),其中:輸入/輸出特征圖數(shù)量為Nin/Nout,輸入/輸出特征圖的尺寸為SIZEin/SIZEout,卷積核尺寸為SIZEker,卷積跨度為Stride,補零填充尺寸為Npad。相比于其他網(wǎng)絡(luò),AlexNet復雜多變的網(wǎng)絡(luò)結(jié)構(gòu)大大增加了硬件加速的難度。一些性能突出的CNN加速器明確表示,AlexNet多樣的卷積形式不利于計算需求與計算資源的適配,因此這些加速器在加速AlexNet時難以實現(xiàn)與其他網(wǎng)絡(luò)等同的卓越加速性能[3,13]。

表1 AlexNet網(wǎng)絡(luò)結(jié)構(gòu)參數(shù)

基于以上分析,本文采用具有結(jié)構(gòu)代表性的典型CNN AlexNet作為benchmark,通過驗證的并行度確定算法能適用于絕大多數(shù)的CNN網(wǎng)絡(luò)。此外,以AlexNet為benchmark能夠更明顯地反映并行度確定算法的優(yōu)劣:若并行度確定算法在加速AlexNet時可以獲得突出的加速效果,那么該算法在加速其他卷積結(jié)構(gòu)更加單一、Nin/Nout更加規(guī)律的CNN網(wǎng)絡(luò)時,同樣可以獲得良好的加速效果。反之,若算法在網(wǎng)絡(luò)結(jié)構(gòu)差異性上考慮不全面,即使其在加速部分CNN時可以獲得不錯的效果,其算法問題會在加速AlexNet過程中顯示出來。

3 技術(shù)現(xiàn)狀與問題分析

在加速CNN這類計算密集型網(wǎng)絡(luò)時,如何高效利用FPGA片上的計算資源是設(shè)計的核心要點。本文采用文獻[2]所提出的計算資源利用率作為評估指標。該指標有兩個評估參數(shù)(R1, R2),R1和R2的取值范圍都是[0, 1]區(qū)間內(nèi)的實數(shù),其值越大代表資源利用越充分。R1衡量設(shè)計中FPGA的可用計算性能潛力被開發(fā)出的百分比,R2衡量設(shè)計中計算資源的冗余占用情況,R1的優(yōu)先級高于R2。

表2為不同加速器的計算資源利用率情況。從表中可知,現(xiàn)有加速器的計算資源利用率普遍存在提升空間:其(R1, R2)結(jié)果均不夠理想,或難以同時兼顧(R1, R2)達到理想值。同時,對比VGG和AlexNet加速器評估結(jié)果,AlexNet加速器的資源利用率普遍劣于VGG加速器—加速器的不足在AlexNet這樣的benchmark上更為突出。

表2 不同F(xiàn)PGA CNN加速器的資源利用率

CNN中的核心計算為矩陣卷積計算。文獻[2]具體分析并指出:卷積計算單元難以兼顧資源粒度和時間粒度的靈活性是阻礙FPGA充分發(fā)揮計算效力的重要原因。除此之外,有限的并行度調(diào)整空間也是限制計算資源充分發(fā)揮計算效力的重要原因。例如在文獻[8]中,加速器各層只有輸入并行度(Parain)和輸出并行度(Paraout)兩種維度可以調(diào)節(jié),且Parain, Paraout的取值被嚴格限定為2的整數(shù)冪,這使得并行度增減的變化粒度過大,無法實現(xiàn)小幅度調(diào)節(jié)。相比其他CNN,這種粗粒度的并行度確定算法對AlexNet這類網(wǎng)絡(luò)極不友好,主要表現(xiàn)為以下兩點:

(1) AlexNet的首層輸入特征圖尺寸過大,僅采用Parain, Paraout來調(diào)節(jié)運算,單圖計算時間粒度與資源粒度過大。

(2) AlexNet中大量卷積層的輸入/輸出特征圖數(shù)目(如3, 96, 384, 192)都不滿足2的整數(shù)冪,被限制為2的整數(shù)冪的并行度參數(shù)與這些層的特征圖數(shù)目嚴重失配。

相比于AlexNet首層存在11×11這樣的大尺寸卷積核,VGG的卷積核均為3×3的小尺寸,這更利于資源粒度和時間粒度的優(yōu)化。此外,VGG中絕大多數(shù)層的特征圖數(shù)目為2的整數(shù)冪,可與并行度參數(shù)良好適配。以上原因共同作用,導致AlexNet加速器的資源利用率普遍劣于VGG加速器。即便如此,VGG加速器的R1也主要分布在[0.6, 0.8]區(qū)間,難以達到≥0.9的理想資源利用率,計算資源的浪費仍然普遍存在。

基于以上分析,為解決計算資源浪費的問題,在文獻[2]卷積計算單元粒度優(yōu)化的基礎(chǔ)上,本文聚焦于提出一種高效的細粒度并行度確定算法。該算法面向不同F(xiàn)PGA平臺、不同CNN網(wǎng)絡(luò)結(jié)構(gòu),通過靈活的并行度細粒度調(diào)節(jié),可以顯著提高計算資源利用率,最終實現(xiàn)突出的CNN加速效果。

4 細粒度可變換加速結(jié)構(gòu)與并行度優(yōu)化搜索算法

4.1 加速器硬件設(shè)計

本工作架構(gòu)設(shè)計采用文獻[2]所提出的硬件方案:加速器整體采用全流水結(jié)構(gòu),權(quán)重數(shù)據(jù)和輸入特征圖數(shù)據(jù)存儲在片外,各層計算的中間結(jié)果以乒乓結(jié)構(gòu)存儲在片上,帶寬需求最密集的FC層采用了批處理模式以降低數(shù)據(jù)傳輸帶寬需求。

圖1為加速器單層結(jié)構(gòu)示意圖,CNN中的各層通過層間存儲相互隔離。來自本層存儲的輸入特征圖數(shù)據(jù),首先在卷積計算單元(Computing Element,CE)陣列中進行卷積運算。卷積的臨時結(jié)果在第1級緩存中完成累加,產(chǎn)生卷積結(jié)果。卷積結(jié)果從第1級緩存?zhèn)鬏數(shù)降?級緩存的數(shù)據(jù)轉(zhuǎn)移過程中,會根據(jù)各層不同的需求完成激活和池化操作,產(chǎn)生單層運算的最終結(jié)果。第2級緩存的數(shù)據(jù)會被輸出到下一層存儲中,用作下一層網(wǎng)絡(luò)計算的輸入數(shù)據(jù)。

圖1 CNN加速器單層結(jié)構(gòu)示意圖

文獻[2]提出創(chuàng)新的3維可變換卷積計算結(jié)構(gòu)以提高計算粒度靈活性。通過分析可知,基礎(chǔ)CE的計算資源粒度為Gbasic= SIZEout·SIZEker,單層計算時間粒度為Tbasic= SIZEout·SIZEker。經(jīng)過變形后,CE的計算資源粒度變?yōu)镚= ROWout·SIZEker·Paraout,單層計算時間粒度為T= SIZEout·SIZEker·「SIZEout/ROWout?。ROWout比SIZEout更加靈活,代表變形后特征圖片段的數(shù)據(jù)行數(shù),其取值范圍為[1, SIZEout]區(qū)間內(nèi)的整數(shù)。ROWout和Paraout的配合共同實現(xiàn)了卷積計算結(jié)構(gòu)資源和時間粒度靈活性的提升。

4.2 細粒度并行度優(yōu)化搜索算法1)

4.2.1 問題模型

為延拓并行度搜索空間,文獻[2]在傳統(tǒng)Parain和Paraout2維探索空間外,拓展了并行度維度,引入了第3維并行度參數(shù)—特征圖分割并行度Paraseg。如圖2所示,一個矩陣卷積的計算過程可以被按行分割,切分為Paraseg個較小的矩陣依次進行卷積,其中Paraseg等于「SIZEout/ROWout?。ROWin表示需要被存儲的輸入特征圖片段的行數(shù),其值由式(1)確定。函數(shù)ξ當且僅當Paraseg為1時等于1,否則等于0。

圖2 矩陣卷積分段計算示意圖

Paraseg的提出是為了從以下兩個方面提升計算資源利用率。

(1) 針對特征圖尺寸過大導致卷積計算資源粒度過大的情況,可以通過切割后依次處理特征圖片段的方法,以較小的資源粒度完成整張?zhí)卣鲌D的卷積操作。

(2) 多數(shù)CNN網(wǎng)絡(luò)的首層輸入特征圖為RGB 3通道,Nin=3。較少的Nin壓縮了Parain的選擇空間,為追求較高的資源利用率,Parain只能選擇1或3。這嚴重限制了首層的資源規(guī)劃空間。Paraseg的引入相當于將Parain的取值范圍由整數(shù)域(1或3)延拓到分數(shù)域(例如1/2, 1/3, 3/5 ···2)(Parain=1, Paraseg=2)相當于Parain=1/2;(Parain=3, Paraseg=5)相當于Parain=3/5;以此類推。),極大地拓展了資源規(guī)劃空間。

為確定加速器的最優(yōu)并行度配置參數(shù)(Parain,Paraout, Paraseg),本文提出一種并行度優(yōu)化搜索算法。其設(shè)計目標為:在取值區(qū)間內(nèi)以最細粒度遍歷所有可行的并行度組合方案,篩選出計算資源利用率最高的并行度配置參數(shù)。相比于傳統(tǒng)的粗粒度并行度搜索算法,本文所述算法可以更加精細地調(diào)節(jié)資源分配,最終使得加速器實現(xiàn)理想的加速效果。

4.2.2 算法約束

本文在如下4條約束的基礎(chǔ)上,按照表3所示方法確定3種并行度參數(shù)。為提高計算資源利用率,對單層計算資源使用量#DSPi、單層計算所需周期數(shù)#cyclei有約束1和2;受可用資源數(shù)限制,對#DSPi、單層存儲資源使用量#BRAMi有約束3和4。

表3 細粒度并行度迭代算法

約束1 為保證資源分配的合理性,#DSPi與片上可用DSP總量(#DSPtotal)之比,應盡量接近該卷積層計算量(#OPi)占網(wǎng)絡(luò)總計算量(#OPtotal)的百分比。

約束2 全流水加速器的吞吐率受限于最大#cyclei,為提高吞吐率,應盡可能減小max{#cyclei}。

約束3 ∑#DSPi應不超過片上可用DSP資源總數(shù)#DSPtotal。

約束4 ∑#BRAMi應不超過片上可用存儲資源總數(shù)#BRAMtotal。

4.2.3 遍歷求解

本文遍歷搜索最優(yōu)并行度方案的過程中,Paraseg的值由ROWout唯一確定。Parain, Paraout, ROWout的取值范圍分別為[1, Nin], [1, Nout], [1, SIZEout],三者的取值均能以1為最小步長細粒度地增減調(diào)整。第i層卷積層所需DSP資源數(shù)如式(2)所示,所需周期數(shù)如式(3)所示,所需BRAM存儲資源數(shù)如式(4)所示。其中#cyclecntl代表控制邏輯所需周期數(shù),CBRAM代表一個BRAM的數(shù)據(jù)存儲容量。

遍歷開始之前,需要進行數(shù)據(jù)準備工作:指定#DSPtotal,并依據(jù)#OPi占#OPtotal的百分比進行DSP資源預分配,分配給第i層的DSP資源數(shù)為#DSPalloc i;指定#BRAMtotal;根據(jù)#OPtotal與#DSPtotal的比值確定理論最小計算周期數(shù)#cyclebaseline。在此基礎(chǔ)上開始并行度細粒度遍歷。

第i層中,以1為步長依次遍歷元組(Parain,Paraout, ROWout)的所有有效取值,可以計算得到各種并行度組合方式下的單層加速器時間/資源開銷情況的集合Si。根據(jù)約束1,Si中元素的挑選規(guī)則基于如下基本假設(shè):#cyclei,j,#DSPi,j偏離#cyclebaseline, #DSPalloc i越遠,其成為最優(yōu)并行度方案的可能性越小。本文定義,α為計算周期浮動因子,β為DSP分配浮動因子。那么,對于Si中任意元素σi,j而言,需要滿足約束(#c y c l ei,j/#cyclebaseline)落在區(qū)間[1–α, 1+α]內(nèi),且(#DSPi,j/#DSPalloc i)落在區(qū)間[1–β, 1+β]內(nèi)。

為獲得加速器時間/資源總開銷,需要先計算集合Si(i=1 ~5)的笛卡兒積S(即S=S1×S2×···×S5),S中的每個元素都對應一種跨層組合方案。遍歷集合S,計算所有滿足資源約束的元素對應的m a x{#c y c l ei}(i=1 ~5),升序排序,min{max{#cyclei}}對應的元素即為加速器獲得最佳性能/資源利用率所采用的并行度配置方案。

4.2.4 問題分析

在以上并行度遍歷求解的過程中,細粒度調(diào)節(jié)在擴展搜索空間以提高靈活度的同時,也極大地增加了跨層全組合的計算需求。如圖3所示,當β=0.20,α從0.02變化到0.28時,計算量從1.21×107增長到2.21×1012。其中,當α<0.16時,由于約束過緊,無法搜索到符合條件的并行度方案。當α=0.16時可以找到符合約束的并行度方案,此時計算量為1.34×1011。根據(jù)實驗估算,即使是采用性能較好的CPU(Intel Core i7-8750H),處理這樣數(shù)以千億的計算量也需要花費極長的時間(106h的量級),這樣的運行效率是不可接受的。

圖3 β=0.20時,算法搜索的計算量隨α的變化情況

基于以上對細粒度并行度參數(shù)求解規(guī)模的分析,為縮短遍歷求解的執(zhí)行時間,本文提出了一種并行度優(yōu)化搜索算法。該算法可以在有限的片上可用資源的限制下,通過多輪數(shù)據(jù)清洗和計算剪枝的方法,快速產(chǎn)生可行的并行度方案,使得加速器整體資源利用率、吞吐率和性能功耗比等得到優(yōu)化提升。

4.2.5 迭代優(yōu)化

由于全組合的方案數(shù)據(jù)量極大、冗余計算多,從計算有效性的角度出發(fā),本文工作提出以下3種優(yōu)化方法,從各層篩選出真正可能影響最終計算結(jié)果的有效數(shù)據(jù)參與遍歷,壓縮計算量。由于單層Si集合中的元素數(shù)量較大,直接采用全局數(shù)據(jù)清洗比較耗時,故先采用3輪局部迭代清洗的方法進行數(shù)據(jù)粗篩,而后采用全局清洗的方法對數(shù)據(jù)進行精篩,最后在遍歷計算的過程采用剪枝手段裁剪無效計算分支。

(1) 數(shù)據(jù)粗篩(3輪):排序+局部數(shù)據(jù)清洗。數(shù)據(jù)粗篩共有3輪迭代過程,每輪迭代都分為排序和局部數(shù)據(jù)清洗兩個步驟。

(a) 排序:對單層Si集合中的元素,第1輪迭代以#cyclei, #DSPi, #BRAMi優(yōu)先級遞減的順序,將數(shù)據(jù)按照升序排列;第2輪迭代以#DSPi,#cyclei, #BRAMi優(yōu)先級遞減的順序升序排列;第3輪迭代則是以#BRAMi, #cyclei, #DSPi優(yōu)先級遞減的順序升序排列。排序是為了使得更優(yōu)的并行度組合方法盡早出現(xiàn),可以減少后續(xù)數(shù)據(jù)清洗所需的時間,也能讓剪枝操作更加高效。

(b) 局部數(shù)據(jù)清洗:對于集合Si中的元素σj和σk(j≠k),若σj的#cycle, #DSP和#BRAM均不大于σk的相應指標,定義偏序關(guān)系“KO”:元素σk“完敗”(被“KO”)元素σj,元素σj“完勝”(“KO”)元素σk。對于每輪排序完畢的單層數(shù)據(jù),進行一次局部數(shù)據(jù)清洗,即流式壓縮遍歷,比較相鄰元素并剔除“完敗”的。數(shù)據(jù)每經(jīng)過1輪局部清洗,有序集合都滿足如下條件:任意相鄰的兩個元素不存在“KO”偏序關(guān)系。

(2) 數(shù)據(jù)精篩(1輪):排序+全局數(shù)據(jù)清洗。單層集合Si經(jīng)過數(shù)據(jù)粗篩壓縮后,得到的有序集合記為S’i,將其重新以#cyclei, #DSPi, #BRAMi優(yōu)先級遞減的順序按照升序排列,并進行全局數(shù)據(jù)清洗:遍歷S’i,若某元素σj“完敗”排在其前面的某個元素σk(k

當(α, β)等于(0.2, 0.2)時,上述數(shù)據(jù)3輪初篩和1輪精篩分別可以將集合Si中待迭代處理的數(shù)據(jù)量從2.43×1011銳減為7.10107, 4.12×106, 3.53×106,7.22×105,最終高效壓縮了99.9997%的數(shù)據(jù)量,顯著降低了算法后續(xù)的計算量。

(3)搜索剪枝:經(jīng)過上述粗篩和精篩兩步數(shù)據(jù)清洗,極大地壓縮了單層數(shù)據(jù)量,然而在較松的α和β約束下,跨層全組合的方式仍然有著不小的計算量,需要在遍歷時進行剪枝優(yōu)化。

(a) 從外(第1層)到內(nèi)(第5層)的嵌套循環(huán)遍歷過程中,實時計算并更新跨層組合方案已經(jīng)使用的DSP和BRAM個數(shù)。若計算到某一層,資源使用已經(jīng)超標,則直接跳過后續(xù)所有內(nèi)層循環(huán),將該分支的跨層組合方案全部裁剪。

(b) 實時更新已遍歷的跨層組合中最優(yōu)的max{#cyclei}結(jié)果(記為maxCycle)。在后續(xù)循環(huán)過程中,如果當前層的#cycle大于maxCycle,意味著該組合分支無法進一步優(yōu)化maxCycle,停止往內(nèi)層繼續(xù)遍歷,將該分支對應的跨層組合方案全部裁剪。

在前文所述(α, β)=(0.2, 0.2)的配置下,上述3種優(yōu)化可以將細粒度遍歷迭代優(yōu)化搜索算法所需的計算時長從106小時量級,顯著降低到8.115秒,有效提高了算法的可行性。

5 實驗與分析

5.1 實驗配置

本實驗CNN數(shù)據(jù)量化為16 bit定點數(shù),綜合及實現(xiàn)軟件為Vivado19.2,CPU為Intel Core i7-8750H。為降低布局布線的難度、保證工程實現(xiàn)的可行性,實驗限制BRAM資源的使用率不得超過60%。

5.2 實驗結(jié)果與理論分析

(1) (α, β)與搜索空間壓縮:鑒于#cyclebaseline是理論最佳值,max{#cyclei}與#cyclebaseline的差值是客觀存在的。在資源限制下,本文所述算法的優(yōu)化目標是盡可能減少二者之間的差值。通過調(diào)整α取值,可以初步將max{#cyclei}限制在理想的區(qū)間,快速鎖定合理的并行度組合范圍。

不同F(xiàn)PGA平臺的資源量千差萬別,完全按照各層計算量占比進行分配的計算資源規(guī)劃方式很難完全契合CNN網(wǎng)絡(luò)的計算需求。而在實驗過程中發(fā)現(xiàn):若在單層#DSPalloc的基礎(chǔ)上額外分配少量的DSP資源,則存在一定概率找到明顯更優(yōu)的并行度方案;若在單層#DSPalloc的基礎(chǔ)上微量減少分配的DSP資源,則單層最優(yōu)并行度方案存在一定概率不被干擾。調(diào)整β的取值可以彈性拓展各層DSP資源分配空間,以此在各層之間小幅流動DSP分配,達到優(yōu)化max{#cyclei}的目的。同時,β的取值可以限制單層使用的DSP資源數(shù)在#DSPalloc上下以β為百分比浮動,將資源分布嚴重偏離計算量分布的并行度組合方式刪除,保留資源分布更加合理的并行度組合范圍。

合理設(shè)置(α, β)可以有效限制最優(yōu)并行度的搜索空間,減少后期迭代遍歷所需的計算量。以KCU1500開發(fā)板加速AlexNet為例。若沒有(α,β)的限制,集合Si(i=1~5)的笛卡兒積S將是一個巨大的探索空間,包含1024數(shù)量級的元素。然而,其中絕大多數(shù)元素都對最終搜索結(jié)果沒有影響。若將(α, β)設(shè)置為(0.2, 0.2),則可將S中的元素數(shù)銳減到1011數(shù)量級,壓縮了超過99.99%的計算量。

為進一步探索不同(α, β)約束對并行度方案性能的影響,本實驗將上述算法應用于不同規(guī)格的FPGA芯片,并將不同(α, β)約束下探索到的最優(yōu)并行度方案按max{#cyclei}進行排序。實驗結(jié)果如色溫圖4所示,(α, β)沿右下增長,標注顏色從綠到紅代表并行度方案從優(yōu)到劣。

從圖4分析可得,較嚴格的(α, β)約束可以通過快速排除違例的并行度方案而大大壓縮計算量,但是過分嚴格的約束會帶來找不到可行方案的風險。寬松的約束將大量并行度方案保留至迭代搜索中,更大的搜索空間提高了找到最優(yōu)解的可能性。然而,當(α, β)到達臨界值后,增大(α, β)并不會帶來并行度方案的優(yōu)化。這是因為:過大的α所額外拓展的搜索空間內(nèi),#cyclei的方差隨α的增大而增大,這會造成max{#cyclei}的惡化,導致加速器吞吐率下降;過大的β所額外拓展的搜索空間內(nèi),各層#DSPi的分布更加偏離約束1的限制,導致該額外搜索空間內(nèi)并行度方案的DSP資源利用率明顯下降。從圖4(a)—圖4(e)可知,(α, β)取值為(0.18,0.12)時可以在最少計算量下找到最優(yōu)的并行度方案,該值即為(α, β)的臨界值。

圖4 基于不同規(guī)格FPGA的AlexNet加速器性能隨(α, β)變化色溫圖

(2) 迭代優(yōu)化與快速查找:在該臨界值(α, β)的約束下,搜索空間內(nèi)依舊存在大量冗余元素,它們的性能雖然較好,但并不足以改變最優(yōu)并行度方案。因此算法提出數(shù)據(jù)篩選優(yōu)化的方法,通過多輪迭代篩選可以將真正關(guān)鍵的元素挑選出來,同時進一步高效壓縮了計算量。不同規(guī)格AlexNet加速器的實現(xiàn)情況如表4所示。表4中原始計算量代表在臨界(α, β)約束下未經(jīng)數(shù)據(jù)篩選的計算量。經(jīng)過數(shù)據(jù)篩選后,超過99%的原始計算量被壓縮。

算法在數(shù)據(jù)篩選后,通過剪枝的方法裁剪掉無效計算分支,可以加速遍歷搜索速度。表4中執(zhí)行時間代表CPU遍歷搜索所需的時長,單位為s。經(jīng)過剪枝優(yōu)化后,遍歷搜索所需的時長從106小時量級減少到平均4.944 s,極大地降低了算法的時間開銷。

(3) 實驗結(jié)果與對比分析:該實現(xiàn)方案可以靈活調(diào)節(jié)以適應不同規(guī)格開發(fā)板的資源限制,最終得到穩(wěn)定突出的加速性能。如表4所示,采用本文所述的計算結(jié)構(gòu)與并行度優(yōu)化方案,在不同資源規(guī)格的FPGA開發(fā)板上實現(xiàn)AlexNet加速器,其計算資源利用率(R1, R2)平均可達(0.957, 0.962)。這進一步驗證了文獻[2]中卷積結(jié)構(gòu)的靈活性和本文所述算法的魯棒性。

表4 不同規(guī)格FPGA上AlexNet加速器資源利用率、計算量與計算時長

基于FPGA的CNN加速器的加速效果與并行度確定算法的優(yōu)劣直接強相關(guān)。因此,可通過對比加速器性能參數(shù),可直觀反映并行度確定算法的搜索效果。實驗將本工作加速結(jié)果與不同CNN加速器的性能進行對比,具體參數(shù)如表5所示。本工作計算資源利用率達到(0.955,0.962),在230 MHz下實現(xiàn)了2425.455 GOP/s的吞吐率、62.351 GOP/(s·W)的性能功耗比。相比其他基于FPGA的AlexNet加速器[4,11,12],本工作實現(xiàn)了吞吐率和性能功耗比的明顯優(yōu)化。相比文獻[2,8]在具體硬件結(jié)構(gòu)優(yōu)化上側(cè)重有所不同,其首要優(yōu)化目標為吞吐率,因此,本工作的性能功耗比為文獻[8]的86.226%。但是得益于資源利用率的優(yōu)勢,本工作的吞吐率是文獻[8]的1.485倍。相比現(xiàn)今AI加速領(lǐng)域最高效的GPU平臺Nvidia Jetson TX2,本工作有6.821倍的單圖處理速度提升及1.876倍的單圖處理功耗優(yōu)化。

表5 AlexNet加速器性能對比

(4) 總結(jié)分析:文獻[2]所提出的卷積計算結(jié)構(gòu)擁有極高的靈活性,可通過結(jié)構(gòu)變換滿足資源限制和計算需求。隨著結(jié)構(gòu)靈活性的提高,其對應并行度方案的搜索空間顯著擴大,但也伴隨著計算量爆炸式增長的問題。該原始搜索空間內(nèi)包含大量冗余元素,這些元素對應的性能指標不僅較差,還會引入巨大的無意義的計算代價。為了壓縮搜索空間,本文所述算法利用(α, β)將搜索空間限制在其合理的子空間內(nèi)。然而,子空間內(nèi)的元素規(guī)模依舊非常可觀,且其中大量元素雖然性能較好,但仍然不會對最優(yōu)并行度方案起決定作用。因此算法提出多輪迭代數(shù)據(jù)篩選優(yōu)化,可以將真正關(guān)鍵的元素挑選出來,同時進一步高效壓縮了計算量。最后,算法在數(shù)據(jù)遍歷搜索環(huán)節(jié)采用剪枝的方法,裁剪無效計算分支,在(α, β)典型值的約束下,將最優(yōu)解搜索時間控制在10 s內(nèi)。通過硬件結(jié)構(gòu)與并行度算法的配合,本工作可以快速實現(xiàn)CNN硬件加速器,其加速性能穩(wěn)定且突出。

6 結(jié)束語

為提高加速器性能,文獻[2]提出了一種高度靈活的計算結(jié)構(gòu),這導致并行度探索空間爆炸增長。為快速在搜索空間中得到計算資源利用率最優(yōu)的并行度組合方案,本文提出一種迭代優(yōu)化搜索算法。該算法通過多輪迭代的數(shù)據(jù)篩選和剪枝操作,成功地壓縮了99%以上的搜索空間,將計算所需時長從106h量級減少到10 s內(nèi)。實驗證明該算法具有普適性,可適用于不同規(guī)格的FPGA芯片,最終實現(xiàn)平均(0.957, 0.962)的計算資源利用率。本文在Xilinx KCU1500開發(fā)板完成AlexNet加速器板級驗證,在230 MHz頻率下實現(xiàn)了(0.955, 0.962)的計算資源利用率、2425.455 GOP/s的吞吐率、62.351 GOP/(s·W)的性能功耗比。本文相比于其他FPGA CNN加速器[4,11,12]實現(xiàn)了吞吐率和性能功耗比的明顯優(yōu)化,相比于現(xiàn)今AI加速領(lǐng)域最高效的GPU平臺Nvidia Jetson TX2實現(xiàn)了6.821倍的單圖處理速度提升及1.876倍的單圖處理功耗優(yōu)化。

猜你喜歡
優(yōu)化資源
讓有限的“資源”更有效
超限高層建筑結(jié)構(gòu)設(shè)計與優(yōu)化思考
基礎(chǔ)教育資源展示
民用建筑防煙排煙設(shè)計優(yōu)化探討
關(guān)于優(yōu)化消防安全告知承諾的一些思考
一道優(yōu)化題的幾何解法
由“形”啟“數(shù)”優(yōu)化運算——以2021年解析幾何高考題為例
一樣的資源,不一樣的收獲
資源回收
資源再生 歡迎訂閱
資源再生(2017年3期)2017-06-01 12:20:59
主站蜘蛛池模板: 国产精品一区在线观看你懂的| 在线亚洲天堂| 99re在线观看视频| 亚洲黄网在线| 伊人久久精品无码麻豆精品| 精品亚洲麻豆1区2区3区| 欧美yw精品日本国产精品| 国产精品yjizz视频网一二区| 欧美日韩综合网| 色综合网址| 欧美一区福利| 99久视频| 国产精品视频白浆免费视频| 亚洲男人天堂2020| 国产免费久久精品99re丫丫一| 色有码无码视频| 色首页AV在线| 国产欧美日韩视频怡春院| 欧美人人干| 国产成人区在线观看视频| 国产视频入口| 亚洲成人一区在线| 国产精品久久久久久久伊一| 天天色综网| 成人在线视频一区| 女人一级毛片| 国产肉感大码AV无码| 人妖无码第一页| igao国产精品| 色国产视频| 国产久操视频| 一级在线毛片| 亚洲视频无码| 在线观看国产网址你懂的| 欧美一级高清片欧美国产欧美| 中文无码精品A∨在线观看不卡 | 国产精品成| 国产精品成人免费综合| 青青久在线视频免费观看| 免费xxxxx在线观看网站| 国产成年女人特黄特色毛片免| 青青青伊人色综合久久| 精品亚洲欧美中文字幕在线看| 国产专区综合另类日韩一区| 国产午夜无码专区喷水| 日韩视频精品在线| 色播五月婷婷| 亚洲欧洲自拍拍偷午夜色| 粗大猛烈进出高潮视频无码| 亚洲日韩精品欧美中文字幕| 免费国产一级 片内射老| 在线毛片免费| 自拍中文字幕| 日韩AV无码免费一二三区| 国产av剧情无码精品色午夜| a级毛片在线免费观看| 国产在线视频二区| h网站在线播放| 91九色国产在线| 欧美精品v| 亚洲另类国产欧美一区二区| 精品亚洲国产成人AV| 国产新AV天堂| 国产小视频免费| 毛片网站在线播放| 香蕉蕉亚亚洲aav综合| 毛片视频网址| 欧美精品色视频| 国产国产人成免费视频77777 | 亚洲中文无码h在线观看| 中文天堂在线视频| 精品福利网| 久久青草热| 日韩中文无码av超清| 国产白浆在线观看| 色哟哟国产精品一区二区| 蜜臀AV在线播放| 色爽网免费视频| a色毛片免费视频| 九月婷婷亚洲综合在线| 高清免费毛片| 国产精品漂亮美女在线观看|