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

面向混合量化CNNs的可重構處理器設計

2022-05-11 07:50:52常立博張盛兵
西北工業大學學報 2022年2期
關鍵詞:模型

常立博, 張盛兵

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

基于卷積神經網絡CNNs的智能算法已廣泛應用到自動駕駛、智能監控和移動虛擬現實等領域。然而,此類智能算法在獲得較高精度的同時,也具有極高的計算復雜度和巨大的參數量,導致采用對功耗和計算資源敏感的邊緣計算設備實現此類算法時,通常無法滿足實時性和低功耗的應用需求。因此本文將探索可適應于終端場景的高能效CNN加速器設計方法。

采用基于參數量化CNNs的輕量化方法可以極大降低神經網絡的參數數量、訪存量和計算復雜度[1],從而為將CNNs的計算任務映射到邊緣計算設備上提供了可能。因為CNNs中不同層的冗余度存在很大差異,而基于混合精度量化策略可針對不同層的參數變化范圍調整數據位寬,得到在保證量化精度操作情況下表示參數的最小數據位寬[2],從而確定最優的量化位寬。所以如果CNNs中各卷積層的參數均采用最優的量化位寬時,混合精度量化算法可在精度損失和壓縮率之間達到最佳平衡。然而混合量化CNNs可能引入不規則的算法運算操作(如奇數位寬的乘法運算),而已有僅支持特定統一參數位寬或特定幾種參數位寬的CNN處理器,由于未能最大限度地利用混合量化提供的計算并行度,阻礙了處理器性能進一步提升。因此需要設計可靈活且高效支持混合量化CNNs的運算操作,才能真正提高加速器針對混合精度CNNs的計算效率。

與此同時,由于CNNs具有豐富的計算并行性,可以增加計算單元的數量以提高計算并行度。然而混合量化CNNs中不同層的參數位寬會導致不同層之間的訪存特性具有較大差異,如果采用固定的數據劃分和訪問模式[3],則會造成巨大的片上緩存資源浪費并增加數據移動量。如果將緩存不同類型參數的片上緩存區統一劃分,并根據不同類型參數的存儲需求來劃分緩存區尺寸,則會提高片上存儲器的利用率[4]。同時,由于CNNs鄰近層之間的參數存在一定的關聯性,如上一層卷積的輸出特征圖可能是下一層卷積的輸入特征圖,鄰近層之間同類型的參數規模變化較小;同時,基于殘差結構的CNNs通過跨層信息融合以提高精度,因此可通過設計靈活的參數訪問模式以提高參數的復用性并減少數據移動量,從而提高計算效率。

不同CNNs的模型結構和計算模式均存在較大差異,并且不同應用場景可提供的計算資源及對處理器的性能和功耗等要求也不同。采用面向特定應用領域體系結構(domain-specific architectures,DSA)[5]和可重構計算技術方法,既可獲得很高的效能又具備一定的靈活性,可以兼顧嵌入式智能終端系統對高性能、低功耗以及高靈活性的要求,從而滿足應用場景對CNN處理器的可定制性和可擴展性要求。然而,隨著可重構加速器靈活度的提高,其設計空間探索(design space exploration,DSE)的范圍將變得十分巨大,因此需要一種可高層次表達CNNs和可重構平臺特性的算法映射表達方法,以降低映射復雜度,提高可重構效率和處理器的通用性,從而可加速不同類型的CNN模型。

針對上述問題,本文采用軟硬件協同優化和可重構計算方法,針對混合精度CNNs計算和訪存特性,設計可支持混合位寬的可重構運算單元、可支持多種數據復用以及減少數據移動數量的緩存器,以及設計了一種表達混合CNNs計算、訪存以及計算模式的宏指令集和可重構處理器架構。本文主要貢獻如下:

1) 提出具有可定制性和可擴展性的CNN處理器架構,以及可有效表達混合精度CNNs模型計算的宏指令集(macro instruction set architecture,mISA)。通過高層描述被加速的CNNs模型計算、訪存和控制等數據流特征,并設計對應的可重構處理器結構以提高計算效率。

2) 提出可支持混合位寬并行乘加運算的可重構微處理單元(reconfigurable micro-processing element,RmPE)和可重構多核計算引擎架構(compute engine,CE)。根據被加速的混合精度CNNs模型的結構特點和目標平臺的資源限制,計算引擎通過重構陣列結構和數據流模式以提高計算資源利用率。

3) 提出可適應可重構CNNs計算特性的彈性片上數據緩存策略。通過動態配置地址及片上互聯模式減少非必要數據移動的延時和功耗開銷;通過基于Tile的動態緩存劃分策略提高片上存儲資源利用率。

1 相關工作

為了滿足不同CNN模型中各卷積層對于運算位寬的多樣化需求,提高CNN加速器的計算效率,目前針對混合精度CNNs計算模式以及可重構CNN處理器體系結構方面開展了大量研究。

1.1 混合精度CNNs計算模式

目前已有大量基于ASIC或可重構平臺(如FPGA)的面向混合精度CNN加速器設計。Judd等[6]提出的Stripes處理器支持可變精度的激活數據,Lee等[7]提出的UNPU處理器支持可變精度的權重數據,但是2種架構都只支持一種運算數據位寬的改變,因此沒有最大限度提高混合精度CNNs的計算效率;Sharify等[8]提出的Loom處理器采用串行乘法單元以支持多精度的卷積運算,然而由于需要并串轉換電路,需要消耗大量芯片面積和功耗;Sharna等[9]提出的基于位級融合的Bit Fusion處理器,利用2 bit數據運算單元的融合和分解支持不同運算數據位寬,但是由于基礎運算單元處理位寬的限制,對于存在較多非二次冪位寬參數的混合精度CNNs,該架構的加速效率會受到限制。

雖然基于ASIC的方法可通過定制化運算單元實現混合精度CNNs模型加速, 但是此類方法無法應用到基本運算單元固定的可重構平臺,如基于DSP的FPGA等。已有基于FPGA的CNNs加速器通常采用匹配CNNs模型中最大的數據位寬的計算模式,所以對于量化后存在大量低數據位寬的CNNs則無法充分利用FPGA平臺中的DSP等計算資源,從而降低了加速器的計算效率,因此需要一種自適應多精度計算的高效處理單元。為了提高FPGA平臺針對低數據位寬運算的并行度,可將多個低位寬數據合并為一個高位寬數據,通過復用DSP以提高計算并行度[10],其能夠根據不同運算位寬調整運算并行度,但是運算單元的并行度受到符號位的限制,無法充分復用DSP資源。

1.2 可重構CNNs處理器體系結構

雖然CNNs具有計算類型較少并且計算流程固定的特點,但是不同CNNs或是同一模型中的不同卷積層的數據流和數據訪存等方面具有不同的特性。已有學者提出基于模板或自動化設計方法[11-14],此類方法首先對算法和可重構平臺的資源進行抽象描述,然后通過優化算法確定加速器體系結構和具體可重構配置的參數。如Ma等[11]首先設計了可實現CNNs運算的基本操作單元庫,然后通過自動化地組合不同運算單元以適應不同的CNNs模型;Wei和Guo等[12-13]分別提出了基于性能和計算資源利用率約束的自動化設計優化方法,從而提出針對不同CNNs的計算效率。然而此類方法的優化策略復雜度將隨著搜索空間的增加而快速提高,因此當CNNs模型復雜度較高時,通常很難得到最優的處理器的體系結構和映射策略。同時,Azizimazreah等[14]通過配置和重構“物理”基本單元,構建“邏輯”運算單元和緩存單元,從而降低重構延時并提高加速器的可定制性和可擴展性,然而其直接將各卷積運算轉換為可重構加速器的配置信息,因此映射復雜度較高。

2 面向混合CNNs的可重構處理器

2.1 可重構CNNs處理器結構

為了提高CNNs的運算效率,本文設計了一種可支持混合精度運算的多核處理器,結構如圖1所示。由支持可變精度的卷積、激活、池化等操作的計算引擎,可支持彈性劃分與動態重組的緩存單元以及可支持亂序發射的控制單元組成,而計算數據和控制數據通過片上總線接口單元與外部完成數據交換。

圖1 可重構CNN處理器架構

其中,控制單元(command engine,CMDE)包含指令存儲、PC尋址單元、寄存器堆以及譯碼單元,通過PC訪問指令存儲,經譯碼模塊產生相應的控制信號,進而控制片上數據通路和數據緩存。計算引擎由用于完成特定特征圖tile塊卷積運算的二維RmPE陣列,以及用于池化和激活等標量運算的專用計算單元組成。片上彈性緩存包含多個相互獨立的存儲塊(bank),通過專用Crossbar總線將彈性緩存與計算引擎中對應的數據緩存單元連接起來。

2.2 宏指令集設計

為了將不同結構混合精度CNNs高效地映射到可重構計算平臺,根據CNNs中計算類型較少并且計算流程固定的特點,本文提出一種控制通路簡單、可提高數據級并行度的宏指令集。該指令集由10條32 bit指令組成,指令字段劃分方式如圖2所示,根據32 bit數據表示的含義將其細分為3個字段:功能,寄存器和參數。其中,由4 bit數據組成的function表示指令類型,由10 bit數據組成的registers表示用于控制計算過程的變量或索引,而由18 bit數據組成的parameters表示如量化的CNN模型的特征等信息。指令集分為4類:配置、運算、訪存和循環控制。配置指令(config-*)用于實現在每個卷積層運算前對該層的存儲劃分以及計算特性描述;運算指令compute用于啟動tile級運算;訪存指令load/store控制計算引擎與彈性存儲之間的數據交互,循環控制指令add、beq、jmp負責控制計算任務的循環過程。

圖2 宏指令集格式

該宏指令包含2個32 bit通用寄存器,用于緩存特征圖塊的索引,并暫存一些標量數據,例如用于循環控制的變量值。如圖2所示,r1(a)表示參數a存儲在寄存器r1中,r1(a/b)表示參數a或b存儲在寄存器“r1”中,寄存器r2以類似的方式起作用。宏指令的參數(parameters)用于配置或控制可重新配置的計算引擎和彈性片上緩沖區。例如,根據存儲單元陣列的行和列中的RAM數量,特征圖的通道數,填充的大小以及相關的緩沖區類型,使用“bank-config”來配置劃分緩沖區方法等。表1列出了宏指令集中各參數縮寫的含義。

表1 指令集中參數縮寫的含義

3 混合精度CNNs計算引擎

3.1 可重構微處理單元

混合精度量化算法通過調整不同卷積層中特征值和權重的位寬,以實現CNNs的精度和壓縮率之間最優平衡。其量化后的CNNs各層的參數位寬量為確定值,因此根據乘法分割原理,將多個低位寬數據拼接為一個高位寬數據運算的模型可表達如(1)式所示,其中x為乘數位寬,y為被乘數位寬,p為并行度,b為乘法器的最大運算位寬。在確定可重構平臺中的乘法器位寬后,可利用(1)式確定特定運算數據位寬和乘法操作的最大并行度。

b=px+(p-1)y-2p+1

(1)

根據上述并行乘法的分析,結合已有可重構計算資源的特性(如FPGA平臺中的DSP),本文設計可支持2~8 bit內任意精度并行乘加運算的可重構微處理單元(reconfigurable micro-processing element,RmPE),其架構如圖3所示。RmPE內部采用權重復用的計算模式,可根據輸入特征和權重的位寬確定運算并行度,并且通過控制編碼與解碼操作動態可重構RmPE單元。并行輸入特征與權重在運算并行度的控制下分離符號位與數據位,數據位輸入乘法運算單元進行并行乘法運算,符號位輸入異或門進行符號計算。不同運算并行度下解碼出的乘法運算結果輸入對應累加器,對卷積過程中的部分和進行累加,而計算出的符號位則會作為累加器執行加法或減法運算的標志。卷積運算結束后,累加結果統一截斷至8 bit以降低激活運算的復雜度。

圖3 RmPE架構

為了適應不同類型的混合精度CNNs的數據位寬,本文通過定義RmPE中對應的可重構參數,從而可根據不同混合精度量化網絡模型定制計算單元的規模,在提升計算性能的并提高計算資源利用率,表2列舉了RmPE中的可重構參數及其含義。

表2 RmPE參數描述

3.2 計算引擎

本文采用文獻[11]提出的計算單元組織方式,根據被加速的混合精度CNNs模型的結構特點和目標平臺的資源限制,將多個RmPE組成的二維陣列構成計算引擎(compute engine,CE)。計算引擎的整體設計如圖4所示,包括采用陣列結構的卷積運算單元和串行處理卷積結果的池化和激活單元。計算引擎采用流模式處理運算數據,計算流程中的數據通路選擇由控制單元管理,卷積運算單元從輸入緩存和權重緩存中讀取數據進行卷積運算,產生的并行卷積結果通過重組,以串行數據流模式輸入激活或者池化單元,最終運算結果以并行方式存入輸出緩存。

圖4 計算引擎硬件結構

由于RmPE在卷積處理單元中按照陣列方式進行排列,因此可通過調整陣列結構以適應不同混合精度CNNs模型的計算特性。如圖4的虛線框中給出的nPEx,nPEy以及nPEz分別表示計算陣列的3個維度。可根據被加速的混合精度CNNs的結構特點和目標平臺的資源限制,通過重構陣列結構和數據流模式以提高計算資源利用率。

4 面向彈性緩存的重構與劃分機制

為了解決卷積運算不同類型數據在混合精度CNNs各層間存儲量差異巨大的問題,本文采用文獻[14]提出的彈性存儲結構(elastic buffer,EB),將片上存儲單元劃分為多個獨立的bank,不再設有特定的輸入緩存、權重緩存以及輸出緩存,只提供對應的數據輸入輸出接口,接口數目根據加速系統中計算引擎的數目定制,以保證數據訪問并行度。在每層運算開始前,控制器根據各bank的狀態和bank劃分策略,以動態重組的方式將bank指定為特定的計算引擎緩存單元。計算引擎通過待運算數據的索引(如特征圖的tile編號等)訪問對應的bank。其中卷積計算單元中的輸入、輸出、權重數據按照圖5所示的方式進行tile劃分。在圖5a)中,輸入和輸出特征數據的tile在行方向上的尺寸等于特征圖寬度,在列方向上的尺寸決定了tile的組數,每組包含全部輸入或輸出通道,計算過程中,tile的劃分方式會隨著運算量的改變而改變,因此彈性存儲內部以特征圖尺寸對特征數據進行存儲,以支持不同tile尺寸的重構。圖5b)中權重塊在行方向上的數據量對應該層單個卷積核的數據量,列方向的尺寸對應輸入通道的分組,每組包含全部輸出通道的卷積核。

圖5 tile劃分方法

彈性存儲需要根據計算引擎中RmPE陣列的nPEx,nPEy以及nPEz3個維度進行重構,以減少計算引擎因等待數據引起停頓,從而提高計算單元的利用率。因此,構建輸入特征存儲區域的存儲塊在位面方向的數目需要匹配nPEz,從而為RmPE陣列提供nPEy行的并行輸入;構成權重以及輸出特征存儲區域的存儲塊在位面方向的數目需要匹配nPEz,從而滿足RmPE陣列在輸出通道方向上的并行度。

5 驗證與分析

5.1 建立驗證系統

本文選擇經典CNNs-VGG-16和包含殘差結構并且結構復雜的ResNet-50,驗證本文提出的混合精度CNNs可重構處理器性能。采用文獻[2]提出的混合精度量化算法量化VGG-16和ResNet-50模型,量化參數位寬變化范圍及準確率如表3所示,其中準確率為針對ImageNet數據集的圖像分類結果。從表3可以看出量化后網絡模型的精度損失均小于1%,2種網絡量化后的權重位寬分布在2~8 bit之間。同時,根據文獻[15]對于激活數據量化敏感度分析,激活值量化位寬的改變會對網絡準確率造成很大影響,因此在混合精度量化后的ResNet-50和VGG-16網絡中,激活數據的位為特定幾種數據位寬,其中針對VGG-16模型選擇4或8 bit,而針對ResNet-50模型選擇4,6或8 bit。

表3 混合精度量化結果

5.2 不同陣列結構對計算效率的影響分析

根據nPEx方向上對RmPE數目的分析,卷積處理單元在3個方向上的尺寸共有4種可能性,按照(nPEx,nPEy,nPEz)的方式標記,分別為(4,7,12),(5,7,10),(6,7,8),(7,7,7),因此需要為2種混合精度網絡各設計4種卷積處理單元進行性能比較,為了方便描述,依照CNNs模型以及卷積處理單元在nPEx方向上的尺寸對加速器分別標記為:ResNet4,ResNet5,ResNet6,ResNet7。表4展示了針對混合精度ResNet-50模型,本文設計的4種結構的混合精度CNN加速器,在Ultra96-V2開發板上的計算吞吐率、計算效率、推理延時以及資源使用量等。其中計算性能最優的是ResNet4,其計算性能和計算效率分別達到了219.56 GOPS和0.653 GOPS/DSP,其吞吐率甚至超過了使用更多計算單元的ResNet5,并且在DSP數量相同的情況下,ResNet4的計算性能要優于ResNet6,這是由于混合精度ResNet-50模型在nPEx方向上的計算并行度處于飽和狀態,不需要很多RmPE即可在特征的行方向上獲得較高的并行計算能力。然而,針對運算并行度不高的模型(如VGG-16),不同類型計算陣列在特征行方上的并行計算能力差別不大,因此可通過減少nPEx并增加nPEz來提高計算效率。可以看出,針對特定的混合精度CNN模型,可通過改變計算陣列在不同維度的尺寸和對應的片上緩存劃分策略,達到最優的計算效率。然而,針對不同類型的混合精度CNN模型,則需要不同的重構方法才能獲得最優性能。

5.3 與相關研究的對比

本文設計的混合精度CNNs處理器與其他FPGA平臺的加速器[10-14]的對比結果如表5所示。其中存儲資源部分的 Xilinx FPGA采用36 kB的存儲塊,而Intel FPGA采用20 kB的存儲塊;表中的DSP資源的Xilinx FPGA的DSP運算位寬為27×18 bit,Intel FPGA的DSP運算位寬為18×18 bit;表中邏輯資源的Xilinx FPGA為LUTs,Intel FPGA為ALMs。為了公平地對比性能,表5中所有的計算性能均在batch size為1時測得。本文的混合精度CNN處理器在計算性能方面,比使用了更多DSP資源的固定位寬加速器[13]提高了111.4 GOPS,同時可獲得更高的準確率。文獻[11-12]使用與本文類似的脈動陣列結構加速卷積運算,當FPGA上的DSP資源用量處于飽和狀態時,雖然本文的混合精度CNN處理器在片上資源較少的Ultra96-V2平臺上的計算性能較低,但是在計算效率方面分別提高了3.2倍和1.6倍,說明本文提出的并行計算單元RmPE對計算效能的提升作用。同時,將本文提出的可重構CNNs處理器映射到片上資源較多的ZCU102平臺上,針對ResNet-50網絡的計算性能可達913.8 GOPS,計算效率達到0.40,其性能和計算效率均高于文獻[11],說明了本文提出的處理器具有較好的可擴展性和可定制性。文獻[10]使用了與本文類似的并行乘法單元加速混合精度CNNs,在吞吐率和計算效率方面均優于其他設計,而本文利用分離符號位與使得本文的混合精度CNN處理器在DSP的使用效率方面相較于文獻[6]提高了6.7%。

表4 針對混合精度ResNet-50,采用不同陣列結構的各種資源使用情況和性能對比

表5 與其他基于FPGA平臺CNN加速器對比

6 結 論

為了解決將基于混合精度CNNs的智能算法在已有通用計算平臺上實現,無法滿足終端設備對實時性和低功耗的應用需求的問題。本文設計了支持多精度并行乘加運算的可重構微處理單元,可根據混合CNNs模型結構重構多核處理器。根據不同混合精度CNNs定制片上資源,在計算過程中重構計算單元并行度和片上緩存單元的劃分方式,提高處理器的計算效率。本文設計的CNN處理器在Ultra96-V2上推理VGG-16和ResNet-50時計算性能分別達到216.6和214 GOPS,計算效率為0.63和0.64 GOPS/DSP,實現了對嵌入式硬件平臺上計算資源的高效利用。

猜你喜歡
模型
一半模型
一種去中心化的域名服務本地化模型
適用于BDS-3 PPP的隨機模型
提煉模型 突破難點
函數模型及應用
p150Glued在帕金森病模型中的表達及分布
函數模型及應用
重要模型『一線三等角』
重尾非線性自回歸模型自加權M-估計的漸近分布
3D打印中的模型分割與打包
主站蜘蛛池模板: 国产亚洲欧美在线中文bt天堂 | 免费国产黄线在线观看| 欧美黑人欧美精品刺激| 国产精品久久久久久久伊一| 99视频在线免费观看| 57pao国产成视频免费播放| 国产成人精品视频一区二区电影| 99手机在线视频| 在线播放国产一区| 国产91蝌蚪窝| 亚洲综合二区| igao国产精品| 国产欧美日韩综合在线第一| 精品视频免费在线| 国产视频大全| 亚洲免费播放| 亚洲精品大秀视频| 无码aⅴ精品一区二区三区| 亚洲爱婷婷色69堂| 婷婷六月天激情| 亚洲日韩欧美在线观看| 国产毛片不卡| 在线免费观看AV| 一级香蕉视频在线观看| 成人午夜亚洲影视在线观看| 91成人在线免费视频| 欧美成人一级| 国产主播在线观看| 国产JIZzJIzz视频全部免费| 国产欧美日韩va另类在线播放| 欧美日韩在线国产| 中文国产成人久久精品小说| 草逼视频国产| 欧美怡红院视频一区二区三区| 天堂网国产| 亚洲人成网站在线观看播放不卡| 午夜毛片免费观看视频 | 97精品伊人久久大香线蕉| 国产啪在线| 亚洲中文字幕国产av| 美女无遮挡被啪啪到高潮免费| 国产视频只有无码精品| 亚洲αv毛片| 久久久久国产精品熟女影院| 国产精品太粉嫩高中在线观看| 中文字幕啪啪| 91精品免费久久久| 国产大片喷水在线在线视频| 蜜芽一区二区国产精品| 免费在线成人网| www.精品国产| 欧美一区精品| 亚洲综合九九| 成年人国产视频| 国产尤物jk自慰制服喷水| 日本在线视频免费| 欧美日本在线一区二区三区| 91在线日韩在线播放| 国产精品精品视频| 国产精品网拍在线| 精品成人免费自拍视频| 亚洲精品视频在线观看视频| 一级毛片在线播放免费观看| 91探花在线观看国产最新| 亚洲国产一区在线观看| 一区二区三区国产| 中文字幕欧美日韩高清| 久无码久无码av无码| 亚洲女人在线| 国产jizzjizz视频| 国产制服丝袜91在线| 国产一区免费在线观看| 97成人在线观看| 蜜桃视频一区二区三区| 亚洲av日韩av制服丝袜| 极品尤物av美乳在线观看| 亚洲AV无码精品无码久久蜜桃| 国产永久在线视频| 亚洲欧洲日韩综合色天使| 久久国语对白| 性欧美在线| 成人亚洲天堂|