李沛杰,張麗,夏云飛,許立明
基于軟件定義的可重構(gòu)卷積神經(jīng)網(wǎng)絡(luò)架構(gòu)設(shè)計
李沛杰1,張麗1,夏云飛2,許立明2
(1. 信息工程大學(xué),河南 鄭州 450001;2.天津市濱海新區(qū)信息技術(shù)創(chuàng)新中心,天津 300457)
為滿足卷積神經(jīng)網(wǎng)絡(luò)業(yè)務(wù)處理的靈活性和高性能需求,提出一種基于軟件定義的可重構(gòu)卷積神經(jīng)網(wǎng)絡(luò)架構(gòu)。該架構(gòu)采用歸一化處理流程實現(xiàn)卷積層網(wǎng)絡(luò)的動態(tài)重構(gòu)與運算模式的加速。采用AHB和AXI的雙總線架構(gòu),實現(xiàn)卷積神經(jīng)網(wǎng)絡(luò)的流水計算。通過軟件定義在FPGA上實現(xiàn)了不同網(wǎng)絡(luò)結(jié)構(gòu)下的數(shù)據(jù)集實時處理。實驗結(jié)果表明,所設(shè)計的FPGA電路能夠?qū)崿F(xiàn)兩種網(wǎng)絡(luò)模型的軟件定義,網(wǎng)絡(luò)模型與輸入數(shù)據(jù)集相同的條件下,該架構(gòu)的運算處理能力為CPU的10倍,運算能耗比為GPU的2倍。
卷積神經(jīng)網(wǎng)絡(luò);軟件定義;動態(tài)可重構(gòu);FPGA;流水計算;SoC
隨著計算機視覺技術(shù)的發(fā)展,神經(jīng)網(wǎng)絡(luò)憑借深度學(xué)習(xí)技術(shù)極大地提高了算法性能。其中卷積神經(jīng)網(wǎng)絡(luò)(CNN,convolutional neural network)作為該項技術(shù)的基礎(chǔ),其模型得到了廣泛關(guān)注,并越來越多地應(yīng)用于圖像識別、視覺擬合、視頻搜索等領(lǐng)域[1]。
CNN通常由卷積層、全連接層、池化層以及激活層組成[2-4]。當前CNN模型對卷積層與子抽樣層互聯(lián)/迭代層數(shù)、卷積核運算尺寸、激活層函數(shù)處理方式等處理環(huán)節(jié)進行不同的優(yōu)化[5]。AlexNet模型以LeNet-5模型為藍本,通過增加卷積層進一步提高模型圖像識別率[5];VGG模型通過使用較小卷積核模擬更大尺寸卷積核的方式,在保證層級結(jié)構(gòu)統(tǒng)一且簡單的基礎(chǔ)上,進一步增加了模型運算深度,提高識別精度[6];而GoogleLetNet模型則通過設(shè)計不同尺寸并行卷積模塊,并配合傳統(tǒng)的池化模塊與卷積模塊的拼接,在降低運算量與參數(shù)量的基礎(chǔ)上,仍然保持圖像的高識別率[7-8]。由于CNN算法海量數(shù)據(jù)搬移以及密集迭代運算的特征,通用CPU或GPU難以實現(xiàn)高效的處理能力,CNN算法運算數(shù)據(jù)流的流水線處理特征使AISC或FPGA等硬件電路能夠?qū)崿F(xiàn)更好的算法加速效能[9]。專用ASIC電路的剛性結(jié)構(gòu)使其本身缺乏算法配置能力,難以應(yīng)對CNN算法快速迭代的需求[10]。通用的FPGA電路實現(xiàn)的CNN電路,雖然能夠解決算法的迭代更新[11-13],文獻[14]更是基于FPGA提出CNN優(yōu)化方案,提升FPGA本身在帶寬和功耗上的利用率,但FPGA的可編程特性屬于靜態(tài)可重構(gòu),電路重構(gòu)時間長,依然難以滿足CNN算法實時衍進更新的需求[9]。
本文通過研究卷積神經(jīng)網(wǎng)絡(luò)的數(shù)據(jù)結(jié)構(gòu)特點,采用軟件定義互連技術(shù)將不同算法中的原子算粒軟件定義,構(gòu)建歸一化的算粒集,通過軟件定義算粒與數(shù)據(jù)交換構(gòu)建算?;ヂ?lián)網(wǎng)絡(luò),設(shè)計了一種基于軟件定義的卷積神經(jīng)網(wǎng)絡(luò)可重構(gòu)電路,同時利用多通道DMA高效實現(xiàn)不同搬移規(guī)律的二維數(shù)組展開。在保持高性能運算處理能力的前提下,基于軟件定義實現(xiàn)針對不同卷積神經(jīng)網(wǎng)絡(luò)模型的快速重構(gòu),滿足卷積神經(jīng)網(wǎng)絡(luò)靈活性和高效能的需求。
以圖像處理應(yīng)用為例,CNN算法將圖像作為輸入,交替迭代進行卷積層特征提取與池化層子抽樣得出特征圖,最終經(jīng)全連接層運算得出結(jié)果。
卷積層主要完成特征提取運算,處理原理類似數(shù)字濾波器,以大小為×的卷積核為計算核心,對目標圖像進行滑窗點乘遍歷,算粒抽象如式(1)所示。
池化層負責數(shù)據(jù)抽樣處理,實現(xiàn)對特征的深度抽象,減少特征圖數(shù)據(jù)維度。池化處理主要分為均值池化與最大值池化,即對特征圖中選定的均分區(qū)域(×)進行均值計算或最大值計算,其處理算粒如式(2)所示。
最大值池化
均值池化
激活層完成數(shù)據(jù)的輸出控制,即閾值判決選通操作。在CNN中常見的激活函數(shù)包括糾正線性函數(shù)ReLU、雙曲正切函數(shù)tanh、S形sigmoid函數(shù)以及符號函數(shù)等[15],運算過程為在激活函數(shù)上對將激活前的輸出值進行乘疊加后輸出,常見的激活函數(shù)公式如表1所示。
表1 常見的激活函數(shù)公式
全連接層處于CNN的最后處理部分,通過將特征圖逐行讀入并與權(quán)重參數(shù)矩陣相乘后,完成圖像的最終分類處理,其處理算粒如式(4)所示。
盡管不同的CNN算法處理流程與算粒組合各不相同,但CNN算法的流程相對固定,如圖1所示的CNN處理流程中,K×K大小的卷積核構(gòu)成CNN運算核心,以不同步長S與Y類型的激活函數(shù)配合,實現(xiàn)卷積層處理;再配合Q個下采樣數(shù)W的池化層,堆疊出J深度的連續(xù)卷積處理;最終與K個全連接層互聯(lián),完成整個CNN流程處理。在各層算粒處理上,算粒具有固定的運算格式,可通過算粒分解實現(xiàn)歸一。
Figure 1 The process of CNN
本文主要通過抽象CNN處理流程中各個算粒的實現(xiàn)方式,通過參數(shù)化的處理進行抽象與歸一,利用算法流水線處理的特性,將各層算粒歸一化為相同的可重構(gòu)算粒,并將算粒接口進行軟件定義化設(shè)計,構(gòu)建軟件定義算粒集,同時基于AHB和AXI雙總線構(gòu)建的互聯(lián)網(wǎng)絡(luò),通過基于路由尋址的數(shù)據(jù)交換網(wǎng)絡(luò)實現(xiàn)各個算粒之間數(shù)據(jù)的傳輸與互聯(lián)。
根據(jù)上文對卷積設(shè)計網(wǎng)絡(luò)模型的分析,CNN涉及的運算種類相對固定,訪存地址規(guī)律固定,數(shù)據(jù)結(jié)構(gòu)規(guī)整,整體運算與數(shù)據(jù)可重用率高。本文主要基于卷積核尺寸、卷積滑窗步長、卷積迭代層數(shù)、池化下采樣抽取尺寸以及激活函數(shù)類型等功能特性,進行基于軟件定義的通用性設(shè)計,以增加部分迭代流程為代價,歸一出一種適應(yīng)多種CNN的電路結(jié)構(gòu),其總體結(jié)構(gòu)如圖2所示。
其中,軟件定義可重構(gòu)CNN整體架構(gòu)分為兩部分:基于AHB和AXI的雙總線架構(gòu)和多DMA引擎的算?;ヂ?lián)網(wǎng)絡(luò);基于數(shù)據(jù)流交換網(wǎng)絡(luò)和軟件定義算粒集合的數(shù)據(jù)交換網(wǎng)絡(luò)。整體CNN處理流程可通過處理器的軟件配置實現(xiàn)算粒互聯(lián)網(wǎng)絡(luò)拓撲和數(shù)據(jù)交換網(wǎng)絡(luò)拓撲的軟件定義動態(tài)可重構(gòu),滿足不同CNN算法的靈活配置。在軟件定義化的算粒互聯(lián)網(wǎng)絡(luò)中,通過高性能DMA與通用DMA,將數(shù)據(jù)緩存中不同尺寸的二維特征圖與卷積核參數(shù)轉(zhuǎn)換為一維數(shù)據(jù)流,并分別通過軟件定義數(shù)據(jù)交換網(wǎng)絡(luò)與配置總線進入不同的軟件定義算粒模塊,完成卷積運算;軟件定義化的數(shù)據(jù)交換網(wǎng)絡(luò)采用基于路由的全交換結(jié)構(gòu),實現(xiàn)任意軟件定義算粒以及高速DMA之間的數(shù)據(jù)流互聯(lián)?;谠摷軜?gòu),可以針對不同的CNN模型的處理流程,軟件定義數(shù)據(jù)流路由,以及配置各軟件定義算粒工作模式,處理器啟動各DMA進行數(shù)據(jù)流搬移,經(jīng)過數(shù)據(jù)流迭代搬移,實現(xiàn)深度卷積層處理。
針對卷積神經(jīng)網(wǎng)路而言,其主要運算類型相對固化,主要的計算算??偨Y(jié)如下。
(1)乘法:兩個一維向量數(shù)據(jù)流相乘運算,用于卷積運算中乘法以及因子縮放。
(2)加減法/累加:實現(xiàn)卷積運算中累加運算,也可以實現(xiàn)池化運算中偏置常量加法。
(3)比較:一維向量數(shù)據(jù)比較結(jié)果輸出或計算置位非等價操作,可以實現(xiàn)激活函數(shù)或池化采樣等處理。
(4)最值統(tǒng)計:求取一維向量中最大/小值,可實現(xiàn)ReLU激活函數(shù)操作。
(5)移位:通過對數(shù)據(jù)的左移/右移,實現(xiàn)輸入數(shù)據(jù)的2的冪次方運算,實現(xiàn)數(shù)據(jù)縮放,節(jié)省乘法資源。
(6)向量復(fù)制:將輸入的一維向量復(fù)制多出一路,實現(xiàn)向量平方運算,用于可能的超越運算泰勒級數(shù)展開處理。
(7)序列生成:針對輸入的常數(shù),展開為任意長度的一維數(shù)據(jù)流,實現(xiàn)矩陣常數(shù)乘法。
(8)數(shù)據(jù)直通:將輸入的數(shù)據(jù)不做任何處理,直接透傳到下一級運算核心。
圖2 軟件定義可重構(gòu)CNN電路架構(gòu)
Figure 2 The architecture diagram of re-configurable CNN on software definition
計算算粒的軟件定義互連接口按照AHB和AXI的標準協(xié)議接口進行歸一化,運算核心整體數(shù)據(jù)流采用基于握手的流水線處理,所有算粒的輸入輸出均與數(shù)據(jù)網(wǎng)絡(luò)互聯(lián),配合數(shù)據(jù)交換網(wǎng)絡(luò)完成核心數(shù)據(jù)流交換。針對以上所有處理進行分類,將移位、向量復(fù)制、序列生成等處理統(tǒng)一放入運算核心數(shù)據(jù)入口處作為數(shù)據(jù)預(yù)處理模塊;將乘法與加減法/累加等操作作為運算處理模塊歸為一類;將最值統(tǒng)計與比較操作作為后處理子模塊實現(xiàn),整體模塊框圖如圖3所示。
圖3 軟件定義算??驁D
Figure 3 The diagram of software defined cell
運行算粒模塊主要劃分為4個子功能模塊:預(yù)處理模塊、乘加核模塊、后處理模塊以及配置寄存器模塊,各模塊主要功能如下。
1) 預(yù)處理模塊:負責移位、復(fù)制以及序列生成等功能,子模塊為2輸入3輸出設(shè)計,新增數(shù)據(jù)路徑用于傳輸復(fù)制或常數(shù)序列。內(nèi)部設(shè)計下行FIFO,通用DMA可以通過AHB配置總線向FIFO中自動寫入數(shù)據(jù),以實現(xiàn)將FIFO參數(shù)進行常數(shù)展開。移位操作可以通過配置為0移位實現(xiàn)數(shù)據(jù)透傳。
2) 乘加核模塊:內(nèi)部設(shè)計全互聯(lián)數(shù)據(jù)MUX模塊,可以通過配置實現(xiàn)數(shù)據(jù)流通過2個運算、1個運算或直接透傳,并且可以決定進入乘法與加法運算核的先后順序,以實現(xiàn)不同算法公式;同時乘法與加法模塊實現(xiàn)采用單精度浮點運算。
3) 后處理模塊:主要完成對任意尺寸的一維輸出數(shù)據(jù)的最值提取,以及比較后降采樣操作,并且設(shè)計上行FIFO,通用DMA可通過配置總線讀取FIFO中最值或比較值結(jié)果,上送SoC總線后緩存至內(nèi)部存儲中。
4) 配置寄存器模塊:實現(xiàn)對運算核心的工作模式,實現(xiàn)對一維數(shù)據(jù)尺寸、移位位數(shù)、加減法/累加、最大/小值、數(shù)據(jù)復(fù)制、比較閾值等模式的切換,實現(xiàn)運算核心的重配置。
整個運算核心采用2數(shù)據(jù)流輸入1數(shù)據(jù)輸出接口結(jié)構(gòu),所有輸入輸出接口均與數(shù)據(jù)交換網(wǎng)絡(luò)相連,數(shù)據(jù)來源為高速DMA從DDR中讀出的數(shù)據(jù)緩存。數(shù)據(jù)流輸出接口附帶目前模塊路由信息,用于數(shù)據(jù)交換網(wǎng)絡(luò)的路由尋址。同時,內(nèi)部設(shè)計有與配置寄存器相連的上行與下行FIFO,F(xiàn)IFO與通用DMA之間設(shè)計握手連接信號,通過通用DMA對FIFO狀態(tài)的動態(tài)感知調(diào)節(jié)數(shù)據(jù)流量,從而實現(xiàn)常數(shù)數(shù)據(jù)的批量一維展開和各種卷積神經(jīng)網(wǎng)絡(luò)的運算處理。
本文中的高速DMA與通用DMA是數(shù)據(jù)搬移核心,完成數(shù)據(jù)從SoC總線上存儲設(shè)備與運算核心之間的數(shù)據(jù)搬移。軟件定義可重構(gòu)CNN架構(gòu)中內(nèi)置一個處理器,用來管理兩種DMA的指令隊列,用于DMA內(nèi)數(shù)據(jù)通道的配置,DMA功能總結(jié)如下。
1) 所有DMA均可以通過SoC總線訪問總線上所有存儲。
2) 所有DMA內(nèi)置指令隊列,用來定義源地址、目的地址、數(shù)據(jù)長度、burst個數(shù)、地址變化方式等描述符任務(wù)。
3) 所有通用DMA支持4個邏輯通道同時數(shù)據(jù)搬移。
4) 高速DMA支持固定地址、順序地址、跳躍地址、跳躍片段地址等地址跳躍形式。
高速DMA內(nèi)部針對讀寫各有一個數(shù)據(jù)通道,實現(xiàn)復(fù)雜的地址循環(huán),將SoC總線讀取的數(shù)據(jù)直接轉(zhuǎn)化為數(shù)據(jù)流送入數(shù)據(jù)交換網(wǎng)絡(luò)中,完成特征圖數(shù)據(jù)與卷積核參數(shù)的批量讀??;而通用DMA中采用多邏輯通道時分復(fù)用的形式,完成低速參數(shù)的自動搬移。工作過程中兩種DMA同時被處理器啟動,高速DMA將一維化特征圖數(shù)據(jù)經(jīng)過總線與數(shù)據(jù)交換網(wǎng)輸出到運算核心,與通用DMA輸出的參數(shù)或其他一維化特征圖進行運算,實現(xiàn)二維數(shù)據(jù)的流水式運算。
數(shù)據(jù)交換網(wǎng)絡(luò)主要完成軟件定義算粒、軟件定義DMA等運算處理模塊的交換互聯(lián),實現(xiàn)點對點之間數(shù)據(jù)流的交互,軟件定義互連接口采用AXI4-Stream協(xié)議,可通過整個網(wǎng)絡(luò)接口之間的握手機制形成流控。AXI4-Stream協(xié)議接口中分為master接口與slave接口,master接口為輸出接口,slave接口為輸入接口,兩種接口互為對稱銜接。數(shù)據(jù)交換網(wǎng)絡(luò)對所有master接口進行編址,從slave接口輸入對應(yīng)的路由地址,即可實現(xiàn)網(wǎng)絡(luò)內(nèi)對應(yīng)slave接口到master接口之間的路由。
數(shù)據(jù)交換網(wǎng)絡(luò)根據(jù)不同算法流程規(guī)劃,運算核心個數(shù)設(shè)置為8個,同時每個運算核心都是2輸入1輸出的端口數(shù)量,合計master接口數(shù)量16個,slave接口數(shù)量8個,計算8個高速DMA的AXI4-Stream接口中,master與slave各8個接口。整個交換網(wǎng)絡(luò)的需要24個master接口,以及16個slave接口。由于采用的總線IP最大支持16×16規(guī)模交換網(wǎng)絡(luò),所以采用兩級拓撲實現(xiàn)16×24數(shù)量接口的數(shù)據(jù)網(wǎng)絡(luò)。如圖4所示,每個master接口均被編址。
本文進行硬件設(shè)計的開發(fā)平臺為Xilinx公司的ZC706開發(fā)板,其FPGA芯片包含PS和PL兩種硬件資源,利用其PS內(nèi)的ARM雙核處理器、AXI4總線以及SDMA等IP分別實現(xiàn)本文中處理器、SoC總線以及通用DMA功能;在PL部分實現(xiàn)運算核心、數(shù)據(jù)交換網(wǎng)絡(luò)與高性能DMA。測試集為MNIST集合中200幅256×256大小的圖片,每個Pixel的取值是0~255的整數(shù),在進行實現(xiàn)前將所有像素轉(zhuǎn)換為單精度浮點數(shù)后進行實驗測試。測試算法包括AlexNet與VGG-16兩種不同算法,分別在本文電路架構(gòu)上實現(xiàn)運算,使用相同算法與輸入數(shù)據(jù)集分別在通用處理器Intel CORE i5-7200U與NVIDIA GTX1050 GPU上進行處理時間的性能對比,并且CPU與GPU采用與本設(shè)計電路相同的數(shù)據(jù)精度,均為單精度浮點數(shù)據(jù)。
本文設(shè)計中的FPGA芯片內(nèi)部處理主頻為200 MHz,在FPGA中實現(xiàn)的卷積神經(jīng)網(wǎng)絡(luò)電路可以通過ZYNQ中ARM處理器的配置,完成電路的動態(tài)重構(gòu)。所以在切換不同網(wǎng)絡(luò)模型時,F(xiàn)PGA無須改變電路結(jié)構(gòu),可以采用與CPU或GPU相同的方式直接切換不同工作軟件。表2為整個FPGA芯片資源使用情況。
圖4 數(shù)據(jù)交換網(wǎng)絡(luò)拓撲
Figure 4 The topology of data switching network
表2 FPGA芯片資源使用情況
表3為3種運算平臺使用AlexNet網(wǎng)絡(luò)模型的對比結(jié)果,針對200幅256×256大小的單精度浮點圖片進行運算。經(jīng)過對比可以看出,本文所設(shè)計的軟件定義可重構(gòu)CNN處理電路是通用CPU處理速度的近10倍,但相比GPU并無性能優(yōu)勢,其主要原因是GPU的運算速度相比FPGA更快,考慮到頻率差異,本文設(shè)計在性能功耗比上占據(jù)一定優(yōu)勢,GPU能耗比約200÷1.722÷300≈0.387 1(FPS/W),本文所設(shè)計的軟件定義可重構(gòu)CNN電路性能功耗比為200÷31.84÷7.8≈0.8053(FPS/W),約為GPU的2.08倍。
切換3個平臺網(wǎng)絡(luò)模型處理軟件,運行VGG-16網(wǎng)絡(luò)模型算法,并對100幅256×256大小的單精度浮點圖片進行運算,3個平臺處理算法速度對比如表4所示。3個平臺處理效率比率結(jié)果和變化趨勢與AlexNet網(wǎng)絡(luò)模型算法的處理相同,并且本文設(shè)計FPGA平臺實現(xiàn)了軟件配置切換實現(xiàn)不同卷積神經(jīng)網(wǎng)絡(luò)算法。
由VGG-16網(wǎng)絡(luò)模型算法和AlexNet模型算法運行情況的性能分析結(jié)果可知,本文所設(shè)計的基于軟件定義的可重構(gòu)卷積神經(jīng)網(wǎng)絡(luò)架構(gòu)相比通用CPU與GPU有可觀的性能功耗比優(yōu)勢,其主要原因是采用了基于數(shù)據(jù)流的運算網(wǎng)絡(luò)結(jié)構(gòu),在每次的運算過程中數(shù)據(jù)流進行逐級流水運算,每次運算時間等于數(shù)據(jù)訪問存儲時間加流水運算時延,并沒有傳統(tǒng)運算器的額外運算開銷,所以可以實現(xiàn)高速的流水并行運算,整個系統(tǒng)針對固定的卷積算法模型具有固定的時延,不會因業(yè)務(wù)流的大小產(chǎn)生偏差,整體性能取決于系統(tǒng)工作頻率,可通過硬件電路的升級和工作頻率的提升,進一步提升處理性能。此外,軟件定義可重構(gòu)的CNN能夠?qū)崿F(xiàn)基于軟件配置的動態(tài)可重構(gòu),實現(xiàn)多種算法模式的動態(tài)切換,及基于軟件定義算粒的算法迭代與更新,具備較高的算法泛用性。
表3 AlexNet模型算法效率對比
表4 VGG-16模型算法效率對比
本文基于軟件定義技術(shù),通過構(gòu)建歸一化的軟件定義計算算粒和數(shù)據(jù)交換網(wǎng)絡(luò)模型,提出了一種CNN算法泛化的可重構(gòu)的卷積神經(jīng)網(wǎng)絡(luò)架構(gòu),通過可編程DMA配合可重構(gòu)軟件定義算粒核心實現(xiàn)動態(tài)可重構(gòu)多種CNN算法的目的。通過FPGA實現(xiàn)了該架構(gòu)下的兩種典型算法模型,其能夠滿足卷積神經(jīng)網(wǎng)絡(luò)算法快速迭代和實時處理的需求。后續(xù)會進一步整合并添加其他新型CNN算法模型運算核心、提高本電路的應(yīng)用普適性,同時繼續(xù)優(yōu)化架構(gòu),在保持架構(gòu)靈活配置的基礎(chǔ)上在ASIC專用電路上進行實現(xiàn),設(shè)計卷積神經(jīng)網(wǎng)絡(luò)領(lǐng)域?qū)S玫母咝苡嬎阈酒?/p>
[1]SINGH K, TIWARI S C, GUPTA M. A closed-loop ASIC design approach based on logical effort theory and artificial neural networks[J]. Integration, 2019, 69: 10-22.
[2]LIU Z, DOU Y, JIANG J, et al. An FPGA-based processor for training convolutional neural networks[C]//International Conference on Field Programmable Technology (ICFPT). 2018.
[3]方睿, 劉加賀, 薛志輝, 等. 卷積神經(jīng)網(wǎng)絡(luò)的FPGA并行加速方案設(shè)計[J]. 計算機工程與應(yīng)用, 2015, 51(8): 32-36.
FANG R, LIU J H, XUE Z H, et al. FPGA-based design for convolution neural network[J]. Computer Engineering and Applications, 2015, 51(8): 32-36.
[4]王巍, 周凱利, 王伊昌, 等. 卷積神經(jīng)網(wǎng)絡(luò)(CNN)算法的FPGA并行結(jié)構(gòu)設(shè)計[J]. 微電子學(xué)與計算機, 2019, 36(4): 57-62, 66.
WANG W, ZHOU K L, WANG Y C, et al. FPGA parallel structure design of convolutional neural network(CNN) algorithm[J]. Microelectronics & Computer, 2019, 36(4): 57-62.
[5]翟社平, 邱程, 楊媛媛, 等. 基于FPGA的卷積神經(jīng)網(wǎng)絡(luò)加速器設(shè)計與實現(xiàn)[J]. 微電子學(xué)與計算機, 2019, 36(8): 83-86.
ZHAI S P, QIU C, YANG Y Y, et al. Design and implementation of convolutional neural network accelerator based on FPGA[J]. Microelectronics & Computer, 2019, 36(8): 83-86.
[6]竇陽, 卿粼波, 何小海, 等. 基于FPGA的CNN加速器設(shè)計與實現(xiàn)[J]. 信息技術(shù)與網(wǎng)絡(luò)安全, 2019, 38(11): 96-101.
DOU Y, QING L B, HE X H, et al. Design and implementation of CNN accelerator based on FPGA[J]. Information Technology and Network Security, 2019, 38(11): 96-101.
[7]周瑛, 張鈴. 模糊集方法在檢索評價系統(tǒng)中的應(yīng)用[J]. 計算機技術(shù)與發(fā)展, 2007, 17(1): 111-113.
ZHOU Y, ZHANG L. Application of fuzzy measure in information retrieval evaluation[J]. Computer Technology and Development, 2007, 17(1): 111-113.
[8]VENUGOPAL S, CASTRO-PAREJA C R, DANDEKAR O S. An FPGA-based 3D image processor with median and convolution filters for real-time applications[C]//Proc of Spie-is&t Electronic Imaging. 2005.
[9]CHEN J, PRODIC A, ERICKSON R W, et al. Predictive digital current programmed control[J]. IEEE Transactions on Power Electronics, 2003, 18(1): 411-419.
[10]CHELLAPILLA K, PURI S, SIMARD P. High performance convolutional neural networks for document processing[C]//10th International Workshop on Frontiers in Handwriting Recognition. 2006.
[11]YU Y, WU C, ZHAO T, et al. OPU: an FPGA-based overlay processor for convolutional neural networks[J]. IEEE Transactions on Very Large-Scale Integration (VLSI) Systems, 2019, 28(1): 35-47.
[12]WU D, PIGOU L, KINDERMANS P J, et al. Deep dynamic neural networks for multimodal gesture segmentation and recognition[J]. IEEE Transactions on Pattern Analysis & Machine Intelligence, 2016, 38(8): 1583-1597.
[13]仇越, 馬文濤, 柴志雷. 一種基于FPGA的卷積神經(jīng)網(wǎng)絡(luò)加速器設(shè)計與實現(xiàn)[J]. 微電子學(xué)與計算機, 2018, 35(8): 68-72.
QIU Y, MA W T, CHAI Z L. Design and implementation of a convolutional neural network accelerator based on FPGA[J]. Microelectronics & Computer, 2018, 34(8): 68-72.
[14]劉勤讓, 劉崇陽, 周俊, 等. 基于線性脈動陣列的卷積神經(jīng)網(wǎng)絡(luò)計算優(yōu)化與性能分析[J]. 網(wǎng)絡(luò)與信息安全學(xué)報, 2018, 4(2):16-24.
LIU Q R, LIU C Y, ZHOU J, et al. Based on linear systolic array for convolutional neural network’s calculation optimization and performance analysis[J]. Chinese Journal of Network and Information Security, 2018, 4(2): 16-24.
[15]梁爽. 可重構(gòu)神經(jīng)網(wǎng)絡(luò)加速器設(shè)計關(guān)鍵技術(shù)研究[D]. 北京:清華大學(xué), 2017.
LIANG S. Research on key technologies of reconfigurable neural network accelerator design[D]. Beijing: Tsinghua University, 2017.
Architecture design of re-configurable convolutional neural network on software definition
LI Peijie1, ZHANG Li1, XIA Yunfei2, XU Liming2
1. Information Engineering University, Zhengzhou 450001, China 2. InformationTechnology Innovation Center of Tianjin Binhai New Area, Tianjin 300457, China
In order to meet the flexibility and efficiency requirement in convolutional neural network (CNN), an architecture of re-configurable CNN based on software definition was proposed. In the architecture, the process of CNN could be normalized and the operation mode could be accelerated. The calculation pipeline was implemented by using dual bus architecture based on AHB and AXI protocols. By software definition, the proposed architecture, which could realize the real-time processing of data among different CNN structure, was implemented on FPGA. The result shows that at least 2 CNN models can be software defined on the FPGA circuit. The output measures an operation processing capacity of 10 times that of CPU, and an operation energy consumption ratio of 2 times that of GPU.
convolutional neural network, software definition, dynamic reconfiguration, FPGA, pipeline calculation, SoC
TP393
A
10.11959/j.issn.2096?109x.2021043
2020?09?22;
2020?12?14
李沛杰,lpj@ndsc.com.cn
國家科技重大專項(2016ZX01012101)
TheNational Science and Technology Major Project (2016ZX01012001)
李沛杰, 張麗, 夏云飛, 等. 基于軟件定義的可重構(gòu)卷積神經(jīng)網(wǎng)絡(luò)架構(gòu)設(shè)計[J]. 網(wǎng)絡(luò)與信息安全學(xué)報, 2021, 7(3): 29-36.
LI P J, ZHANG L, XIA Y F, et al. Architecture design of re-configurable convolutional neural network on software definition[J]. Chinese Journal of Network and Information Security, 2021, 7(3): 29-36
李沛杰(1990? ),男,山西襄汾人,信息工程大學(xué)助理研究員,主要研究方向為先進計算與網(wǎng)絡(luò)安全技術(shù)、高速接口技術(shù)、軟件定義互聯(lián)技術(shù)、現(xiàn)代SoC設(shè)計技術(shù)。
張麗(1982? ),女,河南輝縣人,信息工程大學(xué)副研究員,主要研究方向為先進計算技術(shù)、軟件定義互聯(lián)技術(shù)、SoC芯片設(shè)計技術(shù)。
夏云飛(1987? ),男,黑龍江海倫人,天津市濱海新區(qū)信息技術(shù)創(chuàng)新中心工程師,主要研究方向為信號處理算法高性能實現(xiàn)技術(shù)、軟件定義互聯(lián)技術(shù)、高性能芯片架構(gòu)設(shè)計技術(shù)。
許立明(1990? ),男,山東濰坊人,天津市濱海新區(qū)信息技術(shù)創(chuàng)新中心工程師,主要研究方向為FPGA設(shè)計實現(xiàn)、芯片設(shè)計前端流程以及SoC芯片系統(tǒng)時鐘架構(gòu)設(shè)計。