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

基于FPGA 的低功耗YOLO 加速器設計

2022-10-28 13:42:20李欽祚肖燈軍
電子設計工程 2022年20期
關鍵詞:優化設計

李欽祚,肖燈軍

(1.中國科學院空天信息創新研究院,北京 100190;2.中國科學院大學電子電氣與通信工程學院,北京 100049)

深度學習在目標檢測、圖像分類、語義分割等方 面發揮著重要作用。在目標檢測領域YOLO 算法[1]與其他算法[2-3]相比平衡了精度和速度。然而基于GPU 及ASIC 實現的YOLO 算法分別存在功耗高和設計周期長的問題。而FPGA 由于其功耗低、體積小、可編程性強等優點通常被用來進行神經網絡加速計算。目前的研究主要針對卷積計算、模型、數據位寬等方面進行優化。文獻[4]和文獻[5]分別采用Winograd 及FFT 算法優化卷積計算;文獻[6-7]利用神經網絡參數稀疏性進行FPGA 加速,文獻[8]采用XNOR 門優化模型,但對模型的優化容易影響檢測精度;文獻[9-10]使用16 bit 定點數部署YOLO 網絡,而文獻[11]采用浮點數部署消耗了大量片上資源。該文基于FPGA 在Xilinx 的軟硬件平臺上實現了低功耗Tiny YOLOv3 加速器,對神經網絡的加速計算做進一步探索。

1 Tiny YOLOv3網絡及優化探索

1.1 Tiny YOLOv3網絡簡介

Tiny YOLOv3 網絡由13 個卷積層組成。輸入圖像大小默認為416 pixel×416 pixel,通過卷積層進行特征提取,最大池化層進行數據降維和維持特征不變性,升采樣層可以增加特征圖的維數,為26 pixel×26 pixel 的輸出特征圖提供更多的特征信息。隨著卷積層數的加深,卷積核的感受野隨之增大。為了檢測不同大小的目標,Tiny YOLOv3網絡分別采用13 pixel×13 pixel 和26 pixel×26 pixel 的YOLO層進行大目標和小目標的檢測。Tiny YOLOv3 網絡可以提取的特征為W×H×(4+1+C)×B,其中W和H是輸出特征圖的寬度和高度,將輸入圖像分成W×H個網格單元,每個網格單元都有(4+1+C)×B個通道,分別包含坐標信息、目標置信度、不同類別置信度(C)以及邊界框數量(B)。

1.2 優化卷積計算

1.2.1 行寄存器設計

如圖1所示,在實現卷積計算的過程中,FPGA 不需要存儲所有輸入信息,只需要存儲當前卷積窗所在行的所有數據即可。在一個通道維度上,設輸入圖像寬度為fw,高度為fh,卷積窗尺寸為kw×kh,此時行寄存器的尺寸為kh×fw。在Tiny YOLOv3 的結構中,行寄存器的尺寸可以設置為418×3。行寄存器是一個移位寄存器數組,當有新的輸入數據進入行寄存器時,對應列中的舊數據向上移位,新的輸入數據便會插入。行寄存器區只會保存最近的kh行數據。

圖1 行緩存區示意圖

1.2.2 通道交錯設計

圖2 卷積數據流操作順序

1.3 引入FIFO優化

在多通道并行執行的過程中,寫入操作發生的次數比讀取操作更加頻繁。由于網絡的輸出通道數量普遍大于輸入通道,將在輸出端口產生數據擁塞。故在卷積輸出和AXI4 流端口之間引入First-in Firstout(FIFO)來優化流水線結構。設輸入通道數量為8,輸出通道數量為16,由于該設計中采用16位定點數和64 位DMA,所以當Initial Interval(II)等于1 時,需要兩個時鐘周期來獲取八個通道的輸入數據。當新的八個輸入通道到來時,由上一次輸入產生的16 個輸出通道將被清除,為了避免這種情況,輸入流必須暫停三個額外的周期來完成一次完整的輸入輸出操作,故共需五個周期。若加入FIFO 優化,產生的輸出數據會逐步被發送,這樣便可以在任務層級流水化傳輸加速器的輸入和輸出數據。圖3 以三個任務為例,進行該設計采用的流水化結構與傳統設計的時序對比。

圖3 流水化與傳統設計時序對比

圖3 中,在任務級完成一次操作的時間(Ttask)包括從輸入寄存器讀取數據時間(Tin),在Processing Elements(PE)中進行計算的時間(Tout)以及從PE 中讀取計算結果的時間(Tcmp),故傳統設計結構完成三次任務需要的總時間(Tsum)如式(1)所示:

流水化之后完成三次任務的總時間(Tpip_sum)如式(5)所示:

顯然,Tpip_sum<Tsum。

1.4 卷積層設計的偽代碼

在卷積IP 運行過程中,首先加載輸入權重數據;其次進行輸入圖像數據加載,數據進入行緩存區等待卷積計算;然后卷積計算按照滑窗的形式進行,隨著滑動窗口的移動進行乘累加運算,計算完畢之后,進行輸出通道的整合。在算法的設計中,引入輸入輸出通道折疊因子,以此適應不同層的通道參數,卷積IP 設計的偽代碼如算法1:

算法1 卷積層優化偽代碼

1.5 卷積優化算法的性能指標

該節對卷積層優化算法的資源占用和延遲進行估計。首先,由算法1 可以看出在設計中引入了流水線優化。其initial interval(II)主要受三方面因素的影響:卷積操作的折疊因子(factor)、輸入輸出比(ratio)以及包括行緩存等其他操作(other)。II的數學表達式如式(6)所示:

式(7)為factor的計算公式,其中,P代表內存分區,輸出通道為N。由于HLS 工具會將行寄存器區綜合為2-portBRAM形式,在計算卷積的過程中會使能2×P個并行卷積核,但是64 bit 的DMA 一次只能夠處理四個輸入通道,所以需要4×N個卷積濾波器的通道,由此計算出factor:

As the PRN code-phase observables ofand,the mean and standard deviation of the carrier-phase observablesandgenerated by the PLL can be expressed as:

在上述II計算的基礎上,采用式(8)計算,可對卷積IP 的資源占用進行估計:

其中,M(x)為總的資源占用量。首先,進行BRAM占用量的估計。以第一層卷積的分析為例,卷積窗的大小被設置為3,故行寄存器區一共有12 行,每一個BRAM能夠存儲1 000 個16 bit 的定點數,故針對輸入圖像數據的BRAM占用如式(9)所示。針對權重數據的存儲,如式(10)所示;因此總的BRAM占用如式(11)所示:

其次,進行DSP資源占用的分析。3×3 卷積需要9個DSP,所以在算法1 所示的卷積操作中,DSP的占用可以由式(12)得出:

數據處理的延遲由權重數據處理延遲和輸入圖像數據處理延遲兩部分組成。在權重數據處理階段,需要3 個周期來加載3×3 的權重數據;在輸入圖像數據處理階段,延遲與輸入圖像尺寸有關,通常需要補零操作。此外,在算法的設計中,需要額外的一行延遲來使輸出的讀寫達到流水線的效果,故關于延遲的計算如式(13)-(15)所示:

2 加速器的實現方案

2.1 加速器的整體架構設計

基于FPGA 的低功耗YOLO 加速器的整體架構設計如圖4 所示。系統的軟件部分可分為PL(Programmable Logic)和PS(Processing System)兩部分。在PL 端,輸入特征圖和權重存儲在片外DDR 中,通過FPGA 的AXI4 接口傳入片上緩存,然后片上緩存的數據會傳入FPGA 的并行處理單元進行計算,最后處理單元的計算結果會同樣通過AXI4 接口傳回片外DDR;在PS 端,集成的ARM CPU 將輸入輸出特征圖輸入到DDR 中,并且PS 端通過AXI4-Lite 總線下達DMA 與DDR 之間的數據傳輸命令,由DMA 控制器承擔著YOLO 加速器與片外DDR 間的數據搬運工作[12-13]。CPU 通過AXI 總線讀取加速器的運算結果,并在PS 端進行圖像預處理和顯示。綜合PL 和PS 兩部分便形成了YOLO 加速器的整體架構。

圖4 低功耗YOLO加速器整體架構

2.2 卷積層的流設計

在圖2(b)中給出了通道交錯的整體數據流順序,為了進一步說明,圖5 中給出了卷積層流設計的具體結構。在圖5 所示的結構中,輸入寄存器包含四行數據,額外的一行用于緩存上次計算產生的數據,其他的三行數據傳入PE 中進行計算,滑動立方體按通道維度滑動,更新的數據進入PE 進行計算,Ti個3×3 的數據與3×3 的卷積核進行計算,通過加法器計算出卷積結果,卷積的輸出結果進入經過簡化的批歸一化層進行量化和激活,最后將量化的結果傳入下一層進行計算。

圖5 卷積層流設計具體結構

此外,為了有效地獲取權重數據來適應通道折疊的計算,將權重數據按照圖6 的方式進行預處理。權重塊的維度按照輸出通道、輸入通道、卷積內核分布,需要To數量的卷積塊在To數量的PE 中進行計算,其中每一個卷積塊又適用了Ti個輸入通道。因此,權重塊將按照卷積處理的方式進行連續存儲,進而進行后續的卷積加速運算。

圖6 權重數據預處理

2.3 CNN層分組設計

為了減輕FPGA 片上資源的壓力,將權重數據以及圖像數據存儲在DDR 中,但各層頻繁讀取DDR會導致數據傳輸的延遲。如圖7 所示,依據Tiny YOLOv3 網絡結構中卷積層后面不同層的類型對所有的層進行分組。具體的分組操作,在Vivado SDK(Software Design Kit)軟件中通過編程實現,將所有的層分成四組,通過開關選擇對應的組。通過層分組操作,可以降低頻繁讀取DDR 導致的數據延遲。

圖7 CNN層分組示意圖

2.4 通道折疊設計

通道折疊設計適用于資源有限的情況,在IP 設計過程中,最大通道數的設定通常會小于輸入輸出通道數,將原始層分成子層將會更好地適應IP 設計,即進行通道折疊。如圖8 所示,為了避免后續再次進行通道交錯,所有的層都將分成子層進行通道折疊。

圖8 通道折疊示意圖

2.5 系統軟件設計

軟件設計主要包含對ZYNQ 系統進行初始化(對封裝好的IP 進行初始化)和IP 核參數的設置,通過開關設定層的連接關系,導入輸入數據以及導出輸出數據。系統軟件設計偽代碼如算法2 所示:

算法2 軟件設計偽代碼

3 實驗及比較

3.1 實驗建立

該設計主要采用Vivado HLS 2019.1 進行低功耗的YOLO 加速器的IP 設計,高層次綜合可以將C/C++語言轉化成FPGA 需要的RTL 語言。加速器硬件模塊化設計在Vivado 2019.1 中進行,最后,通過Xilinx SDK 軟件完成YOLO 加速器的軟硬件協同設計。基于FPGA 的低功耗YOLO 加速器設計部署在Xilinx Zedboard FPGA 平臺上,該平臺的主芯片是Zynq XC7Z020-CLG484-1,包 含512 MB 的DDR 和220個DSP。

3.2 實驗比較及數據分析

如表1 所示,在完成相同設計功能的情況下,該設計與Intel CPU 相比加速了17 倍,與ARM CPU 相比加速了289 倍,具有良好的加速效果。

表1 該設計與CPU運行分析比較

該文的計算性能和功耗比實驗結果如表2 所示,實驗表明,該文設計的功耗為3.4 W,總體的性能功耗比為10.45 GOPS/W。與此同時表2 也展示了與前人研究成果的比較。文獻[1]的功耗為170 W,性能功耗比為8.89 GOPS/W,該文的性能功耗比相對于原始GPU 設計提升了1.17 倍。該設計的功耗低于其他文獻方法。此外,文獻[15]的BRAMs、DSPs 和LUT-FF 的資源消耗分別為1 026、168、60k~86k,文獻[5]的BRAMs、DSPs和LUT-FF 的資源消耗分別為1 706、377、135k~370k,而該設計的BRAMs、DSPs 和LUT-FF 的資源消耗分別為185、160、26k~46k,顯著降低了硬件資源的消耗。

表2 研究性能比較

4 結論

該文提出了一種基于FPGA 的低功耗YOLO 加速器設計。通過軟硬件協同優化完成YOLO 加速器部署:運用通道交錯方法優化卷積計算;使用層分組方法減少數據傳輸的延遲;利用通道折疊方式降低硬件資源消耗。在Xilinx 平臺上的驗證結果表明,該設計在較低功耗和硬件資源消耗的情況下,具有良好的性能。因此,該文對有限資源情況下YOLO加速器邊緣部署的實現具有重要意義。

猜你喜歡
優化設計
超限高層建筑結構設計與優化思考
房地產導刊(2022年5期)2022-06-01 06:20:14
民用建筑防煙排煙設計優化探討
關于優化消防安全告知承諾的一些思考
一道優化題的幾何解法
由“形”啟“數”優化運算——以2021年解析幾何高考題為例
何為設計的守護之道?
現代裝飾(2020年7期)2020-07-27 01:27:42
《豐收的喜悅展示設計》
流行色(2020年1期)2020-04-28 11:16:38
瞞天過海——仿生設計萌到家
藝術啟蒙(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
主站蜘蛛池模板: 亚洲精品片911| 十八禁美女裸体网站| 99久久这里只精品麻豆| 国产精品v欧美| 亚洲香蕉在线| 国产成人做受免费视频| 欧美日韩中文国产| 真人免费一级毛片一区二区| 99在线视频免费观看| 91娇喘视频| 一区二区三区高清视频国产女人| 亚洲日韩AV无码一区二区三区人| 一区二区三区精品视频在线观看| 国产打屁股免费区网站| 亚洲精品国产日韩无码AV永久免费网| 久久99国产综合精品1| 欧美不卡二区| 97影院午夜在线观看视频| 精品一区二区三区水蜜桃| 亚洲无码四虎黄色网站| 国产无码高清视频不卡| a在线亚洲男人的天堂试看| 色精品视频| 国产精品夜夜嗨视频免费视频| 2020极品精品国产 | 伊人久久久大香线蕉综合直播| 9966国产精品视频| 精品福利视频导航| 亚洲一区二区三区麻豆| 国产爽爽视频| 亚洲Va中文字幕久久一区| 色香蕉网站| 国产成人精品一区二区不卡| 免费一级毛片在线播放傲雪网| 欧美一区二区丝袜高跟鞋| 思思99思思久久最新精品| 国产丝袜无码精品| 狼友av永久网站免费观看| 美女无遮挡免费视频网站| 在线观看网站国产| 久久国产精品娇妻素人| 国产91在线|日本| 欧美α片免费观看| 欧美亚洲日韩中文| 亚洲欧美国产视频| 久久久91人妻无码精品蜜桃HD| 久久精品日日躁夜夜躁欧美| 天堂亚洲网| 国产在线自在拍91精品黑人| 欧美日韩午夜| 无码福利日韩神码福利片| 无码精品国产VA在线观看DVD| 欧美成人亚洲综合精品欧美激情| 精品成人一区二区| 日韩精品成人在线| 午夜福利在线观看成人| 欧美第九页| 成人福利免费在线观看| 99热国产这里只有精品无卡顿" | 成人久久精品一区二区三区| 免费Aⅴ片在线观看蜜芽Tⅴ| 久一在线视频| 亚洲欧美成人在线视频| 人人爽人人爽人人片| 成人午夜精品一级毛片| 18禁高潮出水呻吟娇喘蜜芽 | 99久久国产综合精品2020| 91精品国产91久无码网站| 国产福利大秀91| 色九九视频| 久久国产精品电影| 国产电话自拍伊人| 国产麻豆va精品视频| 亚洲乱伦视频| 国产视频a| 久久婷婷六月| 国产一级毛片高清完整视频版| 久久99蜜桃精品久久久久小说| 青青草一区二区免费精品| 三区在线视频| 国产乱人乱偷精品视频a人人澡| 亚洲人成网18禁|