亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于FPGA的YOLOv2加速器設(shè)計

        2021-09-06 12:30:18梁洪衛(wèi)白鵬程陳建玲孫勤江陳明虎薛祥凱
        關(guān)鍵詞:加速器功耗卷積

        梁洪衛(wèi) 白鵬程 陳建玲 孫勤江 陳明虎 薛祥凱

        (1.東北石油大學(xué) 電氣信息工程學(xué)院,黑龍江 大慶 163318;2.中海石油(中國)有限公司 天津分公司,天津 300459)

        0 引 言

        卷積神經(jīng)網(wǎng)絡(luò)(CNN:Convolutional Neural Network)能在大量數(shù)據(jù)中進(jìn)行特征學(xué)習(xí),進(jìn)而實(shí)現(xiàn)相同類型數(shù)據(jù)的識別,在語音識別、圖像處理、圖像分割以及自然語言處理等領(lǐng)域有著廣泛應(yīng)用[1-3]。當(dāng)前的卷積神經(jīng)網(wǎng)絡(luò)目標(biāo)檢測算法主要有兩種方式:一階段檢測(one-stage)[4]方式和兩階段檢測(two-stage)方式。Two-stage 檢測方式由分類器演變進(jìn)化,優(yōu)化比較困難。One-stage 方式將目標(biāo)檢測重新構(gòu)造成一個回歸問題,直接對整張圖像中每個像素邊界框的坐標(biāo)以及其所屬類別進(jìn)行預(yù)測,不需要產(chǎn)生候選區(qū)域(region proposals),運(yùn)行速度較快,YOLOv2 就是基于這種方式工作[5]。

        由于CNN 特定的計算模式,當(dāng)前CNN的設(shè)計及實(shí)現(xiàn)大部分是基于圖形處理器(GPU:Graphics Processing Unit)或依賴于大型服務(wù)器等硬件的支持,不適合移動平臺的應(yīng)用[6]。然而,目前嵌入式系統(tǒng)已經(jīng)有了一個不可忽視的市場,它需要高精度和實(shí)時的圖像識別能力,但存在有限的電池和資源的嚴(yán)重限制性問題[7]。為解決這個問題,許多研究人員從計算或內(nèi)存訪問方面提出了各種CNN 加速技術(shù),FPGA 不僅具有豐富的片上硬件邏輯資源,還具有靈活的線路連接特性和良好的內(nèi)存帶寬,以及靈活的設(shè)計和較短的開發(fā)周期等優(yōu)點(diǎn),廣泛地應(yīng)用于深度學(xué)習(xí)領(lǐng)域,利用FPGA 加速神經(jīng)網(wǎng)絡(luò)已成為目前的研究熱點(diǎn)之一[8]。

        筆者著重研究基于FPGA的YOLOv2 網(wǎng)絡(luò)的加速器設(shè)計,使用Xilinx 公司提供的Vivado 工具對各個設(shè)計模塊進(jìn)行仿真驗證,然后用PYNQ-Z2 開發(fā)板搭建相應(yīng)的硬件加速平臺進(jìn)行功能驗證,硬件平臺包含可編程邏輯端(PL:Programmable Logic)和處理系統(tǒng)(PS:Process System)兩部分,通過軟、硬件協(xié)同的方式,分配合理的軟、硬件任務(wù),將卷積神經(jīng)網(wǎng)絡(luò)的卷積層、池化層等參數(shù)數(shù)量較少而計算量大的部分,安排到FPGA 中進(jìn)行加速,將全連接層等參數(shù)數(shù)量多而計算量較少的部分安排到ARM 中進(jìn)行處理,充分考慮FPGA 中邏輯資源的使用問題,實(shí)現(xiàn)良好的加速效果。

        1 YOLOv2 網(wǎng)絡(luò)模型

        YOLOv2 致力于實(shí)現(xiàn)一個端到端的網(wǎng)絡(luò),以達(dá)到快速檢測并保持較高的準(zhǔn)確度的目的。首先將輸入的圖像劃分成13×13 大小的網(wǎng)格,若其中一個對象的中心落在某一個網(wǎng)格單元內(nèi),則就由這個網(wǎng)格單元負(fù)責(zé)該圖像的檢測,算法設(shè)定每個網(wǎng)格單元預(yù)測5 個邊界框,每個邊界框包含85 維特征,這85 維特征由3 部分組成:80 類物體;預(yù)測框的中心點(diǎn)坐標(biāo)(x,y);邊框?qū)抴、高h(yuǎn)以及1 維可信度,可信度是每個框中包含可能的目標(biāo)和準(zhǔn)確度。

        YOLOv2 網(wǎng)絡(luò)的設(shè)計主要是通過卷積層對圖像特征進(jìn)行提取,同時使用全連接層預(yù)測邊界框的類與坐標(biāo)。YOLOv2 網(wǎng)絡(luò)包含23 個卷積層,5 個池化層,1 個重排序?qū)右约邦A(yù)處理層、路由層和后處理層。卷積層主要采用3×3 大小的卷積核,最大池化層使用2×2 大小的池化核,經(jīng)過一層卷積核池化后特征圖的維度降低了2 倍,為降低模型計算量和參數(shù),在3×3 卷積之間使用了1×1 卷積壓縮特征圖通道數(shù)。YOLOv2 采用416×416 大小的圖片作為輸入,下采樣總步長為32,最終得到13×13 大小的特征圖,這種特征圖恰好只有一個中心點(diǎn)位置,YOLOv2 使用了先驗框處理,每個位置的各個先驗框都單獨(dú)預(yù)測一套分類概率值。

        對YOLOv2 網(wǎng)絡(luò)模型進(jìn)行深入分析,理解了模型算法的原理和數(shù)據(jù)流,根據(jù)模型在不同階段的運(yùn)算,合理分配計算任務(wù)。

        2 FPGA 加速器設(shè)計

        FPGA 是一種集成電路芯片,可以在成片后針對不同的算法進(jìn)行定制硬件加速邏輯設(shè)計,并通過對邏輯單元的配置實(shí)現(xiàn)多種軟件算法。FPGA的基本結(jié)構(gòu)主要由查找表(LUT:Look Up Table)、觸發(fā)器(FF:Filp Flop)、導(dǎo)線和輸入輸出(I/O:IN/OUT)端口組成,有的還包含計算模塊(DSP:Digital Singnal Processor)和存儲模塊(BRAM:Block RAM)。

        2.1 加速器架構(gòu)

        在FPGA 設(shè)計中優(yōu)化是必不可少的過程,采用合理的優(yōu)化策略不僅可以增強(qiáng)FPGA 計算性能,還可以提高數(shù)據(jù)交換的能力以及片上資源的利用率[9]。優(yōu)化策略主要分為計算優(yōu)化和內(nèi)存優(yōu)化,其中計算優(yōu)化包括計算并行、循環(huán)塊、循環(huán)展開和流水循環(huán)等優(yōu)化技術(shù),內(nèi)存優(yōu)化有減小數(shù)據(jù)精度、合理利用本地存儲、基于雙緩沖的“乒-乓”數(shù)據(jù)傳輸機(jī)制以及層間數(shù)據(jù)復(fù)用[10]。加速器基本結(jié)構(gòu)如圖1 所示。加速器設(shè)計采用常規(guī)的3 層存儲架構(gòu):片外存儲、片上緩存和處理單元的局部寄存[11]。由于芯片上塊隨機(jī)存取存儲器(BRAM)容量有限,內(nèi)核權(quán)重和中間像素結(jié)果都存儲在外部內(nèi)存中,即動態(tài)隨機(jī)存儲器(DRAM:Dynamic RAM)中,芯片上BRAM 作為動態(tài)隨機(jī)存儲器(DRAM)和PE(Processing Engine)之間的緩沖器。在加速前將預(yù)先訓(xùn)練好的核權(quán)值和輸入圖像加載到DRAM 中。在連續(xù)DRAM 地址中,所有中間輸出像素都按照每個特征行、特征圖到其網(wǎng)絡(luò)層的形式逐步存儲。

        由于YOLOv2 算法包含大量的參數(shù)和權(quán)重,如果僅依靠片上存儲不足以存儲所有數(shù)據(jù),所以需要借助外部存儲器?;玖鞒倘鐖D1 所示。加速器從片外存儲中讀取卷積核權(quán)重參數(shù)與輸入特征圖像素到FPGA的片上緩存,通過多次復(fù)用片上緩存中的數(shù)據(jù)減少訪存次數(shù)和數(shù)據(jù)量[12-13],然后經(jīng)過處理單元陣列得到最終結(jié)果,再寫回片外。

        圖1 加速器架構(gòu)Fig.1 Accelerator architecture

        2.2 卷積模塊設(shè)計

        卷積計算如人們的大腦在識別圖片的過程中,并不能馬上識別一整張圖片,而是先對圖片中的每個特征進(jìn)行局部感知,然后再對局部感知進(jìn)行高層次的綜合,進(jìn)而得到全局信息。對一個彩色圖片(RGB 3 通道),經(jīng)過4 層卷積核卷積運(yùn)算,每層卷積核都有自己的權(quán)值,且其先對R、G、B 通道分別進(jìn)行計算,然后再累加計算得到R、G、B 通道的值,對應(yīng)位置處合并為最終一層的卷積層。

        一個內(nèi)核窗口的寬度和高度由Nkx 和Nky 描述。輸入特征映射的寬度、高度由Nix、Niy 描述,輸出特征映射的寬度、高度由Nox、Noy 描述,輸入和輸出特征映射的數(shù)目用Nif 和Nof 表示。為了快速有效地執(zhí)行卷積循環(huán),設(shè)計使用3 種循環(huán)優(yōu)化技術(shù),即循環(huán)分塊、循環(huán)展開和循環(huán)交換,定制具有3 層存儲架構(gòu)的加速器計算和通信模式[14-15],如圖2 所示。對卷積循環(huán)進(jìn)行分塊,盡可能重復(fù)利用輸出特征圖像素,將輸出特征圖的中間計算結(jié)果保留在片上緩存中或局部寄存器中,在到最終結(jié)果才會寫回片外,通過合理分配循環(huán)塊的大小,可增加數(shù)據(jù)的位置以減少DRAM 訪問次數(shù)。對卷積循環(huán)進(jìn)行展開,是利用卷積循環(huán)計算的特點(diǎn),因為設(shè)計不同的展開維度,會對應(yīng)不同的乘法和加法單元,以達(dá)到減少計算延時,加速卷積計算。對卷積循環(huán)進(jìn)行交換,目的是改變卷積循環(huán)的嵌套順序,最終改變數(shù)據(jù)復(fù)用模式。

        圖2 卷積運(yùn)算Fig.2 Convolution operation

        2.3 池化模塊設(shè)計

        池化層的作用是對輸入的特征圖進(jìn)行壓縮,一方面使特征圖變小,簡化網(wǎng)絡(luò)計算的復(fù)雜度;另一方面是進(jìn)行特征壓縮,減少過擬合,提取主要特征。YOLOv2 中的池化層都為K=S=2的最大池化層,對單一輸入特征圖,以2×2 大小、步長為2的窗口滑動,取其中的最大像素作為輸出,池化運(yùn)算的過程如圖3所示。在1 個時鐘周期內(nèi),當(dāng)數(shù)據(jù)充滿流水線后池化模塊從一個獨(dú)立的輸入特征圖緩存中,讀取相同位置的像素與當(dāng)前最大值比較,同時還有其他比較器進(jìn)行不同輸入特征圖的比較運(yùn)算。將得到的最大值寫入輸出緩存中。

        圖3 池化計算流程圖解Fig.3 Schematic diagram of pooling calculation process

        3 實(shí)驗過程與結(jié)果分析

        3.1 硬件實(shí)現(xiàn)

        在得到包含YOLOv2 網(wǎng)絡(luò)權(quán)值參數(shù)的二進(jìn)制文件后,首先使用Vivado HLS 工具將卷積、池化等操作綜合成硬件IP,得到IP 后將IP 放到Vivado 工程目錄下,使用Vivado 工具調(diào)用Xilinx 官方的DMA、ARM等IP 共同組成SOC 硬件片上系統(tǒng),將FPGA 端所有的IP 核的工作頻率統(tǒng)一設(shè)置為150 MHz,然后對工程進(jìn)行編譯,生成PYNQ 可識別的.bit 和.tcl 文件,把這兩個文件安排到PYNQ 鏡像目錄下,最后使用Jupyter Notebook 工具編寫驅(qū)動程序,完成設(shè)計的所有部分。

        硬件加速平臺使用Xilinx 公司的PYNQ-z2 開發(fā)板,FPGA 芯片型號為ZYNQ XC7Z020CLG400-1,實(shí)驗中的PYNQ的芯片中含有一個雙核ARM,內(nèi)核為Cortex-A9,采用的加速方案是ARM+FPGA的異構(gòu)形式。圖4 中YOLO2_FPGA 是針對YOLOv2 網(wǎng)絡(luò)設(shè)計的加速器IP 核,Processing Systems 是PYNQ-z2的PS 端處理系統(tǒng),其余部分是FPGA 端自帶的IP 核,加速器有一個AXILite Slave 接口與PS 端GP0 接口連接,負(fù)責(zé)數(shù)據(jù)的讀寫、控制和狀態(tài)寄存器,AXI Master 接口分別連接PS 端的HP 接口,負(fù)責(zé)讀取特征圖的像素和權(quán)重。BRAM_18K 用于實(shí)現(xiàn)存儲量大的緩存,不僅是中間結(jié)果的緩存,AXI Master 接口也會耗費(fèi)BRAM 實(shí)現(xiàn)接口緩存。DSP 主要用于卷積模塊中加法器和乘法器的設(shè)計,也有一部分會被其他模塊使用。FPGA 資源使用情況:在上述網(wǎng)絡(luò)參數(shù)的設(shè)置下,FPGA的資源中利用率最高的是DSP,利用率達(dá)到70%(見表1),可見數(shù)據(jù)的處理計算是限制網(wǎng)絡(luò)層數(shù)的一個主要因素。

        表1 資源利用率Tab.1 Resource utilization

        圖4 YOLOv2 加速器的SOC 設(shè)計Fig.4 SOC design of the YOLOv2 accelerator

        3.2 性能評估與實(shí)驗結(jié)果

        功耗:從編譯完成后的報告中可以看出筆者設(shè)計的框架對應(yīng)的功耗,如圖5 所示。靜態(tài)功耗為0.187 W,動態(tài)功耗為2.524 W,總功耗為2.711 W。

        圖5 FPGA 片上功耗Fig.5 Power consumption on FPGA chip

        識別結(jié)果:圖6 是對測試集中圖片的檢測結(jié)果,圖7 是對實(shí)際圖片進(jìn)行檢測的結(jié)果。由FPGA 加速處理后,從返回的報告中能得到圖像識別的結(jié)果并給出判斷的準(zhǔn)確率以及整個加速器各個部分處理需要的時間,可以看到FPGA 處理的平均時間為2.47 s,每張照片的浮點(diǎn)運(yùn)算達(dá)到了29.47 GOP,該設(shè)計的處理能力為27.03 GOP/s,與CPU(E5-2620V4)相比,處理能力是CPU的6.57 倍,功耗是CPU的3%。

        圖6 測試集檢測結(jié)果Fig.6 Test set detection results

        圖7 實(shí)際圖像檢測結(jié)果Fig.7 Actual image detection results

        4 結(jié) 語

        筆者以YOLOv2 算法為例,以PYNQ-z2 開發(fā)板作為硬件加速器,設(shè)計對應(yīng)的加速器結(jié)構(gòu),可離線處理大量數(shù)據(jù)操作。首先對YOLOv2 網(wǎng)絡(luò)結(jié)構(gòu)進(jìn)行研究分析,然后對各個模塊進(jìn)行合理設(shè)計,保證設(shè)計的性能和效率,最后采用VerilogHDL 語言完成算法的設(shè)計,生成IP 和其他模塊進(jìn)行封裝。通過實(shí)際測試,達(dá)到了理想的設(shè)計目標(biāo)。與基于通用處理器的卷積神經(jīng)網(wǎng)絡(luò)系統(tǒng)相比,如E5-2620V4 CPU 處理器,功耗低至2.711 W,是E5-2620V4 功耗的3%,處理能力是E5-2620V4的6.57 倍,卷積神經(jīng)網(wǎng)絡(luò)算法專用硬件系統(tǒng)設(shè)計,集成程度更高,設(shè)備體積更小,重構(gòu)性強(qiáng),具有一定的應(yīng)用價值和現(xiàn)實(shí)意義。

        隨著檢測精度的不斷提高,神經(jīng)網(wǎng)絡(luò)模型的結(jié)構(gòu)變得越來越復(fù)雜,計算量也成倍增加,對在小型嵌入式設(shè)備上部署大型的神經(jīng)網(wǎng)絡(luò)變得更加困難,因此需要對結(jié)構(gòu)復(fù)雜的神經(jīng)網(wǎng)絡(luò)進(jìn)行壓縮剪枝。通過PYNQ-z2 加速后YOLOv2 網(wǎng)絡(luò)未能達(dá)到實(shí)時檢測的結(jié)果,接下來針對YOLOv2 進(jìn)行壓縮剪枝,在保證檢測精度變化不大的情況下,在小型嵌入式設(shè)備上實(shí)現(xiàn)快速檢測。

        猜你喜歡
        加速器功耗卷積
        輪滑加速器
        化學(xué)工業(yè)的“加速器”
        基于3D-Winograd的快速卷積算法設(shè)計及FPGA實(shí)現(xiàn)
        全民小康路上的“加速器”
        少先隊活動(2021年6期)2021-07-22 08:44:24
        從濾波器理解卷積
        電子制作(2019年11期)2019-07-04 00:34:38
        基于傅里葉域卷積表示的目標(biāo)跟蹤算法
        揭開GPU功耗的面紗
        個人電腦(2016年12期)2017-02-13 15:24:40
        數(shù)字電路功耗的分析及優(yōu)化
        電子制作(2016年19期)2016-08-24 07:49:54
        等待“加速器”
        “功耗”說了算 MCU Cortex-M系列占優(yōu)
        電子世界(2015年22期)2015-12-29 02:49:44
        日本高清一道本一区二区| 成人做爰69片免费看网站野花| 亚洲 日本 欧美 中文幕| 亚洲色精品aⅴ一区区三区| 少妇被躁爽到高潮无码文| 亚洲一区二区婷婷久久| 久久精品国产亚洲av蜜臀久久| 国产亚洲超级97免费视频| √天堂资源中文www| av香港经典三级级 在线| 无码人妻精品一区二区三区下载| 亚洲精品一区二区三区麻豆| 国产精品久久久久久久久电影网| 国产丝袜无码一区二区三区视频| 亚洲欧美一区二区三区国产精| 精品国产车一区二区三区| 成人爽a毛片在线播放| 久久精品国产亚洲av麻豆长发| 日本乱人伦在线观看| 国产成年无码aⅴ片在线观看| 自拍偷区亚洲综合激情| 国产免费又爽又色又粗视频| 99久久免费精品高清特色大片| 亚洲av永久无码精品水牛影视| 亚洲一区二区三区码精品色| a黄片在线视频免费播放| 日本熟妇人妻xxxx| 中出内射颜射骚妇| 亚州毛色毛片免费观看| 日本在线观看一区二区视频| 成年女人免费v片| 亚洲日韩v无码中文字幕| 日韩在线观看网址| 邻居少妇张开腿让我爽视频| 国产激情久久久久久熟女老人| 大陆极品少妇内射aaaaa| 福利网在线| 亚洲日本中文字幕高清在线| 免费无码毛片一区二区app| 久久久久亚洲av无码观看| 国产福利小视频在线观看|