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

基于FPGA的加速器設計方法研究

2021-12-29 03:55:22盧敏
現代計算機 2021年31期
關鍵詞:嵌入式深度特征

盧敏

(西華大學計算機與軟件工程學院,成都 610039)

0 引言

近年來,卷積神經網絡(CNN)在計算機視覺及其他領域的各種任務中實現了最先進的準確性,在針對復雜場景中的目標檢測、圖像分類和自然語言處理等取得了巨大的成功[1]。隨著智能物聯網和邊緣設備的飛速普及,嵌入式移動設備引起了廣泛的關注。神經網絡技術不斷擴展到一些低計算和低功耗的移動設備上,比如自動駕駛、無人機和智能機器人等。人們對在邊緣設備上實現機器學習算法的需求越來越迫切。然而,CNN的計算復雜性和內存帶寬要求成為阻礙CNN在低功耗邊緣設備上普遍使用的主要障礙之一。所以,運行在移動設備的算法不僅需要更高的精度,還需要具備低時延、低功耗的特點。常用的CNN結構,隨著網絡深度的增加,網絡性能提高的同時也增大了計算量,不適用于資源受限的移動端。因此,在低功耗、計算資源和內存帶寬的限制下保持高精度和吞吐量是在嵌入式平臺上部署CNN模型需要解決的關鍵問題。

為了降低模型復雜度,使其能在資源受限的邊緣設備上運行,以達到實時檢測的目的,輕量化神經網絡模型得到了廣泛的關注[2]。實現模型輕量化一般有兩種方法。第一種是對已有的模型壓縮。CNN算法模型通常過度參數化并表現出明顯的冗余,因此適用于減小模型大小。權重量化、剪枝、蒸餾和低秩分解是為優化CNN模型而提出的一些方法。另一種實現模型輕量化的方法是人工設計更小、更高效的CNN架構。目前研究人員總是使用更復雜的網絡來提高檢測的準確性。然而,復雜的網絡花費了大量的資源,不適合用于移動設備和嵌入式設備。為了解決這些問題,參數較少的模型得到了越來越多的關注。近年來提出了MobileNet、GhostNet、SqueezeNet等輕量級卷積神經網絡[3]。

神經網絡由于其高精度而被廣泛用于分類識別任務。然而,推理是一個計算密集型過程,通常需要硬件加速才能實時運行。常用的部署神經網絡的平臺有CPU、GPU和FPGA。CPU采用傳統串行指令架構,推理過程計算復雜,執行起來效率低下。GPU提供了大規模可以并行執行的計算資源和較高的內存處理速度。然而,它們的高性能是以高功耗為代價的,不適用于在邊緣設備運行。FPGA具有功耗低和可編程性的特點,目前它已經成為了不錯的選擇。FPGA硬件電路的并行性和流水線性,將提供實現復雜算法的能力,為算法的實時和高效實現提供了可能性。

1 輕量化網絡模型

Google的MobileNet是專為小型模型移植到計算和存儲資源有限但追求高精度低延時的嵌入式平臺上而設計的[4]。在MobileNet架構中,普通卷積被深度可分離卷積替代。通過深度可分離卷積成功地最小化了參數大小和計算延遲。

1.1 深度可分離卷積

深度可分離卷積是MobileNet模型中提出的分解標準卷積的一種形式。在普通卷積中,每個輸入通道與其特定的卷積核進行卷積,所有輸入通道的卷積結果相加產生一個輸出通道[5]。在深度可分離卷積中,卷積分為深度卷積(DW)和逐點卷積(PW)。深度卷積的卷積核分別和每個輸入通道卷積以產生相同數量的輸出通道。逐點卷積其實就是卷積核為1×1的普通卷積。深度可分離卷積的因式分解極大地降低了操作復雜度和參數的數量。

深度卷積使用單獨的卷積核計算單個通道,負責從空間上提取信息。因此,卷積核具有與輸入相同數量的通道,生成的輸出圖像保留其深度。深度卷積的過程是將卷積核與輸入特征圖對應的通道進行卷積,卷積核從輸入圖像的左上角向右和向下滑動,區域的數據和權重相乘相加[6]。

逐點卷積一般用于增加或減少圖像的深度。由于深度卷積只負責單通道的卷積,缺少通道間的聯系。逐點卷積使用[1×1×N]的卷積核使不同通道間的特征產生聯系。

如圖1所示,輸入特征圖的尺寸為D F?D F?M卷積核尺寸為D K?D K,輸出特征尺寸為D F?D F?N,M是輸入通道數,N是輸出通道數。在步長為1的情況下,普通卷積的卷積計算為D K?D K?M?N?D F?D F深度卷積為D K?D K?M?D F?D F,逐點卷積為M?N?D F?D F,所以深度可分離卷積和普通卷積之間的算力消耗比如下所示:

圖1 深度可分離卷積

由此可以推斷,使用深度可分離卷積在計算時可以大幅度地降低運算量。

1.2 倒殘差和線性瓶頸結構

深度卷積無法捕獲按通道方面的信息。同樣,逐點卷積弱化了運算復雜度,同時也完全降低了通道深度。然而,隨著特征沿著網絡深度移動并嵌入到低維空間中,仍然存在信息丟失。2018年文獻[7]中提出的MobileNet V2采用更先進的方式,在MobileNet的基礎上,增加了一個具線性瓶頸和反向殘差結構的模塊。在不犧牲檢測精度的情況下,進一步降低了計算量和模型大小。

MobileNet V2將卷積、歸一化和激活階段組合成倒殘差瓶頸模塊,如圖2所示。通常,殘差塊開始和結束是寬層,即寬-窄-寬。但是反向殘差以相反的方式實現它,即窄-寬-窄。該結構首先用逐點卷積擴展了輸入特征圖中的信道數,然后用深度卷積提取了特征。最后,它用逐點卷積投影簡化到原始維,并在特定塊中添加跳轉連接,以便網絡仍然可以在更深的層次上進行訓練。線性瓶頸層還為了保留低維輸入的信息,將最后一層的低維特征圖中的ReLU激活函數換成了更適合的線性激活函數。

圖2 倒殘差瓶頸結構

1.3 網絡模型

MobileNetV2的模型如表1所示,其中參數t為瓶頸層升維的倍數,參數c為特征的維數,參數n為該瓶頸層重復的次數,參數s為瓶頸層第一個卷積的步幅。它在第一層使用標準卷積組合RGB通道,使用18個瓶頸塊提取特征,并使用平均池化和全連接層對特征進行分類。神經網絡有340萬個參數。

表1 MobileNet V2網絡結構表

2 神經網絡硬件加速

本節首先介紹了加速器的整體系統體系結構,然后確定每個網絡層的最佳并行度,隨后給出了設計,并進行了優化。

2.1 總體架構

MobileNet V2加速器的總體架構如圖3所示。異構架構包括處理系統(PS)、集成了一個可編程處理器(ARM)用作控制器和一個存儲CNN的圖像和權重數據的片外存儲器、可編程邏輯(PL)。ARM使用AXI協議將控制數據和權重數據的片外存儲器(DDR)地址寫入PL,然后通過直接內存訪問(DMA)將輸入特征圖和卷積權重數據流導入內存(BRAM)作為數據流發送到每個處理單元。每個CNN層在硬件中由一個功能單元(PE)表示。每個PE都是專門進行特定計算的,可以簡單地合成不同的CNN模型。PL使用可重構邏輯實現了計算MobileNet V2各種層的功能單元(PE)。并且這些PE可以并行執行。PE計算完成后DMA將每個輸出映射作為數據流寫入外部存儲器。加速器迭代數據,直到完成推理。

圖3 加速器總體架構

2.2 并行分析

加速器試圖最大限度地提升資源利用率,以最快的計算速度完成CNN的推理。性能和資源利用在不同的并行策略下有所差異。為了確定卷積層適合的并行化策略,應該考慮它們之間的數據關系以及并行性和資源約束之間的關聯。卷積過程中的并行化計算大致有三種,包括多卷積層之間的并行計算、輸入和輸出特征圖的多通道并行計算,以及卷積核中的并行計算。

2.2.1 層間并行

在多層卷積神經網絡中,有些卷積操作不需要等到上一步全部完成才能開始下一層的卷積,所以能夠通過建立流水線的形式去并行運算。但是,由于相鄰層之間存在的數據相關性阻礙了卷積神經網絡各層間計算的并行執行,卷積層級別的并行性一般比較低[8]。

2.2.2 通道并行

由于MobileNetV2是由瓶頸層構建的,因此每個深度卷積層都被一個1×1的擴展層和一個1×1的投影層包圍。逐點卷積和深度卷積幾乎占運算負載的100%。卷積的過程中輸入特征圖的不同通道之間的輸入圖像數據和權重數據與最終輸出結果沒有沖突。不同通道不存在數據依賴,可以實現并行計算。如果輸入特征圖中有M個通道,則實例化對應M個乘加單元。

2.2.3 卷積核并行

與逐點卷積層相比,深度卷積層的操作數其實很小。逐點卷積具有較少的算法和較少的數據移動復雜性,最適合大量并行。由于逐點卷積的密集運算,這個算子的設計可以類似于一般矩陣乘法的設計,非常適合收縮陣列。不一樣的卷積核提取一樣的輸入圖像數據,可以復用輸入的特征數據,提高計算效率。通過最大程度的數據重用,逐點卷積可以利用最大的并行性。

3 實驗結果分析

3.1 實驗環境

該項目使用的FPGA平臺是基于Xilinx Zynq-7000 SoC的ZedBoard,如圖4所示。Zynq-7000包含兩個子系統:處理系統(PS)和可編程邏輯(PL),具有660萬個邏輯單元。PL包含CNN加速核心,運行核心驅動程序,PS主要用于初始化和配置CNN,向其提供數據并接收結果。這兩個子系統在CNN中協同工作。系統相互通信是AXI接口進行實施的。兩個系統還可以使用由PS控制的AXI-DMA內核訪問DDR3內存。與PS的通信使用SD讀卡器和UART串口完成。

圖4 實驗平臺

由于ZynqSoC的資源很少,一般使用PC來訓練模型,并將權重下載到Zynq-7000嵌入式平臺進行測試。采用高級合成方法將CNN部署到Zynq板的實驗過程如下:①在PC上訓練網絡得到權重參數。②在Vivado高級綜合工具HLS中使用C或C++編程語言編寫高級綜合來描述檢測網絡,實現底層描述。進行仿真創建RTL代碼,封裝成CNN加速器IP核。③導入IP,在建立的加速器系統中運行,生成比特流文件。將IP核集成到整個系統體系結構中,并與嵌入式處理器實現進行比較。④下載比特流文件,在Zynq板上進行驗證[9]。

3.2 實驗結果

本文首先在ImageNet圖像數據集上運行基于ZynqSoC框架的MobileNetV2模型,得到模型參數。結果得出MobileNetV2識別單幅圖像的時間僅為17.821 s,計算復雜度是1.253 Bn,網絡參數個數只有15.23 MB。可以看出MobileNetV2不僅保持了較高的識別精度,與其他網絡結構比較,計算復雜度和存儲資源占用更低,非常適合用來部署在資源少的邊緣設備上。

Xilinx Vivado工具在Zynq SoC架構上提出的加速器硬件架構體系如圖5所示。包含時鐘、AXI總線控制、CNN IP核、DMA內存訪問控制、DDR存儲設置、Zynq處理系統模塊。其中CNN模塊是核心,DMA模塊將讀寫IP核和RAM之間的像素流。Zynq7處理系統是包含嵌入式處理器的塊。AXI將處理硬件架構的不同塊之間的互連。

圖5 系統模塊設計

根據生成的IP核的綜合結果可以看出,生成的IP核在DSP、BRAM、FF和LUT方面需要較低的FPGA資源,執行時間也非常快,這使得可以將其集成到任何需要卷積的系統全局架構中。實驗證明,運行CNN硬件加速器處理圖像的運行速度會比在嵌入式上運行快約30倍。這些結果表明,所提出的通過卷積設計進行圖像和視頻處理的協同設計方法需要較低的FPGA資源,滿足在嵌入式設備中運行的需求。

4 結語

為了將神經網絡技術應用于嵌入式平臺,針對嵌入式平臺資源少、計算能力低的特點,構建了具有深度可分離卷積的輕量級模型MobileNetV2的神經網絡加速框架并部署在Zynq-7000開發板上。在這項工作中,采用了一種協同設計方法,使用Vivado HLS設計用于實時圖像和視頻處理的加速器系統。基于所提出的方法,該加速器實現了較高的檢測速度和精度,符合在嵌入式系統中使用的設計要求。總而言之,由于CNN模型的改進和硬件加速技術,該系統實現了較高的識別率和精度,較低的系統存儲開銷,可用于移動終端。

猜你喜歡
嵌入式深度特征
深度理解一元一次方程
如何表達“特征”
不忠誠的四個特征
當代陜西(2019年10期)2019-06-03 10:12:04
深度觀察
深度觀察
深度觀察
搭建基于Qt的嵌入式開發平臺
抓住特征巧觀察
嵌入式軟PLC在電鍍生產流程控制系統中的應用
電鍍與環保(2016年3期)2017-01-20 08:15:32
Altera加入嵌入式視覺聯盟
主站蜘蛛池模板: 国产精品无码AV中文| 亚洲国产成人麻豆精品| 自偷自拍三级全三级视频| 91色爱欧美精品www| 国产不卡一级毛片视频| 欧美综合在线观看| 久久精品aⅴ无码中文字幕| 欧洲高清无码在线| 亚洲综合精品第一页| 国产一在线| 视频二区欧美| 国产精品观看视频免费完整版| 亚洲 日韩 激情 无码 中出| 亚洲日韩AV无码一区二区三区人| 亚洲综合狠狠| 亚洲欧美成人在线视频| 婷婷综合在线观看丁香| 国产浮力第一页永久地址 | 国产欧美日韩资源在线观看| 亚洲欧洲自拍拍偷午夜色无码| 欧美成人精品在线| 97se亚洲| 992tv国产人成在线观看| 亚洲黄色成人| 国产精品成人观看视频国产 | 3D动漫精品啪啪一区二区下载| 国产精品亚洲精品爽爽| 中文字幕永久视频| AV熟女乱| 欧美国产在线精品17p| 91丨九色丨首页在线播放| 91精选国产大片| 国产毛片高清一级国语 | 亚洲最大福利网站| 色综合狠狠操| 国产黄视频网站| 97国产成人无码精品久久久| 狠狠亚洲五月天| 77777亚洲午夜久久多人| 无码国产偷倩在线播放老年人| 成年网址网站在线观看| 国产chinese男男gay视频网| 欧美日韩资源| 亚洲人成网线在线播放va| 人妻一区二区三区无码精品一区| 国产精品视频久| 久久亚洲国产一区二区| 国产成a人片在线播放| 国产免费一级精品视频| 超碰91免费人妻| 亚洲日本精品一区二区| 亚洲人成日本在线观看| 免费又爽又刺激高潮网址| 夜夜爽免费视频| 国产成人精品亚洲77美色| 欧美劲爆第一页| 91人妻在线视频| 欧美天堂在线| 国产欧美日韩免费| 国产丝袜第一页| 91国内视频在线观看| 国产精品视频白浆免费视频| 国产微拍精品| 国产99在线观看| 天天色天天综合| 免费中文字幕一级毛片| 国产欧美精品午夜在线播放| 91日本在线观看亚洲精品| 国产在线视频导航| 亚洲一区网站| 毛片网站观看| 狠狠色噜噜狠狠狠狠奇米777 | 亚洲αv毛片| 精品视频91| 91精品免费久久久| 久久午夜夜伦鲁鲁片不卡 | 欧美精品亚洲精品日韩专区va| 国产成人免费| 国产日韩精品欧美一区灰| 中文字幕在线日本| 大陆精大陆国产国语精品1024| 亚洲a级在线观看|