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

?

CNN加速器中卷積計(jì)算單元的硬件設(shè)計(jì)

2019-01-08 08:37:44楊博文楊海濤高浩浩
關(guān)鍵詞:現(xiàn)場(chǎng)可編程門陣列卷積神經(jīng)網(wǎng)絡(luò)

楊博文 楊海濤 高浩浩

摘要:卷積神經(jīng)網(wǎng)絡(luò)(CNN)所有子層中卷積層的計(jì)算是整個(gè)網(wǎng)絡(luò)計(jì)算中最耗費(fèi)計(jì)算資源的問題,本文提出了一種對(duì)卷積神經(jīng)網(wǎng)絡(luò)的卷積層并行化實(shí)現(xiàn)方案。首先對(duì)系統(tǒng)的整體處理結(jié)構(gòu)進(jìn)行分析,然后對(duì)計(jì)算核的結(jié)構(gòu)進(jìn)行詳細(xì)討論,最后將卷積層中卷積運(yùn)算并行映射到陣列處理器上。實(shí)驗(yàn)結(jié)果表明,在250Mhz的工作頻率下,該結(jié)構(gòu)可使FPGA(Field Programmable Gate Array,F(xiàn)PGA)提高峰值運(yùn)算速度。

關(guān)鍵詞:卷積神經(jīng)網(wǎng)絡(luò);現(xiàn)場(chǎng)可編程門陣列;卷積層

中圖分類號(hào):TP391.4 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1007-9416(2019)10-0136-02

CNN是著名的深度學(xué)習(xí)架構(gòu),從人工神經(jīng)網(wǎng)絡(luò)擴(kuò)展而來(lái),它已經(jīng)大量用于不同應(yīng)用,包括視頻監(jiān)控,移動(dòng)機(jī)器人視覺,數(shù)據(jù)中心的圖像搜索引擎等[1-2]。由于CNN的特殊計(jì)算模式,通用處理器實(shí)現(xiàn)CNN并不高效,所以很難滿足性能需求[4]。于是,基于FPGA,GPU甚至ASIC的不同加速器被相繼提出以提升CNN設(shè)計(jì)性能[5-6]。卷積神經(jīng)網(wǎng)絡(luò)加速器主要由卷積、池化、數(shù)據(jù)選擇、輸入輸出緩存等單元組成,其中卷積模塊根據(jù)多個(gè)一定的權(quán)重(即卷積核),對(duì)一個(gè)塊的像素進(jìn)行內(nèi)積運(yùn)算,它的輸出就是提取的特征之一,但因?yàn)榫矸e核的大小一般小于輸入圖像的大小,因此卷積提取出的特征更多的關(guān)注的是局部信息[3]。卷積計(jì)算單元是計(jì)算核的主要模塊,主要的功能是對(duì)輸入數(shù)據(jù)進(jìn)行特征提取,其內(nèi)部包含多個(gè)卷積核,組成卷積核的每個(gè)元素都對(duì)應(yīng)一個(gè)權(quán)重系數(shù)和一個(gè)偏差量。

1 卷積計(jì)算模塊設(shè)計(jì)

卷積運(yùn)算是兩個(gè)卷積核大小的矩陣的內(nèi)積運(yùn)算,即相同位置的數(shù)字相乘再相加求和。通常情況下,靠近輸入的卷積層,譬如第一層卷積層,會(huì)找出一些共性的特征,如手寫數(shù)字識(shí)別中第一層一般是找出諸如“橫線”、“豎線”、“斜線”等共同特征,稱之為基本特征,經(jīng)過(guò)池化操作后,在第二層卷積層,可以找出一些相對(duì)復(fù)雜的特征,如“橫折”、“左半圓”、“右半圓”等特征,越往后,卷積核設(shè)定的數(shù)目越多,體現(xiàn)出的特征越細(xì)致。

卷積計(jì)算單元的結(jié)構(gòu)框圖如圖1所示,主要由數(shù)據(jù)輸入信號(hào)data_in和權(quán)重輸入信號(hào)weight_in進(jìn)行卷積計(jì)算,當(dāng)信號(hào)data_in_sop為1時(shí),則判斷信號(hào)data_in_valid為高,即輸入數(shù)據(jù)有效,當(dāng)data_in_eop信號(hào)為1時(shí),則數(shù)據(jù)有效信號(hào)為低,讀入數(shù)據(jù)結(jié)束。當(dāng)復(fù)位信號(hào)為低時(shí),輸入原始數(shù)據(jù)的中間寄存器data_in_temp和weight_in_temp為0,當(dāng)復(fù)位信號(hào)拉高時(shí),中間寄存器data_in_temp和weight_in_temp分別等于輸入的信號(hào)data_in和weight_in。因?yàn)榫W(wǎng)絡(luò)中存在不同大小的卷積操作,通過(guò)全局控制器counter_control信號(hào)對(duì)網(wǎng)絡(luò)的計(jì)算進(jìn)行控制,當(dāng)counter_control為0時(shí),表示網(wǎng)絡(luò)的第一層計(jì)算,則控制不同大小計(jì)算的寄存器max為121,支持網(wǎng)絡(luò)中的11×11塊大小的卷積運(yùn)算;當(dāng)counter_control大于1小于105時(shí),表示網(wǎng)絡(luò)的第二層計(jì)算,則控制不同大小計(jì)算的寄存器max為25,支持網(wǎng)絡(luò)中的5×5塊大小的卷積運(yùn)算;當(dāng)counter_control大于106小于419時(shí),表示網(wǎng)絡(luò)的第三、四、五層計(jì)算,則控制不同大小計(jì)算的寄存器max為9,支持網(wǎng)絡(luò)中的3×3塊大小的卷積運(yùn)算。在計(jì)算卷積操作之前,定義寄存器counter用于計(jì)數(shù),當(dāng)data_in_valid為高,counter等于max時(shí),則計(jì)數(shù)器歸1,重新開始計(jì)數(shù);當(dāng)counter不等于max時(shí),則計(jì)數(shù)器counter自加1,否則為0,依次循環(huán)。

執(zhí)行卷積操作時(shí),當(dāng)計(jì)算器counter等于1時(shí),中間結(jié)果信號(hào)data_temp等于輸入原始數(shù)據(jù)和權(quán)重乘積;當(dāng)計(jì)算器counter大于2小于max時(shí),中間結(jié)果信號(hào)data_temp等于輸入原始數(shù)據(jù)和權(quán)重乘積加前面的中間結(jié)果。當(dāng)counter等于max時(shí),執(zhí)行ReLU操作,對(duì)得到的最終結(jié)果進(jìn)行判斷,當(dāng)data_temp大于等于0,則輸出信號(hào)data_out等于data_temp,否則置為0。其中,當(dāng)data_in_valid為高且counter與max相等,則輸出有效信號(hào)data_out_valid為1,否則為0;當(dāng)data_in_valid為高且counter_sop與max相等,則輸出開始信號(hào)為1,否則為0;數(shù)據(jù)輸出結(jié)束信號(hào)data_out_eop比輸入結(jié)束信號(hào)延兩拍。

2 實(shí)驗(yàn)結(jié)果

在Zynq-7000 XC7Z045-2FFG900CFPGA上電路綜合成功后生成的全局時(shí)序報(bào)告,工作頻率為250Mhz。如表1所示芯片資源利用率情況,開發(fā)板上的資源足夠充足,可以滿足工程實(shí)現(xiàn)需要的資源,符合設(shè)計(jì)的要求。

參考文獻(xiàn)

[1] 雷杰,高鑫,宋杰,etal.深度網(wǎng)絡(luò)模型壓縮綜述[J].軟件學(xué)報(bào),2018,29(2):251-266.

[2] 王磊,趙英海,楊國(guó)順,etal.面向嵌入式應(yīng)用的深度神經(jīng)網(wǎng)絡(luò)模型壓縮技術(shù)綜述[J].北京交通大學(xué)學(xué)報(bào):自然科學(xué)版,2017,41(06):34-41.

[3] 蹇強(qiáng),張培勇,王雪潔.一種可配置的CNN協(xié)加速器的FPGA實(shí)現(xiàn)方法[J].電子學(xué)報(bào),2019,47(7):1525-1531.

[4] 趙彤,喬廬峰,陳慶華.一種基于FPGA的CNN加速器設(shè)計(jì)[J].通信技術(shù),2019(5):1242-1248.

[5] 趙博然.FPGA實(shí)現(xiàn)的可編程神經(jīng)網(wǎng)絡(luò)處理器[D].西安電子科技大學(xué),2018.

[6] 周飛燕,金林鵬,董軍.卷積神經(jīng)網(wǎng)絡(luò)研究綜述[J].計(jì)算機(jī)學(xué)報(bào),2017,40(6):1229-1251.

猜你喜歡
現(xiàn)場(chǎng)可編程門陣列卷積神經(jīng)網(wǎng)絡(luò)
基于卷積神經(jīng)網(wǎng)絡(luò)溫室智能大棚監(jiān)控系統(tǒng)的研究
基于深度卷積神經(jīng)網(wǎng)絡(luò)的物體識(shí)別算法
D—BLAST基帶系統(tǒng)的FPGA實(shí)現(xiàn)研究
深度學(xué)習(xí)算法應(yīng)用于巖石圖像處理的可行性研究
基于深度卷積網(wǎng)絡(luò)的人臉年齡分析算法與實(shí)現(xiàn)
軟件工程(2016年8期)2016-10-25 15:47:34
基于卷積神經(jīng)網(wǎng)絡(luò)的樹葉識(shí)別的算法的研究
一種千兆以太網(wǎng)SerDes 接口與電接口的轉(zhuǎn)換方法
基于FPGA的遺傳算法在交通控制中的應(yīng)用
基于FPGA的顏色識(shí)別觸摸屏系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)
光泽县| 宜春市| 雅江县| 武功县| 邵东县| 绥芬河市| 昆明市| 西乌珠穆沁旗| 青州市| 酒泉市| 循化| 延津县| 托里县| 兴文县| 宝兴县| 纳雍县| 民勤县| 鸡西市| 平湖市| 赣榆县| 定兴县| 白朗县| 田林县| 永寿县| 青川县| 临颍县| 平度市| 津南区| 富平县| 芦山县| 宜昌市| 抚松县| 个旧市| 阿尔山市| 平江县| 元朗区| 兰西县| 定远县| 肇东市| 郎溪县| 巴彦淖尔市|