李欣瑤 劉飛陽 文鵬程 李鵬
摘 要: 面向構(gòu)建智能化航空電子系統(tǒng)的需求,提升有人機/無人機智能化作戰(zhàn)水平,設(shè)計并實現(xiàn)卷積神經(jīng)網(wǎng)絡(luò)CNN的軟硬件協(xié)同加速技術(shù),以解決目標(biāo)識別、輔助決策、自主規(guī)劃等復(fù)雜問題。針對算法模型的龐大參數(shù)量與嵌入式環(huán)境有限存儲資源的沖突問題,采用模型結(jié)構(gòu)優(yōu)化及量化算法壓縮網(wǎng)絡(luò)規(guī)模。針對復(fù)雜浮點運算與計算資源緊缺的沖突問題,基于Verilog HDL設(shè)計卷積、池化兩種加速算子,采用流水線+全并行方式,以達到計算加速的目的。通過軟件優(yōu)化設(shè)計與硬件加速運算的協(xié)同作用,實現(xiàn)卷積神經(jīng)網(wǎng)絡(luò)的推理過程加速。以YOLOv3及YOLOv3-Tiny兩種典型CNN為例進行加速,并在Xilinx ZCU102 FPGA評估板上進行驗證。結(jié)果表明,加速后的模型與原模型對比,參數(shù)量可壓縮3/4左右,YOLOv3的推理速度提升近65倍,YOLOv3-Tiny提升23倍左右。
關(guān)鍵詞:智能計算;硬件加速;目標(biāo)檢測;模型壓縮;FPGA
中圖分類號:TJ760; TP18? 文獻標(biāo)識碼: A? 文章編號:1673-5048(2021)03-0099-06
0 引? 言
隨著人工智能算法模型結(jié)構(gòu)的快速更迭,神經(jīng)網(wǎng)絡(luò)正逐步被應(yīng)用于解決智慧醫(yī)療、自動駕駛等多種復(fù)雜智能問題。在航空領(lǐng)域,有人機與無人機的空戰(zhàn)過程均朝著智能化的方向發(fā)展[1],目標(biāo)識別跟蹤、輔助決策、自主規(guī)劃等復(fù)雜任務(wù)均可依賴神經(jīng)網(wǎng)絡(luò)完成。但機載嵌入式環(huán)境對功耗、實時性都有著嚴(yán)格的制約,且存儲、計算資源都較為緊缺,如何將神經(jīng)網(wǎng)絡(luò)模型部署于資源受限的嵌入式環(huán)境成為亟待解決的問題。
本文面向智能化航空電子系統(tǒng)的需求,設(shè)計并實現(xiàn)一種面向卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Network,CNN)的軟硬件協(xié)同加速方法。針對龐大網(wǎng)絡(luò)模型參數(shù)量與有限存儲資源的沖突問題,以及大量復(fù)雜浮點運算與計算資源緊缺的沖突問題,從軟硬件兩方面對網(wǎng)絡(luò)模型進行了優(yōu)化與加速,解決了基于CAFFE(Convolutional Architecture for Fast Feature Embedding)框架的網(wǎng)絡(luò)結(jié)構(gòu)優(yōu)化問題、模型參數(shù)量化問題以及神經(jīng)網(wǎng)絡(luò)加速算子的構(gòu)建問題,以YOLOv3及YOLOv3-Tiny兩種用于目標(biāo)檢測的典型CNN網(wǎng)絡(luò)為例進行加速,并在Xilinx ZCU102 FPGA評估板上進行驗證。
1 國內(nèi)外研究現(xiàn)狀
一個完整的深度學(xué)習(xí)框架通常包含訓(xùn)練與推理兩個主要部分,本文所針對的主要是推理部分的優(yōu)化與加速。
在軟件加速方面,分解卷積核使得參數(shù)量大幅減少的SqueezeNet模型[2]、逐個通道進行卷積后將結(jié)果串聯(lián)以減少計算量的MobileNet模型[3]、采用殘差網(wǎng)絡(luò)思想并在不影響精度的情況下降低分辨率的ShuffleNet模型[4]、更改卷積運算流程以提高網(wǎng)絡(luò)效率的Xception模型[5]等輕量化模型被相繼提出并不斷優(yōu)化。除輕量化模型以外,剪枝、奇異值分解、哈弗曼編碼等輕量化技術(shù)亦得到廣泛采用,該類方法的核心思想均為壓縮網(wǎng)絡(luò)模型大小,以減少計算量和降低計算復(fù)雜度,雖然會損失網(wǎng)絡(luò)模型的部分精度,但模型推理速度會得到大幅度提升。目前,在眾多輕量化算法中,量化算法具有較為突出的表現(xiàn)。
深度神經(jīng)網(wǎng)絡(luò)的訓(xùn)練階段普遍采用float 32(簡稱FP32)的數(shù)據(jù)格式,量化算法即采用較低精度的數(shù)據(jù)格式(如float 16和int 8,簡稱FP16和INT8)代替高精度的數(shù)據(jù)格式[6]。此外,二值化(所有權(quán)重的值取+1或-1)[7]和三值化(將所有權(quán)重的值量化為[-α,0,+α]三個數(shù)之一,其中α為可訓(xùn)練的參數(shù)) [8]也是常用的量化方法。
在硬件加速方面,目前主流采用GPU,ASIC與FPGA三種智能計算架構(gòu)進行深度神經(jīng)網(wǎng)絡(luò)模型加速[9]。其中,高性能GPU主要應(yīng)用于神經(jīng)網(wǎng)絡(luò)訓(xùn)練階段,對環(huán)境和庫的依賴性較大,國內(nèi)技術(shù)積累較弱,難以實現(xiàn)技術(shù)自主可控;ASIC是為特定需求而專門定制優(yōu)化開發(fā)的架構(gòu),靈活性較差,缺乏統(tǒng)一的軟硬件開發(fā)環(huán)境,開發(fā)周期長且造價極高;FPGA是可編程的半定制芯片,具有高靈活性、低延時特性,開發(fā)難點在于硬件邏輯實現(xiàn)復(fù)雜。目前,面向智能化航空電子系統(tǒng)多應(yīng)用需求的智能計算加速技術(shù)多處于預(yù)研階段,考慮后期的移植、再開發(fā)等工作,相對來說FPGA架構(gòu)更適用于航空領(lǐng)域的智能計算加速。
2 面向CNN的軟硬件協(xié)同加速方法
卷積神經(jīng)網(wǎng)絡(luò)在處理復(fù)雜智能問題時具有巨大的優(yōu)勢,但機載嵌入式環(huán)境的存儲、計算資源均受限,為滿足航空電子系統(tǒng)智能化場景感知的應(yīng)用需求,本文設(shè)計了一種面向CNN的軟硬件協(xié)同加速方法,如圖1所示。
軟硬件協(xié)同設(shè)計方法是針對系統(tǒng)開發(fā)中軟硬件設(shè)計的相互作用關(guān)系而提出的[10]。由于在機載嵌入式環(huán)境中,存儲資源與計算資源均較為受限,難以將規(guī)模龐大的神經(jīng)網(wǎng)絡(luò)移植到FPGA平臺上,且FPGA并不擅于進行浮點運算,不能發(fā)揮FPGA在算力方面的優(yōu)勢,實現(xiàn)計算加速。因此,本文選用軟硬件協(xié)同方法對卷積神經(jīng)網(wǎng)絡(luò)進行加速。軟件優(yōu)化方面,基于CAFFE框架實現(xiàn)結(jié)構(gòu)優(yōu)化與參數(shù)量化,旨在壓縮網(wǎng)絡(luò)模型規(guī)模,以大幅降低網(wǎng)絡(luò)模型對嵌入式平臺功耗、內(nèi)存的需求。硬件加速方面,基于Verilog HDL設(shè)計加速算子,采用流水線+全并行的方式,充分利用有限的計算資源,達到計算加速的目的。軟件優(yōu)化與硬件加速兩部分協(xié)同作用,使得卷積神經(jīng)網(wǎng)絡(luò)能夠部署于資源受限的嵌入式環(huán)境。
本文構(gòu)建了含雷達、艦船、坦克、汽車、建筑五類物體在內(nèi)的空對地小目標(biāo)數(shù)據(jù)集,從30°和90°兩類不同視角以及彩色、紅外、黑白三種不同視圖場景進行影像采集,將采集到的12個視頻片段逐幀截取成5 000余張1 024×768像素的高分辨率圖片,參照PASCAL VOC標(biāo)準(zhǔn)數(shù)據(jù)集格式,標(biāo)注生成以航空應(yīng)用為背景的數(shù)據(jù)集,包括訓(xùn)練集3 000余張、測試集1 000余張和驗證集1 000余張,單張圖片平均含有7.4個物體。
開發(fā)階段分為軟件優(yōu)化設(shè)計與硬件加速設(shè)計兩部分。軟件優(yōu)化設(shè)計基于CAFFE框架對網(wǎng)絡(luò)結(jié)構(gòu)進行調(diào)整、優(yōu)化,并采用量化算法壓縮網(wǎng)絡(luò)模型,為模型部署于嵌入式環(huán)境奠定基礎(chǔ)。硬件加速設(shè)計基于FPGA 模塊化設(shè)計思想,針對典型CNN網(wǎng)絡(luò)中占用資源最多的卷積、池化網(wǎng)絡(luò)層設(shè)計加速算子。
驗證階段將網(wǎng)絡(luò)移植到Xilinx ZCU102評估板上進行驗證。其中,卷積、池化加速算子封裝為IP核,在PL端實現(xiàn),其余各層算子在以ARM為核心的PS端實現(xiàn),PL與PS之間通過DMA進行通信。
3 面向CNN的軟件優(yōu)化技術(shù)
由于構(gòu)建的空對地小目標(biāo)數(shù)據(jù)集以小目標(biāo)(目標(biāo)占圖片總比例的0.5%以內(nèi))為主,且目標(biāo)分布較為集中,綜合考慮航空嵌入式環(huán)境對實時性的需求,選用YOLOv3及YOLOv3-Tiny兩種典型CNN網(wǎng)絡(luò)模型進行優(yōu)化與加速[11]。YOLOv3及YOLOv3-Tiny模型具有高檢測速度及小目標(biāo)高檢測精度的特點,適用于本文構(gòu)建的數(shù)據(jù)集。
文獻[12]指出,F(xiàn)PGA加速卷積神經(jīng)網(wǎng)絡(luò)推理過程時面臨的主要瓶頸體現(xiàn)在兩方面,一是計算量,二是數(shù)據(jù)傳輸。其中計算量對應(yīng)本文所述計算資源受限的瓶頸,數(shù)據(jù)傳輸對應(yīng)存儲資源受限的瓶頸。具體來看,卷積神經(jīng)網(wǎng)絡(luò)中的卷積層、池化層等網(wǎng)絡(luò)層涉及大量復(fù)雜浮點運算,浮點運算占用資源較多且運行速度較慢,而FPGA中DSP資源較少,若在FPGA加速之前對數(shù)據(jù)類型進行轉(zhuǎn)化,可有效提高FPGA中的并行計算能力和計算效率,從而解決計算量龐大造成的瓶頸。此外,由于片上存儲資源有限,大量中間網(wǎng)絡(luò)層數(shù)據(jù)在運算過程中需進行多次訪問存儲,由此導(dǎo)致嚴(yán)重的傳輸延遲。為解決該瓶頸,本文對模型結(jié)構(gòu)進行優(yōu)化設(shè)計,減少中間參數(shù),降低訪問存儲次數(shù),從而降低數(shù)據(jù)傳輸開銷,提高FPGA加速性能。
3.1 基于CAFFE框架的模型結(jié)構(gòu)優(yōu)化
CAFFE是一個開源的深度學(xué)習(xí)框架,無硬件與平臺的限制,提供網(wǎng)絡(luò)模型訓(xùn)練、微調(diào)、部署所需的完整工具包。與Darknet框架相比,CAFFE框架提供了卷積、池化、激活等多種算法接口,能夠快速、高效地搭建網(wǎng)絡(luò)模型;而Darknet框架較為小眾,對除YOLO系列以外的網(wǎng)絡(luò)模型支持度較低。本文基于CAFFE框架搭建YOLOv3以及YOLOv3-Tiny兩種網(wǎng)絡(luò),并在原有模型基礎(chǔ)上對卷積層結(jié)構(gòu)進行調(diào)整優(yōu)化。CAFFE框架雖然提供了卷積層的接口,但由于YOLOv3及YOLOv3-Tiny兩種網(wǎng)絡(luò)中,每一個卷積層之后都會連接一個歸一化層(Batch Normalization,BN),而BN層主要用于訓(xùn)練時解決梯度消失或梯度爆炸問題,單獨實現(xiàn)會占用大量顯存空間。為提高本文構(gòu)建模型的推理速度,減少BN層的運算,在基于CAFFE框架搭建時,將BN層參數(shù)合并到卷積層,實現(xiàn)為Conv+BN層。融合前原卷積層運算公式為
Y=W×X+b(1)
式中:X為卷積層輸入特征圖參數(shù);W為卷積層濾波器參數(shù);b為偏置值;Y為卷積層輸出值。BN層共包含兩部分運行,分別為歸一化運算以及尺度變換偏移運算:
i← xi-μxδ2x+ε(2)
yi← γxi+β(3)
式中:μx為輸入?yún)?shù)均值;δ2x為輸入?yún)?shù)方差;ε為避免除數(shù)為0的微小正數(shù);γ為尺度因子,用于調(diào)整數(shù)值大小;β為偏移因子,用于增加數(shù)據(jù)偏移,γ及β是模型在訓(xùn)練過程中自學(xué)習(xí)得到的兩個參數(shù)。將BN層的兩種運算融合到原卷積層運算中:
Y′=γ×(W×X+b)-μxδ2x+ε+β(4)
對該式進行展開,即可得到融合后新卷積層濾波器參數(shù)W′以及新偏置值b′:
W′=γδ2B+ε×W(5)
b′=γδ2x+ε(b-μx)+β (6)
將式(5)~(6)合并到式(4)中,即可得到融合BN層后的新卷積層運算公式:
Y′=W′×X+b′(7)
式(7)即為Conv+BN層輸出值的運算公式。
基于以上推理,在原CAFFE框架中增加了Conv+BN層,可應(yīng)用于基于CAFFE框架搭建的網(wǎng)絡(luò)中,將BN層融合到卷積層內(nèi)進行實現(xiàn),消除推理過程中BN層單獨運算對硬件資源的占用與消耗。
3.2 模型量化處理
網(wǎng)絡(luò)模型參數(shù)量會直接影響存儲資源和計算資源的占用情況,從而影響網(wǎng)絡(luò)推理速度。為能更精準(zhǔn)地提取出待識別圖片的各類特征,神經(jīng)網(wǎng)絡(luò)通常需要大量卷積層和大量濾波器進行復(fù)雜浮點的乘加運算,這意味著一個精度較高的網(wǎng)絡(luò)模型在計算量上可達10億量級,參數(shù)量更是輕易突破百兆量級[13]。如在YOLOv3-Tiny網(wǎng)絡(luò)中,僅第13層的參數(shù)量便高達8億個,在不考慮復(fù)用的情況下,該層需進行的乘加運算約9 000萬次。如果將原始FP32型數(shù)據(jù)映射到硬件上,不僅會占用大量的BRAM存儲資源,其推理過程更會消耗大量的DSP計算資源,這對資源受限的嵌入式環(huán)境來說是難以承受的?;谟布Y源的考慮,采用量化算法將FP32位數(shù)據(jù)映射為INT8位數(shù)據(jù),節(jié)省存儲資源占用情況。以n×n卷積核K為例,量化過程為
K=(k11,k12,…,kin,k(i+1)1,…,knn)(8)
kmax=max(k11,k12,…,kin,k(i+1)1,…,knn)(9)
δ=127/kmax(10)
K′=(k11×δ,k12×δ,…,kin×δ,…,knn×δ) (11)
式(8)為卷積核K的n2個參數(shù);式(9)取卷積核K參數(shù)中的最大值,記為kmax;式(10)計算量化系數(shù)δ,其中127為INT8值域中的最大值;式(11)為量化后的卷積核K′。偏置值由于數(shù)量較少,對其進行量化并不會節(jié)省太多存儲資源,反而會導(dǎo)致模型精度嚴(yán)重下降,因而對偏置值直接進行保存處理。
使用構(gòu)建的空對地小目標(biāo)數(shù)據(jù)集中的測試集進行精度測試,模型量化前后對比如表1所示。網(wǎng)絡(luò)模型壓縮處理后,其規(guī)??煽s小約3/4,解決了硬件存儲資源受限的瓶頸。
量化算法主要用于壓縮參數(shù)規(guī)模龐大的網(wǎng)絡(luò)模型,減小權(quán)重參數(shù)的存儲資源占用,緩解嵌入式環(huán)境存儲資源受限的瓶頸,為網(wǎng)絡(luò)模型移植到嵌入式環(huán)境奠定基礎(chǔ)。
4 面向CNN的硬件加速技術(shù)
FPGA作為一種可編程重構(gòu)的硬件架構(gòu),能夠很好地兼顧處理速度與調(diào)控能力。目前,高層次綜合(High-Level Synthesis,HLS)與Verilog HDL是常用于設(shè)計神經(jīng)網(wǎng)絡(luò)加速模塊的硬件結(jié)構(gòu)及硬件語言。HLS是指將高層次語言(如C, C++, System C等)描述的邏輯結(jié)構(gòu),自動轉(zhuǎn)換成低抽象級語言描述的電路模型[14],更注重于上層算法的實現(xiàn),但基于HLS結(jié)構(gòu)實現(xiàn)的神經(jīng)網(wǎng)絡(luò)有兩個弊端,一是資源占用不合理、不可控,網(wǎng)絡(luò)運行時能達到的并行度較為受限,特別是搭建中大型神經(jīng)網(wǎng)絡(luò)時,并行度較低直接導(dǎo)致其推理速度難以提升;二是轉(zhuǎn)換后的代碼不具備可讀性,這不僅加大了排查故障的難度,在不滿足設(shè)計需求時也很難對其進行優(yōu)化。
Verilog HDL適合于RTL級的硬件描述,用于從算法級、門級到開關(guān)級的多種抽象設(shè)計層次的數(shù)字系統(tǒng)建模,更偏重于底層,因而基于Verilog HDL的設(shè)計更靈活,且效率更高。
在YOLOv3(共106層網(wǎng)絡(luò)層)及YOLOv3-Tiny(共23層網(wǎng)絡(luò)層)網(wǎng)絡(luò)中,卷積層與池化層(共94層)占所有網(wǎng)絡(luò)層的73%左右,其中涉及的乘加、比較等運算是影響其推理性能的主要因素。為充分合理利用有限的計算資源以滿足卷積神經(jīng)網(wǎng)絡(luò)中的大量運算,從而達到加速目的,基于Verilog HDL設(shè)計卷積、池化兩種加速算子,并將其封裝為IP核,便于在加速其他具有相同結(jié)構(gòu)的網(wǎng)絡(luò)模型時復(fù)用。
4.1 卷積加速算子的設(shè)計與實現(xiàn)
卷積加速算子實現(xiàn)3×3濾波器的卷積運算。采用全并行加流水線方式,單次卷積運算調(diào)用9個乘法器,每個時鐘處理9組數(shù)據(jù)的乘法運算,加法運算通過2級流水線完成。
卷積算子端口時序如圖2所示。ORDER為輸入特征圖階數(shù),特征圖讀取共需ORDER×ORDER個CLK時鐘周期,濾波器需9個CLK時鐘周期,偏置值Bias需1個CLK時鐘周期,結(jié)果特征圖從第(2×ORDER+7)個CLK時鐘周期開始輸出(無偏置值時,有偏置值則從第(2×ORDER+8)個時鐘周期開始輸出),每個時鐘周期輸出一個值,輸出(ORDER-2)2個CLK時鐘周期。
4.2 池化加速算子的設(shè)計與實現(xiàn)
池化加速算子實現(xiàn)步長為2的最大池化運算,采用全并行加流水線方式。
池化加速算子端口時序如圖3所示。其中,ORDER為輸入特征圖階數(shù),特征圖輸入共需ORDER×ORDER個CLK時鐘周期,結(jié)果特征圖從第(2×ORDER+1)個CLK時鐘周期開始輸出,每隔一個時鐘周期輸出一個值,輸出(ORDER/2)2個CLK時鐘周期。由于每次讀取2×2數(shù)據(jù)進行比較之后,輸出數(shù)據(jù)會減少一半,因此valid信號表現(xiàn)為2分頻。
4.3 卷積加速算子仿真及資源占用情況
以5×5特征圖與3×3濾波器進行卷積運算為例,仿真結(jié)果如圖4所示。每幀特征圖輸入到輸出延時為2行輸入的時間,使用2個FIFO緩存將特征圖輸入數(shù)據(jù)延時1行和2行,當(dāng)?shù)?行特征圖數(shù)據(jù)到達時,由于延時,此時第1行和第2行數(shù)據(jù)會同時輸出。將3行數(shù)據(jù)和每行對應(yīng)的濾波器數(shù)據(jù)進行滑動相乘,通過2級流水相加求和,即可得到卷積運算結(jié)果。
以Xilinx ZCU102評估板上的運行為例,占用資源情況如表2所示。該算子在9組乘加并行運算且含2級流水線的條件下,DSP資源僅占用了9個,占總資源的0.36%, LUT僅占用了0.07%,資源占用量較少,且并行度較高,能夠達到節(jié)省計算資源且運算加速的目的。4.4 池化加速算子仿真及資源占用情況
以4×4特征圖、步長為2進行池化運算為例,仿真結(jié)果如圖5所示。當(dāng)奇數(shù)行特征圖數(shù)據(jù)輸入時,會寫入FIFO進行緩存。當(dāng)偶數(shù)行特征圖數(shù)據(jù)輸入時,同時讀出FIFO中的數(shù)據(jù),每隔兩個數(shù)據(jù)進行2×2的數(shù)據(jù)比較,將最大數(shù)據(jù)進行輸出。
以Xilinx ZCU102評估板上的運行為例,該算子占用資源情況如表3所示。
5 測試與驗證
本文在Xilinx ZCU102評估板上進行驗證,該評估板含有2 520個DSP單元、32 Mb RAM內(nèi)存、512 MB與PL端相連的DDR4存儲器件以及4 GB與PS端相連的DDR4存儲器件,能夠滿足神經(jīng)網(wǎng)絡(luò)硬件部署的基本資源需求。在100 MHz時鐘頻率下,YOLOv3網(wǎng)絡(luò)對單張圖片的推理過程需1.49×107個時鐘周期,YOLOv3-Tiny網(wǎng)絡(luò)對單張圖片的推理過程需4.17×106個時鐘周期。
為評估本文算法在航空背景特定數(shù)據(jù)集上的有效性以及推理階段的時效性,本文以構(gòu)建的空對地小目標(biāo)數(shù)據(jù)集作為樣本集,采用功耗、均值平均精度(mean average precision,mAP)以及推理階段運行時間FPS(frames per second)作為評價指標(biāo),衡量智能計算加速技術(shù)的綜合性能。表4列出了加速方法基于構(gòu)建的空對地小目標(biāo)數(shù)據(jù)集(1 024×768像素)在不同硬件平臺上測試的功耗與運行時間的對比情況。
采用量化后的同一權(quán)重參數(shù)在不同硬件平臺上進行測試,測試結(jié)果表明,在CPU,GPU與FPGA三種硬件平臺上,網(wǎng)絡(luò)檢測精度基本一致。在模型推理過程的加速方面,兩種網(wǎng)絡(luò)部署于ZCU102評估板后的運行速度均有大幅提升。與原網(wǎng)絡(luò)在CPU上的運行速度相比,YOLOv3提升了65倍,可達到每秒6幀,YOLOv3-Tiny可達到每秒23幀。雖然推理速度與高性能GPU相比還有較大差距,但在功耗方面,ZCU102上的功耗不到GPU功耗的十分之一,能夠滿足嵌入式環(huán)境低功耗的需求??梢?,卷積加速算子與池化加速算子在加速神經(jīng)網(wǎng)絡(luò)模型的推理過程方面發(fā)揮了重要作用。檢測效果如圖6所示。
綜上,本文采用了軟硬件協(xié)同加速技術(shù),為卷積神經(jīng)網(wǎng)絡(luò)部署于資源受限的嵌入式環(huán)境提供了支撐。其中,軟件優(yōu)化技術(shù)對模型結(jié)構(gòu)進行優(yōu)化,并實現(xiàn)量化算法,有效壓縮了網(wǎng)絡(luò)模型規(guī)模,極大緩解了機載嵌入式環(huán)境存儲資源受限的瓶頸,為神經(jīng)網(wǎng)絡(luò)移植到嵌入式平臺建立基礎(chǔ)。硬件加速技術(shù)基于Verilog HDL設(shè)計并實現(xiàn)卷積、池化兩種加速算子,僅需占用少量計算資源即可實現(xiàn)這兩種復(fù)雜運算。通過軟硬件兩種加速技術(shù)的協(xié)同作用,有效解決機載嵌入式環(huán)境下部署卷積神經(jīng)網(wǎng)絡(luò)時面臨的存儲資源緊缺與計算資源受限瓶頸,達到智能計算加速的目的。
6 結(jié)? 論
面向空戰(zhàn)過程智能化的應(yīng)用需求,提高有人機/無人機自主感知、目標(biāo)識別跟蹤、自主決策等能力,設(shè)計并實現(xiàn)了應(yīng)用于資源受限的嵌入式環(huán)境的CNN軟硬件協(xié)同加速技術(shù),旨在解決龐大模型參數(shù)量與有限存儲資源的沖突問題以及大量復(fù)雜浮點運算與計算資源緊缺的沖突問題。在開發(fā)階段,構(gòu)建了空對地小目標(biāo)數(shù)據(jù)集,基于CAFFE框架對YOLOv3和YOLOv3-Tiny兩種網(wǎng)絡(luò)進行了結(jié)構(gòu)優(yōu)化。對兩種模型進行壓縮量化處理,壓縮模型約3/4?;赩erilog HDL設(shè)計并實現(xiàn)兩種加速算子,僅需占用少量資源即可完成相應(yīng)運算。通過軟硬件協(xié)同作用,達到推理過程加速的目的。其中,基于CAFFE框架的結(jié)構(gòu)優(yōu)化方法、模型壓縮量化算法以及卷積池化加速算子均具備一定的通用性,便于構(gòu)建其他網(wǎng)絡(luò)模型時使用。在驗證階段,將兩種網(wǎng)絡(luò)模型部署于Xilinx ZCU102評估板上進行了驗證。實驗證明,兩種加速算子在計算資源緊缺的嵌入式環(huán)境下,可有效加速兩種網(wǎng)絡(luò)的推理過程。
下一步工作主要著眼于構(gòu)建加速算子庫,封裝除卷積、池化以外的多種算子,搭建結(jié)構(gòu)更為復(fù)雜的神經(jīng)網(wǎng)絡(luò)模型,以滿足智能化航空電子系統(tǒng)的多應(yīng)用需求。同時,設(shè)計數(shù)據(jù)重用算法,提高存儲空間利用率,進一步加速嵌入式環(huán)境下深度神經(jīng)網(wǎng)絡(luò)模型的推理過程。
參考文獻:
[1] 鮮勇,李揚. 人工智能技術(shù)對未來空戰(zhàn)武器的變革與展望[J]. 航空兵器,2019,26(5): 26-31.
Xian Yong,Li Yang. Revolution and Assumptions of Artificial Intelligence Technology for Air Combat Weapons in the Future[J]. Aero Weaponry,2019,26(5): 26-31. (in Chinese)
[2] Wu B C,Iandola F,Jin P H,et al. SqueezeDet: Unified,Small,Low Power Fully Convolutional Neural Networks for Real-Time Object Detection for Autonomous Driving[C]∥2017 IEEE Conference on Computer Vision and Pattern Recognition Workshops (CVPRW),2017: 446-454.
[3] Chollet F. Xception: Deep Learning with Depthwise Separable Convolutions[C]∥2017 IEEE Conference on Computer Vision and Pattern Recognition (CVPR),2017: 1251-1258.
[4] Shen Y R,Han T,Yang Q,et al. CS-CNN: Enabling Robust and Efficient Convolutional Neural Networks Inference for Internet-of-Things Applications[J]. IEEE Access,2018,6: 13439-13448.
[5] Zhang X Y,Zhou X Y,Lin M X,et al. ShuffleNet: An Extremely Efficient Convolutional Neural Network for Mobile Devices[C]∥2018 IEEE Conference on Computer Vision and Pattern Recognition(CVPR),2018: 6848-6856.
[6] Vanhoucke V,Senior A, Mao M Z. Improving the Speed of Neural Networks on CPUs[C]∥Deep Learning and Unsupervised Feature Learning Workshop,NIPS,2011.
[7] Courbariaux M,Bengio Y,David J P. BinaryConnect: Training Deep Neural Networks with Binary Weights During Propagations[C]∥Advances in Neural Information Processing Systems(NIPS), 2015: 3123-3131.
[8] Alemdar H,Leroy V,Prost-Boucle A,et al. Ternary Neural Net
works? for Resource-Efficient AI Applications[C]∥2017 International Joint Conference on Neural Networks (IJCNN),2017: 2547-2554.
[9] Sze V,Chen Y H,Yang T J,et al. Efficient Processing of Deep Neural Networks: A Tutorial and Survey[J]. Proceedings of the IEEE,2017,105(12): 2295-2329.
[10] 崔小樂,陳紅英,崔小欣,等. 一種軟硬件協(xié)同設(shè)計工具原型及其設(shè)計描述方法[J]. 微電子學(xué)與計算機,2007,24(6): 28-30.
Cui Xiaole,Chen Hongying,Cui Xiaoxin,et al. A HW/SW Codesign Design Tool and its Specification[J]. Microelectronics & Computer,2007,24(6): 28-30. (in Chinese)
[11] Redmon J,Divvala S,Girshick R,et al. You Only Look Once: Unified,Real-Time Object Detection[C]∥ 2016 IEEE Conference on Computer Vision and Pattern Recognition (CVPR), 2016: 779-788.
[12] 吳艷霞,梁楷,劉穎,等. 深度學(xué)習(xí)FPGA加速器的進展與趨勢[J]. 計算機學(xué)報,2019(11): 2461-2480.
Wu Yanxia,Liang Kai,Liu Ying,et al. The Progress and Trends of FPGA-Based Accelerators in Deep Learning[J]. Chinese Journal of Computers, 2019(11): 2461-2480. (in Chinese)
[13] Cheng Y,Wang D,Zhou P,et al. Model Compression and Acce-leration for Deep Neural Networks: The Principles,Progress,and Challenges[J]. IEEE Signal Processing Magazine,2018,35(1): 126-136.
[14] 盧冶,陳瑤,李濤,等. 面向邊緣計算的嵌入式FPGA卷積神經(jīng)網(wǎng)絡(luò)構(gòu)建方法[J].計算機研究與發(fā)展,2018,55(3): 551-562.
Lu Ye,Chen Yao,Li Tao,et al. Convolutional Neural Network Construction Method for Embedded FPGAs Oriented Edge Computing[J]. Journal of Computer Research and Development,2018,55(3): 551-562. (in Chinese)
Software and Hardware Cooperative Acceleration Technology for CNN
Li Xinyao1*,Liu Feiyang1,2,Wen Pengcheng1,2,Li Peng 1,2
(1. Xian Aeronautics Computing Technique Research Institute,AVIC,Xian 710068,China;
2. Aviation Key Laboratory of Science and Technology on Airborne and Missileborne Computer,Xian 710068,China)
Abstract: To meet requirements of building intelligent avionics systems,and improve the intelligent combat level of manned/unmanned aerial vehicles,the software and hardware cooperative acceleration technology for CNN is designed and implemented to solve complex problems such as target recognition,auxiliary decision-making,and autonomous planning. Aiming at solving the conflicts between the huge amount of parameters and the limited storage resources for embedded environment,the neural network model is optimized with model structure optimization and quantization of parameters. Aiming at solving the conflicts between complex floating-point operations and the shortage of computing resources,the convolution accelerating operator and the pooling accelerating operator are designed based on Verilog HDL. The pipeline and full parallel method are used to achieve the purpose of acceleration. Through the synergy of software optimization and hardware accelerated,the inference process of convolutional neural network is accelerated. Two popular CNN networks,that are YOLOv3 and YOLOv3-Tiny,are used as examples to accelerate and verify on the Xilinx ZCU102 FPGA development board. The results show that compared with the original models,the parameters of the accelerated models can be compressed about 3/4. The inference speed of YOLOv3 is increased by nearly 65 times,and that of YOLOv3-Tiny is increased by about 23 times.
Key words:? intelligent computing;hardware acceleration;target detection;model compression;FPGA
收稿日期:2020-01-19
基金項目:航空科學(xué)基金項目(2018ZC31002;2018ZC31003)
作者簡介:李欣瑤(1994-),女,陜西西安人,碩士, 研究方向為智能計算加速技術(shù)。