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

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

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

鞏 杰,趙 爍,何 虎,鄧 寧

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

0 概述

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

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

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

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

1 算法分析

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

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

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

1.2 網(wǎng)絡運算時間

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

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

2 網(wǎng)絡量化

2.1 網(wǎng)絡預處理

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

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

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

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

2.2 量化方法

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

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

從圖1 可以看出,VGG-16 網(wǎng)絡中不同層的參數(shù)范圍有較大出入,并且層間結(jié)果相對于網(wǎng)絡參數(shù)來說都過大。因此,本文采用動態(tài)定點量化方法,即針對不同結(jié)構(gòu)選擇合適的參數(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ù)結(jié)構(gòu)Fig.2 Structure of 8 bit fixed-point

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

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

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

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

圖3 加速器計算結(jié)構(gòu)Fig.3 Computing structure of accelerator

3.1 片上緩存與傳輸單元

片上緩存主要分為輸入、輸出和權重的緩存,計算核中同時還有暫存卷積計算中間結(jié)果的緩存和暫存定點處理模塊輸入數(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ù)模塊,其結(jié)構(gòu)如圖4 所示。

圖4 計算核結(jié)構(gòu)Fig.4 Structure of computing core

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

QPM 為量化處理模塊,主要負責量化運算,具體由移位、加偏置、舍入和截斷4 個部分組成。QPM計算過程如圖5 所示,為了避免溢出,卷積乘加結(jié)果以32 位形式暫存,與偏置求和時,因為定點數(shù)小數(shù)點位置不同,所以需要先進行移位操作使兩者小數(shù)位相同,再進行加操作,隨后判斷是否有進位產(chǎn)生,最后移位至小數(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)結(jié)構(gòu)SoC如圖6所示,主要包含DDR,Zynq系統(tǒng)和可擴展的加速器等模塊,其中,數(shù)據(jù)通過AXI4-Full總線傳輸,控制信號通過AXI4-Lite總線傳輸。為了提高計算效率,將計算核的數(shù)量擴展至4個,SRAM 的大小也相應提高為原來的2倍,總算力相較于單核加速器提升近4倍。

圖6 多核擴展加速器SoC 結(jié)構(gòu)Fig.6 SoC structure of multi-core expansion accelerator

4 實驗結(jié)果與分析

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

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

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

表3 量化結(jié)果Table 3 Quantization results

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

加速器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 結(jié)束語

本文通過對CNN 的參數(shù)結(jié)構(gòu)和計算特性進行分析,設計一種通用的動態(tài)定點量化與計算加速系統(tǒng),并對計算核進行4 核擴展以提高加速性能。在ImageNet ILSVRC2012 數(shù)據(jù)集上進行性能測試,結(jié)果表明,量化后網(wǎng)絡的Top-1 準確率損失在1%以內(nèi),VGG-16 和ResNet-50 網(wǎng)絡模型分別壓縮至原來的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
捕魚
主站蜘蛛池模板: 久久无码高潮喷水| 青青草欧美| 亚洲一级毛片| 国产性生大片免费观看性欧美| 97成人在线观看| 在线欧美日韩| 亚洲精品第一页不卡| 波多野结衣的av一区二区三区| 美女啪啪无遮挡| 中文字幕无码制服中字| h网址在线观看| 日韩精品中文字幕一区三区| 色亚洲激情综合精品无码视频 | 国产视频 第一页| 久久国产精品嫖妓| 香蕉综合在线视频91| 亚洲91精品视频| 国产丝袜一区二区三区视频免下载| 国产日韩丝袜一二三区| 国产色爱av资源综合区| 亚洲欧美成aⅴ人在线观看| 亚洲国产天堂久久综合226114| 国产剧情国内精品原创| 亚洲欧美日韩动漫| 91成人在线免费视频| 伊人色在线视频| 欧美色99| 爱色欧美亚洲综合图区| 国产清纯在线一区二区WWW| 国产av无码日韩av无码网站| 亚洲欧美成人在线视频| 亚洲天堂网视频| 成人精品视频一区二区在线| 亚洲第一黄片大全| 国产成人精品综合| 色偷偷一区| 欧美国产日产一区二区| 日韩欧美在线观看| 狠狠色噜噜狠狠狠狠奇米777| 精品综合久久久久久97| 午夜激情福利视频| 亚洲av无码人妻| 国产视频入口| 久久久久久久久久国产精品| 国产成人综合网| 大乳丰满人妻中文字幕日本| 久久国产高潮流白浆免费观看| 欧美性久久久久| 亚洲大尺度在线| 亚洲欧美自拍中文| 色婷婷在线播放| 亚洲精品成人片在线观看| 国产原创第一页在线观看| 91无码人妻精品一区二区蜜桃| 亚洲国产欧美目韩成人综合| 国产女人在线| 欧美日韩高清在线| 青青青视频蜜桃一区二区| 久久男人资源站| 国产又粗又猛又爽| 婷五月综合| 亚洲国产天堂久久综合| 欧美成人综合在线| m男亚洲一区中文字幕| 久久情精品国产品免费| 国产喷水视频| 97人人做人人爽香蕉精品| 亚洲精品午夜天堂网页| 精品亚洲麻豆1区2区3区| 久久婷婷五月综合97色| 日本中文字幕久久网站| 国产欧美一区二区三区视频在线观看| 制服丝袜国产精品| 免费国产黄线在线观看| 区国产精品搜索视频| 五月天天天色| 国产一二三区视频| 国产午夜福利在线小视频| 毛片免费高清免费| 77777亚洲午夜久久多人| 日本a级免费| 国产精品99久久久久久董美香|