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

        ?

        基于FPGA 的量化CNN 加速系統(tǒng)設計

        2022-03-12 05:56:14杰,趙爍,何虎,鄧
        計算機工程 2022年3期
        關鍵詞:方法模型設計

        鞏 杰,趙 爍,何 虎,鄧 寧

        (清華大學微電子學研究所,北京 100084)

        0 概述

        卷積神經網絡(Convolutional Neural Network,CNN)憑借強大的圖像處理能力,被廣泛應用于圖像識別、目標檢測[1-2]等多個領域,但同時其網絡規(guī)模、參數(shù)量與計算量不斷增加,如何將CNN 高效地部署至硬件平臺成為當下重要的研究課題。

        目前多數(shù)CNN 都是在CPU/GPU 平臺以32 位的浮點數(shù)形式進行運算,但CPU 在并行計算方面存在缺陷,并不適用于CNN 的計算,GPU 雖然在并行計算方面有巨大優(yōu)勢,但是高能耗的特點導致其在便攜式移動設備環(huán)境下也不適用?,F(xiàn)場可編程門陣列(Field Programmable Gate Array,F(xiàn)PGA)不僅能滿足并行計算與低功耗的需求,而且還具有高度的靈活性,可適用于不同場景,因此,F(xiàn)PGA 可為CNN 部署提供有效的解決方案[3]。

        在研究CNN 硬件加速方法的過程中,學者們一直力求于低功耗、高能效[4-5]。一種常見的方法是通過壓縮模型來達到減小模型體積和降低硬件資源消耗的目的。目前,使用更低位寬如8 位、16 位的定點數(shù)來表示原始的32 位浮點數(shù)進行推理計算已經被證明有效且得到廣泛應用[6-8]。將高精度參數(shù)替換為低精度參數(shù)能有效降低存儲、內存帶寬等硬件資源需求且?guī)缀醪挥绊懩P蜏蚀_率。在模型壓縮方面,學者們還使用網絡剪枝[9]、模型蒸餾[10]等方法來達到減少模型參數(shù)、提高計算效率的目的。另一種常見方法是通過面向CNN 中占比大的計算操作如卷積計算、全連接層計算、激活函數(shù)計算等設計專門的硬件進行計算加速[11],主要有面向并行計算、針對數(shù)據(jù)通路的加速器設計等[12-14]。

        針對目前浮點數(shù)CNN 模型規(guī)模和硬件資源消耗大的問題,本文設計一種通用的CNN 動態(tài)定點量化方法及加速系統(tǒng),并以VGG-16 與ResNet-50 網絡為例部署至FPGA 平臺進行實驗驗證。

        1 算法分析

        1.1 網絡參數(shù)與計算量

        CNN 的主要計算有卷積計算、全連接計算、批歸一化(Batch Normalization,BN)、激活函數(shù)、池化計算等。本文所選用的VGG-16 網絡包含13 層卷積層與3 層全連接層,ResNet-50 網絡包含49 層卷積層與1 層全連接層。對網絡參數(shù)與計算量進行統(tǒng)計分析,由表1 可以看出,本文所選用的2 個網絡參數(shù)量都非常大,VGG-16 對一張圖片的推理所需乘加操作達到10G 級,雖然ResNet-50 中的殘差連接一定程度上減少了計算量,但是對于通用處理器來說這樣的規(guī)模同樣巨大,因此,必須設計專用加速器。

        表1 網絡參數(shù)與計算量Table 1 Parameters quantity and calculation quantity of the networks

        1.2 網絡運算時間

        為使加速器設計更有針對性,對網絡中各層所占用的運行時間進行分析。使用C 語言搭建2 個模型,選用單張3×224×224 像素大小的圖像作為輸入,分別進行前向推理計算并統(tǒng)計運算時間。由表2 可知,在CNN 中,絕大部分的計算操作都是卷積計算以及全連接層的計算,而全連接層實際上可以看作是特殊的卷積操作,本文重點在于對卷積參數(shù)做有效量化并結合硬件設計進行加速計算。

        表2 網絡各層計算量與運行時間Table 2 Calculation quantity and running time of each layer in the networks

        2 網絡量化

        2.1 網絡預處理

        目前絕大多數(shù)的CNN 卷積操作都是按照卷積、BN、ReLU 的順序進行的,引入BN 層的目的是在訓練時加快模型收斂速度以及避免過擬合[15]。BN 的計算公式如式(1)所示:

        其中:γ為縮放因子;μ和σ2為當前Batch 的均值和方差;xi為卷積計算結果;ε為防止分母為0 所添加的十分小的正數(shù);β為偏置。由式(1)可以看出,在前向推理計算時,BN 層增加了不必要的參數(shù)量,同時還會消耗一定的硬件資源。為了加快計算速度,本文將卷積與BN 層的參數(shù)進行融合。卷積計算公式如式(2)所示:

        其中:Wconv為卷積核參數(shù);bconv為偏置。同時,將式(1)改寫為式(3)所示形式:

        BN 的輸入實際為卷積計算的輸出,因此,將式(2)、式(3)合并,得到卷積和歸一化融合后的式(4):

        2.2 量化方法

        量化這一方法在神經網絡加速運算的研究領域很常見,目前常用的量化方法主要分為基于碼本的量化與定點量化兩種[16-18]?;诖a本的量化是將張量中的每個值通過縮放因子與零值映射到一個有限集合的某個元素,此集合即為碼本。定點量化是將單精度浮點網絡參數(shù)以低位定點數(shù)來替代。以VGG-16 為例,其網絡參數(shù)與層間結果分布如圖1 所示。

        圖1 VGG-16 網絡數(shù)據(jù)分布Fig.1 Data distribution of VGG-16 network

        從圖1 可以看出,VGG-16 網絡中不同層的參數(shù)范圍有較大出入,并且層間結果相對于網絡參數(shù)來說都過大。因此,本文采用動態(tài)定點量化方法,即針對不同結構選擇合適的參數(shù)分別對其進行量化以達到最優(yōu)效果。為了避免量化位寬不夠的情況,通過式(5)的方法尋找合適的整數(shù)位:

        其中:x為待量化數(shù);lint為整數(shù)位長度。由此可以得到小數(shù)位長度lfloat=lbw-lint,其中,lbw為量化后位寬。

        圖2 為2 個8 位定點數(shù)的例子。上半部分的小數(shù)位為4,其表示的數(shù)為22+21+2-1+2-2+2-4=6.812 5。下半部分的小數(shù)位為-1,其表示的數(shù)為27+26+24+23+21=218。通過小數(shù)位所在位置,能夠有效地將定點數(shù)還原至其十進制數(shù)值,同時在后續(xù)過程中使用定點8 位數(shù)替代浮點數(shù)運算。

        圖2 8 位定點數(shù)結構Fig.2 Structure of 8 bit fixed-point

        對待量化參數(shù)進行量化處理,如式(6)所示:

        其中:s為符號位值;x為有效位值。

        3 定點量化卷積加速器設計

        基于上文提出的動態(tài)定點量化方法設計加速器結構,如圖3 所示。加速器主要包含控制器、片上緩存、傳輸單元、計算核4 個部分,其中:控制器通過總線從CPU 獲取數(shù)據(jù)傳輸、緩存、計算的相關配置信息并分別進行配置,保證整個計算流程穩(wěn)定、準確;片上緩存暫存來自DDR 的輸入和網絡權重以及計算輸出數(shù)據(jù);傳輸單元用于傳輸內存與偏上緩存間的數(shù)據(jù);計算核則完成整個加速過程的核心計算。

        圖3 加速器計算結構Fig.3 Computing structure of accelerator

        3.1 片上緩存與傳輸單元

        片上緩存主要分為輸入、輸出和權重的緩存,計算核中同時還有暫存卷積計算中間結果的緩存和暫存定點處理模塊輸入數(shù)據(jù)的緩存。數(shù)據(jù)緩存能有效地降低DDR 和加速器的數(shù)據(jù)傳輸頻率,不但能滿足卷積核參數(shù)復用的需求,而且還能降低數(shù)據(jù)搬運的能耗。

        輸入輸出與權重的緩存分別使用2 個不同的傳輸單元控制以提高數(shù)據(jù)傳輸?shù)牟⑿卸?,其中權重的?shù)據(jù)傳輸采用ping-pong 模式進行,即同時進行DDR 到緩存的數(shù)據(jù)傳輸和計算核的加速計算,提高了加速效率。

        3.2 計算核

        計算核是加速器的核心模塊,包含3 個子模塊,分別為MAC 模塊、量化處理模塊(Quantization Process Module,QPM)和激活函數(shù)模塊,其結構如圖4 所示。

        圖4 計算核結構Fig.4 Structure of computing core

        MAC 模塊主要由乘加陣列構成,其作用為將卷積核與對應輸入特征映射的部分乘加結果與其對應通道的部分乘加結果累加,通過提高卷積計算并行度和陣列循環(huán)展開計算來提高計算效率。

        QPM 為量化處理模塊,主要負責量化運算,具體由移位、加偏置、舍入和截斷4 個部分組成。QPM計算過程如圖5 所示,為了避免溢出,卷積乘加結果以32 位形式暫存,與偏置求和時,因為定點數(shù)小數(shù)點位置不同,所以需要先進行移位操作使兩者小數(shù)位相同,再進行加操作,隨后判斷是否有進位產生,最后移位至小數(shù)點位置與輸出小數(shù)點位置相同并截斷至8 位位寬,完成一次卷積計算,這樣整個計算流程都是以定點數(shù)形式進行,而不需要將定點數(shù)反量化為浮點數(shù)再進行計算。

        圖5 加速器量化計算流程Fig.5 Quantization computing process of accelerator

        激活函數(shù)運算模塊由控制信號決定進行ReLU、LeakyReLU 和ByPass 中的一種操作。其中:ReLU由選擇器實現(xiàn),當輸入小于0 時,輸出為0,否則保持不變;LeakyReLU 由選擇器與移位器實現(xiàn),即輸入小于0 時,將數(shù)據(jù)右移3 位得到輸出值。

        3.3 多核擴展加速器SoC

        最終設計的CNN加速器片上系統(tǒng)(System on Chip)結構SoC如圖6所示,主要包含DDR,Zynq系統(tǒng)和可擴展的加速器等模塊,其中,數(shù)據(jù)通過AXI4-Full總線傳輸,控制信號通過AXI4-Lite總線傳輸。為了提高計算效率,將計算核的數(shù)量擴展至4個,SRAM 的大小也相應提高為原來的2倍,總算力相較于單核加速器提升近4倍。

        圖6 多核擴展加速器SoC 結構Fig.6 SoC structure of multi-core expansion accelerator

        4 實驗結果與分析

        使用基于caffe深度學習框架的VGG-16與ResNet-50 預訓練模型,以ImageNet ILSVRC2012 為數(shù)據(jù)集,單張圖片大小設置為3×224×224 像素進行量化,得到不同位寬下網絡Top-1 準確率,如圖7 所示。

        圖7 Top-1 準確率隨量化位寬的變化趨勢Fig.7 Change trend of Top-1 accuracy with quantization bit

        從圖7 可以看出,將卷積權重和中間結果量化為8 位,全連接層權重量化為4 位,可以在Top-1 準確率損失較小的情況下實現(xiàn)更大的壓縮率,因此,實驗采用上述量化方案,量化結果見表3??梢钥闯?,2 個網絡的Top-1 準確率損失均在1%以內,VGG-16 和ResNet-50分別壓縮為原來的13.8%和24.8%,表明本文量化方法效果顯著。

        表3 量化結果Table 3 Quantization results

        提取量化后的模型參數(shù),使用C 語言搭建前向推理計算網絡模型,輸入量化后的ImageNet ILSVRC2012 驗證集。使用Vivado 搭建本實驗的仿真環(huán)境并將生成的bitstream 文件導入XilinxZCU102開發(fā)板,處理器與加速器的工作頻率分別為100 MHz 和300 MHz。之后在VivadoSDK 中實現(xiàn)網絡,輸入圖像進行預測。

        加速器SoC 各資源利用情況如表4 所示。本文加速系統(tǒng)運行VGG-16 的性能與其他加速器的比較如表5 所示??梢钥闯?,在300 MHz 工作頻率下,VGG-16 和ResNet-50 完成單張圖片推理所需時間分別為166.2 ms 與109.6 ms,與其他FPGA 的實現(xiàn)相比,本文系統(tǒng)在峰值性能和能效上均有較大提升,其中峰值性能最高可達614.4 GOPs,提升了4.5 倍,能耗比達113.99 GOPs/W,提升了4.7 倍。

        表4 加速器SoC 各資源利用情況Table 4 Utilization of each resource in accelerator SoC

        表5 加速性能對比Table 5 Acceleration performance comparison

        5 結束語

        本文通過對CNN 的參數(shù)結構和計算特性進行分析,設計一種通用的動態(tài)定點量化與計算加速系統(tǒng),并對計算核進行4 核擴展以提高加速性能。在ImageNet ILSVRC2012 數(shù)據(jù)集上進行性能測試,結果表明,量化后網絡的Top-1 準確率損失在1%以內,VGG-16 和ResNet-50 網絡模型分別壓縮至原來的13.8%和24.8%。與其他加速系統(tǒng)相比,本文設計的加速系統(tǒng)峰值性能達614.4 GOPs,最高提升4.5 倍,能耗比達到113.99 GOPs/W,最高提升4.7 倍。后續(xù)將優(yōu)化量化方法,并將計算核擴展至8 核,進一步提升加速系統(tǒng)的整體性能。

        猜你喜歡
        方法模型設計
        一半模型
        重要模型『一線三等角』
        重尾非線性自回歸模型自加權M-估計的漸近分布
        瞞天過?!律O計萌到家
        藝術啟蒙(2018年7期)2018-08-23 09:14:18
        設計秀
        海峽姐妹(2017年7期)2017-07-31 19:08:17
        有種設計叫而專
        Coco薇(2017年5期)2017-06-05 08:53:16
        可能是方法不對
        3D打印中的模型分割與打包
        用對方法才能瘦
        Coco薇(2016年2期)2016-03-22 02:42:52
        四大方法 教你不再“坐以待病”!
        Coco薇(2015年1期)2015-08-13 02:47:34
        噜噜中文字幕一区二区| 最新精品国偷自产在线婷婷| 亚洲色无码中文字幕| 亚洲精品中文字幕91| 加勒比一本heyzo高清视频| 午夜无码片在线观看影视| 久久久久亚洲精品美女| 亚洲视频中文字幕更新| 国产亚洲成人精品久久| 国产成人一区二区三区| 日韩毛片在线| 在线观看中文字幕一区二区三区 | 日本草逼视频免费观看| 亚洲中文字幕精品视频| 精品久久久久香蕉网| 精品久久综合亚洲伊人| 亚洲免费无毛av一区二区三区| 免费在线视频亚洲色图| 日韩av无码精品一二三区| 中文字幕一区二区三区久久网站| 亚洲色偷偷偷综合网另类小说| 亚洲男人免费视频网站| 日本特黄特色特爽大片| 国产成人精品午夜福利在线 | 久久青草免费视频| 一区二区三区少妇熟女高潮| 久久精品国产亚洲超碰av| 骚小妹影院| 久久久久久久尹人综合网亚洲 | 蜜桃视频永久免费在线观看| 亚洲人成网站在线播放2019| 丰满老熟妇好大bbbbb| 久久婷婷国产精品香蕉| 中文日本强暴人妻另类视频| 国产综合精品| 18无码粉嫩小泬无套在线观看| 久久精品免视看国产成人| 97人妻碰免费视频| 国产一区精品二区三区四区| 成年免费a级毛片免费看无码| 国产乱子伦精品免费无码专区 |