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

一種基于FPGA 的高性能卷積神經網絡加速器的設計與實現

2021-04-02 07:22:36曹學成廖湘萍李盈盈丁永林
智能物聯技術 2021年5期
關鍵詞:特征資源設計

曹學成,廖湘萍,李盈盈,丁永林,李 煒

(中國電子科技集團公司第五十二研究所,浙江 杭州 311100)

0 引言

近年來,在人工智能相關的機器學習研究領域中, 卷積神經網絡 (Convolutional Neural Network,CNN)相比傳統算法有了很大的進步[1]。特別是隨著計算機處理能力的不斷提高,卷積神經網絡作為人工智能研究和發展的新方向,已成為機器學習領域的熱點[2]。 卷積神經網絡是一種受動物視覺皮質(Visual Cortex)結構形式啟發,而形成的一種前饋神經網絡(Feed-Forward Artificial Neural Network)。同時,卷積神經網絡也是一種多層神經網絡,在圖像分類、機器視覺和視頻監控等領域具有重要的應用價值和研究意義[3-5]。

常用卷積神經網絡的網絡模型在計算量上達到了十億量級, 在參數量上達到了上百兆量級,需要消耗很大的算力[6-9]。 同時, 受制于中央處理器(Central Processing Unit,CPU)的串行處理方式,目前CNN 的軟件實現方式效率并不高, 難以滿足許多實時應用的需求[10]。 為了提高CNN 的計算性能,使用圖像處理器 (Graphic Processing Units,GPU)、專用集成電路(Application Specific Integrated Circuit,ASIC) 和 現 場 可 編 程 門陣 列 (Field Programmable Gate Array,FPGA) 硬 件 平 臺 是 實 現CNN 加速器常用的方式[4,11]。 GPU 擁有大量計算單元, 其運算速度雖然較快, 但功耗很高, 而且在CNN 推理階段,因數據量的限制,GPU 不能充分發揮其高帶寬、多計算核心的特點。ASIC 只適用于一類固定算法[12-13],當算法發生改變時,原有的ASIC芯片不能夠再次迭代使用。 FPGA 因其高度并行計算和可重構的特性, 被廣泛應用到CNN 算法推理階段的加速器實現中[14]。

CNN 加速器的計算過程中大部分是卷積操作,而卷積操作需要非常大量的乘累加運算。 對于基于FPGA 實現的CNN 加速器, 其中乘累加運算單元的工作頻率直接影響CNN 加速器的性能。 本文采用FPGA 內部數字處理單元 (Digital Signal Processor,DSP)的級聯、卷積核數據的“乒-乓”使用,提升DSP 的工作頻率,來提高CNN 加速核的計算能力。 同時采用多通道并行、特征圖及卷積核數據的復用等方法, 提升數據的使用率, 來提高CNN 加速核的吞吐能力。 最后,以VGG16 模型為例驗證了本方案的吞吐量和計算性能,結果表明本方案取得了較好的效果。

1 相關工作介紹

1.1 卷積神經網絡

卷積神經網絡(CNN)是人工神經網絡中的一種,它是圖像識別和語音識別領域的研究熱點。 它相對于其他的神經網絡的特點是權值共享,使得網絡的復雜度降低, 容易收斂。 CNN 通常包括卷積層、池化層、全連接層等,圖1 為CNN 基本結構示意圖。首先,對輸入原始圖像進行預處理,將處理后的圖像作為CNN 的輸入特征圖;其次,輸入特征圖經過多層卷積層、池化層等處理,得到越來越復雜的特征圖,之后進入全連接層;最后,計算特征圖的卷積值,通過Softmax 函數計算概率值,進行歸一化操作并排序, 概率最大的節點將作為預測目標,輸出分類結果。

圖1 CNN 基本結構示意圖Figure 1 Basic structure of CNN

卷積層主要使用訓練階段訓練好的卷積核對輸入數據進行濾波處理, 然后提取所需的圖像特征。 卷積操作后常跟隨有非線性激活函數,如常用的 ReLU(Rectified Linear Unit)和 Leaky ReLU 等。

池化層也是卷積神經網絡中常見的網絡層,它的主要作用是對卷積層的輸出進行子抽樣。在卷積層進行特征提取后,輸出的特征圖像會被傳遞到池化層進行特征選取和信息過濾。常見的池化算子有最大池化和平均池化。

全連接層可看作是一種特殊的卷積運算。全連接層中的每個神經元與上一層的神經元全部有關,這樣使其的卷積核很大,具有權值參數數據量大的特點。

當前, 卷積神經網絡趨向于卷積核大小更精簡、網絡層數更深的方向發展。 隨著網絡深度的加深, 網絡性能的退化問題將越明顯, 而殘差網絡(Resnet)的提出,可以很好的解決該問題。 殘差網絡的特點為每兩層卷積層增加一個捷徑,進行疊加構成一個殘差塊。

1.2 硬件加速器

目前用于卷積神經網絡加速的加速器主要分為三種:GPU、ASIC 以及 FPGA[4,11]。 其中 FPGA 是一種可自定義編程的硬件電路結構,具有更大的并行度、可重復配置性、更好的靈活性、較低的門檻和較短的開發周期,非常適合于神經網絡多變的網絡結構。

FPGA 能夠進行實時流水線運算,對卷積神經網絡的處理能夠達到較高的實時性。Wang 等[15-16]提出一種采用流水線內核的高效硬件架構,并使用不同的硬件參數測試AlexNet 和VGG 網絡模型,以進行設計空間探索,其設計方案在性能密度、資源利用率方面取得了顯著改善。Perri 等[17]提出了基于FPGA 的二維卷積單元并行化結構來發掘卷積運算內在的數據和指令級并行,進而加速二維卷積的計算。 為了獲得1 cycle/pixel 的數據吞吐率,這些卷積運算單元需要在單個時鐘周期內完成對K2個輸入圖像像素值的同時訪問,但這極大增加了對存儲帶寬的需求。Qiu 等[18]在嵌入式FPGA 平臺上,對圖像網絡分類中低端存儲空間和帶寬問題進行了深入研究, 在設計CNN 加速時主要關注兩個方面——計算引擎和優化內存系統,并提出了一種動態精度數據量化流程, 在保證可比精度的前提下,減少內存占用和帶寬需求。

以上工作雖然都在CNN 硬件加速器架構優化方面做出了很大貢獻, 但是對于模型復雜度高、計算量大的CNN 算法, 由于FPGA 的工作頻率的限制,在其上實現的加速器仍顯得性能不高。同時,開發人員將深度學習算法和數據完全映射在有限的FPGA 資源上的難度越來越大[5],甚至造成不可實現的局面。 針對這些問題, 本文利用FPGA 內部DSP 資源的特點, 通過DSP 級聯、 卷積核數據的“乒-乓”使用,同時通過多通道并行、特征圖及卷積核數據的復用等方法,設計了一種基于FPGA 的高性能卷積神經網絡加速器。該加速器適用于多種網絡模型。 最后, 本文在 Xilinx 公司的 Virtex7 VX690T 平臺上,驗證了所設計的加速器的性能。

2 加速器的FPGA 設計與實現

2.1 硬件系統設計

硬件系統的整體結構如圖2 所示,主要包括主控處理器(CPU)、DDR(Double Data Rate)主存設備以及FPGA 實現的 CNN 加速器。CPU 作為Master,利用PCIe 接口總線對FPGA 實現的CNN 加速器進行配置及控制, 可以配置CNN 加速器運行的網絡結構以及參數;同時下發輸入圖像數據,以及對CNN 加速器的結果進行后處理等操作。

圖2 硬件系統結構圖Figure 2 Basic structure of hardware system

FPGA 實現的CNN 加速器主要由5 個部分組成, 分別為 CNN 加速核、PCIe 接口核、DDR 接口核、AXI 數據通道總線以及AXI-Lite 配置通道總線。 CNN 加速核是卷積網絡的基本處理模塊,PCIe接口核是與CPU 控制、數據交互接口模塊,DDR 接口核是卷積神經網絡運算過程中數據在片外緩存的接口模塊,AXI 數據通道總線是片內數據交互的總線,AXI-Lite 配置通道總線是CNN 加速核的控制以及狀態信息查詢總線。

系統工作原理如下。CPU 將CNN 的網絡結構、權重等信息通過PCIe 總線接口發送給FPGA,并存儲到FPGA 的外部存儲器DDR 中, 完成網絡結構的初始化。 CPU 將需要處理的輸入圖像通過PCIe 總線接口不斷發送給FPGA, 并存儲到FPGA的外部存儲器DDR 中,啟動FPGA 內部的CNN 加速核;CNN 加速核完成對輸入圖像的多次卷積等運算,并將得到的輸出特征值存儲到FPGA 的外部存儲器DDR 中;CPU 通過查詢FPGA 的內部狀態,通過PCIe 總線接口讀取運算完成的輸出特征值。最后CPU 執行Softmax 等后處理函數,得到最終的圖像處理結果。

2.2 CNN 加速模塊設計

由于目前神經網絡的規模越來越大,層數也越來越深,而受限于FPGA 上的存儲資源,必須借助外部存儲器DDR 才能完成整個網絡的運行, 而大量的存儲器讀寫會嚴重影響CNN 加速器的吞吐率和增加能量消耗。本設計提出一種特征圖及卷積核數據復用的方案,架構如圖3 所示。 CNN 加速模塊有卷積運算單元(Computing Cell)、池化運算單元(Pool Cell)、卷積核權重緩存陣列(Weight RAM Array)、輸入特征圖緩存陣列(IFmap RAM Array)和輸出特征圖緩存陣列(OFmap RAM Array)組成。

圖3 CNN 加速器架構圖Figure 3 Basic architecture of CNN accelerator

卷積運算單元由計算單元(PE)陣列組成,卷積核權重緩存陣列的數據從上往下流水給不同的PE,實現卷積核數據的復用;輸入特征圖緩存陣列的數據從左往右流水給不同的PE, 實現特征圖數據的復用。池化運算單元完成最大池化或平均池化的多通道平行計算。輸出特征圖緩存陣列完成運算單元輸出結果的緩存及格式處理,即可以作為下一層特征圖輸入的格式。

CNN 加速器進行一次完整的卷積運算過程如圖4 所示。假設該卷積層的卷積核權重數據的大小為 W×H×C×N;其中,W 表示卷積核的寬,H 表示卷積核的高,C 表示通道數,N 表示卷積核組數。 同時進行M 張輸入特征圖的計算, 一次完成的卷積運算后得到M 張輸出特征圖的一個點的所有通道的數據;輸出特征圖的通道數為卷積核的組數N。 卷積運算的順序為一次并行計算與卷積運算單元的PE 數量相匹配的卷積核權重數據組數, 通過多次循環完成全部的運算。

圖4 卷積運算示意圖Figure 4 Schematic diagram of convolution operation

全連接層的運算過程與上述卷積層相同,這時輸入特征圖的大小與一組卷積核權重的大小相同。池化層的運算過程與上述卷積層相似,但池化層的運算不需要卷積核權重數據,同時沒有輸入特征圖數據通道間的累加運算。

2.3 計算單元設計

計算單元是CNN 加速器的核心部分, 直接決定了CNN 加速器的性能。 由于卷積神經網絡的計算過程中大部分是卷積操作,而卷積操作需要非常大量的乘累加運算,本設計提出一種乘累加計算單元 (Multiply Accumulation Cells,MACs) 的級聯方案,結構如圖5 所示。

圖5 PE 單元內部結構圖Figure 5 Internal structure of PE unit

MACs 級聯鏈可以流水的完成多通道并行乘累加計算。FPGA 內部的DSP 單元內部包含乘和加功能, 所以PE 單元的MACs 實際就是FPGA 內部的DSP, 這樣極大地減少了額外加速器的使用,降低PE 單元的邏輯資源使用。 同時MACs 之間的級聯使用DSP 的專用級聯走線,降低PE 單元的走線資源使用。

MACs 的級聯尾部有累加器(Accumulator,ACC),用于一次卷積運算需要流水多次使用MACs的級聯鏈運算時的結果累加。 xReLU 使用了FPGA的DSP 實現乘法,支持各種類型的ReLU 計算。

PE 單元運算示意圖如圖6 所示。每個PE 單元完成一組卷積核權重數據,即C×W×H 的數據量的乘累加運算。 數據計算順序為C→W→H, 即每個PE 單元的MACs 級聯鏈優先完成一個像素點所有通道的乘累加計算,然后完成水平方向所有像素點的乘累加計算,最后完成垂直方向所有像素點的乘累加計算,得到結果。

圖6 PE 單元運算示意圖Figure 6 Schematic diagram of PE unit operation

2.4 乘累加單元設計

由于FPGA 內部資源有限,用于乘累加運算的DSP 單元也是有限的,DSP 使用效率的高低直接影響FPGA 加速器的運算速率。 在本文設計過程中,為了更有效使用DSP 和提高整個加速器的性能,MACs 單元對卷積核權重數據采用“乒-乓”處理結構,如圖7 所示。

圖7 MACs 單元“乒-乓”結構圖Figure 7 Ping-Pong structure of MACs unit

MACs 單元的“乒-乓”結構,使得 FPGA 內部DSP 單元的工作時鐘頻率是其他邏輯單元時鐘頻率的2 倍。 “乒-乓”結構的核心思想是利用Xilinx公司的FPGA 中DSP 的特點, 提高DSP 的工作時鐘頻率。 在主時鐘域下,一個時鐘周期內對應完成B×A+PCINPing和 B×D+PCINPong兩次乘累加運算。 這樣,在設計中使用相同數量的DSP,采用DSP 倍頻之后加速器理論上的整體性能翻一倍。

3 實驗結果與分析

3.1 實驗環境

本文是在Xilinx 公司的Virtex7 VX690T 平臺上完成設計與實驗的,采用FPGA 內部DSP 級聯、卷積核數據“乒-乓”使用方法,同時采用多通道并行、特征圖及卷積核數據的復用等方法。 使用硬件開發環境Vivado2018.2 對整個設計進行綜合布局和布線,其中CNN 加速核模塊資源消耗情況如表1 所列。

表1 CNN 加速核模塊資源消耗Table 1 Resources occupied Of CNN accelerator

本文使用了VGG16 網絡模型進行實驗。VGG16網絡模型包含13 層卷積層、5 層最大池化層、3 層全連接層。 每個卷積層都有激活函數(ReLU)處理,具體的網絡參數如表2 所列。 該模型輸入特征圖尺寸為227×227×3,全連接層用于分類判別,對應的運算量為 29GOPs(Giga Operations Per Second)。

表2 VGG16 網絡參數Table 2 VGG16 network parameters

3.2 實驗結果分析

本文設計的CNN 加速器由于采用FPGA 內部DSP 級聯、卷積核數據“乒-乓”結構,提升了DSP 的工作頻率, 在時序收斂的情況下,DSP 的工作頻率能達到400MHz。 同時,本設計采用多通道并行、特征圖及卷積核數據的復用等方法,提升了FPGA 內部緩存數據的利用率, 降低了與外部緩存DDR 之間的帶寬需求。 本設計在 Xilinx 公司的 Virtex7 VX690T 平臺使用了2048 個DSP 用于卷積的乘累加運算,理論算力為1.6TOPs。 基于VGG16 網絡模型進行實驗, 實測處理一幀圖像延遲為21.7ms,對應圖像處理性能為46FPS,實測有效算力(吞吐量)為 46×29=1334GOPs=1.334TOPs,計算單元(PE)的利用率達到83.4%。 在吞吐量方面將本文方案與其他方案進行對比,結果如表3 所列。

根據表3 可知, 在同等規模的設備平臺上,本方案的吞吐量是其他設計方案的1.9 至21.6 倍,性能指標上明顯優于其他設計方案。 這說明本設計采用FPGA 內部DSP 級聯、卷積核數據“乒-乓”結構,提升了DSP 的工作頻率,具有較高的計算性能。

表3 本文方案實驗數據與其他方案的對比Table 3 Comparison of experimental data with other schemes

本文設計的CNN 加速器資源消耗如表1 所示。 在使用相同設備平臺實現CNN 加速器時,在LUT 資源、DSP 資源消耗方面將本文方案與其他方案進行對比,結果如表4 所列。 所用方案都是基于Xilinx 公司的 Virtex7 VX690T 平臺。

表4 資源消耗對比Table 4 Comparison of resources occupied

根據表4 可知, 這些方案的DSP 資源消耗量相當, 但本方案的LUT 資源使用量是其他設計方案的13.7%至21.4%。 這說明本設計采用的充分利用FPGA 中DSP 單元內部包含的乘和加功能,以及DSP 級聯方式的方案, 減少了額外加速器資源的使用,在降低資源使用量方面是有優勢的。

4 結論

FPGA 器件內部資源有限,高效利用FPGA 資源獲得較高的計算性能是基于FPGA 實現CNN 加速器設計的重點。 本文提出了一種高性能、資源消耗少的CNN 加速器設計方案, 結合 FPGA 內部DSP 資源的特點, 通過DSP 級聯、 卷積核數據的“乒-乓”結構,同時通過多通道并行、特征圖及卷積核數據的復用等方法, 實現了一種理論算力為1.6TOPs 的高性能CNN 加速器。 實驗結果表明,與其他設計方案相比,本文方案具有較高的計算性能和較少的資源消耗。 為了進一步提高CNN 加速器的性能, 今后嘗試將工作方向主要集中在DDR 帶寬和PE 單元利用率上,將池化運算單元放在卷積運算單元后流水執行, 減少數據與外部緩存DDR的交互, 同時避免池化運算時卷積運算單元的空閑,進一步提升加速器性能。

猜你喜歡
特征資源設計
基礎教育資源展示
一樣的資源,不一樣的收獲
如何表達“特征”
不忠誠的四個特征
當代陜西(2019年10期)2019-06-03 10:12:04
資源回收
瞞天過海——仿生設計萌到家
藝術啟蒙(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
資源再生 歡迎訂閱
資源再生(2017年3期)2017-06-01 12:20:59
主站蜘蛛池模板: 91破解版在线亚洲| 日韩毛片在线视频| 亚洲色图综合在线| 97久久免费视频| www成人国产在线观看网站| 国产精品久久久久久久久久98| 一级香蕉视频在线观看| 视频国产精品丝袜第一页| 久久青草热| 亚洲区第一页| 天天躁夜夜躁狠狠躁躁88| 国产成熟女人性满足视频| av在线人妻熟妇| 国产一级二级三级毛片| 免费一极毛片| 久久久精品无码一区二区三区| 精品国产成人a在线观看| 麻豆精选在线| 亚洲h视频在线| 亚洲最新在线| 小说 亚洲 无码 精品| 久久不卡精品| 婷婷99视频精品全部在线观看 | 91久久国产综合精品女同我| 久久精品只有这里有| 亚洲视屏在线观看| 欧美黄网在线| 欧美日韩国产综合视频在线观看 | 成人午夜福利视频| 国产成人综合亚洲欧洲色就色| 久热这里只有精品6| 国产h视频在线观看视频| 欧美成人一级| 久久成人18免费| 亚洲高清在线播放| 天堂在线视频精品| 国产视频自拍一区| 欧美精品1区| 成人一级免费视频| 日韩激情成人| 任我操在线视频| 亚洲天堂.com| 九九九久久国产精品| av色爱 天堂网| 国产在线欧美| 国产精品冒白浆免费视频| 中文字幕首页系列人妻| 精品一区二区三区水蜜桃| 亚洲V日韩V无码一区二区 | 久久网综合| 国产精品无码AV片在线观看播放| 国产精品白浆无码流出在线看| 婷婷色在线视频| 欧美在线视频a| 91最新精品视频发布页| 在线不卡免费视频| 老司机久久99久久精品播放| 国产成人精品2021欧美日韩| 91精品综合| 99久久性生片| 91色在线视频| 国产波多野结衣中文在线播放| 日本一区中文字幕最新在线| 亚洲天堂网2014| av天堂最新版在线| 91免费国产高清观看| 久久精品国产一区二区小说| 亚洲视频二| 亚洲一级毛片在线观播放| 国产精品亚欧美一区二区| 亚洲男人天堂久久| 国产在线一区视频| 国产凹凸一区在线观看视频| 亚洲美女一级毛片| 婷婷五月在线| 色成人亚洲| 四虎永久免费在线| 97se亚洲综合在线| 特级毛片8级毛片免费观看| 亚洲一区国色天香| 夜夜操天天摸| 日韩午夜福利在线观看|