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

基于重構設計的Inception網絡

2022-04-21 07:24:40謝曉燕杜卓林胡傳瞻王安琪
計算機工程與設計 2022年4期
關鍵詞:指令特征

謝曉燕,杜卓林+,胡傳瞻,楊 坤,王安琪

(1.西安郵電大學 計算機學院,陜西 西安 710121;2.西安郵電大學 電子工程學院,陜西 西安 710121)

0 引 言

隨著CNN在人工智能領域的廣泛應用,層數越深、精度越高的深度卷積神經網絡(deep convolutional neural network,DCNN)成為發展趨勢。然而,DCNN在訓練過程中會產生大量的中間數據,過擬合幾率也會增加,計算復雜度隨之攀升[1,2],使得CPU的時間成本和GPU的功耗成本成為其部署在資源受限的嵌入式設備上的主要瓶頸。近年來,由于輕量級網絡架構的涌現,學術界一直嘗試在保證DCNN計算精度的前提下降低網絡的復雜度。例如,Christian Szegedy提出了GoogLeNet[3],參數量減少到了6.8 M,并采用平均池化代替全連接層,將網絡準確率提高了0.6%,增強了網絡的表達能力,從而使得在有限資源的硬件平臺上實現神經網絡成為可能。通用處理器技術成熟、編程模型完善、人機接口友好,但隨著深度學習網絡模型的運算量越來越大,通用處理器對向量運算支持程度低、不支持張量運算等不足,與深度學習在計算效率、能量消耗和響應延遲上的需求日漸不相適應,執行效率偏低,運算功耗大。專用處理器在計算一些特定任務時很快,但是無法計算其之外的其它應用。現場可編程門陣列(field programmable gate array,FPGA)具有規則的并行結構且可以靈活配置,十分利于CNN硬件加速的研究與開發。可重構陣列處理器作為一種高效的體系結構,兼顧專用硬件的高效性和通用處理器的靈活性,本文基于項目團隊提出的動態可重構陣列處理器(DPR-CODEC)來研究Inception網絡的并行重構計算模型。通過分析網絡中潛在并行性,挖掘卷積、池化等操作之間的數據依賴關系,提出了一種重疊窗口的數據組織方案,從而降低了片外存儲訪問開銷。基于4×4 PE陣列,設計了同時支持1×1、3×3、5×5大小卷積核的28×28和32×32圖像的重構并行計算方案。實驗結果表明,在連接到BEE4平臺的Virtex-6現場可編程門陣列上,提出的可重構方案在資源利用率和算法運算效率上都有了很大的提高。

1 Inception Module

在Inception Module的多個版本中Incepetion V1是組成GoogLeNet[3]的主要模塊,如圖1所示。

圖1 Inception結構

Inception結構作為一個規格化的模塊網絡,經過反復堆疊構建大規模網絡,在該結構中,不同大小的卷積核作用在同一輸入圖上。Inception V1使用較少的參數就可以達到傳統模型中更深層數、更強表達能力的效果。通過采用全局平均池化層來取代了全連接層,大大降低了中間計算的參數量(在傳統CNN網絡中全連接層參數量幾乎占到90%),使得模型訓練更快并減輕了過擬合。此外,Inception Module提高了參數的利用效率,一方面使用1×1的卷積替換巧妙地實現了降維,另一方面可以在多個尺寸上同時進行卷積及聚合。通過構建密集的塊結構來近似最優的稀疏結構達到了提高性能而又不大量增加計算量的目的。

2 Inception Module的重構設計

由于FPGA的硬件資源有限,通常很難將整個DCNN映射到單個芯片上。因此大多數基于FPGA的實現都是采用基于層間串行執行的逐層映射[1,4,5]方案。這類方案通常將FPGA資源劃分為多個層處理器(convolutional layer processors,CLPs),將不同卷積層進行分組并使用CLP進行加速。其主要問題是所有層使用同一種計算模式進行加速,如果網絡中不同卷積核的數據局部性差異較大,如Inception架構,它們的資源需求將不能同時得到滿足,導致資源利用不足以及訪存帶寬等問題。為提高資源利用率,文獻[6]利用聚類思想將網絡層進行分類并在FPGA不同分區中對不同類進行加速。文獻[7]提出的Escher模型利用片上緩沖器最大程度地降低總體加速器帶寬需求,但增加了各層的資源消耗。文獻[8]使用高層次綜合進行自定義DCNN模型加速,但其成本較高,不利于通用模型加速。文獻[9]針對傳統DCNN設計了一個可重構通用體系架構。盡管取得了進步,但這些加速器仍然缺乏對全連接層和卷積層之間通信的優化。基于算法優化后設計的專用電路[10-12],雖然可以提高效率,但又會造成新的硬件開銷并缺乏靈活性。因此,考慮到通用硬件及專用硬件的優缺點,采用項目組提供的可重構陣列處理器作為開發平臺對神經網絡中的Inception架構進行加速。

2.1 卷積操作的重構設計

卷積層的基本計算模式是圖像-內核的卷積,計算公式請參見文獻[8]。卷積神經網絡算法底層處理的數據量較大,但運算過程相對簡單。卷積操作會對輸入圖像進行高度抽象以便提取出圖像特征,即特征圖(feature map)。對于卷積操作來說,原圖中所有像素點都進行相同的卷積運算,此過程會耗費大量的資源。因此,結合可進行同樣卷積運算的像素點和卷積計算內部具有的并行特性,卷積計算模式適用于硬件加速。例如,卷積層接收n個特征映射圖作為輸入,并生成m個輸出特征圖。如算法1所示,卷積層的運算過程包含四層循環。神經元所連接到的上層特征圖和大小為k×k的卷積核進行卷積操作的過程中,由于多個無數據相關性的卷積核可以在同一幅特征圖中做卷積運算,生成多個卷積輸出通道,因此可以分別采用卷積窗口內部并行、輸入特征圖內部卷積窗口間并行、輸入特征圖間并行和輸出特征圖間并行等設計對k×k個乘累加操作并行處理[13]。

算法1:卷積算法

輸出:卷積計算后的第l層網絡:xl

(1)卷積計算

(2)whilei≤ndo

(3)LOOP1:遍歷m張輸出特征圖;

(4)LOOP2:遍歷n張輸入特征圖;

(5) LOOP3:卷積窗口在XI×YI大小的輸入特征圖中滑動;

(6) LOOP4:一個卷積窗口內k×k次乘累加操作;

(7)endwhile

(8)returnxl

在卷積神經網絡進行前向傳播時,浮點乘累加運算產生的中間結果需要耗費大量內存,使用傳統的CPU或GPU加速時往往不能充分挖掘其內部并行性。

具有規則結構的FPGA由于其低能耗、高性能以及可編程的特性,有利于上述4種并行計算的硬件加速。然而,伴隨著對卷積層數和計算精度的支持,需要計算資源也會成倍增加,而且在加速過程中還會產生大量的中間數據。因此,在有限的資源中同時滿足計算和存儲的密集需求一直是AI芯片設計的痛點。可重構陣列處理器使用重構機制可以靈活配置PE(processing element)的邏輯功能和PE間的數據通路,既具有通用處理器的編程靈活性,又具有專用硬件的高效性。

本文基于項目組提出的一種可重構陣列處理器[14],設計了一種可重構的卷積神經網絡陣列結構,如圖2所示。包括指令、全局控制器、分層編程網絡和PE陣列的一部分(僅顯示4×4PE)。預處理的圖像存儲在外部存儲器中。PE間通過4個共享寄存器(RE,RS,RW,RN)與相鄰東、南、西、北4個方向的PE通信。每個PE都可以直接訪問相鄰PE的這些寄存器。PE陣列的可重構功能通過加載預先存儲在指令RAM中固定指令或由全局控制器傳遞并存儲在RAM中的實時指令實現。在運行時,可以根據不同層的計算需求靈活調用相對應的計算方式使PE陣列可以運行在數據流模式下,從而使電路兼具靈活、硬件資源可復用、并行計算、低功耗等優良性能。

全局控制器主要用于指令調用、指令廣播以及收集狀態信息。上層是指令存儲器,下層是陣列處理器。主要功能是在主機接口和陣列處理器之間形成H樹型的配置網絡HCN,如圖2中的加粗線所示。為了獲得簡單的尋址,可以逐步減少尋址過程的位寬度,并確保每個指令同時到達PE。HCN旨在通過H樹網絡加載指令。主處理器負責將任務指令和待處理的數據地址發送到全局控制器,全局控制器通過HCN將接收到的指令分配給不同的計算PE。HCN是全局控制器和PE陣列之間的數據傳輸路徑。全局控制器從指令存儲器接收總線信息。PE通過數據輸入存儲器(DIM)將數據從外部存儲器DDR3加載到本地數據存儲器中,計算掩碼的類型并將其反饋給全局控制器。

圖2 可重構的卷積網絡陣列結構

針對Inception模塊的特點,在映射過程中利用重構機制對不同大小的卷積操作和池化操作進行計算。PE陣列的計算功能重構切換設計如圖2所示,使用片外存儲DIM對原始數據進行存儲,DOM則對處理的中間結果數據進行存儲。PE中事先存儲好不同操作的指令,控制器通過下發CALL指令對其功能進行配置。首先分析算法,并對輸入數據進行重新組織,減少對外存的訪問次數,以提高數據利用率;其次將不同的計算模式配置在計算單元的指令存儲中,在進行計算的過程中,根據不同標志位下發不同配置,執行不同大小的卷積計算。當一種配置完成計算時,由存數PE發送握手信號給PE00,進行下一塊數據下發,其中每種配置模式內部并行執行。

使用該結構就可以利用不同大小卷積操作的相似性和特征圖之間數據無關性把3×3和5×5大小的卷積核初始化在不同的配置存儲中,通過在同一個PEG中調用不同的配置,實現對不同大小的卷積核計算的切換,就可以大大減少卷積計算所占用的資源。圖3表示重構切換流程圖,當PE內部在進行功能重構計算時,控制器只需要發送任務指令和必要的數據或數據存儲地址,進而控制指令傳輸網絡分配指令給不同PE執行相應的操作。針對不同的卷積核大小設置不同的計算配置,默認配置為PC1,執行3×3卷積計算,在計算過程中將PE進行分組并行執行。當3×3卷積計算完成后,通過CALL調用指令將PE功能切換到PC2配置執行5×5的卷積計算,此時的并行計算過程與3×3并行過程相同。等到所有卷積計算結束之后,將結果保存在DOM中。池化操作通過PE33從DOM中取出卷積計算的中間結果進行池化計算。此時,當前簇中的PE13、PE23為空閑PE,可以解決PE01、PE10、PE11、PE12因重構帶來的存儲溢出問題。

圖3 卷積算法重構切換流程

圖4給出了一個在4×4陣列上卷積算法的并行重構映射方案。以3×3卷積的過程為例,首先將預處理后的數據存放在DIM中,PE00從DIM中加載數據并進行下發;其次,各計算PE在接到數據后進行并行卷積計算,最終在DOM中保存結果,以便后續計算。具體算法執行過程如下。

圖4 卷積并行重構功能映射

算法2:卷積并行重構算法

輸入:預處理數據:conv_xl-1;卷積核:k

輸出:卷積計算結果:

(1)PE00從DIM中加載預處理數據:將原始圖像分塊保存。

(2)whilei≤ndo

(3)LOOP:

(4) 數據下發:當PE00加載完數據后向PE01、PE10、PE11、PE12按塊下發數據。下發完數據后,PE00分別向各PE發送握手信號。

(5) 乘/加法計算過程:當PE00接收到握手信號后,各PE同時開始計算。通過左移加操作實現兩數據相乘,計算出最終的結果。

(6) 結果保存過程:當所有卷積操作結束之后,PE02、PE20、PE21、PE22將計算結果傳入PE33中,最后PE33將所有結果寫入DOM中。

(7)指令調用進行卷積計算重構切換。

(8)endLOOP

(9)endwhile

(10)return在DOM中存儲卷積計算結果

2.2 池化操作的重構設計

池化操作在卷積操作之后,主要作用是對特征圖進行降維,以減少網絡中的參數和計算量,同時會保留特征圖中的重要信息,防止在后續的計算中出現信息丟失。池化操作通過對特征的二次提取來控制過擬合,使模型具有較高的容錯能力,但不改變特征圖的數目。輸出圖像的每個元素由池化公式計算得出,計算公式請參見文獻[8]。池化操作主要用于減少網絡計算量并且在不改變特征的前提下轉發卷積操作提取的與分類特征相關的特征。

池化操作的功能指令預先通過配置指令在PE的存儲中,待卷積操作完成后通過PE33從DOM中取出卷積計算的中間結果進行計算。PE13、PE23為空閑PE,其共享存儲可以解決PE01、PE10、PE11、PE12因重構帶來的存儲溢出問題。具體算法執行過程如下。

算法3:池化并行算法

輸入:預處理數據:conv_xl;池化核:k=2×2;塊總數:n

輸出:卷積計算結果:

(1)PE33從DOM中加載卷積結果數據:并對該結果進行分塊。

(2)whilei≤ndo

(3)LOOP:

(4) 數據下發:當PE33加載完數據后向PE11、PE12、PE13、PE31按塊下發數據。下發完數據后,PE33分別向各PE發送握手信號。

(4)通過對過程數據及結果的分析,發現該地下水源熱泵系統在節能上和實際使用中存在著節能效果不足,故需要通過進一步的研究使節能效果有所改善。

(5) 池化計算過程:PE13加載0號、1號、27號、28號地址通過比較操作實現數據最大池化計算,將最終的結果存放PE13的100號地址。PE31、PE11、PE12也是同樣操作。

(6) 結果保存過程:當所有池化操作結束之后,將PE21、PE22、PE23、PE32的計算結果重新傳入PE33中,最后PE33將所有結果寫入DOM中。

(7)endLOOP

(8)endwhile

(9)return在DOM中存儲池化計算結果

2.3 卷積核的數據組織

在卷積核進行計算的過程中,由于卷積核是按照縱向或橫向順序移動,因此卷積核與輸入圖像的像素點會出現一個高度重合的區域,稱為像素重疊窗口。如圖5所示,以3×3卷積核為例,在像素窗口以步長S=1水平移動的過程中,由黑色框線標出的重疊區域共兩列,每列包含3個像素點,這會導致兩次卷積運算對應的像素窗口中有2/3的重疊區域,意味著每次卷積計算過程中的數據重疊率超過65%。當卷積核為5×5運算且步長S=1時,重疊區域共有4列,每列包含5個像素點,這會導致兩次卷積運算對應的像素窗口中有4/5的重疊區域,即兩次卷積運算數據重疊率高達80%。在進行卷積操作的過程中,由于片上存儲資源的限制,這些重疊部分的數據需要反復從外存加載,帶來很大的訪問延遲,影響計算效率。并且在進行卷積操作的過程中,由于輸入圖像是二維矩陣,很難直接在硬件上對其進行數據復用。因此,對輸入圖像及卷積核進行預處理是十分必要的。首先將原始圖像按照卷積核的大小分塊并按列存儲在一維數組中,同時將卷積核也按列存儲在一維數組中。經過這樣的預處理后,卷積核在原始輸入圖像上進行卷積的計算過程就被簡化為兩列對應位置相乘并相加的過程。進行下一次卷積時,也只需要將卷積核列向量向后滑動k個元素。這樣就避免了多次訪問相同的輸入,從而降低了訪存開銷。

圖5 數據組織

3 仿真實驗與結果分析

本文在可重構陣列處理器上驗證該并行方案的可行性。首先將測試圖片轉換成陣列可以識別的二進制序列,然后將其存儲到片外存儲DIM中,其次將并行方案的指令初始化到對應PE指令存儲其中,最后在ModelSim上進行仿真驗證。FPGA使用Vertex-6系列XC6VLX760器件,工作頻率可以達到123 MHz。實驗基于4×4陣列結構實現了Inception模塊中1×1、3×3和5×5大小卷積運算的并行重構映射方案。功能評測數據集選擇Minist(28×28像素的灰度手寫數字圖片),該數據集包含60 000個用于訓練的示例和10 000個用于測試的示例和Cifar-10數據集(32×32的彩色圖像),其中包含10個類別的RGB彩色圖片。相比于手寫字符,Cifar-10含有的是現實世界中真實的物體,不僅噪聲很大,而且物體的比例、特征都不盡相同,這為識別帶來很大困難。Minist數據集中的數據做了預處理,將其變為29×29大小的灰度圖像,對Cifar-10將按照原始數據進行處理。表1給出了使用本文設計方案對兩個數據集的識別的結果。可以看出本文的設計方案達到了Inception網絡的功能要求,且識別率達到99%左右。

表1 數據集

表2給出了本文和文獻[5,9]的處理時間對比。本文和文獻[5,9]都是基于FPGA實現,本文的Inception V1輸入3張特征圖,3×3卷積輸入96張特征圖,輸出128張特征圖;5×5卷積輸入16張特征圖,輸出32張特征圖。而文獻[5]第一層輸入7張特征圖,輸出64張特征圖,第二層輸入8張特征圖,輸出19張特征圖。如表2所示,文獻[5]的處理速度比本文方法快,但是處理的數據量只有本文的60%。文獻[9]與本文網絡模型相同,但本文的處理速度是它的0.76倍。相比之下,本文提出的可重構方法能夠支持不同大小的卷積核計算,結構更靈活,計算速度有了明顯提升。

表2 卷積層計算時間

表3給出了本文的FPGA芯片資源使用情況。可以看出,與文獻[7、9]相比,本文提出的方法使用的資源更少。綜合結果顯示本文方法的綜合頻率為125 MHz,運行功耗只有6.395 W。開發板上的資源足夠充足,僅從硬件資源消耗比率來看,本文相比于文獻[7、9]有明顯的進步。但由于不同方法使用了不同并行策略和FPGA平臺,考慮硬件和便攜性方面的差異,文獻[8、12]指出使用能效比(Efficiency)等指標可以提供一個有效的對比,該值由式(1)得出

表3 FPGA邏輯資源利用統計

(1)

其中,Performance per Watt指能效比,Operations為操作數,Time和Power分別代表時間和功耗。

根據式(1),表4對能效比和每秒操作數進行了對比。在功耗方面,相比于文獻[1]和文獻[12]來說,本方法功耗僅占其6%和36%。雖然文獻[8]功耗低于本方法,但其使用高層次綜合進行自定義DCNN模型加速,成本較高,不利于通用模型加速。文獻[1]通過CPU優化CNN代碼得到的結果,能效比可以達到0.037,與文獻[1]的CPU實現相比,本方法能效比是其4.75倍。文獻[8、12]都是基于FPGA實現,與本文設計相比,文獻[12]具有更高的每秒操作數和功耗,但在能效比上本文是其2.2倍,在每秒操作數是文獻[8]的1.5倍,能效比是其1.3倍。由此可知,本方法在加速CNN方面具有一定優勢。

表4 性能對比

4 結束語

本文針對卷積神經網絡在硬件加速中面臨的訪存和功耗問題,提出了一種兼顧計算高并行性和片上資源占用開銷的可重構陣列實現方案,通過可重構機制在相同陣列上完成不同卷積核大小以及池化操作的計算,提高了片上資源的利用率。通過分析網絡中卷積、池化等操作間的數據依賴關系,將輸入圖像轉換成一維數組進行存儲,減少了卷積計算過程中外部存儲訪問頻次,并提出了一種重疊窗口的數據組織方案,將外存加載的像素數減少了30%。該方案在Minist和Cifar-10測試集中進行測試,結果表明在123 MHz的工作頻率下,FPGA的運行功耗為6.395 W,性能是CPU版本的4.75倍;相比于其它FPGA平臺實現,所提出的可重構實現方式具有明顯優勢。該方案也可以用來實現同類計算架構的神經網絡。

猜你喜歡
指令特征
抓住特征巧觀察
聽我指令:大催眠術
新型冠狀病毒及其流行病學特征認識
如何表達“特征”
不忠誠的四個特征
當代陜西(2019年10期)2019-06-03 10:12:04
ARINC661顯控指令快速驗證方法
測控技術(2018年5期)2018-12-09 09:04:26
LED照明產品歐盟ErP指令要求解讀
電子測試(2018年18期)2018-11-14 02:30:34
抓住特征巧觀察
殺毒軟件中指令虛擬機的脆弱性分析
電信科學(2016年10期)2016-11-23 05:11:56
一種基于滑窗的余度指令判別算法
主站蜘蛛池模板: 亚洲欧美另类日本| 午夜a视频| 久久久精品无码一区二区三区| 91在线激情在线观看| 在线精品亚洲一区二区古装| 97在线免费| 国产在线视频导航| 99久久精品国产综合婷婷| 久久五月天综合| 毛片基地美国正在播放亚洲 | 亚洲系列无码专区偷窥无码| 日本成人一区| 91视频青青草| 亚洲开心婷婷中文字幕| 国内熟女少妇一线天| 久久 午夜福利 张柏芝| 91无码视频在线观看| 亚洲视频三级| 亚洲色图狠狠干| 国产成人久视频免费| 福利在线不卡| 婷婷六月在线| 亚洲第一中文字幕| 欧美综合在线观看| 日韩第八页| 啦啦啦网站在线观看a毛片| 婷婷激情亚洲| 日韩二区三区无| 亚洲午夜福利精品无码| 亚洲黄色视频在线观看一区| 热思思久久免费视频| 亚洲va欧美va国产综合下载| 好久久免费视频高清| 久久精品国产在热久久2019| 99视频精品在线观看| 成人免费午夜视频| 天天做天天爱天天爽综合区| jizz在线免费播放| 国产日本视频91| 国产swag在线观看| 国产激情无码一区二区APP | 成人在线天堂| 亚洲色图欧美一区| 丰满人妻中出白浆| h网址在线观看| 欧美精品不卡| 国产91蝌蚪窝| 自偷自拍三级全三级视频| 国产精品刺激对白在线| 国产精品成人第一区| 毛片免费试看| 激情综合网激情综合| 蜜臀AVWWW国产天堂| 在线亚洲天堂| 亚洲欧美h| 婷婷伊人五月| 天天爽免费视频| 一级毛片中文字幕| 国产jizzjizz视频| 99性视频| 国产精品久久久久久久久| 午夜国产在线观看| 这里只有精品在线| 亚洲一级毛片免费观看| 又粗又大又爽又紧免费视频| 亚洲精品综合一二三区在线| 九九九精品成人免费视频7| 香蕉视频国产精品人| 特级精品毛片免费观看| 国产精品太粉嫩高中在线观看| 国产乱人伦AV在线A| 国产精品人成在线播放| 91在线播放国产| 国产亚洲日韩av在线| 最新加勒比隔壁人妻| 国产精品亚洲天堂| 国产95在线 | 国产91小视频在线观看| 狠狠v日韩v欧美v| 亚洲AV无码不卡无码| 国产91高跟丝袜| a级毛片免费看|