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

基于FPGA的高效可伸縮的MobileNet加速器實現*

2021-05-11 01:35:38蕭嘉樂梁東寶陳弟虎
計算機工程與科學 2021年4期
關鍵詞:效率

蕭嘉樂,梁東寶,陳弟虎,粟 濤

(中山大學電子與信息工程學院,廣東 廣州 510275)

1 引言

近些年來,深度卷積神經網絡DCNN(Deep Convolutional Neural Network)模型在分類和識別任務上具有遠超傳統算法的正確率,被廣泛應用于機器視覺領域。而FPGA由于可定制的并行邏輯和相對較高的能耗效率,在加速DCNN任務方面具有一定優勢。在大多數基于FPGA的DCNN實現中,有2個主要研究方向:一是實現的FPGA盡可能地去適配不同網絡架構。文獻[1]嘗試通過參數化設計來為所有可能的網絡實現一個通用的計算結構。二是針對某一個網絡結構進行深度優化,文獻[2,3]探索了適用于具有殘差模塊網絡的新的映射策略,例如ResNet和Xception。

本文針對的是嵌入式領域的硬件加速器應用,MobileNet網絡以其低計算量和參數量被廣泛用于嵌入式領域,但MobileNet網絡的計算特點使其對現有的加速器(文獻[4,5])利用率不高,具體表現在比較難達到硬件所具有的理論峰值性能,而嵌入式領域硬件資源往往有限,這個問題急需解決。還有一點,嵌入式領域的硬件資源差異較大,針對MobileNet網絡的加速器還需要具備一定的可伸縮性,即針對不同的資源限制,都能獲得較高的利用率。

本文的主要貢獻有:

(1)設計了一個具有一定可伸縮性的MobileNet硬件加速器結構,對于0~4 000的乘法器開銷都能保持70%以上的計算效率。

(2)在加速器結構上實現了基于MobileNet的Hourglass網絡,最終的計算效率高于其他MobileNet網絡加速器的。

本文的組織如下所示,首先介紹了深度可分離卷積和MobileNet網絡的背景知識;接著描述加速器結構,主要包括計算陣列和片上緩存器;再接著探索了該加速器架構的設計空間;然后給出了加速器性能的實驗分析與對比;最后是總結。

2 背景介紹

2.1 深度可分離卷積

深度可分離卷積首先是在文獻[6]中提出的。在這種卷積中,標準的卷積操作被拆分為2個步驟:逐層卷積和逐點卷積。逐層卷積首先在不同通道的輸入特征圖上分別提取特征,然后進行逐點卷積,以1×1卷積的方式組合不同通道中的結果。標準卷積、逐層卷積和逐點卷積之間的差異如圖1所示。其卷積輸入的特征值的行數為H、列數為W、輸入通道數為IC,經過卷積窗口為K×K的卷積后,輸出通道為OC。

Figure 1 Comparison of three kinds of convolution圖1 3種卷積方式的對比圖

文獻[7]證明,深度可分離卷積具有較少的權值和卷積運算,同時可獲得與標準DCNN網絡相當的精度。考慮到一般使用的標準卷積核為3×3,那么深度可分離卷積的權值量和計算開銷均會是標準卷積的1/9~1/8。

2.2 MobileNet網絡

本文主要研究MobileNetV2網絡,該網絡以其低權值存儲和計算開銷同時還能保持高識別準確度被應用于嵌入式領域。其計算過程可抽象為表1所示的步驟。其中,CONV為標準卷積,IRB(Inverted Residual Bottleneck)為倒殘差瓶頸;模塊avgpool為平均池化操作,t為縮放系數,c為輸出通道數,n為重復次數,s為步進。

Table 1 The structure of MobileNetV2

MobileNetV2網絡的主要組成部分是倒殘差瓶頸模塊,其是由深度可分離卷積衍生而來的,具體操作過程如圖2所示。

Figure 2 Procedure of two kinds of inverted residual bottlenecks圖2 2種倒殘差瓶頸模塊操作過程圖

以通道數c為32,縮放系數t為4為例,對于s=1的模塊,需要進行1次擴張層計算(逐點卷積),再通過1次特征提取計算(逐層卷積)和1次壓縮層計算(逐點卷積)。這個過程中特征值通道會先擴張至32×4再壓縮至32,最后將原始輸入旁路與計算結果相加得到一個倒殘差瓶頸模塊的計算結果。而s=2的模塊只是少了旁路相加這一部分。

3 高效可伸縮MobileNet加速器硬件設計

3.1 整體結構

圖3顯示了高效可伸縮MobileNet加速器的結構,在加速器中,控制模塊通過AXILite總線從嵌入式處理器接收控制指令,并將其轉換為加速器中其他模塊的內部控制信號。并行計算陣列負責堆疊式沙漏網絡的所有計算。緩存器模塊負責外部存儲器和片上緩存器之間輸入特征值和權值以及輸出結果的傳遞。數據聚集-發散模塊作為特征值、權值緩存與外部存儲之間的橋梁,充當著類似直接內存訪問的工作。

Figure 3 Block diagram of the accelerator system圖3 硬件加速器結構圖

3.2 數據排布方式

特征值數據具有3個維度,分別是行、列和通道??紤]一個維度為x×x×x的特征值塊,傳統的行優先數據排列(這意味著數據首先沿行方向排列,然后依次沿列和通道方向排列,如圖4a所示,其中序號表示其在特征值緩存中的排布順序)適用于通道分離的逐層卷積,而在MobileNet網絡中,逐點卷積在整個計算中占據了很大一部分。逐點卷積對來自不同通道的特征圖進行卷積,并一次生成一幅特征圖。此時若仍使用行優先數據排列則會由于輸入不連續,給逐點卷積帶來數據獲取上的困難,降低計算效率。為了解決這些問題,本文使用通道優先的排布方式(這意味著數據首先沿通道方向排列,然后依次沿行和列方向排列,如圖4b所示)。在本文設計的硬件加速器中片上緩存器和片外存儲所儲存的權值、特征值數據均以通道有限的排布方式存在,而行優先的數據排列只會存在于并行計算陣列的計算過程中,這會在第3.3節中詳細介紹。

Figure 4 Two kinds of data arrangement圖4 2種數據排布方式示意圖

3.3 并行計算陣列

針對MobileNet網絡基本結構為1次逐點卷積、1次逐層卷積和再一次逐層卷積的特點,本文使用的計算陣列結構如圖5所示,其中CVA(ConVolution model A)計算陣列適用于第1層的逐點卷積;CVB(ConVolution model B)計算陣列適用于第2層的逐層卷積;CVC(ConVolution model C)計算陣列適用于第3層的逐點卷積。

Figure 5 Structure of the convolution-layer parallel computing array圖5 卷積層級并行計算陣列結構圖

(1)CVA計算陣列。

該模塊用于加速計算倒殘差瓶頸模塊中的膨脹層。如圖5所示,該計算陣列的并行計算有3個維度:同時滿足Ccalca個計算通道的并行計算;每個計算通道內滿足La行特征值的并行計算;而每個計算行中滿足Nmulta個輸入通道的同時計算(這是由于逐點卷積計算過程中是優先進行通道間的卷積的)。所以,CVA的最小堆疊單元為并行的Nmulta個乘法器與1個Nmulta輸入1輸出的加法樹。還需要注意的是,該計算陣列的輸入數據格式是通道優先的數據排布,而輸出格式是行優先的數據排布,以保證后續逐層卷積的數據讀入的連續性。

(2)CVB計算陣列。

該模塊用于計算倒殘差瓶頸模塊中的逐層卷積模塊(通道分離的3×3卷積)。與CVA計算陣列類似,CVB計算陣列也可以分為計算通道Ccalcb、計算行數Lb和并行乘法數Nmultb3個維度。不同的是,在該模塊中,最小堆疊單元被固定為并行的3個乘法器與3輸入1輸出的加法樹,這是由于每個時鐘周期CVB模塊都能從CVA模塊的輸出獲取3行1列的特征值,因此CVB模塊若要完成1次3×3卷積則需要3個周期。此外,最小單元還需要添加行緩存模塊,這是由于3×3卷積計算帶來的行相關性,需要將本行計算需要的1或2行特征值緩存以用于下一行計算。而在數據排布方面,CVB模塊輸入的數據是按照行優先的方式排布,而輸出的數據是按照通道優先的方式排布。

(3)CVC計算陣列。

該模塊用于加速倒殘差瓶頸模塊中的最后一層逐點卷積,整體結構上與CVA模塊相似,其區別是該層的數據輸入是按照通道優先的方式排布,輸出也是按照通道優先的方式排布。

(4)ADD累加陣列。

ADD累加陣列用于處理倒殘差瓶頸模塊中的支路殘差求和部分。該陣列只有2個并行維度:并行計算通道數Ccalc和并行計算的行數LADD。ADD陣列的最小單元是1個二輸入的加法器。該陣列的計算不改變數據排布方式,均為通道優先的排布方式。

3.4 其他計算操作的處理

(1)標準卷積。

如圖1所示,標準卷積的操作實際上可拆分為1次逐層卷積和1次逐點卷積,其中需要考慮這2層卷積的權值。逐層卷積可直接沿用標準卷積中的權值,而對于逐點卷積權值,則需要生成對應的0-1矩陣來代表不同計算通道之間的累加。標準卷積的過程則可以映射到以上計算陣列中的CVB和CVC模塊。

(2)ReLU激活操作。

ReLU操作使用的是f(x)=max(0,x)函數,在網絡中是可選的,該過程僅在計算單元輸出階段將負數結果替換為零。

3.5 緩存器設計

(1)乒乓權值緩存器。

權值緩存器使用乒乓緩存機制處理,即將權值緩存器分為等大的2個部分:權值緩存器0和權值緩存器1,如圖6所示。當其中一個從外部存儲讀取權值時,另一個緩存器可作為計算陣列的輸入,以此將從片外讀取權值的時間隱藏在計算時間內,提高計算效率。

(2)分時復用的特征值緩存器。

特征值緩存器同樣被分割為2個大小相同的可分時復用的緩存器。每個緩存器均可作為計算陣列的輸入、輸出緩存。例如,在計算第n個倒殘差瓶頸模塊的任務時,緩存器0作為計算陣列的特征值輸入緩存,緩存器1則作為輸出緩存;而在計算第n+1個倒殘差瓶頸模塊的任務時,則相反。這樣在完成一幅圖像處理時可減少特征值緩存器與外部存儲的數據交換,節約帶寬。

Figure 6 Structures of the weight and feature buffers圖6 權值和特征值緩存器示意圖

3.6 數據的分塊策略

數據的分塊處理是指將一層卷積分割為若干層卷積進行計算,因為片上緩存器大小是固定的,為適應不同分辨率的特征圖像,數據需要分塊處理。如圖1所示,逐層卷積前后特征值通道不變,而逐點卷積由于涉及到通道之間的累加,所以卷積前后通道數會改變,因此數據的分割會發生在逐點卷積的輸出部分,即CVA與CVC計算陣列的輸出部分。若用Cfst_o表示倒殘差瓶頸模塊中第1層逐點卷積的輸出通道數,Ctrd_o表示第3層逐點卷積的輸出通道數,則可以得到分塊的次數DA和DC:

(1)

(2)

其中ceil表示向上取整函數。

得到分塊的次數后,可以將一幅圖像的加速處理操作抽象成如圖7所示的循環操作。其中需要考慮DA與DC循環的計算次序問題。圖7列出的2種計算次序分別是DA循環優先和DC循環優先,其中Layer_MAX表示MobileNet網絡的最大計算層數:Hlayer和Wlayer分別表示第layer層的特征值的行數和列數,則可以看出采取DC循環優先的方式可以減少CVA與CVB陣列中的重復計算。

Figure 7 Two computing orders

3.7 設計空間搜索

為了驗證本文設計的硬件加速器在不同硬件資源約束下的可伸縮性,定義了一個表征參數計算效率:

(3)

由于不同卷積神經網絡加速器的實現會因資源占用以及使用的工藝不同導致工作頻率有差異,而計算效率這一參數可以拋開這2個差異,對加速器結構的效率做出一個正確的評價。通過修改3.3節中提到的并行度參數(并行度直接反映出所用乘法器的數量),可以得到如圖8所示的乘法器數量與計算效率之間的關系圖??梢钥闯觯敵朔ㄆ髻Y源從0~4 000變化時,本文設計的計算架構可以保持70%以上的計算效率,在這個范圍內具有一定的可伸縮性。同時還可以發現,隨著硬件資源的增加其計算效率的最高值在下降,這是由于隨著并行度的增大而網絡的尺寸不變,那么在進行小尺寸計算時(并行尺寸大于特征圖尺寸時)則會出現部分資源閑置,從而使計算效率下降。

Figure 8 Relationship between multiplier occupation and calculation efficiency of hardware accelerator圖8 硬件加速器的乘法器占用與計算效率的關系

4 實驗結果與分析

采用XILINX Zynq-7000 ZC706開發板作為實驗平臺,實現了上述加速器。該開發板擁有218 600個LUT、545個Block RAM和900個DSP。下面將討論實現結果和性能比較。

本文采用的數據精度為16位定點,根據以上討論,并行計算陣列參數如表2所示,其中x在不同的模塊中分別可表示為a、b、c和add,而所占用的資源如表3所示,其中特征值緩存器的大小為12 Mb,而權值緩存器的大小為3.25 Mb。在該硬件加速器上完成了基于MobileNetV2的Hourglass網絡處理,該網絡被廣泛應用于人體姿態識別。硬件加速器可工作在150 MHz的工作頻率下,且實現了6.11 ms處理一幅圖像的工作效率,而該網絡的計算量約為0.953 Gop,通過計算得到本文設計的硬件加速器的性能約為156 Gop/s,計算效率約為61%。計算效率略低于3.7節設計空間探索中所得到的70%,這是由于隨著網絡的層數加深,卷積的尺寸變小,通道數增加,數據分割后的單次計算時間小于單次計算所需要的權值的傳輸時間,因此即使使用乒乓緩存機制也無法隱藏傳輸時間,對計算效率造成了一定的影響。

表4給出了本文設計的硬件加速器與其他MobileNet加速器實現的對比結果,可以看出本文設計的硬件加速器在計算效率上優于其他實現的。

Table 2 Parameters of parallel computing array

Table 3 Resource utilization

Table 4 Comparison of experimental results

5 結束語

本文提出了一個適用于MobileNet神經網絡的硬件加速器結構,其具有一定的可伸縮性,在不同的硬件資源開銷下能保持70%以上的計算效率,并用Hourglass-MobileNet網絡給予了驗證。但是,該結構仍存在著一些問題,例如在卷積尺寸較小時無法隱藏權值讀取時間,這是以后的工作中需要解決的問題。

猜你喜歡
效率
你在咖啡館學習會更有創意和效率嗎?
提升朗讀教學效率的幾點思考
甘肅教育(2020年14期)2020-09-11 07:57:42
注意實驗拓展,提高復習效率
效率的價值
商周刊(2017年9期)2017-08-22 02:57:49
引入“倒逼機制”提高治霾效率
遼寧經濟(2017年6期)2017-07-12 09:27:16
質量與效率的爭論
中國衛生(2016年9期)2016-11-12 13:27:54
跟蹤導練(一)2
提高食品行業清潔操作的效率
OptiMOSTM 300V提高硬開關應用的效率,支持新型設計
“錢”、“事”脫節效率低
中國衛生(2014年11期)2014-11-12 13:11:32
主站蜘蛛池模板: 国产精品大白天新婚身材| 国产成年女人特黄特色大片免费| 亚洲高清国产拍精品26u| 亚洲AV无码精品无码久久蜜桃| 国产91线观看| 草草线在成年免费视频2| 亚洲国产日韩一区| 女人av社区男人的天堂| 国产麻豆va精品视频| 亚洲第一区在线| 二级特黄绝大片免费视频大片| 日本免费精品| 国产午夜福利亚洲第一| 国产99精品久久| 激情网址在线观看| 久久久久中文字幕精品视频| 99re在线观看视频| 亚洲无码高清视频在线观看| 99在线视频免费| 国产成人凹凸视频在线| 精品视频在线观看你懂的一区| 白丝美女办公室高潮喷水视频| 亚洲精品欧美重口| 色婷婷啪啪| 亚洲中文字幕在线精品一区| 一级全黄毛片| 丰满人妻中出白浆| 亚洲第一香蕉视频| 亚洲天堂首页| 国产精品第页| 67194在线午夜亚洲 | 免费国产高清视频| 国产欧美专区在线观看| 亚洲免费毛片| 成人福利一区二区视频在线| 国产乱子伦精品视频| 久久成人18免费| 国产办公室秘书无码精品| 超碰色了色| 国产精品第| 91精品小视频| 在线国产你懂的| 亚洲午夜国产精品无卡| 国产极品粉嫩小泬免费看| 91一级片| 欧美第一页在线| 久久国产精品国产自线拍| 国产在线一区二区视频| 91久久偷偷做嫩草影院电| 久久精品国产电影| 亚洲一区波多野结衣二区三区| 国产在线观看91精品| 制服丝袜在线视频香蕉| 操国产美女| 日韩欧美中文字幕在线韩免费| 71pao成人国产永久免费视频| 99er精品视频| 久久精品国产亚洲麻豆| 国内黄色精品| 最新国产午夜精品视频成人| 国产大片喷水在线在线视频| 亚洲人成影院在线观看| 原味小视频在线www国产| 亚洲美女视频一区| 强奷白丝美女在线观看| 国产H片无码不卡在线视频| 九九九精品视频| a欧美在线| 亚洲人成网址| 99热最新网址| 超碰色了色| 女人18毛片久久| 国产黄色免费看| 国产成人AV综合久久| 亚洲综合欧美在线一区在线播放| 伊人五月丁香综合AⅤ| 无码中文AⅤ在线观看| 手机永久AV在线播放| 久久99国产综合精品1| 91伊人国产| 国产精品免费福利久久播放| 91九色国产在线|