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

?

基于多并行計(jì)算和存儲(chǔ)的CNN加速器

2019-07-23 09:27李宗凌汪路元禹霽陽(yáng)程博文張偉功
關(guān)鍵詞:加速器卷積架構(gòu)

李宗凌,汪路元,禹霽陽(yáng),程博文,郝 梁,張偉功

(1.北京空間飛行器總體設(shè)計(jì)部,北京 100094;2.首都師范大學(xué) 信息工程學(xué)院,北京 100048)

1 概 述

深度卷積神經(jīng)網(wǎng)絡(luò)(CNN)模型在目標(biāo)分類、識(shí)別、視頻分析以及自然語(yǔ)言處理等方面應(yīng)用越來(lái)越廣泛[1-3]。同時(shí),CNN需要進(jìn)行大量的類矩陣、向量計(jì)算,算法復(fù)雜度高、程序設(shè)計(jì)難度大,對(duì)算法實(shí)時(shí)性提出了極高的要求。目前,CNN計(jì)算主要基于通用處理器(CPU)、通用圖形處理器(GPU)或?qū)S锰幚砥鳎ㄟ^(guò)軟件方式實(shí)現(xiàn)。

CNN是一種高度并行的混聯(lián)網(wǎng)絡(luò)結(jié)構(gòu),尤其是近年來(lái)新興流行的深度網(wǎng)絡(luò),采用CPU計(jì)算往往會(huì)導(dǎo)致頻繁的數(shù)據(jù)交互和相同數(shù)據(jù)的多次搬移,很難提高計(jì)算效率。利用GPU實(shí)現(xiàn)CNN,有編程簡(jiǎn)單、運(yùn)行速度快等優(yōu)點(diǎn),但存在功耗過(guò)高、散熱困難等問(wèn)題。例如,NVIDIA GTX-1080 Ti GPU雖具有向量數(shù)據(jù)搬移操作,在內(nèi)部計(jì)算過(guò)程中具備上千個(gè)節(jié)點(diǎn)對(duì)數(shù)據(jù)進(jìn)行并行計(jì)算,但這一過(guò)程占用了巨額的硬件資源,同時(shí)也耗費(fèi)了大量的能量功耗,峰值功耗達(dá)到250 W。其他加速處理器,類似文獻(xiàn)[4]在處理過(guò)程中的輸入輸出結(jié)果必須經(jīng)由MLU模塊,并通過(guò)對(duì)譯碼過(guò)程不同指令類型的判斷,完成選通輸入輸出操作,這種加速方式通過(guò)多個(gè)模塊的并行操作,并結(jié)合HotBuf及ColdBuf減少或同化相同參數(shù)和操作的卷積計(jì)算,必然影響處理器計(jì)算效率。深鑒科技公司[5]設(shè)計(jì)的AI處理器具有硬件資源可變的特點(diǎn),借助于DPU節(jié)點(diǎn),通過(guò)編譯器優(yōu)化計(jì)算流程,壓縮參數(shù),降低計(jì)算量,但這種功能必須有相應(yīng)的程序結(jié)構(gòu)進(jìn)行配套執(zhí)行才能達(dá)到最優(yōu)速度,而在實(shí)際深度卷積計(jì)算過(guò)程,中間計(jì)算過(guò)程數(shù)據(jù)常常被其他進(jìn)程調(diào)用,很難對(duì)所有復(fù)雜卷積網(wǎng)絡(luò)形成實(shí)際優(yōu)化。

此外,當(dāng)前商用GPU計(jì)算機(jī)及微處理器均是基于對(duì)并行寄存器的計(jì)算處理,針對(duì)深度卷積網(wǎng)絡(luò)的加速的算法實(shí)施,只能依靠多個(gè)計(jì)算單元的并行計(jì)算完成,且核心技術(shù)都在國(guó)外大公司手中。例如,Google公司推出的TPU處理器[6],性能優(yōu)越,但僅限于內(nèi)部使用,不對(duì)外供貨。由此可知,現(xiàn)有商用處理器無(wú)法滿足星上應(yīng)用需求,設(shè)計(jì)基于多并行計(jì)算和存儲(chǔ)架構(gòu)的CNN加速器,已經(jīng)成為當(dāng)前嵌入式、小型化研制過(guò)程的迫切需要。

現(xiàn)有的深度學(xué)習(xí)網(wǎng)絡(luò)加速計(jì)算主要從三個(gè)工程實(shí)現(xiàn)角度來(lái)進(jìn)行優(yōu)化。第一,減少量化位寬,以犧牲計(jì)算結(jié)果精度來(lái)減少硬件資源的占用,通過(guò)降低量化位寬到8位,提高設(shè)計(jì)的最大可執(zhí)行頻率,降低芯片面積的占用[7];第二,建立多級(jí)緩存機(jī)制,結(jié)合內(nèi)外部緩存,分配計(jì)算過(guò)程中“冷”、“熱”參數(shù)和計(jì)算過(guò)程,提高緩存使用效率[8];第三,通過(guò)統(tǒng)計(jì)或簡(jiǎn)單判別的方式,減少零值參數(shù)或無(wú)效參數(shù)的訪問(wèn)和計(jì)算,提高計(jì)算單元的處理效率[9]。

當(dāng)前常用處理位寬設(shè)計(jì)集中在8 bits到2 bits,單純降低位寬會(huì)造成計(jì)算精度的大幅下降,而位寬的選擇與網(wǎng)絡(luò)應(yīng)用需求有關(guān)。多級(jí)緩存的設(shè)計(jì),往往需要考慮片內(nèi)、片外緩存,網(wǎng)絡(luò)卷積核大小及層間并行度情況,很難形成統(tǒng)一的設(shè)計(jì)模式。零值和無(wú)效數(shù)值計(jì)算的跳過(guò),雖然能夠降低計(jì)算次數(shù),但在設(shè)計(jì)過(guò)程容易造成控制電路部分的復(fù)雜化。

在CNN硬件加速設(shè)計(jì)過(guò)程中,需要從系統(tǒng)架構(gòu)、位寬、存儲(chǔ)和內(nèi)部總線進(jìn)行整體考慮,在減少各計(jì)算、存儲(chǔ)模塊交互傳輸?shù)幕A(chǔ)上,提高計(jì)算的并行度。文中對(duì)CNN模型結(jié)構(gòu)進(jìn)行基本的研究,重點(diǎn)分析網(wǎng)絡(luò)并行結(jié)構(gòu)和多層次緩存實(shí)現(xiàn)方式,設(shè)計(jì)出一種運(yùn)算效率高、占用資源少、通用性強(qiáng)、高能效比的CNN模型前向傳播的加速器,并通過(guò)實(shí)現(xiàn)兩種存儲(chǔ)資源復(fù)用度差異巨大的加速器對(duì)比分析,得出數(shù)據(jù)重用是提升加速器能效比的關(guān)鍵因素。以此為基礎(chǔ),搭建功能驗(yàn)證系統(tǒng),在FPGA上布置CNN模型加速器,利用ImageNet圖像數(shù)據(jù)集進(jìn)行測(cè)試,并與通用I7-6700-CPU和GTX-1050-GPU實(shí)現(xiàn)結(jié)果進(jìn)行對(duì)比分析,在分類結(jié)果一致的情況下,相對(duì)于CPU能效比提升2 700倍以上;相對(duì)于GPU,能效比提升290倍以上。該加速器可布置在當(dāng)前星載信息處理平臺(tái)中,有效解決硬件開(kāi)銷(xiāo)、速率、精度和熱耗的矛盾,具有廣泛的應(yīng)用前景。

2 CNN模型

VGG-16網(wǎng)絡(luò)是一種典型深度CNN模型,由Simonyan和Zisserman在2014年提出,在ImageNet 2014分類大賽上Top-5錯(cuò)誤率僅為7.4%,僅次于GoogleNet的6.7%,是一種非常強(qiáng)大的深度卷積神經(jīng)網(wǎng)絡(luò),能提取圖像中的更深層特征,分類能力突出。

標(biāo)準(zhǔn)VGG-16網(wǎng)絡(luò)包含13個(gè)卷積層和3個(gè)全連接層,使用不斷增加的3×3卷積層,并通過(guò)2×2最大池化(Maxpooling)來(lái)減小運(yùn)算規(guī)格。首先是13個(gè)卷積層,然后是兩個(gè)4 096節(jié)點(diǎn)和1個(gè)1 000節(jié)點(diǎn)的全連接層,最后是一個(gè)Softmax分類器,能夠?qū)崿F(xiàn)1 000類目標(biāo)分類。VGG-16網(wǎng)絡(luò)運(yùn)算規(guī)律性強(qiáng),便于實(shí)現(xiàn)并行加速。

3 加速器架構(gòu)設(shè)計(jì)

3.1 整體架構(gòu)

根據(jù)VGG-16模型結(jié)構(gòu),CNN加速器按功能分為控制層、卷積層和輸出層。加速器的整體控制由控制層完成,主要包含數(shù)據(jù)流控制模塊、通信控制模塊、存儲(chǔ)控制模塊、特征圖運(yùn)算控制模塊;卷積、池化以及激活運(yùn)算由卷積層完成,主要包含卷積模塊、最大池化模塊以及Relu激活模塊;全連接運(yùn)算以及Softmax分類由輸出層完成,主要包含F(xiàn)C-X模塊和Softmax模塊。加速器所有模塊設(shè)計(jì)均采用全流水并行設(shè)計(jì)思想,通過(guò)數(shù)據(jù)流驅(qū)動(dòng),便于后續(xù)模塊復(fù)用和構(gòu)建參數(shù)化的加速架構(gòu)。

CNN加速器的整體框架如圖1所示。具體工作流程為:中心控制器(Central controller)負(fù)責(zé)解析數(shù)據(jù)通信協(xié)議,將傳輸過(guò)來(lái)的原始圖像、卷積核、全連接層、偏置值等參數(shù)數(shù)據(jù)放入DDR3存儲(chǔ)器的相應(yīng)地址段進(jìn)行存儲(chǔ)。所有參數(shù)數(shù)據(jù)更新完畢后,中心控制器調(diào)度卷積計(jì)算單元(Conv)進(jìn)行卷積計(jì)算。卷積層運(yùn)算完成后,中心控制器調(diào)度全連接層計(jì)算單元(PE)進(jìn)行三層全連接層計(jì)算。最后,對(duì)計(jì)算結(jié)果進(jìn)行SoftMax處理,輸出分類結(jié)果和相應(yīng)的置信度值,從而完成VGG-16網(wǎng)絡(luò)的全部運(yùn)算。

圖1 VGG-16模型加速器整體框架

3.2 卷積運(yùn)算

卷積運(yùn)算是CNN模型的核心計(jì)算,其實(shí)現(xiàn)決定了CNN模型計(jì)算單元的整體結(jié)構(gòu)。由于CNN模型層間運(yùn)算具有獨(dú)立性且各層運(yùn)算具有高度相似性,因此,可以通過(guò)復(fù)用單層運(yùn)算資源來(lái)實(shí)現(xiàn)完整的CNN模型卷積計(jì)算,在實(shí)現(xiàn)過(guò)程中只需實(shí)現(xiàn)單層的卷積計(jì)算結(jié)構(gòu),即可通過(guò)構(gòu)建并行計(jì)算和存儲(chǔ)架構(gòu)實(shí)現(xiàn)加速。

文中選用的CNN模型為VGG-16,其卷積核大小均為3×3,因此,基本的卷積運(yùn)算模塊均可實(shí)現(xiàn)復(fù)用。單個(gè)卷積核并行運(yùn)算流程如下:9個(gè)卷積參數(shù)寄存器在處理數(shù)據(jù)輸入前完成更新,圖像數(shù)據(jù)按行輸入卷積運(yùn)算模塊,通過(guò)行數(shù)據(jù)緩存,構(gòu)建循環(huán)移位存儲(chǔ)器。當(dāng)?shù)?行圖像數(shù)據(jù)輸入時(shí),通過(guò)寄存器調(diào)整數(shù)據(jù)時(shí)序,開(kāi)始乘加運(yùn)算,輸出卷積結(jié)果[9-10]。由以上運(yùn)算流程可知,該卷積的基本運(yùn)算為全并行流水架構(gòu),為后續(xù)流水處理加速架構(gòu)的構(gòu)建奠定了基礎(chǔ)。

標(biāo)準(zhǔn)VGG-16模型總共包含1 634 496次卷積核大小為3×3的二維卷積運(yùn)算,如此龐大的卷積運(yùn)算可通過(guò)卷積核并行運(yùn)算及多個(gè)卷積核共用一組外部存儲(chǔ)器的方式實(shí)現(xiàn)卷積運(yùn)算的并行加速。

為達(dá)到最佳加速比,存儲(chǔ)帶寬與計(jì)算能力需匹配,然而,頻繁的片外數(shù)據(jù)訪問(wèn)會(huì)產(chǎn)生大量的功耗。為降低功耗,需減少卷積運(yùn)算對(duì)外部數(shù)據(jù)存儲(chǔ)器的訪問(wèn)頻率,為此,多組卷積核共用一組特征圖數(shù)據(jù)的方法可以顯著減少對(duì)片外存儲(chǔ)器的訪問(wèn)次數(shù)[11-13],從而大大提升加速器的能效比。

卷積運(yùn)算的并行度須由外部存儲(chǔ)帶寬、加速器的內(nèi)部存儲(chǔ)和計(jì)算資源共同決定。為平衡計(jì)算精度和硬件資源的需求,文中的卷積運(yùn)算采用16位定點(diǎn)量化數(shù)據(jù)格式,輸入圖像大小可調(diào)。表1分析了卷積組內(nèi)和卷積組間不同并行度對(duì)外部存儲(chǔ)帶寬、計(jì)算(DSP48e)和內(nèi)部存儲(chǔ)(Block RAM)資源的需求,并可估算出卷積運(yùn)算時(shí)間。為了更好地對(duì)比分析硬件資源和數(shù)據(jù)復(fù)用度對(duì)能效比的影響,文中實(shí)現(xiàn)了兩種并行度和數(shù)據(jù)復(fù)用度(n=16,m=1和m=16)的加速器。

表1 卷積組并行加速及硬件資源對(duì)比 (輸入圖像為224×224)

通過(guò)表1分析可得,外部存儲(chǔ)器的位寬Mem_wide需求由單組卷積核的并行度n和數(shù)據(jù)位寬data_wide決定,計(jì)算方式為:

Mem_wide=3*n*data_wide

(1)

Dsp48e使用個(gè)數(shù)Dsp48e_num計(jì)算方式為:

Dsp48e_num=n*m*s_conv

(2)

其中,n為單組卷積核并行個(gè)數(shù);m為卷積組并行個(gè)數(shù);s_conv為單個(gè)卷積使用乘法器個(gè)數(shù),與運(yùn)算數(shù)據(jù)類型有關(guān),文中為9。

每一層卷積占用內(nèi)部存儲(chǔ)容量的計(jì)算方式為:

Mem_num=a*b* data_wide*m+(k-1)*

n*a*data_wide

(3)

其中,Mem_num為單層卷積存儲(chǔ)器使用量;a和b分別為該層卷積的特征圖像尺寸;k為卷積核大小,文中為3;n為單組卷積核并行個(gè)數(shù);m為卷積組并行個(gè)數(shù)。各層存儲(chǔ)資源可復(fù)用,只需占用單層最大存儲(chǔ)容量。

每一層卷積運(yùn)算時(shí)間計(jì)算方式為:

T=a*(b+1)*num_cov/(n*m*freq)

(4)

其中,a和b分別為該層卷積的特征圖像尺寸;num_cov為該層卷積次數(shù);n為單組卷積核并行個(gè)數(shù);m為卷積組并行個(gè)數(shù);freq為運(yùn)算頻率。式4成立的前提為存儲(chǔ)帶寬與運(yùn)算能力相匹配,可實(shí)現(xiàn)流水處理。

3.3 全連接運(yùn)算

全連接層[14]可利用快速流水架構(gòu)實(shí)現(xiàn),將乘累加運(yùn)算設(shè)計(jì)成全流水處理,流水延時(shí)不超過(guò)20個(gè)處理時(shí)鐘。為保證計(jì)算的精度,全連接層數(shù)據(jù)格式采用單精度浮點(diǎn)。可以通過(guò)增加運(yùn)算單元(PE)的個(gè)數(shù)實(shí)現(xiàn)全連接層的加速,全連接層運(yùn)算單元(PE)的并行度不同,可以實(shí)現(xiàn)的加速效果也不同,占用外部存儲(chǔ)資源也會(huì)不同[15]。根據(jù)外部存儲(chǔ)資源的實(shí)際情況,文中選用運(yùn)算單元(PE)的個(gè)數(shù)為16,相應(yīng)的對(duì)外部參數(shù)存儲(chǔ)位寬為512比特。

3.4 小 結(jié)

本節(jié)對(duì)加速器進(jìn)行完整的設(shè)計(jì)。在此框架下,對(duì)CNN模型計(jì)算單元進(jìn)行了詳細(xì)的設(shè)計(jì)討論。卷積層加速架構(gòu)結(jié)合了三種并行特征,以平衡各種并行特征實(shí)現(xiàn)結(jié)構(gòu)的運(yùn)算效率和存儲(chǔ)帶寬需求,并分析了多種并行架構(gòu)的硬件資源占用及性能指標(biāo)情況。全連接層采用多路并行、流水累加架構(gòu),有效提升了處理效率。

4 功能驗(yàn)證

4.1 硬件平臺(tái)

文中設(shè)計(jì)的加速器功能驗(yàn)證模式為PC+FPGA,在FPGA上布置該加速器,PC機(jī)控制軟件通過(guò)PCIe總線給加速器傳輸模型參數(shù)和待處理圖像數(shù)據(jù),加速器將處理結(jié)果通過(guò)PCIe總線發(fā)送給PC機(jī)控制軟件,控制軟件將對(duì)應(yīng)圖像和分類結(jié)果顯示,并與標(biāo)準(zhǔn)解進(jìn)行比對(duì),驗(yàn)證該加速器功能。加速器驗(yàn)證框圖如圖2所示。

驗(yàn)證流程如下:圖像存儲(chǔ)在PC機(jī)上,VGG-16模型的反向訓(xùn)練在PC機(jī)上完成,圖像和訓(xùn)練完成的權(quán)值直接通過(guò)PC機(jī)的PCIe總線下載到FPGA。中心控制器負(fù)責(zé)解析PC機(jī)輸入的圖像、VGG-16模型參數(shù),將其存儲(chǔ)至外部存儲(chǔ)器(DDR3)??刂茖咏邮盏絇C機(jī)的開(kāi)始運(yùn)算指令后,調(diào)度卷積層和輸出層相應(yīng)模塊完成VGG-16模型運(yùn)算。當(dāng)前向傳播計(jì)算完成后,輸出層的結(jié)果由FPGA控制輸回PC機(jī)。

實(shí)驗(yàn)中,F(xiàn)PGA使用Xilinx公司的XC7VX690T器件,采用Digilent公司NetFPGA-SUME開(kāi)發(fā)板作為驗(yàn)證平臺(tái),軟件開(kāi)發(fā)工具為Vivado。與FPGA實(shí)現(xiàn)作對(duì)比的是通用CPU和GPU平臺(tái)下的軟件實(shí)現(xiàn)方式,VGG-16模型與FPGA實(shí)現(xiàn)完全一致。CPU采用I7-6700四核八線程處理器,基準(zhǔn)主頻為3.4 GHz,內(nèi)存為32 GB DDR4。軟件開(kāi)發(fā)工具采用Visual Studio 2013。GPU采用NVIDIA公司的GTX1050,軟件開(kāi)發(fā)工具采用CUDA7.0,核心基準(zhǔn)頻率1 354 MHz,顯存為4 GB DDR5。

圖2 加速器驗(yàn)證架構(gòu)

4.2 驗(yàn)證數(shù)據(jù)集

ImageNet數(shù)據(jù)集是一個(gè)用于視覺(jué)對(duì)象識(shí)別軟件研究的大型可視化數(shù)據(jù)庫(kù),在目前深度學(xué)習(xí)圖像領(lǐng)域應(yīng)用較多。關(guān)于圖像分類、定位、檢測(cè)等研究工作大多基于此數(shù)據(jù)集展開(kāi)。ImageNet數(shù)據(jù)集文檔詳細(xì),有專門(mén)的團(tuán)隊(duì)維護(hù),使用非常方便,是目前全世界最大的帶有標(biāo)記的圖片數(shù)據(jù)庫(kù),在計(jì)算機(jī)視覺(jué)領(lǐng)域研究論文中應(yīng)用非常廣,成為了目前深度學(xué)習(xí)圖像領(lǐng)域算法性能檢驗(yàn)的“標(biāo)準(zhǔn)”數(shù)據(jù)集。

4.3 驗(yàn)證結(jié)果

為驗(yàn)證文中設(shè)計(jì)的基于FPGA的VGG-16網(wǎng)絡(luò)加速器的功能正確性,隨機(jī)選擇ImageNet數(shù)據(jù)集的100幅圖進(jìn)行分類結(jié)果驗(yàn)證,模型參數(shù)選用公開(kāi)數(shù)據(jù)模型,加速器的分類結(jié)果正確,證明該加速器功能正確。

5 性能分析

5.1 硬件及時(shí)間開(kāi)銷(xiāo)

將兩種并行度(并行度1為單組卷積核個(gè)數(shù)16,卷積組為1;并行度2為單組卷積核個(gè)數(shù)16,卷積組為16,全連接層加速架構(gòu)一致)的加速器布置在FPGA中。通過(guò)軟件開(kāi)發(fā)平臺(tái)得到兩種并行度處理器的編譯報(bào)告,通過(guò)分析報(bào)告可得知:并行度1功耗為11.493 W,乘法器(DSP48e)使用165個(gè),內(nèi)部存儲(chǔ)器(36k BRAMs)223.5個(gè);并行度2功耗為13.301 W,乘法器(DSP48e)使用2 336個(gè),內(nèi)部存儲(chǔ)器(36k BRAMs)833.5個(gè),并行度1與并行度2外部存儲(chǔ)資源一致,IO功耗一致,在并行度提升16倍的情況下,功耗僅提升了1.808 W,不到16%。

由上述分析可知,加速器能量主要消耗在存儲(chǔ)和IO通信上,內(nèi)部邏輯、存儲(chǔ)及運(yùn)算資源消耗能量占比較少,通過(guò)增加運(yùn)算并行度復(fù)用外部存儲(chǔ)資源的方式可有效提高能效比??筛鶕?jù)自身需要和硬件資源情況靈活選擇加速器的并行度。

由表2可知,對(duì)同樣的輸入圖像數(shù)據(jù),該加速器并行度1能效比為CPU-I7-6700的260倍以上,相對(duì)于GPU-GTX1050能效比為28倍以上;并行度2能效比為CPU-I7-6700的2 700倍以上,相對(duì)于GPU-GTX1050能效比為290倍以上。并和當(dāng)前業(yè)內(nèi)采用FPGA實(shí)現(xiàn)CNN的加速方案進(jìn)行了對(duì)比,相同條件下,均有不小優(yōu)勢(shì)。

表2 主要實(shí)現(xiàn)方案技術(shù)指標(biāo)對(duì)比(輸入圖像大小為224×224)

5.2 處理精度

為驗(yàn)證加速器的處理精度指標(biāo),從ImageNet數(shù)據(jù)集中隨機(jī)抽取100幅圖片,通過(guò)“分類結(jié)果”及相應(yīng)“置信度”兩個(gè)關(guān)鍵指標(biāo)作為加速器處理精度的考核對(duì)象。將加速器的“分類結(jié)果”及“置信度”兩種處理結(jié)果與Matlab采用雙精度浮點(diǎn)數(shù)據(jù)的相應(yīng)處理結(jié)果進(jìn)行對(duì)比。對(duì)比結(jié)果見(jiàn)圖3和圖4。

圖3 加速器與Matlab處理分類結(jié)果差值

圖4 加速器與Matlab分類結(jié)果的置信度差值

由圖3可知,加速器與Matlab分類結(jié)果的差值為0,表明加速器分類結(jié)果與Matlab的處理結(jié)果完全一致。由圖4可知,加速器與Matlab分類結(jié)果的置信度差值不大于0.05。由此可證明,文中設(shè)計(jì)的加速器處理結(jié)果的精度與雙精度浮點(diǎn)數(shù)據(jù)處理結(jié)果的置信度雖然有一定精度損失,但是不影響最終分類結(jié)果,可滿足使用要求。

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

目前,實(shí)現(xiàn)CNN網(wǎng)絡(luò)模型主要基于通用處理器,采用軟件編程實(shí)現(xiàn),但基于軟件方式無(wú)法充分挖掘CNN神經(jīng)網(wǎng)絡(luò)的并行性,在實(shí)時(shí)性和功耗方面都不能滿足應(yīng)用的需求。在衛(wèi)星或?qū)椀惹度胧綉?yīng)用環(huán)境中,采用可編程邏輯電路實(shí)現(xiàn)CNN網(wǎng)絡(luò)是一個(gè)非常好的選擇,在成本、可靠性、研制周期、靈活性以及性能等方面均能達(dá)到良好平衡。

文中從深度學(xué)習(xí)網(wǎng)絡(luò)入手,結(jié)合星載應(yīng)用特點(diǎn),對(duì)深度學(xué)習(xí)網(wǎng)絡(luò)進(jìn)行解析重構(gòu),設(shè)計(jì)了一種基于全并行流水、權(quán)重量化的深度學(xué)習(xí)加速器,具備內(nèi)部硬件資源占用少、運(yùn)算效率高、通用性強(qiáng)、適合ASIC抗輻照設(shè)計(jì)等特點(diǎn),可滿足星載環(huán)境使用要求。

對(duì)CNN模型進(jìn)行了電路實(shí)現(xiàn)分析,著重分析了卷積運(yùn)算的并行性和全連接層并行實(shí)現(xiàn)方案。卷積運(yùn)算具備多種并行特征,從運(yùn)算效率和數(shù)據(jù)載入帶寬需求兩方面,對(duì)每一種并行特征進(jìn)行了實(shí)現(xiàn)分析;同時(shí)對(duì)多種并行性的組合實(shí)現(xiàn)做了簡(jiǎn)單的實(shí)現(xiàn)分析。用戶可以根據(jù)處理平臺(tái)資源情況,靈活選擇并行度,達(dá)到不同實(shí)現(xiàn)性能。

在實(shí)現(xiàn)分析的基礎(chǔ)上,采用PC+FPGA的驗(yàn)證架構(gòu),完成了VGG-16模型加速器的功能驗(yàn)證。加速器實(shí)現(xiàn)了完整的前向傳播過(guò)程,采用全并行流水處理設(shè)計(jì)思想有效提高整體性能。卷積運(yùn)算單元結(jié)合了多種并行度,以獲得數(shù)據(jù)帶寬需求和運(yùn)算效率的平衡;配置了乒乓式的緩存結(jié)構(gòu),利用數(shù)據(jù)重用提高運(yùn)算效率;同時(shí)對(duì)全連接層計(jì)算進(jìn)行了優(yōu)化,實(shí)現(xiàn)了全流水處理。

在基于ImageNet數(shù)據(jù)集分類實(shí)驗(yàn)中,該加速器每周期最多運(yùn)行2 304次乘累加運(yùn)算,在150 MHz的工作頻率下,峰值運(yùn)算速率可達(dá)到691.2 Gops,能效比為i7-6700-CPU的2 700倍以上,為GTX1050-GPU的290倍以上。從上述結(jié)果可以看出,相比軟件實(shí)現(xiàn)方案,可編程邏輯電路實(shí)現(xiàn)CNN模型有著效率、功耗、成本等多方面的優(yōu)勢(shì)。

在取得以上成果的同時(shí),文中研究也存在許多不足。首先,沒(méi)有深度挖掘數(shù)據(jù)格式選擇對(duì)卷積模型精度的影響,在運(yùn)算效率和處理精度平衡上仍有更多的挖掘空間;第二,在實(shí)驗(yàn)中僅測(cè)試了一種CNN模型,不同模型對(duì)加速性能的影響缺乏實(shí)際效果的說(shuō)明;第三,網(wǎng)絡(luò)剪枝可以有效降低模型參數(shù)量,稀疏網(wǎng)絡(luò),降低處理計(jì)算量,提升處理性能。文中在此方面還沒(méi)有做研究,在后續(xù)運(yùn)算效率上,加速器還有很大提升空間。

猜你喜歡
加速器卷積架構(gòu)
莫比斯加速器眾創(chuàng)辦公空間
基于全卷積神經(jīng)網(wǎng)絡(luò)的豬背膘厚快速準(zhǔn)確測(cè)定
知識(shí)快餐店 科學(xué)加速器
國(guó)內(nèi)外醫(yī)用直線加速器可靠性對(duì)比研究
一種基于卷積神經(jīng)網(wǎng)絡(luò)的地磁基準(zhǔn)圖構(gòu)建方法
基于3D-Winograd的快速卷積算法設(shè)計(jì)及FPGA實(shí)現(xiàn)
一種并行不對(duì)稱空洞卷積模塊①
功能架構(gòu)在電子電氣架構(gòu)開(kāi)發(fā)中的應(yīng)用和實(shí)踐
基于B/S架構(gòu)的圖書(shū)管理系統(tǒng)探究
構(gòu)建富有活力和效率的社會(huì)治理架構(gòu)
如东县| 枝江市| 永福县| 晴隆县| 金堂县| 遂昌县| 普格县| 临朐县| 延庆县| 芦溪县| 柞水县| 娱乐| 平陆县| 哈尔滨市| 高安市| 云南省| 临洮县| 客服| 永胜县| 息烽县| 德格县| 凌云县| 静海县| 乳源| 阳春市| 开化县| 古交市| 榕江县| 固镇县| 加查县| 灯塔市| 阳朔县| 武威市| 茶陵县| 买车| 漯河市| 读书| 望奎县| 抚顺市| 图木舒克市| 芦溪县|