亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于卷積神經(jīng)網(wǎng)絡(luò)圖像識(shí)別算法的加速實(shí)現(xiàn)方法

        2019-04-13 06:51:22秦東輝趙雄波
        航天控制 2019年1期
        關(guān)鍵詞:流水線標(biāo)簽卷積

        秦東輝 周 輝 趙雄波 柳 柱

        1.北京航天自動(dòng)控制研究所,北京100854 2.宇航智能控制技術(shù)國(guó)家級(jí)重點(diǎn)實(shí)驗(yàn)室,北京100854

        隨著計(jì)算機(jī)性能的不斷提升,以及學(xué)術(shù)界對(duì)機(jī)器學(xué)習(xí)領(lǐng)域研究的逐漸深入,卷積神經(jīng)網(wǎng)絡(luò)(convolutional neural network,CNN)成為了近年以來(lái)熱門的機(jī)器學(xué)習(xí)算法之一,1989年LeCun在論述其網(wǎng)絡(luò)結(jié)構(gòu)時(shí)首次使用了“卷積”一詞[1],“卷積神經(jīng)網(wǎng)絡(luò)”也因此得名。CNN通過(guò)卷積和池化操作自動(dòng)學(xué)習(xí)圖像在各個(gè)層次上的特征,這符合我們理解圖像的常識(shí)。人在認(rèn)知圖像時(shí)是分層抽象的,首先理解的是顏色和亮度,然后是邊緣、角點(diǎn)、直線等局部細(xì)節(jié)特征,接下來(lái)是紋理、幾何形狀等更復(fù)雜的信息和結(jié)構(gòu),最后形成整個(gè)物體的概念[2]。CNN在早期被成功應(yīng)用于手寫字符圖像識(shí)別。2012年更深層次的AlexNet網(wǎng)絡(luò)[3]取得成功,此后卷積神經(jīng)網(wǎng)絡(luò)蓬勃發(fā)展,CNN在數(shù)字圖像處理領(lǐng)域取得了巨大的成功,從而掀起了深度學(xué)習(xí)在自然語(yǔ)言處理領(lǐng)域(Natural Language Processing, NLP)的狂潮,近年來(lái)卷積神經(jīng)網(wǎng)絡(luò),在視頻監(jiān)控,機(jī)器視覺,模式識(shí)別,圖像搜索等領(lǐng)域得到了更為廣泛的應(yīng)用[4-6]。

        由于CNN中特定的計(jì)算方法,在通用處理器上運(yùn)算效率較低,很難達(dá)到滿意的性能。事實(shí)上,CNN作為一種前饋網(wǎng)絡(luò)結(jié)構(gòu),層與層之間具有高度的獨(dú)立性:各層網(wǎng)絡(luò)計(jì)算獨(dú)立,層間無(wú)數(shù)據(jù)反饋。因此,CNN是一種高度并行的網(wǎng)絡(luò)結(jié)構(gòu),通用處理器為執(zhí)行邏輯處理和事務(wù)處理而優(yōu)化的特性并不適合用來(lái)挖掘CNN的并行性,基于軟件方式的CNN神經(jīng)網(wǎng)絡(luò)在實(shí)時(shí)性和功耗方面都不能滿足實(shí)際應(yīng)用中小型化、手持化的需求。當(dāng)前的卷積神經(jīng)網(wǎng)絡(luò)加速器研究主要是基于GPU,但由于GPU本身的高功耗問題,并不適合電池供電的嵌入式環(huán)境[7]。為了充分挖掘卷積神經(jīng)網(wǎng)絡(luò)固有的可并行性,越來(lái)越多研究人員開始采用FPGA開發(fā)基于卷積神經(jīng)網(wǎng)絡(luò)的應(yīng)用,以獲得功耗和計(jì)算性能的最佳平衡。文獻(xiàn)[8-10]通過(guò)RTL語(yǔ)言完成了小型CNN網(wǎng)絡(luò)的硬件加速工作,使用FPGA在50~100Mhz的頻率下完成了約十余倍的性能提升,但是設(shè)計(jì)基于RTL級(jí)的FPGA加速器開發(fā)周期較長(zhǎng),尤其隨著近年來(lái)提出的新算法網(wǎng)絡(luò)逐漸加深,沿用傳統(tǒng)RTL語(yǔ)言進(jìn)行加速的成本成倍增加,而使用高層次綜合(HLS)技術(shù)可以解決這些問題[11],通過(guò)HLS編譯器會(huì)自動(dòng)將高級(jí)語(yǔ)言(如C / C ++)轉(zhuǎn)換為RTL級(jí)代碼,可以以較少的時(shí)間和成本設(shè)計(jì)硬件加速器,而由于軟硬件工作原理的區(qū)別,往往需要對(duì)C代碼進(jìn)行一定的重構(gòu),例如,在本工程中,由于卷積操作對(duì)數(shù)據(jù)讀后寫(RAW)的依賴性,直接對(duì)算法進(jìn)行硬件加速無(wú)法滿足期望的性能。本文采用重構(gòu)算法循環(huán)次序的方案解決了RAW依賴問題,并且設(shè)計(jì)了內(nèi)存I/O的優(yōu)化方法及參數(shù)化的并行指令以滿足期望的性能。

        1 圖像識(shí)別算法原理

        本文使用了Hironsan于2016年提出的SensorNet,該卷積神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)如圖1所示,算法網(wǎng)絡(luò)由3個(gè)卷積層(Conv),3個(gè)池化層(Pool),1個(gè)維度轉(zhuǎn)化層(Flatten)層,1個(gè)全連接層(FC)組成,激勵(lì)層(Activation)均采用Relu函數(shù)。圖像經(jīng)縮放處理至64*64*3像素,經(jīng)該神經(jīng)網(wǎng)絡(luò)計(jì)算后,輸出多個(gè)分類數(shù)值,通過(guò)SoftMax層確定識(shí)別概率,分類標(biāo)簽的數(shù)量可根據(jù)訓(xùn)練集不同進(jìn)行配置,在本文中分類標(biāo)簽數(shù)量為6,各層參數(shù)及計(jì)算量見表1。

        圖1 圖像識(shí)別算法網(wǎng)絡(luò)結(jié)構(gòu)

        2 軟硬件協(xié)同設(shè)計(jì)

        使用的片上系統(tǒng)(SoC)平臺(tái)包括Block RAM(BRAM),查找表(LUT),觸發(fā)器(FF)和數(shù)字信號(hào)處理器,稱為可編程邏輯(PL)以及基于四核ARM處理器的處理系統(tǒng)(PS),軟硬件功能劃分見圖2,網(wǎng)絡(luò)的卷積層、池化層、全連接層均使用SDSoC添加至FPGA中進(jìn)行加速,ARM處理器包含預(yù)處理模塊和數(shù)據(jù)整理模塊,前者負(fù)責(zé)從SD卡讀取圖像、標(biāo)簽、權(quán)重等數(shù)據(jù),對(duì)數(shù)據(jù)進(jìn)行預(yù)處理,并完成數(shù)據(jù)對(duì)PL端的寫入工作,后者整理PL端各層硬件計(jì)算時(shí)間,接收分類結(jié)果、計(jì)算標(biāo)簽匹配數(shù)量,并將數(shù)據(jù)整合為報(bào)告寫入SD卡,實(shí)現(xiàn)了通過(guò)PS端對(duì)PL端的控制。

        圖2 軟硬件結(jié)構(gòu)劃分

        2.1 數(shù)據(jù)加載優(yōu)化

        FPGA在訪問外部存儲(chǔ)器時(shí)會(huì)有較大的延時(shí),使用不合理的數(shù)據(jù)傳輸方法會(huì)對(duì)算法的性能造成較大影響。以卷積層為例,本文在PS 端和PL端使用流數(shù)據(jù)傳輸來(lái)減少延時(shí)。數(shù)據(jù)加載部分的相關(guān)編譯指令如下:

        #pragma SDS data mem_attribute(input_feature:PHYSICAL_CONTIGUOU)#pragma SDS data access_pattern(input_feature:SEQUENTIAL)#pragma SDS data zero_copy(input_feature)

        SDS Data mem_attribute指令用于規(guī)定SDSoC編譯器在內(nèi)存塊里為數(shù)組分配的存儲(chǔ)空間是物理上連續(xù)的。那么,SDSoC編譯器會(huì)在綜合中選擇AXI_DMA_Simple而不是AXI_DMA_SG,因?yàn)榍罢咴趥鬏斘锢砩线B續(xù)的內(nèi)存時(shí)更小更快。

        SDS data access_pattern用于規(guī)定數(shù)據(jù)訪問模式,因?yàn)榫矸e輸入中所有元素為流式訪問,而不是隨機(jī)訪問,如果訪問模式設(shè)置為SEQUENTIAL,則將生成流接口(例如ap_fifo)。否則,使用RANDOM訪問模式,將會(huì)生成一個(gè)RAM接口。

        SDS data ZERO_COPY編譯指示意味著硬件通過(guò)AXI主總線接口直接從共享存儲(chǔ)器訪問數(shù)據(jù)。

        同時(shí)使用上述3條編譯指示,可令編譯器使用在內(nèi)存中連續(xù)分配存儲(chǔ)空間,并為參數(shù)合成AXI Master接口,減少數(shù)據(jù)傳輸延遲,提高處理性能,在本文中,輸入輸出圖像及權(quán)重偏置信息均通過(guò)此方式加載。

        2.2 卷積操作優(yōu)化

        通過(guò)創(chuàng)建多組硬件邏輯的方式對(duì)算法中的循環(huán)進(jìn)行展開。在本文中,改善卷積層的性能使用下述代碼的結(jié)構(gòu)。將Input channel循環(huán)(第10行)完全展開,并行計(jì)算所有輸入層的權(quán)重乘積,作為一個(gè)獨(dú)立的處理單元(PE),將output channel(第7行)展開作為PE的并行數(shù)量,用來(lái)一次獲得多個(gè)輸出層的部分和,并且使用input channel作為最內(nèi)層循環(huán)來(lái)簡(jiǎn)化卷積層的硬件結(jié)構(gòu),以最小化單個(gè)PE核。

        通過(guò)使用#pragma pipelining向硬件邏輯添加流水線功能以增加硬件吞吐量。某些循環(huán)疊放順序?qū)?huì)使多個(gè)操作同時(shí)嘗試訪問和更新同一個(gè)變量,從而產(chǎn)生RAW依賴關(guān)系,例如將kernel row或kernel col循環(huán)(第3,4行)位于output channel的正上方,則會(huì)對(duì)循環(huán)累加結(jié)果產(chǎn)生RAW依賴,使流水線啟動(dòng)間隔(initiation interval)偏高,影響綜合性能。故如代碼段所示使用output col(第6行)作為output channel(第7行)正上方的循環(huán),以消除輸出緩沖區(qū)的RAW依賴性。

        2.3 卷積層內(nèi)存I/O優(yōu)化

        將kernel row與kernel col作為外層循環(huán),在卷積神經(jīng)網(wǎng)絡(luò)的每個(gè)卷積層計(jì)算中不反復(fù)更新權(quán)重和偏置數(shù)據(jù)。在本文中,通過(guò)一次性將權(quán)重和偏置傳輸?shù)狡暇彌_區(qū),用減少外部存儲(chǔ)器和PL之間的數(shù)據(jù)傳輸開銷來(lái)提高性能。

        1: //load input feature map to on-chip buffer2://load weight & bias to on-chip buffer at 1st iteration3:for(i=0;i

        2.4 池化層優(yōu)化

        采用設(shè)置中間變量的方式防止流水線出現(xiàn)RAW依賴(第7~10行),拆解語(yǔ)句使2*2最大池化塊通過(guò)3次二值比較的方式并行執(zhí)行的方式(第11~13行),并在內(nèi)層循環(huán)加入#pragma pipeline指令,使循環(huán)流水線展開,未添加流水線及添加流水線但啟動(dòng)間隔不同的時(shí)序如圖3所示:

        圖3 流水線指令展開

        1://load conv_output data to on-chip buffer2:for(int ci=0;ci a01 ? a00 : a01;12:max2 = a10 > a11 ? a10 : a11;13:max = max1 > max2 ? max1 : max2;14:Output[ci][r][c]= max;15:}}}

        2.5 全連接層優(yōu)化

        在硬件實(shí)現(xiàn)中通過(guò)改變Input數(shù)組維度直接完成Flatten層的排列,其余部分優(yōu)化方式與卷積層相似,在此不再贅述。

        圖4 Flatten數(shù)組維度變化

        3 實(shí)驗(yàn)結(jié)果分析

        我們使用Xilinx ZCU102嵌入式開發(fā)平臺(tái)以人臉識(shí)別為例進(jìn)行實(shí)驗(yàn),ZCU102 PL端搭載了Zynq Ultra Scale XCZU9EG-2FFVB1156FPGA芯片,PS端為四核 ARM? Cortex-A53,數(shù)據(jù)為單精度浮點(diǎn)。ARM Cortex-A53的工作頻率為1200MHz,PL端的工作頻率為300MHz。使用視頻攝像頭采集到有標(biāo)簽的5個(gè)人物各1000張照片、未添加標(biāo)簽的其他人物1000張,共6000張照片,經(jīng)過(guò)OpenCV截取人臉部分并縮放為64*64*3像素送至網(wǎng)絡(luò)進(jìn)行訓(xùn)練。另外,使用10組帶有標(biāo)簽的照片,每組100張,共1000張測(cè)試該網(wǎng)絡(luò)的性能及準(zhǔn)確率。

        3.1 網(wǎng)絡(luò)加速性能比較

        性能測(cè)試時(shí),進(jìn)行了6組實(shí)驗(yàn):使用單核ARM Cortex-A53處理方案;PL端頻率為300MHz,并行計(jì)算單元數(shù)量PE=2/4/8三組帶有時(shí)間信息返回的軟硬件協(xié)同方案;以及300MHz下PE=4/8,硬件加速單元整合為單一函數(shù),且不帶有時(shí)間返回的2組軟硬件協(xié)同方案進(jìn)行加速比較。從PL端逐層返回計(jì)算中間結(jié)果和時(shí)間信息會(huì)對(duì)各層性能產(chǎn)生一定影響。網(wǎng)絡(luò)各層運(yùn)算速度統(tǒng)計(jì)及加速比見表2。

        3.2 硬件資源使用情況

        Zynq Ultra Scale XCZU9EG計(jì)算資源豐富,包

        括:18K大小的Block RAM 1824個(gè),查找表(LUT)274080個(gè),觸發(fā)器(FF)548160個(gè)和數(shù)字信號(hào)處理器2520個(gè)。5組進(jìn)行硬件加速的實(shí)驗(yàn)資源使用情況如表3所示:

        表3 不同參數(shù)配置下硬件資源使用情況

        表2 不同參數(shù)配置下的網(wǎng)絡(luò)性能(單位:ms/百?gòu)?

        3.3 功耗性能比較

        實(shí)驗(yàn)結(jié)果表明,各組軟硬件協(xié)同設(shè)計(jì)方案(2~6組)功率相似,故僅對(duì)第1組Cortex-A53軟件實(shí)現(xiàn)方案與第6組協(xié)同設(shè)計(jì)方案進(jìn)行功率與功耗性能分析。

        圖4 各負(fù)載下開發(fā)板平均功率(單位:W)

        圖5 每百?gòu)垐D片開發(fā)板功耗(單位:J)

        4 結(jié)論

        使用SDSoC對(duì)一種基于卷積神經(jīng)網(wǎng)絡(luò)的人臉識(shí)別算法的所有網(wǎng)絡(luò)層進(jìn)行了硬件加速設(shè)計(jì),通過(guò)對(duì)PE單元并行化設(shè)計(jì)和存儲(chǔ)器的I/O優(yōu)化,提高了計(jì)算性能減小了外部存儲(chǔ)器的訪問。實(shí)驗(yàn)結(jié)果表明,提出的軟硬件協(xié)同設(shè)計(jì)方案的性能遠(yuǎn)高于單獨(dú)使用ARM Cortex-A53軟件設(shè)計(jì)方案,在精度一致的情況下,加速比可達(dá)143,節(jié)約了88倍功耗。

        猜你喜歡
        流水線標(biāo)簽卷積
        Gen Z Migrant Workers Are Leaving the Assembly Line
        基于3D-Winograd的快速卷積算法設(shè)計(jì)及FPGA實(shí)現(xiàn)
        流水線
        從濾波器理解卷積
        電子制作(2019年11期)2019-07-04 00:34:38
        無(wú)懼標(biāo)簽 Alfa Romeo Giulia 200HP
        車迷(2018年11期)2018-08-30 03:20:32
        不害怕撕掉標(biāo)簽的人,都活出了真正的漂亮
        海峽姐妹(2018年3期)2018-05-09 08:21:02
        基于傅里葉域卷積表示的目標(biāo)跟蹤算法
        標(biāo)簽化傷害了誰(shuí)
        報(bào)廢汽車拆解半自動(dòng)流水線研究
        基于多進(jìn)制查詢樹的多標(biāo)簽識(shí)別方法
        国产精品人成在线观看| 55夜色66夜色国产精品视频| 亚洲丁香五月激情综合| 亚洲AⅤ樱花无码| 国产小毛片| 日本中文字幕av网址| 在线观看国产激情视频| 国产超碰女人任你爽| 欧美色aⅴ欧美综合色| 日本岛国大片不卡人妻| 成人国产精品三上悠亚久久| 少妇熟女天堂网av| 国产亚洲午夜高清国产拍精品 | 亚洲av日韩综合一区久热| 精品香蕉久久久爽爽| 亚洲成AV人久久| 国产精品毛片极品久久| 久久天天躁狠狠躁夜夜avapp| 亚洲av熟妇高潮30p| 亚洲日本精品一区久久精品| 校园春色日韩高清一区二区| 中国丰满人妻videoshd| 不卡高清av手机在线观看| 国产亚洲美女精品久久| 国产二区中文字幕在线观看 | 国产卡一卡二卡三| 无码一区二区三区不卡AV| 亚洲av一区二区在线| 国产又色又爽无遮挡免费软件| 免费人成年小说在线观看| 69搡老女人老妇女老熟妇| 亚洲天堂av在线网站| 国产精品ⅴ无码大片在线看 | 人妻少妇久久精品一区二区| 免费一区二区高清不卡av| 狠狠做深爱婷婷久久综合一区| 伊香蕉大综综综合久久| 日韩精品一区二区亚洲专区| 欧洲熟妇色| 99热成人精品热久久66| 久久国产精品懂色av|