版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
基于分布式存儲的卷積計算過程案例分析目錄TOC\o"1-3"\h\u14692基于分布式存儲的卷積計算過程案例分析 1155391.1卷積神經(jīng)網(wǎng)絡的并行性分析 117271.1.1卷積核并行加速分析 2299891.1.2輸入與輸出特征圖通道并行加速分析 4110121.1.3層級間并行加速分析 846401.2分布式存儲卷積計算設計 9242741.2.1分布存儲神經(jīng)網(wǎng)絡并行結構設計 9240941.2.2分布卷積計算設計 14117131.2.3分布存儲卷積計算整體結構 17卷積神經(jīng)網(wǎng)絡硬件加速的根本策略是提升層內(nèi)、層間運算的并行性。除此之外,卷積神經(jīng)網(wǎng)絡運算涉及大量的數(shù)據(jù)與參數(shù),而數(shù)據(jù)與參數(shù)的存儲方式也嚴重影響系統(tǒng)的性能。適用于卷積神經(jīng)網(wǎng)絡運算特點的存儲方式不但可以簡化數(shù)據(jù)與參數(shù)的調(diào)度,還有利于克服系統(tǒng)外部總線帶寬的限制,提升系統(tǒng)的整體并行性與運算效率。1.1卷積神經(jīng)網(wǎng)絡的并行性分析在進行卷積層運算時,由于資源有限,無法同時進行所有乘加運算,需要采用多次循環(huán)計算得到結果。如圖1.1所示為一層卷積層計算的循環(huán)偽代碼。設輸入特征圖大小與輸出特征圖大小一致,高為,H寬度為W,輸入特征圖個數(shù)為ni?N,輸出特征圖個數(shù)為mi圖1.1卷積層計算循環(huán)偽代碼由圖1.1的偽代碼可見,卷積層的并行加速的核心就是針對卷積的循環(huán)乘法和加法進行展開,并行計算,提升達到系統(tǒng)的運算效率。設計卷積神經(jīng)網(wǎng)絡通用加速系統(tǒng)時,可以基于循環(huán)的結構,根據(jù)數(shù)據(jù)是否相關進行從內(nèi)循環(huán)到外循環(huán)的并行展開。1.1.1卷積核并行加速分析在卷積神經(jīng)網(wǎng)絡中,卷積核的大小往往為K×K。在對輸入圖像進行卷積運算,需要k2次乘法運算。硬件加速設計可以采用k2個乘法器并行計算。如圖圖1.23×3卷積核并行計算在進行卷積核相加時,由于相加數(shù)的個數(shù)較多,組合邏輯電路時延較長,導致系統(tǒng)的時鐘工作頻率較低。在硬件電路設計中,為了減少關鍵路徑的延遲,經(jīng)常采用流水線方法,提升系統(tǒng)的工作頻率。流水線工作原理是將任務分級完成,在關鍵路徑上添加寄存器,保證每級能在高頻率下完成,其工作時序圖如圖1.3所示,設有K級流水線的情況下,其結果將在K+1個時鐘周期輸出,圖中為三級流水線。圖1.3三級流水線時序使用流水線技術在關鍵路徑添加寄存器,能夠提高系統(tǒng)的頻率,提升系統(tǒng)的運算效率。比如在卷積核為3×3的并行加速中需要進行九個結果的相加,可以采用加法樹流水線操作,其結構圖如圖1.4所示,采用三級流水線操作,用加法樹實現(xiàn)卷積乘法結果的累加。圖1.4加法樹結構電路計算時序圖如圖1.5所示,輸入計算數(shù)據(jù),經(jīng)過加法樹相加,兩個時鐘周期輸出第一個相加結果,以后每個時鐘周期依次輸出一個累加結果,保證系統(tǒng)運行在高頻率下,提升整個系統(tǒng)的運行效率。圖1.5加法樹時序圖1.1.2輸入與輸出特征圖通道并行加速分析在卷積過程中,同一層卷積的輸入特征圖通道和輸出特征圖通道之間數(shù)據(jù)是沒有相關性的,可同時計算幾個輸入特征圖通道和輸出特征圖通道,提高系統(tǒng)的并行性,加速神經(jīng)網(wǎng)絡系統(tǒng)運算效率。卷積層的輸入特征圖往往是多通道,在進行卷積計算一個輸出特征圖時,需要將全部輸入通道特征圖分別與不同的卷積核計算并將結果進行累加得到輸出結果。如圖1.6所示為四通道輸入特征圖卷積計算得到單通道輸出特征圖的計算過程,由于只有一個乘法器,因此需要四次大循環(huán)才能計算出結果。圖1.6四通道輸入特征圖單通道輸出特征圖卷積計算過程由于每個通道的輸入特征圖的計算都是彼此不相關的,因此可以進行并行計算,將多個通道輸入特征圖與卷積核一起并行計算,設輸入特征圖通道數(shù)為N,最大可以將N個輸入特征圖通道一起進行并行計算,總共需要N個乘法器與N-1個加法操作。圖1.7即為輸入特征圖通道數(shù)為4,采用四個乘法器,進行四個輸入通道特征圖并行運算的過程。圖1.7四通道輸入特征圖并行計算在輸入特征圖通道并行的情況下加入卷積核的并行,所需乘法器數(shù)目為N×K×K,需要N×K×K-1加法可以得到輸出結果。圖1.8即為三通道輸入特征圖與卷積核大小為3×3的卷積共同并行計算的結構圖,需要27個乘法器,26個加法器。圖1.8三通道輸入特征圖與卷積核并行計算結構圖卷積層的輸出特征圖是下一層卷積的輸入特征圖,也具有多個通道,同一輸入通道特征圖與不同卷積核卷積計算可以得到多個輸出通道特征圖。圖1.9即為單輸入通道特征圖與四個卷積核卷積計算得到四輸出通道特征圖的運算過程。圖1.9單輸入特征通道多輸出特征通道卷積計算過程卷積層計算每層都會得到多個通道輸出特征圖,每個通道的輸出特征圖的結果與輸入通道特征圖有關,但是每個輸出特征圖通道之間的結果沒有關聯(lián)性,因此可以將同一輸入特征圖通道與不同卷積核并行卷積計算,得到多個通道的輸出特征圖。設輸出特征圖的通道個數(shù)為M則輸出的特征圖最大并行度是M,圖1.10為計算單輸入通道特征圖四輸出通道特征圖的并行計算過程。圖1.10單輸入通道特征圖四輸出通道特征圖并行卷積計算輸入特征圖通道計算可以和輸出特征圖通道計算一起并行運行,最大程度加速整個系統(tǒng)。同時該方法還可以提高數(shù)據(jù)的復用率,減少帶寬的需求。采用輸入特征圖通道為N和輸出特征圖通道為M時一起并行計算時需要N×M個乘法器,以及(N?1)?M個加法器。圖1.11所示為輸入特征圖通道數(shù)為3和輸出特征圖通道數(shù)為3的并行計算結構,其中共需要9個乘法器。圖1.11輸入特征圖通道與輸出特征圖通道并行計算當將卷積核并行運算也加入進來,其乘法器數(shù)量需要N×K×K×M,加法器需要N?1?M?K?K。圖1.圖1.12輸入特征圖通道與輸出特征圖通道以及卷積核并行計算1.1.3層級間并行加速分析卷積神經(jīng)網(wǎng)絡包括卷積層、激活函數(shù)以及池化層。層與層之間沒有數(shù)據(jù)關聯(lián),為了加速系統(tǒng),每層可以并行運行,層與層之間采用流水線操作,同時運行卷積層、激活函數(shù)以及池化層。在激活函數(shù)層運算時,由于卷積層一次輸出一個計算結果,可以采用流水線操作,在硬件電路中實現(xiàn)常用的ReLU激活函數(shù)只需要加入一個比較器和一個數(shù)字選擇器兩個組合電路即可完成數(shù)據(jù)處理,其結構圖如圖1.13所示,在實現(xiàn)Sigmoid函數(shù)和Tanh函數(shù)時,由于涉及到e的冪指數(shù)運算,以及除法運算,關鍵路徑時延較長,因此采用流水線設計。圖1.13ReLu激活函數(shù)硬件電路池化層主要是對卷積層的結果進行降采樣,池化層需要等待卷積層的卷積計算完成,但是在進行池化操作時不需要等待卷積全部完成,只需要池化的窗口數(shù)據(jù)完成就可進行池化操作,池化操作處理數(shù)據(jù)能力快于前面,不影響卷積的計算,在卷積層與池化層之間加入一個小的緩存,等待緩存的數(shù)據(jù)夠池化層窗口,池化層就可進行流水線的池化操作,結構圖如圖1.14所示。圖1.14池層并行計算結構圖1.2分布式存儲卷積計算設計為了提升并行卷積運算結構的運算并行性,必須要保證運算所需數(shù)據(jù)的提供,即卷積神經(jīng)網(wǎng)絡加速研究還必須解決以下兩個問題:1)內(nèi)部存儲RAM需求高的限制;2)數(shù)據(jù)外部存儲帶寬限制。因此本文提出分布式存儲卷積神經(jīng)網(wǎng)絡加速架構解決這兩個問題,滿足并行運算的數(shù)據(jù)需求,同時提高數(shù)據(jù)的復用率,提高整個帶寬的利用率,提升整個系統(tǒng)的性能。1.2.1分布存儲神經(jīng)網(wǎng)絡并行結構設計理想的加速神經(jīng)網(wǎng)絡系統(tǒng)設計是采用流水線形式進行全部層次的展開,結構圖如圖1.15所示。整個系統(tǒng)被全部展開,其數(shù)據(jù)主要存儲在片內(nèi)緩存,在初始運行時,第一個輸出結果有很大的延時,但當?shù)谝粋€結果輸出后,下一個結果緊隨而來,具有很好的并行效果,然而該架構下的并行模式對計算資源和內(nèi)部緩存資源以及外部存儲帶寬具有很高的要求,只適合特定小型網(wǎng)絡,在深度網(wǎng)絡以及多種神經(jīng)網(wǎng)絡上無法通用。圖1.15理想卷積加速結構本文設計的分布存儲卷積計算架構是一個通用網(wǎng)絡架構,可實現(xiàn)卷積層、激活函數(shù)以及池化層計算的靈活重構。系統(tǒng)進行運算時,通過片上嵌入式CPU或者外部總線進行命令的傳遞。控制模塊接受到指令后,根據(jù)指令調(diào)度各個運算層,重構各種卷積神經(jīng)網(wǎng)絡。該結構對神經(jīng)網(wǎng)絡的深度沒有限制,并且系統(tǒng)可以重構多種網(wǎng)絡,提高網(wǎng)絡的通用性;同時該架構可以通過較小的片上存儲緩存,充分利用外部帶寬,該模型的結構圖如圖1.16所示。圖1.16通用加速系統(tǒng)架構(因特網(wǎng)改為外部總線)圖1.16中通用CNN加速網(wǎng)絡結構如圖1.17所示,主要包括N個輸入模塊、N個緩存填充模塊、N×M個卷積并行加速模塊、M個激活函數(shù)模塊、M個池化模塊、M個輸出緩存模塊。圖1.17通用CNN加速模塊架構根據(jù)卷積的特性,本文為了最大程度增加系統(tǒng)的并行行,系統(tǒng)采用輸入特征圖通道、卷積核以及輸出特征圖通道一起并行計算的結構,設輸入特征圖通道并行度為N,卷積核大小為K,以及輸出特征圖通道為M,最小的卷積計算模塊為卷積核K×K并行的計算結構,輸入和輸出特征圖并行需要N×M個卷積計算模塊,整個系統(tǒng)需要N×M×K×K個乘法器,M×(K×K×N-1)個加法器。采用該并行計算模式,不僅最大程度增加系統(tǒng)的并行性,同時每個模塊的計算互不影響,提高了數(shù)據(jù)的復用率;在只采用卷積核并行運算的情況下,系統(tǒng)的并行度只有K×K,計算效率太低,同時采用多輸入特征圖通道N并行計算,可以增加整個神經(jīng)網(wǎng)絡系統(tǒng)的并行性,但是只增加輸入特征圖通道進行卷積并行僅輸出一個特征圖通道數(shù)據(jù),導致對輸入特征圖通道數(shù)據(jù)的利用率較底,每計算一個輸出特征圖通道數(shù)據(jù)就需要從DDR中讀取所有輸入特征圖通道數(shù)據(jù),設卷積層i的輸入特征圖通道數(shù)為Xi,輸出特征圖通道數(shù)為Yi,進行一層卷積計算,需要從DDR中讀取數(shù)據(jù)的次數(shù)Zi Zi=Xi數(shù)據(jù)的利用率較低,系統(tǒng)對外部讀取數(shù)據(jù)的DDR帶寬要交較高,為了提升讀取數(shù)據(jù)的復用率,采用M個輸出通道圖通道并行計算輸出,N個輸入特征圖通道數(shù)據(jù)進行復用同時計算出M個輸出特征圖通道,采用該方式下,卷積層i從DDR中讀取數(shù)據(jù)的次數(shù)變?yōu)橄率?.2,對讀取數(shù)據(jù)的帶寬需求減M倍。在進行N輸入特征圖通道,M輸出特征圖通道并行計算,導致整個卷積層的結果按照M個通道分塊存儲,而非傳統(tǒng)連續(xù)存儲。 Zi=Xi與系統(tǒng)的并行結構適配的存儲方式為采用N個輸入緩存模塊和N個緩存填充預處理模塊,N個并行模塊將輸入特征圖數(shù)據(jù)傳遞給N×M個卷積計算模塊,同時在卷積的運算過程中,由于權重的共享,權重數(shù)據(jù)的需求較少,對圖像數(shù)據(jù)的需求量較大,因而圖像數(shù)據(jù)存儲占用FPGA端的DDR存儲,為了減少對DDR帶寬的占用,權重數(shù)據(jù)從嵌入式系統(tǒng)上cpu端進行數(shù)據(jù)的傳輸,同時設置權重緩存模塊提高權重數(shù)據(jù);為了滿足后續(xù)對M個輸出特征圖通道的激活函數(shù)以及池化處理,同樣采用M個并行激活函數(shù)、池化以及輸出緩存模塊。在采用多輸入特征圖通道、卷積核以及多輸出特征圖通道同時并行計算時,整個系統(tǒng)的計算能力大幅度提高,但是該方案帶來了數(shù)據(jù)需求量的增加,同時由于輸入特征圖通道并行度為N,當卷積層的輸入特征圖通道數(shù)大于N,不能一次得到卷積輸出結果,需要將輸入特征圖通道循環(huán)計算,等待所有輸入特征圖通道計算結束并進行累加才能得到最終的卷積輸出。采用傳統(tǒng)的計算過程,會導致帶寬的浪費,如圖1.18所示,設輸入特征圖通道個數(shù)為nN,一次計算輸入特征圖并行通道個數(shù)為N,因此卷積完成需要循環(huán)n次,設第一批N個輸入特征圖通道的卷積輸出計算結果為A,如果將臨時結果A寫入DDR,等待第二批N輸入特征圖通道卷積結果B計算輸出,需要從DDR中讀取上一批次結果A進行累加,如圖中紅色框內(nèi)讀寫DDR數(shù)據(jù),整個卷積過程會循環(huán)n次無用讀寫DDR,這樣就增添的帶寬需求,降低了DDR的利用率,引起了DDR存儲帶寬不足的問題。圖1.18兩批N輸入特征圖通道卷積計算過程針對該問題,本改變傳統(tǒng)的計算存儲模式,在神經(jīng)網(wǎng)絡系統(tǒng)中加入臨時緩存模塊,將卷積數(shù)據(jù)分布存儲在M個臨時緩存中,采用該緩存提高數(shù)據(jù)復用率解決了DDR帶寬的問題。緩存主要存儲卷積臨時結果,其計算流程圖如圖1.19所示,第一批次N個輸入特征圖通道數(shù)據(jù)卷積完成后與臨時緩存數(shù)據(jù)進行累加(初始化為0),并判斷是否完成卷積,如果沒有就繼續(xù)等待下批次卷積結果進行累加,以此疊加,如果卷積完成則將結果進行激活函數(shù)操作,同時清空緩存數(shù)據(jù)為0,隨后判斷是否池化,最后將M個輸出特征圖通道卷積結果寫入DDR,判斷本層卷積是否完成,沒有完成就進行循環(huán)計算余下的輸出特征圖通道卷積,采用該設計減少了臨時卷積結果對DDR讀寫的操作,提高了DDR讀寫的利用率,解決了帶寬不足問題。圖1.19加入臨時卷積計算流程圖1.2.2分布卷積計算設計在卷積網(wǎng)絡內(nèi)部加入臨時緩存模塊,減少了DDR帶寬不足問題,然而緩存過大會導致對片上資源的需求高,而且隨著圖像尺寸的增大,緩存也會依次增加,假設輸入圖像大小為500×500數(shù)據(jù)位寬為16位,輸出通道并行度為16,系統(tǒng)需要的緩存大小為7.62MB(500×500×16×16Bit),由于在芯片內(nèi)部設計SRAM的集成面積大,不能設計大規(guī)模緩存。針對此問題,本文提出了輸入卷積特征圖分塊卷積的運算策略。進行卷積操作時,輸入特征圖通道數(shù)據(jù)時不是一次性執(zhí)行完全部特征圖的卷積,而將輸入特征圖分為上、中、下三大塊進行卷積。如圖1.20所示,小的圖像在臨時緩存中能夠完全緩存下,進行全部卷積,對于大圖像進行分塊卷積,先卷積輸入特征圖的上半部分,等全部輸入特征圖通道數(shù)據(jù)卷積結束并累加完成后將臨時緩存的結果輸出到DDR中,清空臨時緩存開始卷積計算中間部分,依次類推,最后卷積最后的下層部分完成整個輸入特征圖卷積。圖1.20輸入特征圖分塊卷積模型該運算過程將圖1.1的二維循環(huán)變?yōu)槿S循壞,其偽代碼如圖1.21所示,將輸入特征圖通道和輸出特征圖通道二維循環(huán)結構,變?yōu)槿S循環(huán)結構增加一層輸入特征圖上、中、下循環(huán)。圖1.21卷積循環(huán)操作偽代碼采用此運算模塊可以大幅度減少緩存的需求,小的緩存可以滿足所有輸入特征特征圖數(shù)據(jù),例如設輸入特征圖大小為500×500,緩存大小為2MB時,可以將圖像分為四部分進行卷積,先卷積圖像第一部分0-130行,卷積結束后,繼續(xù)循環(huán)卷積第二部分131-260行,依次卷積261-390以及391-500部分。該結構可以根據(jù)片上內(nèi)存大小進行修改設計,將卷積分塊進行,卷積結果分布存儲,卷積完成的部分存入DDR,未完成的存入到臨時緩存,同時由于輸出通道的并行,輸出緩存?zhèn)€數(shù)與并行度M相同,未完成的臨時結果分別存儲在M個緩存中,如圖1.22所示。圖1.22分塊卷積的分布存儲采用該架構卷積需要注意各部分的填充,在計算上部分時,要注意上邊沿以及左右邊沿的填充操作,但是下邊沿不填充,但是根據(jù)卷積核的大小需要多讀?。↘/2)行中間部分數(shù)據(jù)組成完正的卷積窗口;中間部分上下邊沿不需要填充但是需要多讀取幾行數(shù)據(jù)找到卷積的窗口數(shù)據(jù)以及注意左右邊沿的填充;下層部分上邊沿無需填充但需要進行多讀取幾行數(shù)據(jù),左右以及下邊沿需要進行填充操作組成卷積所需的窗口數(shù)據(jù)。例如卷積核大小為3×3,在進行上部分下邊沿卷積時,需要多讀取1(3/2)行數(shù)據(jù)組成窗口數(shù)據(jù)。如圖1.23所示,在進行上部分卷積計算時,為零保證卷積窗口數(shù)據(jù)的準確性,需要多讀取一行待計算的輸入特征通道數(shù)據(jù)
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2026陜西寧強縣漢江源景區(qū)招聘考試參考試題及答案解析
- 2026西安經(jīng)開第十四小學舞蹈教師招聘考試備考試題及答案解析
- 2026四川德陽市第六人民醫(yī)院(東汽醫(yī)院)面向社會招聘編外人員10人考試參考試題及答案解析
- 2026磨憨開發(fā)投資有限責任公司市場化選聘高級管理人員2人(云南)考試備考題庫及答案解析
- 2026福建莆田市城廂區(qū)考核招聘編內(nèi)新任教師20人考試參考試題及答案解析
- 2026重慶合川區(qū)人民醫(yī)院招聘8人考試備考試題及答案解析
- 2026年甘肅蘭州紅古區(qū)醫(yī)保局招聘公益性崗位人員考試備考題庫及答案解析
- 2026渭南市富平縣和諧幼兒園招聘(4人)考試備考試題及答案解析
- 2026年桂林師范高等??茖W校單招綜合素質(zhì)考試備考題庫帶答案解析
- 2026海南??谑旋埲A區(qū)勞動就業(yè)和社會保障管理中心招聘公益性崗位工作人員4人考試參考試題及答案解析
- 肝癌課件簡短
- 業(yè)務協(xié)同考核管理辦法
- DBJT 61-42-2016 智能建筑工程施工工藝標準
- 操盤手勞動合同附加協(xié)議
- DB37∕T 4269-2020 輸變電工程施工企業(yè)安全生產(chǎn)風險分級管控和事故隱患排查治理體系實施指南
- 2025年中學生守則及中學生日常行為規(guī)范
- 工地試驗室安全知識培訓課件
- 醫(yī)藥展會活動方案
- 口腔前牙即刻種植技術要點
- 泌尿系CTU增強掃描技術
- 麻醉術后健康教育
評論
0/150
提交評論