• <tr id="yyy80"></tr>
  • <sup id="yyy80"></sup>
  • <tfoot id="yyy80"><noscript id="yyy80"></noscript></tfoot>
  • 99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

    基于FPGA的CNN加速SoC系統(tǒng)設(shè)計(jì)

    2020-04-23 05:43:54爍,范軍,何
    關(guān)鍵詞:處理器卷積控制器

    趙 爍,范 軍,何 虎

    (清華大學(xué) 微電子學(xué)研究所,北京 100084)

    0 引 言

    近年來(lái),卷積神經(jīng)網(wǎng)絡(luò)廣泛應(yīng)用于圖像識(shí)別和物體檢測(cè)等眾多應(yīng)用中,其在圖像處理的準(zhǔn)確率上遠(yuǎn)遠(yuǎn)優(yōu)于其它機(jī)器學(xué)習(xí)技術(shù)。但是,隨著網(wǎng)絡(luò)深度不斷加深以及網(wǎng)絡(luò)結(jié)構(gòu)不斷變得復(fù)雜,由此帶來(lái)的計(jì)算效率較低和功耗較大等問(wèn)題,又使得人們關(guān)注于設(shè)計(jì)專用硬件來(lái)加速CNN的計(jì)算[1]。對(duì)于卷積計(jì)算,F(xiàn)PGA可靈活配置并且迭代周期快,加上軟硬件協(xié)作來(lái)執(zhí)行CNN網(wǎng)絡(luò),可以大大提高計(jì)算效率并降低能耗。目前的研究主要針對(duì)終端的推理計(jì)算的設(shè)計(jì)與優(yōu)化。例如,F(xiàn)PGA會(huì)議上Zhang等提出的Roofline模型以優(yōu)化FPGA資源的利用率[2],ACM會(huì)議中Ma等提出優(yōu)化循環(huán)操作以及數(shù)據(jù)流進(jìn)行CNN的加速[3],Eyeriss團(tuán)隊(duì)提出新的數(shù)據(jù)流結(jié)構(gòu)以提高并行性[4],同時(shí)Meloni等提出了NEURAGHE的軟硬件協(xié)同工作來(lái)加速CNN網(wǎng)絡(luò)計(jì)算[5]。這些研究提出各種技術(shù)主要為了實(shí)現(xiàn)計(jì)算單元利用率與緩存數(shù)據(jù)復(fù)用率的最大化,減少系統(tǒng)與內(nèi)存之間頻繁的數(shù)據(jù)傳輸,從而實(shí)現(xiàn)計(jì)算性能和能效的提高。本研究提出的用于卷積加速的SoC系統(tǒng),利用卷積計(jì)算的形式設(shè)計(jì)了專用的數(shù)據(jù)流結(jié)構(gòu),通過(guò)循環(huán)次序重組來(lái)提高計(jì)算陣列的利用率,同時(shí)采用分塊技術(shù)提高片上緩存數(shù)據(jù)的復(fù)用率。該SoC系統(tǒng)部署在FPGA上,處理器和加速器的結(jié)構(gòu)使得SoC系統(tǒng)更加通用,可以支持眾多CNN網(wǎng)絡(luò)。測(cè)試結(jié)果表明,該SoC系統(tǒng)可以實(shí)現(xiàn)CNN網(wǎng)絡(luò)計(jì)算的加速,并且無(wú)論在性能和能耗上都優(yōu)于CPU單獨(dú)計(jì)算。

    1 CNN算法分析

    經(jīng)過(guò)多年的發(fā)展,神經(jīng)網(wǎng)絡(luò)由最初的感知器模型到現(xiàn)在的深度神經(jīng)網(wǎng)絡(luò),網(wǎng)絡(luò)模型愈加復(fù)雜。第一個(gè)成功應(yīng)用的CNN是1998年Yann LeCun教授的LeNet-5模型,它應(yīng)用于手寫(xiě)數(shù)字識(shí)別問(wèn)題,在MNIST數(shù)據(jù)集上可以達(dá)到99%的正確率。從LeNet-5網(wǎng)絡(luò)結(jié)構(gòu)中,可以看到CNN網(wǎng)絡(luò)最開(kāi)始輸入圖像數(shù)據(jù),依次經(jīng)過(guò)卷積層、池化層以及分類層,最終得到10個(gè)輸出來(lái)表示手寫(xiě)數(shù)字的0-9。在2012年ILSVRC競(jìng)賽的AlexNet憑借優(yōu)越的準(zhǔn)確率確定了CNN網(wǎng)絡(luò)在圖像識(shí)別與定位等領(lǐng)域的地位。而2014年的VGG和GoogLeNet共同的特點(diǎn)就是通過(guò)不斷加深網(wǎng)絡(luò)結(jié)構(gòu)來(lái)提升性能,VGG網(wǎng)絡(luò)的最深結(jié)構(gòu)為19層,而GoogLeNet采用了Inception結(jié)構(gòu)并不斷復(fù)用該結(jié)構(gòu),卷積層數(shù)達(dá)到21層。同時(shí)因?yàn)榫W(wǎng)絡(luò)越深,梯度退化阻礙了網(wǎng)絡(luò)的收斂。ResNet則提出一個(gè)殘差學(xué)習(xí)的框架,這個(gè)網(wǎng)絡(luò)有152層深度,在ImageNet的數(shù)據(jù)集上可以使top-5錯(cuò)誤率降低到3.57%。

    一些主流CNN網(wǎng)絡(luò)的參數(shù)和計(jì)算量見(jiàn)表1。CNN網(wǎng)絡(luò)層數(shù)不斷加深,意味著計(jì)算量不斷增大。但由于卷積計(jì)算有一定的規(guī)律容易實(shí)現(xiàn)并行計(jì)算,因此可以對(duì)卷積計(jì)算進(jìn)行硬件加速[6]。CNN的加速可以設(shè)計(jì)成一個(gè)完整的神經(jīng)網(wǎng)絡(luò)加速處理器,也可以基于處理器+卷積加速模塊來(lái)設(shè)計(jì)SoC系統(tǒng),為了提高效率,卷積加速模塊可以采用空間結(jié)構(gòu)的數(shù)據(jù)流結(jié)構(gòu)。同時(shí),神經(jīng)網(wǎng)絡(luò)計(jì)算需要大量的數(shù)據(jù)在系統(tǒng)和內(nèi)存中傳輸,如何優(yōu)化加速器結(jié)構(gòu)以最大化復(fù)用數(shù)據(jù)也是重要問(wèn)題[7-10]。

    表1 主流CNN網(wǎng)絡(luò)參數(shù)量和計(jì)算量分析

    通過(guò)分析CNN網(wǎng)絡(luò)算法,可以得到:

    (1)卷積計(jì)算量隨著層數(shù)加深比例越來(lái)越大,但其并行性很高可以在FPGA上設(shè)計(jì)專用電路來(lái)實(shí)現(xiàn);

    (2)CNN為前饋神經(jīng)網(wǎng)絡(luò),每個(gè)卷積層之間互不影響,而且同一層由于是局部感受域計(jì)算結(jié)果,所以可以采用分塊技術(shù);

    (3)由于數(shù)據(jù)量巨大,所以數(shù)據(jù)復(fù)用率要提高;

    (4)CNN網(wǎng)絡(luò)主要為卷積計(jì)算,但會(huì)有新的技術(shù)出現(xiàn),采用處理器+加速器結(jié)構(gòu)可以將其它計(jì)算交給處理器,軟硬件協(xié)作更具有通用性和靈活性。

    2 硬件系統(tǒng)設(shè)計(jì)

    上一節(jié)對(duì)目前主流的CNN網(wǎng)絡(luò)進(jìn)行分析發(fā)現(xiàn),網(wǎng)絡(luò)主要有3種計(jì)算層:卷積層、池化層以及分類層等,而卷積層的計(jì)算量比例高達(dá)90%[11]。依據(jù)網(wǎng)絡(luò)分析結(jié)果設(shè)計(jì)CNN卷積加速模塊及其SoC系統(tǒng)。

    2.1 卷積加速模塊設(shè)計(jì)

    卷積加速模塊的結(jié)構(gòu)框架如圖1所示,主要分為3部分:計(jì)算核心單元,片上緩存和控制器。片上緩存和控制器掛在AXI4總線上與SoC系統(tǒng)進(jìn)行通信。

    2.1.1 計(jì)算核心單元

    首先分析卷積計(jì)算方式及其特點(diǎn)。CNN的卷積層與最初的全連接神經(jīng)網(wǎng)絡(luò)不同之處是它采用了局部感受域。后一層網(wǎng)絡(luò)的神經(jīng)元并不和前一層所有的神經(jīng)元連接,而是有一個(gè)窗口,后層每一個(gè)神經(jīng)元只連接到這個(gè)窗口的前層神經(jīng)元即可。這樣一個(gè)窗口稱之為卷積核(filter),這個(gè)filter由上至下從左到右掃描一遍圖像(input fmap),得到輸出結(jié)果(output fmap)。每一個(gè)filter共享權(quán)重(weights)和偏置(biases)。

    圖1 卷積加速器的結(jié)構(gòu)框架

    卷積層的計(jì)算主要將filter及其窗口對(duì)應(yīng)的input fmap相乘并累加到一起得到output fmap。隨著卷積網(wǎng)絡(luò)計(jì)算從前往后的進(jìn)行,卷積層的input fmap的channel數(shù)會(huì)逐漸增大,因此計(jì)算一個(gè)輸出結(jié)果除了將窗口對(duì)應(yīng)的乘積累加還需要將所有channel累加的結(jié)果再次進(jìn)行累加。而每個(gè)卷積層又不止一個(gè)filter,所以output fmap也會(huì)有相應(yīng)的channel數(shù)[12]。

    卷積加速模塊由16個(gè)由乘法陣列、加法樹(shù)、累加單元和激活函數(shù)單元來(lái)實(shí)現(xiàn)16個(gè)channel和16個(gè)filter的并行。其中,每個(gè)乘法陣列主要由16個(gè)并行的乘法單元構(gòu)成,其后的加法樹(shù)對(duì)部分積結(jié)果進(jìn)行求和,再通過(guò)累加單元將所有channel的部分和結(jié)果累加,當(dāng)所有部分和結(jié)果都累加完成后再經(jīng)過(guò)激活函數(shù)單元,從而得到最終的輸出數(shù)據(jù)。其中硬件實(shí)現(xiàn)的激活函數(shù)為ReLU和Leaky ReLU,其它激活函數(shù)可由處理器處理。每個(gè)數(shù)據(jù)通路結(jié)構(gòu)如圖2所示,其中數(shù)據(jù)輸入由片上緩存提供,執(zhí)行完乘法陣列和加法樹(shù)的乘加運(yùn)算后,根據(jù)控制器決定是否需要累加和執(zhí)行激活函數(shù),得到的中間結(jié)果輸出到由片上緩存。當(dāng)卷積計(jì)算得到最終結(jié)果后,片上緩存的數(shù)據(jù)將傳輸?shù)絻?nèi)存中。

    圖2 計(jì)算核心單元的數(shù)據(jù)通路結(jié)構(gòu)

    2.1.2 片上緩存

    中科院的DianNao系列以及MIT團(tuán)隊(duì)的Eyeriss等設(shè)計(jì)[13,14]已經(jīng)驗(yàn)證,片上緩存可以提高計(jì)算性能并降低功耗。計(jì)算核心單元的輸入數(shù)據(jù)由片上緩存提供,中間結(jié)果和最終結(jié)果都會(huì)先存儲(chǔ)到片上緩存。片上緩存使用FPGA內(nèi)部提供的BRAM,經(jīng)實(shí)驗(yàn)和分析確定該系統(tǒng)的BRAM大小如圖3所示。

    圖3 片上緩存的結(jié)構(gòu)和大小

    2.1.3 控制器

    為了適應(yīng)不同CNN網(wǎng)絡(luò)以及同一網(wǎng)絡(luò)不同卷積層之間參數(shù)的不同,如filter的尺寸和步長(zhǎng)、每層input fmap的channel數(shù)量和filter的數(shù)量等,必須要有一個(gè)控制器來(lái)決定每一次卷積計(jì)算的循環(huán)次數(shù)以及是否需要累加或者激活??刂破鬟€需要給出片上緩存的使能信號(hào)和地址信息,從而使得不同卷積層的卷積計(jì)算得到正確的結(jié)果。同時(shí)為了卷積計(jì)算效率更高,還提出了循環(huán)次序重組和分塊技術(shù)以及Ping-Pong操作,這些方法都需要在控制器的控制下有序完成。

    首先,分析循環(huán)次序重組和分塊技術(shù)。卷積計(jì)算是輸入為3維特征映射,經(jīng)過(guò)4維的卷積核,得到另一個(gè)3維的輸出特征映射的一種計(jì)算。計(jì)算的循環(huán)次序如圖4所示。利用這種計(jì)算模式,所設(shè)計(jì)的CNN加速模塊需要先用一個(gè)卷積核計(jì)算完每一個(gè)channel的輸入數(shù)據(jù)然后計(jì)算下一個(gè)channel的數(shù)據(jù),這樣會(huì)導(dǎo)致重復(fù)的內(nèi)存到片上緩存的數(shù)據(jù)傳輸。

    圖4 原始的卷積計(jì)算循環(huán)次序

    改變?cè)嫉难h(huán)次序,使多個(gè)channel和多個(gè)filter并行計(jì)算,這樣可以提高數(shù)據(jù)的復(fù)用率,從而充分利用片上緩存中已有的數(shù)據(jù)。但是為了做到channel和filter上的并行,將所有input fmap數(shù)據(jù)輸入到片上緩存需要非常大的片上緩存并不現(xiàn)實(shí),所以每個(gè)channel中的輸入數(shù)據(jù)需要分塊技術(shù),即每次只傳輸整幅圖像的一部分?jǐn)?shù)據(jù),當(dāng)把這部分?jǐn)?shù)據(jù)全部計(jì)算完后再依次把另一個(gè)分塊數(shù)據(jù)傳輸?shù)狡暇彺嬷?。?jīng)過(guò)循環(huán)次序重組和分塊后的計(jì)算次序如圖5所示。調(diào)整循環(huán)次序以復(fù)用片上緩存的數(shù)據(jù),減少能耗和傳輸帶寬。而分塊操作將數(shù)據(jù)分塊,以減小片上緩存的需求。

    圖5 經(jīng)過(guò)優(yōu)化之后的卷積計(jì)算次序

    其次,采用Ping-Pong操作使計(jì)算核心單元計(jì)算和片上緩存數(shù)據(jù)傳輸同時(shí)進(jìn)行。當(dāng)計(jì)算核心單元需要片上緩存0的數(shù)據(jù)時(shí),片上緩存1從內(nèi)存中傳輸數(shù)據(jù);相反,計(jì)算核心單元需要片上緩存1的數(shù)據(jù)時(shí),片上緩存0從內(nèi)存中傳輸數(shù)據(jù)。在硬件實(shí)現(xiàn)中,控制器從AXI4總線上得到每個(gè)卷積層的配置信息,控制計(jì)算核心單元有序的執(zhí)行,并對(duì)片上緩存的數(shù)據(jù)進(jìn)行調(diào)度從而得到正確的結(jié)果。

    2.2 SoC系統(tǒng)設(shè)計(jì)

    卷積加速模塊實(shí)現(xiàn)了卷積計(jì)算的加速,但CNN網(wǎng)絡(luò)還有其它很多計(jì)算,想要運(yùn)行一個(gè)完整的CNN網(wǎng)絡(luò)需要更多的硬件結(jié)構(gòu)來(lái)實(shí)現(xiàn)。但是對(duì)于CNN網(wǎng)絡(luò),卷積之外的其它計(jì)算比例比較小,如果每一種計(jì)算都設(shè)計(jì)硬件來(lái)實(shí)現(xiàn)將大大提高工作量。而處理器+加速器結(jié)構(gòu)的SoC系統(tǒng)則相對(duì)更加通用且可擴(kuò)展。加速器負(fù)責(zé)執(zhí)行比例最大的卷積計(jì)算而其它計(jì)算則交給處理器運(yùn)算,同時(shí)當(dāng)有新的計(jì)算時(shí),可以用處理器計(jì)算,并不影響系統(tǒng)在卷積計(jì)算上的加速。

    將所設(shè)計(jì)的卷積加速模塊封裝為IP,并將其添加到由ARM處理器所組成的SoC系統(tǒng)中,從而實(shí)現(xiàn)可運(yùn)行完整CNN網(wǎng)絡(luò)的SoC系統(tǒng),結(jié)構(gòu)框架如圖6所示。SoC系統(tǒng)主要為ARM處理器、DDR接口以及卷積加速模塊IP,還包括時(shí)鐘和復(fù)位單元、AXI總線互聯(lián)、BRAM控制器以及DMA等模塊。在卷積加速模塊IP中,控制器掛在AXI總線上,接收卷積層配置信息并控制計(jì)算核心單元與片上緩存有序工作;輸入和輸出片上緩存分別掛在AXI總線和內(nèi)存之間進(jìn)行數(shù)據(jù)傳輸;計(jì)算核心單元與片上緩存相連,根據(jù)輸入緩存的圖像和權(quán)重?cái)?shù)據(jù)得到對(duì)應(yīng)的輸出結(jié)果并傳輸?shù)捷敵鼍彺?。該SoC系統(tǒng)可以計(jì)算不同filter尺寸和數(shù)量的卷積計(jì)算并使得資源利用率的最大化。

    圖6 加速CNN網(wǎng)絡(luò)的SoC系統(tǒng)

    有了帶有ARM處理器的SoC系統(tǒng),進(jìn)一步進(jìn)行CNN網(wǎng)絡(luò)的程序開(kāi)發(fā)。其中,訓(xùn)練CNN網(wǎng)絡(luò)并保存訓(xùn)練好的網(wǎng)絡(luò)參數(shù)在服務(wù)器上完成,網(wǎng)絡(luò)參數(shù)和輸入圖像數(shù)據(jù)將在程序執(zhí)行前導(dǎo)入到FPGA開(kāi)發(fā)板的內(nèi)存中。

    3 驗(yàn)證與分析

    3.1 卷積加速模塊的設(shè)計(jì)與仿真

    卷積加速模塊的設(shè)計(jì)使用Vivado開(kāi)發(fā)軟件,仿真調(diào)試平臺(tái)為Vivado和ModelSim仿真軟件。首先設(shè)計(jì)計(jì)算核心單元,編寫(xiě)Verilog代碼并調(diào)用FPGA的DSP資源,考慮到卷積計(jì)算的通用性以及FPGA的資源,采用16×16的乘法陣列單元,即實(shí)現(xiàn)16個(gè)channel和16個(gè)filter的并行計(jì)算。產(chǎn)生測(cè)試數(shù)據(jù)驗(yàn)證數(shù)據(jù)通路功能得到正確的仿真結(jié)果。其次設(shè)計(jì)控制器模塊,給定寄存器不同配置信息,觀察得到的仿真波形,片上緩存和計(jì)算核心單元的控制信號(hào)皆符合時(shí)序。

    最后,將各個(gè)模塊例化為完整的卷積加速模塊,編寫(xiě)代碼產(chǎn)生測(cè)試數(shù)據(jù)并計(jì)算得到參考結(jié)果。生成coe文件導(dǎo)入到BRAM對(duì)其進(jìn)行初始化,對(duì)卷積加速模塊進(jìn)行仿真并和參考結(jié)果對(duì)比,經(jīng)過(guò)多次調(diào)試和修改,最終得到正確的輸出。

    3.2 SoC系統(tǒng)的設(shè)計(jì)與驗(yàn)證

    卷積加速模塊設(shè)計(jì)完成并得到正確仿真結(jié)果后,將其封裝為IP并同其它模塊集成在整個(gè)SoC系統(tǒng)上。SoC的Block設(shè)計(jì)與驗(yàn)證平臺(tái)使用Vivado及其SDK軟件開(kāi)發(fā)套件,硬件平臺(tái)采用Xilinx型號(hào)為ZCU102的FPGA開(kāi)發(fā)板進(jìn)行驗(yàn)證,其中ARM處理器為Cotex-A53,F(xiàn)PGA型號(hào)為XCZU9EG,內(nèi)存為Micron的DDR4。

    構(gòu)建SoC系統(tǒng),將ARM處理器、AXI4總線、BRAM模塊以及卷積加速模塊的各個(gè)IP集成到SoC中。設(shè)計(jì)完成后加入調(diào)試所需要的VIO以及ILA IP資源以查看波形。對(duì)完成的SoC系統(tǒng)添加約束并進(jìn)行綜合,進(jìn)一步布局布線得到時(shí)序分析報(bào)告以及資源利用率使用情況。經(jīng)調(diào)試與修改,最終得到滿足時(shí)序要求的SoC系統(tǒng)設(shè)計(jì)。其中,布局布線之后得到的資源利用率主要為3部分:LUT、DSP和BRAM利用率,具體結(jié)果見(jiàn)表2。在工作頻率為100 MHz下,滿足時(shí)序要求,各資源的利用率大概為50%左右。布局布線之后,生成SoC系統(tǒng)的Bitstream文件,并將硬件信息導(dǎo)入到SDK中進(jìn)行軟件的開(kāi)發(fā)與驗(yàn)證。

    表2 FPGA資源利用率

    SoC系統(tǒng)的硬件實(shí)現(xiàn)后,進(jìn)行CNN網(wǎng)絡(luò)程序的開(kāi)發(fā)。選定VGG網(wǎng)絡(luò)并將其簡(jiǎn)化得到一個(gè)具有7層卷積層和1層全連接層的VGG網(wǎng)絡(luò)以便可以在Cifar10訓(xùn)練集上進(jìn)行訓(xùn)練,從而可以快速訓(xùn)練網(wǎng)絡(luò)得到網(wǎng)絡(luò)參數(shù),經(jīng)過(guò)270次迭代,該網(wǎng)絡(luò)在Cifar10測(cè)試集的準(zhǔn)確率可以達(dá)到88%。

    將保存下來(lái)的VGG網(wǎng)絡(luò)的filter參數(shù)和Cifar10測(cè)試集圖片下載到FPGA的SD卡中,在SDK中編寫(xiě)SoC系統(tǒng)中ARM處理器運(yùn)行的VGG代碼并調(diào)用自己編寫(xiě)的卷積加速模塊的API函數(shù),得到完整的可以運(yùn)行在SoC系統(tǒng)上的程序。將bitstream文件下載到FPGA上,運(yùn)行VGG程序,得到和處理器單獨(dú)運(yùn)行準(zhǔn)確率同為88%的結(jié)果。

    不同硬件資源的運(yùn)行時(shí)間和能耗等對(duì)比見(jiàn)表3。其中ARM處理器為Cortex-A53,功耗是ZCU102開(kāi)發(fā)板的功耗;Intel處理器主頻為3.3 GHz,最大頻率可達(dá)4.6 GHz。處理器+加速器的SoC系統(tǒng)在工作頻率為100 MHz下,運(yùn)行時(shí)間比編譯選項(xiàng)為o0下ARM快130倍,比編譯選項(xiàng)o2下快15倍,同時(shí)比i7-8700處理器快3倍。能耗上該SoC系統(tǒng)比其它運(yùn)行結(jié)果都要低。

    表3 不同硬件資源的數(shù)據(jù)對(duì)比

    同樣,在100 MHz的工作頻率下,分析一次卷積計(jì)算為7×7×16大小的input fmap數(shù)據(jù),通過(guò)大小為3×3×16×16的filter得到7×7×16大小的output fmap結(jié)果,計(jì)算量為225 792 FLOPS。SoC系統(tǒng)的卷積計(jì)算運(yùn)行的時(shí)間為5.36 μs,其峰值計(jì)算性能可達(dá)42.13 GFLOPS。而ARM處理器單獨(dú)計(jì)算則需要1695 μs,SoC系統(tǒng)比處理器快了316倍。當(dāng)卷積計(jì)算比例越大,該SoC系統(tǒng)性能則越高。

    同時(shí),對(duì)比其它FPGA上加速CNN網(wǎng)絡(luò)的結(jié)果,見(jiàn)表4。其中假定1GFLOPS等同于1GOPS,該SoC系統(tǒng)要比其它FPGA設(shè)計(jì)性能高。和FPGA2015對(duì)比,因?yàn)槠滟Y源更多峰值性能略高,但同樣DSP資源下,該SoC系統(tǒng)將比其快2倍。

    4 結(jié)束語(yǔ)

    針對(duì)CNN網(wǎng)絡(luò)算法與結(jié)構(gòu),對(duì)卷積加速模塊進(jìn)行了設(shè)計(jì)和仿真驗(yàn)證,進(jìn)而構(gòu)建處理器+卷積加速模塊結(jié)構(gòu)的SoC系統(tǒng)。然后編寫(xiě)VGG網(wǎng)絡(luò)并采用Cifar10訓(xùn)練得到網(wǎng)絡(luò)參數(shù),編寫(xiě)處理器單獨(dú)運(yùn)行的網(wǎng)絡(luò)程序以及帶有卷積加速模塊的網(wǎng)絡(luò)程序。下載bitstream文件到FPGA,分別運(yùn)行并得到對(duì)應(yīng)的結(jié)果,SoC系統(tǒng)的性能和能耗都優(yōu)于CPU單獨(dú)計(jì)算的結(jié)果。該SoC系統(tǒng)設(shè)計(jì)具有通用性,可用于目前主流CNN網(wǎng)絡(luò)的硬件加速。SoC系統(tǒng)主要用于卷積神經(jīng)網(wǎng)絡(luò)的推理計(jì)算,100 MHz的時(shí)鐘頻率下峰值計(jì)算性能達(dá)到42.13 GFLOPS。

    表4 和先前FPGA工作的比較數(shù)據(jù)

    下一步工作中,可以對(duì)CNN網(wǎng)絡(luò)中其它計(jì)算進(jìn)行優(yōu)化設(shè)計(jì),如數(shù)據(jù)重組、池化和非ReLU形式的其它激活函數(shù)等計(jì)算。同時(shí)可在其它FPGA開(kāi)發(fā)板中進(jìn)一步增加BRAM資源,從而提升片上緩存數(shù)據(jù)的復(fù)用率。

    猜你喜歡
    處理器卷積控制器
    基于3D-Winograd的快速卷積算法設(shè)計(jì)及FPGA實(shí)現(xiàn)
    從濾波器理解卷積
    電子制作(2019年11期)2019-07-04 00:34:38
    基于傅里葉域卷積表示的目標(biāo)跟蹤算法
    Imagination的ClearCallTM VoIP應(yīng)用現(xiàn)可支持Cavium的OCTEON? Ⅲ多核處理器
    ADI推出新一代SigmaDSP處理器
    汽車零部件(2014年1期)2014-09-21 11:41:11
    呼嚕處理器
    一種基于卷積神經(jīng)網(wǎng)絡(luò)的性別識(shí)別方法
    模糊PID控制器設(shè)計(jì)及MATLAB仿真
    MOXA RTU控制器ioPAC 5542系列
    倍福 CX8091嵌入式控制器
    达孜县| 新晃| 屯门区| 丰宁| 揭阳市| 浦北县| 邵武市| 海晏县| 西林县| 吉隆县| 衡阳县| 普陀区| 天台县| 吴忠市| 望江县| 青岛市| 兴化市| 珲春市| 孟津县| 华安县| 雅江县| 葫芦岛市| 墨竹工卡县| 元谋县| 洪洞县| 德清县| 洪江市| 梓潼县| 宜宾县| 镇雄县| 亚东县| 山阳县| 雷山县| 马龙县| 民乐县| 耿马| 陵水| 锦州市| 辛集市| 札达县| 夹江县|