中圖分類號:TP183 文獻標志碼:A 文章編號:1001-3695(2025)06-027-1801-06
doi:10.19734/j. issn.1001-3695.2024.10.0418
CNN multidimensional fusion data reuse method for reconfigurable arrays
Zhang Xiaofana?,Jiang Lin?,Li Yuancheng?,Sheng Mingweib (a.Colegeofiaamp;foatinTooClfompueceamp;Tcology,Xi'UiestofSee logy,Xi’an710600,China)
Abstract:Reconfigurablearrayarchitecturescombinetheflexibilityof general-purposeprocesors withthehigh energyefficiencyof dedicated hardware,making themanidealsolution forcomputation-and memory-intensiveapplications suchasconvolutional neuralnetwork(CNN).However,ncreasingcomputationaldemandsaisememoryacessoverhead,itingeficiencygains.Toaddressthis,thispaperproposeda CNN-orientedmultidimensionaldatareuse method forreconfigurablearrays.Byutilizing intra-computing-unitdata cyclicreuseandinter-unitdata pulsationtransfer,itachieveddatareuseacross bothcomputingunitsandarraydimensions.Taskswitching wasenabledthrougharryreconfigurationtofacilitatemultidimensional datareuse.Experimentalresultsonthe VirtexUltraScale440board showthatthis methodreduces memoryaccess byup to 69.4% ,improves computational speed byover 16.2% ,and achievesa computingunitutilizationrateof 94.1% .These results demonstrate thathis method enhances datareuseforCNNonreconfigurablearrys,enabling eficienthardware acceleration.
Key words:convolutional neural network;reconfigure structure;data reuse;paralel acceleration
0引言
近年來,隨著人工智能研究的興起,卷積神經(jīng)網(wǎng)絡(luò)(convo-lutionalneuralnetwork,CNN)憑借其出色的特征提取能力和良好的并行性,在圖像分類、目標檢測等領(lǐng)域得到了廣泛應(yīng)用[1]。CNN內(nèi)部包含大量重復(fù)的乘累加操作,可重構(gòu)處理器[2.3],因其規(guī)則的并行結(jié)構(gòu)和靈活的配置能力,在CNN計算研究中展現(xiàn)出顯著優(yōu)勢。但是,由于應(yīng)用場景中的高密集計算[4]和頻繁訪存特性,自重構(gòu)結(jié)構(gòu)的性能受存儲容量[5]和帶寬的限制日益嚴重。在如CNN這種高密集計算應(yīng)用中,數(shù)據(jù)搬移的能耗已經(jīng)超出計算開銷。中央處理器和片外存儲器間數(shù)據(jù)移動的能耗[]比浮點運算多兩至三個數(shù)量級。
高效的數(shù)據(jù)復(fù)用是降低CNN在可重構(gòu)結(jié)構(gòu)上的能耗,緩解訪存矛盾和提高計算效率的一種解決方法[8]。文獻[9]提出了一種權(quán)重映射方法,實現(xiàn)了子數(shù)組中行列的復(fù)用,但存在靈活性較低的問題,無法在多個處理單元并行執(zhí)行。文獻[10]提出了基于滑窗卷積的數(shù)據(jù)復(fù)用方法,實現(xiàn)了訪存時間的降低,但缺乏對多個卷積并行執(zhí)行的討論。文獻[11]在計算單元維度利用CNN分布式存儲特點,設(shè)計了不同尺寸卷積的數(shù)據(jù)復(fù)用方法,但未充分利用不同的計算資源。文獻[12]通過數(shù)據(jù)路由臨時重用本地數(shù)據(jù),隱藏片外訪問延遲,但該方法卻難以在分支和層間這一維度進行數(shù)據(jù)重用。文獻[13]提出了一種存儲訪問優(yōu)化方案,通過數(shù)據(jù)路由臨時重用本地數(shù)據(jù),以支持跨步操作減少訪存時間。然而,其在不同層之間的數(shù)據(jù)、操作數(shù),以及理論上支持的最大數(shù)量差異很大,因此,該方法會使資源利用率較低。文獻[14]基于輸入數(shù)據(jù)的重復(fù)特征,通過多個計算單元共享相同輸入的方法重用數(shù)據(jù),但其側(cè)重于陣列內(nèi)計算單元間這一維度的數(shù)據(jù)復(fù)用。文獻[15]提出了一種動態(tài)重用數(shù)據(jù)的方法,避免了CNN不同層間計算時不必要的數(shù)據(jù)搬移,降低了訪存開銷,但該方法在可重構(gòu)陣列實現(xiàn)時難以在單個計算單元充分復(fù)用數(shù)據(jù)。
綜上所述,這些方法進行數(shù)據(jù)復(fù)用時,大多側(cè)重于CNN單個卷積內(nèi)部計算、多個卷積并行計算和不同層間計算銜接中的某一維度。但在可重構(gòu)陣列下,單一維度的數(shù)據(jù)復(fù)用策略無法兼顧單個計算單元、計算單元間和陣列重構(gòu)時的數(shù)據(jù)復(fù)用。在CNN加速過程中,這種局限導(dǎo)致無法充分發(fā)揮可重構(gòu)陣列配置靈活、并行加速的優(yōu)勢,難以高效利用計算資源并復(fù)用數(shù)據(jù),從而顯著增加了訪存開銷。
本文創(chuàng)新性地針對可重構(gòu)陣列結(jié)構(gòu)提出了一種融合的數(shù)據(jù)復(fù)用方法,實現(xiàn)在CNN多個計算維度上的數(shù)據(jù)復(fù)用。首先,通過分析卷積循環(huán)嵌套的計算特征,設(shè)計了單個處理單元循環(huán)調(diào)用重疊數(shù)據(jù)的復(fù)用方法。然后,通過數(shù)據(jù)脈動傳輸?shù)姆绞剑龟嚵兄懈魈幚韱卧⑿杏嬎?,實現(xiàn)陣列維度的數(shù)據(jù)復(fù)用。最后,通過任務(wù)切換、陣列重構(gòu)的方式實現(xiàn)數(shù)據(jù)依賴算子間的數(shù)據(jù)復(fù)用,形成多維融合的數(shù)據(jù)復(fù)用方法。實驗結(jié)果表明,本文提出的多維融合數(shù)據(jù)復(fù)用方法在資源利用率和算法運算效率上都有較大提升。
1面向可重構(gòu)陣列的CNN數(shù)據(jù)復(fù)用需求分析
1.1 CNN卷積數(shù)據(jù)復(fù)用分析
在CNN中,計算量體現(xiàn)在對不同尺寸卷積操作的處理。卷積操作本質(zhì)上是卷積核對特征圖的各小區(qū)域進行過濾,以提取區(qū)域特征,如圖1所示。卷積核在特征圖的行、列方向上以固定步長滑動窗口,直到遍歷完整個特征圖,從而完成該卷積核的卷積操作。
在進行卷積操作的過程中,由于片上存儲資源的限制,特征圖中重疊部分的數(shù)據(jù)需要反復(fù)從片外存儲加載,從而帶來了很大的訪問延遲,也會過多占用片上存儲空間,造成嚴重的資源浪費。如圖1所示,當一個卷積核進行 3×3 卷積,在滑動窗口以步長 S=2 移動的過程中,相鄰兩次滑窗的重疊區(qū)域共1列,這意味著兩次卷積運算對應(yīng)的像素窗口中有1/3的重疊區(qū)域,即存儲發(fā)送的數(shù)據(jù)重復(fù)率超過 30% 。當卷積核大小為 3× 3且步長 S=1 時,兩次相鄰滑窗對應(yīng)的重疊區(qū)域達 2/3 ,數(shù)據(jù)重復(fù)率超過 65% 。因此,復(fù)用數(shù)據(jù)在靠近計算單元的地方保存并進行多次取用,可以很大程度上減少訪存次數(shù),提高計算效率。
通常,特征圖的特征提取并不依賴于單一卷積核。如圖2所示,不同卷積核對特征圖進行滑窗卷積,當輸入相同,且彼此間沒有數(shù)據(jù)依賴時,輸入數(shù)據(jù)能夠在并行處理的過程中實現(xiàn)復(fù)用。
CNN中相鄰的兩個卷積層間,數(shù)據(jù)存在緊耦合關(guān)系。上一個卷積層的輸出特征圖作為下一個卷積層的輸入特征圖,存在數(shù)據(jù)復(fù)用的可能性。一個卷積模塊完成全部計算后,其輸出如果不經(jīng)過合理排布無法直接被下一層使用,而直接輸出至片外存儲再進行數(shù)據(jù)重排,會導(dǎo)致訪存時間大幅增加,嚴重限制了硬件計算效率。
通過分析CNN在執(zhí)行卷積計算時的特征,可以將其數(shù)據(jù)處理歸納為三個維度:
a)相同卷積核在特征圖進行滑窗卷積時出現(xiàn)數(shù)據(jù)重疊;b)不同卷積核進行并行卷積時所需求的特征數(shù)據(jù)重復(fù);c)相鄰卷積層間,輸入輸出存在依賴關(guān)系。這些計算特征本質(zhì)都是數(shù)據(jù)復(fù)用。本文基于上述三個維度,創(chuàng)新性地提出了一種多維融合的數(shù)據(jù)復(fù)用策略,以實現(xiàn)各維度的協(xié)調(diào)優(yōu)化。
1.2可重構(gòu)陣列處理器對數(shù)據(jù)復(fù)用的支持
CNN單一維度的數(shù)據(jù)復(fù)用方法存在難以充分利用可重構(gòu)陣列結(jié)構(gòu)存儲、計算資源的問題。本文基于H型傳輸網(wǎng)絡(luò)的可重構(gòu)陣列處理器[16],創(chuàng)新性地利用其可靈活配置的計算單元和多層次的存儲機制,融合實現(xiàn)CNN多個計算維度的數(shù)據(jù)復(fù)用。
可重構(gòu)處理器如圖3所示,包括可編程總控制器、存儲控制器、可重構(gòu)處理元(element,PE)陣列、PE緩存等。
首先,如圖3中數(shù)據(jù)通路 ① ,總控制器中從上位機獲得配置信息。其次,總控制器進一步根據(jù)配置信息從DDR獲得可重構(gòu)PE陣列、存儲控制器、輸入輸出及權(quán)重緩存單元的配置信息,按數(shù)據(jù)通路 ② 完成不同模塊配置信息的下發(fā)[17]。然后,PE陣列收到啟動信號后,從輸入、權(quán)重緩存加載數(shù)據(jù)并計算。同時,將輸出數(shù)據(jù)按數(shù)據(jù)通路 ③ 傳輸至輸出緩存,與存儲控制器交互。最后,當總控制器監(jiān)測到PE陣列處于閑態(tài)時,再次從DDR取下一次任務(wù)的配置信息,按數(shù)據(jù)通路下發(fā)各模塊新配置,實現(xiàn)任務(wù)切換。
可重構(gòu)PE陣列多樣的配置方法能夠支持CNN內(nèi)部不同算子的多種計算需求。PE分為外圍雙模PE和內(nèi)部數(shù)據(jù)流PE,相互之間可以采用鄰接互連方式傳遞數(shù)據(jù)。前者支持指令流和數(shù)據(jù)流兩種模式。指令流模式下可根據(jù)H樹下發(fā)指令進行向量乘、加及取數(shù)等操作。數(shù)據(jù)流模式可以根據(jù)配置信息的不同改變PE功能,支持乘加、池化、激活等操作,可在單個數(shù)據(jù)流PE中實現(xiàn)卷積、歸一、激活多個模塊的連續(xù)完整計算。
PE陣列外圍的多層次存儲便于CNN算子調(diào)用所需數(shù)據(jù)。存儲模塊包括存儲控制器、輸人輸出數(shù)據(jù)緩存單元、權(quán)重緩存單元以及PE內(nèi)部的多個寄存器。預(yù)處理的數(shù)據(jù)首先存儲在外部DDR中,存儲控制器按照指令主動發(fā)起對DDR和SRAM的讀寫操作并轉(zhuǎn)發(fā)輸入、輸出緩存數(shù)據(jù)。輸入緩存單元可被陣列外圍PE通過指令直接訪問,并將數(shù)據(jù)暫存于內(nèi)部寄存器。
PE陣列可以通過總控制器完成重構(gòu),實現(xiàn)CNN不同計算模塊的快速切換、數(shù)據(jù)復(fù)用??偪刂破髫撠?zé)下發(fā)PE陣列的指令和控制信息,并接收PE陣列反饋的狀態(tài)信息。當陣列完成一輪計算時,總控根據(jù)PE陣列的狀態(tài)信息下發(fā)下一輪計算所需指令,此時上一輪計算的輸入或輸出數(shù)據(jù)暫存在可重構(gòu)陣列的存儲中。
2CNN數(shù)據(jù)復(fù)用方法的多維度設(shè)計
2.1不同維度數(shù)據(jù)復(fù)用方法的融合
本文針對CNN卷積計算不同階段的特征,基于數(shù)據(jù)脈動、陣列重構(gòu)的方法,在可重構(gòu)陣列結(jié)構(gòu)的PE、陣列、陣列重配置多個維度進行數(shù)據(jù)復(fù)用方法設(shè)計。
在單個卷積核進行卷積時,使用存儲向PE傳輸數(shù)據(jù)單發(fā)復(fù)用的策略,減小滑窗卷積反復(fù)加載相同數(shù)據(jù)帶來的訪存消耗。當多個卷積核在陣列并行執(zhí)行時,彼此之間的輸入數(shù)據(jù)完全相同。因此,結(jié)合可重構(gòu)陣列結(jié)構(gòu)的特性,利用輸入數(shù)據(jù)在PE間脈動策略實現(xiàn)數(shù)據(jù)復(fù)用。當不同卷積模塊切換時,耦合的卷積模塊間存在明顯的數(shù)據(jù)依賴關(guān)系。因此,可以通過可重構(gòu)陣列的任務(wù)切換實現(xiàn)片上緩存的數(shù)據(jù)復(fù)用,避免重復(fù)訪問片外存儲帶來的時間開銷。
2.2可重構(gòu)陣列下多維融合的數(shù)據(jù)復(fù)用方法
多維融合的數(shù)據(jù)復(fù)用方法在可重構(gòu)結(jié)構(gòu)上,統(tǒng)一實現(xiàn)CNN不同操作及任務(wù)切換的示意圖如圖4所示。圖中深色PE為負責(zé)加載數(shù)據(jù)的指令流PE,淺色PE為負責(zé)計算的數(shù)據(jù)流 PE 。
首先,采用7路并行方式,通過陣列左側(cè)一列指令流PE,并行獲取相鄰滑窗間卷積所需的數(shù)據(jù)。在行方向上,利用鄰接互連寄存器實現(xiàn)輸人數(shù)據(jù)的脈動傳輸,確保單個卷積核所需的輸入數(shù)據(jù)按行傳輸。同時,在列方向上,權(quán)重信息通過廣播方式并行下發(fā)至7列數(shù)據(jù)流PE中。在數(shù)據(jù)流PE內(nèi),輸入數(shù)據(jù)和權(quán)重進行對應(yīng)位乘累加,實現(xiàn) 7×7=49 路的多卷積核并行計算。
然后,當數(shù)據(jù)流PE完成乘累加操作后,在本地繼續(xù)按配置對結(jié)果進行歸一、激活操作。各數(shù)據(jù)流PE計算結(jié)果按列方向脈動傳輸至陣列上方的一行指令流PE行,按順序輸出并拼接生成輸出特征圖。在整個過程中,數(shù)據(jù)輸入、權(quán)重下發(fā)、處理計算、結(jié)果輸出均通過流水線方式同時執(zhí)行,確保高效計算。
最后,由總控制器監(jiān)控外圍指令流PE的狀態(tài)進行任務(wù)切換。當總控檢測到PE處于閑置狀態(tài)時,總控通過H樹對各PE下發(fā)新的配置信息進行陣列重構(gòu)。同時將當前層的輸出作為下一層計算的輸入,由可重構(gòu)陣列左側(cè)一列PE按指令加載,開始新一輪計算。
綜上所述,本文基于可重構(gòu)陣列結(jié)構(gòu),通過PE內(nèi)部重用數(shù)據(jù)、PE間脈動數(shù)據(jù)、陣列間配置切換三種方式,形成協(xié)調(diào)配合的多維度數(shù)據(jù)復(fù)用方法。
3不同維度數(shù)據(jù)復(fù)用方法實現(xiàn)
本文基于三個遞進的維度對數(shù)據(jù)復(fù)用方法進行系統(tǒng)設(shè)計。各維度之間的數(shù)據(jù)復(fù)用策略不僅實現(xiàn)了相互兼容,還補充了彼此的不足,從而有效地提高了CNN中間數(shù)據(jù)的復(fù)用效率,顯著
降低了訪存開銷,并提升了計算性能。
3.1單個卷積在PE的數(shù)據(jù)復(fù)用
當PE執(zhí)行卷積核為 3×3 ,步長 S=2 的卷積操作時,存儲控制器連續(xù)發(fā)送橫向滑窗卷積所需的每一列數(shù)據(jù)至PE緩存。在發(fā)送完第一次滑窗的3列數(shù)據(jù)后,下一次滑窗卷積所需的第一列數(shù)據(jù)即為本次計算的第三列數(shù)據(jù)。由于需要復(fù)用的該列數(shù)據(jù)存儲在PE 緩存buffer2中,所以,可以通過配置PE陣列,讀取buffer2數(shù)據(jù)為第二次滑窗卷積計算的第一列數(shù)據(jù)。然后,再繼續(xù)讀取buffer2中的第二列數(shù)據(jù)。當讀取到buffer1數(shù)據(jù)時,buffer2中的數(shù)據(jù)后續(xù)卷積不再使用,由路由單元對其進行更新。
PE循環(huán)復(fù)用數(shù)據(jù)指令如算法1所示,其中 s 為滑動步長,K 為循環(huán)次數(shù), X 為填充后的特征圖寬高, c 為特征圖維度, n 為滑窗卷積次數(shù), 為PE內(nèi)部鄰接互連寄存器。
算法1 S=2 復(fù)用取數(shù)指令
輸入:循環(huán)次數(shù) K ,取數(shù)地址 x
輸出:PE取得數(shù)據(jù)存至鄰接互連寄存器 。
K=[(X-3)/S+1]×(c/4) ;//循環(huán)次數(shù)
for(n=0;nn1 ,vrs1; LDB xn2 ,vrs1; LDB xn3 ,vrs1; LDB x2Γ(n+1) vrsl ;
end for
與步長為2的卷積不同,步長為1的 3×3 卷積在第二次滑窗時復(fù)用的數(shù)據(jù)包括第一次滑窗的第2列和第3列。這種情況下,需要復(fù)用的部分列數(shù)據(jù)在PE緩存中已被更新,無法使用步長為1的卷積數(shù)據(jù)復(fù)用方式。因此,考慮采用數(shù)據(jù)暫存在PE內(nèi)部寄存器中的策略,指令如算法2所示, vrs2.3 為內(nèi)部向量寄存器。在兩次滑窗卷積間,通過將重疊的兩列數(shù)據(jù)按存儲發(fā)送先后分別暫存至內(nèi)部寄存器和PE緩存,避免了存儲控制器反復(fù)發(fā)送相同數(shù)據(jù),節(jié)約了片上存儲資源,緩解了訪存矛盾,提高了計算效率。
算法2 S=1 復(fù)用取數(shù)指令
輸入:循環(huán)次數(shù) K ,取數(shù)地址 x
輸出:PE取得數(shù)據(jù)存至鄰接互連寄存器 。
K=[(X-3)/S+1]×(c/4) ;//循環(huán)次數(shù)
u r(n=0;nn1 ,vrs1; LDB xn2 : LDB xn2 vrs2 LDB xn3
: LDB xn3 ,vrs3; LDB vrs2,vrs1 : LDB vrs3,vrs1 : LDB
,vrs1;
end for
3.2并行卷積的可重構(gòu)數(shù)據(jù)復(fù)用
并行卷積間的數(shù)據(jù)復(fù)用如圖5所示,可重構(gòu)PE陣列左側(cè)一列指令流PE,根據(jù)內(nèi)部配置從PE緩存按列加載不同尺寸卷積所需的數(shù)據(jù)。單個指令流PE按上述的數(shù)據(jù)復(fù)用方法取數(shù)至鄰接互連寄存器后,向東傳輸數(shù)據(jù),以脈動的形式讓同一行的數(shù)據(jù)流PE接收輸入數(shù)據(jù)。同時,陣列向2至8列PE按列廣播下發(fā)不同卷積核的權(quán)重信息,與輸入數(shù)據(jù)在數(shù)據(jù)流PE進行乘累加計算,從而實現(xiàn)49個數(shù)據(jù)流PE并行計算一個卷模塊內(nèi)不同位置的滑窗卷積。計算結(jié)果直接在數(shù)據(jù)流PE完成后續(xù)歸一、激活操作,實現(xiàn)連續(xù)計算。
待完成一次滑窗卷積后,每個數(shù)據(jù)流PE將本地和下方數(shù)據(jù)流PE的計算結(jié)果通過鄰接互連向上脈動。最終由陣列最后一行指令流PE接收數(shù)據(jù),按順序輸出至PE輸出緩存中指定地址,并拼接成下一個卷積模塊所需的三維特征圖。
3.3基于陣列重構(gòu)的層間數(shù)據(jù)復(fù)用
卷積不同卷積層間通過可重構(gòu)陣列實現(xiàn)數(shù)據(jù)復(fù)用的流程,如圖6所示。當總控制器通過H樹下發(fā)配置后,PE陣列進行重構(gòu),各PE按配置信息分別執(zhí)行取數(shù)、計算、傳輸?shù)炔僮鳌4鎯刂破鲃t同步更新緩存中的buffer,并將權(quán)重數(shù)據(jù)廣播下發(fā)至可重構(gòu)PE陣列。計算結(jié)果隨后依次傳送至存儲控制器,以確保其中的數(shù)據(jù)順序符合下一層的輸入要求。總控制器監(jiān)測到PE陣列反饋狀態(tài)為閑態(tài)時,通過可編程控制單元執(zhí)行任務(wù)切換指令,更新各級存儲以及PE陣列的配置信息,完成陣列重構(gòu)。
Fig.6Process for implementing data reuse through module reconstruction一輪計算完成后,當前模塊計算結(jié)果可直接作為下層輸入,在片上存儲中被調(diào)用,從而避免其輸出至片外,實現(xiàn)不同任務(wù)切換時的數(shù)據(jù)復(fù)用。
4實驗與結(jié)果分析
4.1 實驗環(huán)境搭建
實驗使用NewtouchElectronics公司的VirtexUltraScale440FPGA開發(fā)板作為實驗平臺,實物如圖7所示。該開發(fā)板包含可編程邏輯單元數(shù)量約 5.54M,88.6 Mbit內(nèi)存,2880個DSP資源,滿足本實驗的硬件要求。在 150MHz 時鐘下,通過對經(jīng)典CNN模型進行測試,驗證本文提出的多維融合數(shù)據(jù)復(fù)用方法在可重構(gòu)陣列結(jié)構(gòu)的性能
4.2 實驗結(jié)果分析
實驗從三個方面對所提出的數(shù)據(jù)復(fù)用方法進行分析。首先,統(tǒng)計CNN不同尺寸卷積的訪存時間及重構(gòu)切換周期,評估本文方法在各計算階段的訪存開銷。其次,通過與其他方法對比,驗證本文方法在加速典型CNN模型AlexNet時的有效性。最后,分析本文方法在可重構(gòu)結(jié)構(gòu)下進行CNN計算時的PE利用率及資源消耗情況,以證明其在可重構(gòu)結(jié)構(gòu)實現(xiàn)的優(yōu)勢。
4.2.1訪存及重構(gòu)周期分析
實驗所用網(wǎng)絡(luò)AlexNet是一個經(jīng)典的CNN結(jié)構(gòu),如圖8所示,該網(wǎng)絡(luò)主要計算為5個不同尺寸的卷積層。前兩層使用11×11 和 5×5 大小卷積核,步長分別為4和1,提取圖像中的低級特征;后三個卷積層使用 3×3 大小卷積核,步長為1,提取更高級的特征。除此之外,實驗還選取了 3×3 和 7×7 步長為2的卷積,分析本文方法對CNN不同尺寸、不同步長卷積操作的數(shù)據(jù)復(fù)用效果。在可重構(gòu)結(jié)構(gòu)實現(xiàn)CNN不同尺寸卷積的訪存周期如圖9所示。輸入為 224×224×3 大小三維數(shù)據(jù)進行卷積時,與不使用本文數(shù)據(jù)復(fù)用方法相比,存儲下發(fā)數(shù)據(jù)周期降低了 32% 以上。在進行步長為1的 3×3 卷積時,PE陣列訪問存儲周期從4358下降至1290,對比原始下發(fā)周期節(jié)省了69.4% 的時間。在執(zhí)行大尺寸卷積,如 5×5.11×11 大小的卷積時,訪存周期下降也在 59% 以上??梢钥闯霰疚乃岢龅臄?shù)據(jù)復(fù)用方法在可重構(gòu)陣列降低了CNN多種尺寸卷積的訪存開銷。
本文方法也兼顧了CNN層間的數(shù)據(jù)復(fù)用,使得不同層計算可緊密銜接,減小了數(shù)據(jù)遷移所帶來的時間損耗。表1體現(xiàn)了不同尺寸卷積間通過本文數(shù)據(jù)復(fù)用方法實現(xiàn)任務(wù)切換的周期數(shù)。可以看出,不同卷積核大小、不同步長的模塊平均重構(gòu)時間為6個周期,占總計算周期數(shù)的 1% 以內(nèi)。在如 11×11 大尺寸卷積計算時,平均重構(gòu)周期占平均計算周期的 0.1% 以內(nèi)。說明本文所提出的數(shù)據(jù)復(fù)用方法,在通過陣列重構(gòu)實現(xiàn)不同尺寸卷積層任務(wù)切換這一維度降低了CNN訪存開銷。
4.2.2 網(wǎng)絡(luò)運行周期對比
表2體現(xiàn)了在可重構(gòu)結(jié)構(gòu)下,不同數(shù)據(jù)復(fù)用方法實現(xiàn)典型CNNAlexNet卷積層的計算周期數(shù),以及本文相對其加速比。文獻18在可重構(gòu)陣列結(jié)構(gòu)實現(xiàn)了卷積的并行計算,但每個PE存在多個周期加載重復(fù)數(shù)據(jù)的情況,無法充分發(fā)揮自重構(gòu)陣列配置靈活的優(yōu)勢。文獻[19]在行方向復(fù)用輸人數(shù)據(jù)實現(xiàn)了并行加速,但需要反復(fù)加載不同列權(quán)重數(shù)據(jù),未實現(xiàn)數(shù)據(jù)的充分復(fù)用。文獻[20]在進行層間不同尺寸的卷積切換時并不靈活,計算資源利用率較低,導(dǎo)致計算周期較長。對比上述方法,本文conv1層至conv5層的執(zhí)行速度均有所提升,其中conv2、conv4層速度提升最為明顯,最大分別達 50.7% 、46.9% 。這表明,本文提出的多維數(shù)據(jù)復(fù)用方法對 3×3 步長為1的卷積計算速度提升效果尤為突出,對其他尺寸的卷積速度提升也在 16.2% 以上,顯著減少了訪存時間。
4.2.3PE利用率及相關(guān)硬件資源開銷分析
通過本文設(shè)計的多維融合數(shù)據(jù)復(fù)用方法,實現(xiàn)了數(shù)據(jù)在PE單元間的充分復(fù)用,使得典型CNN模型在可重構(gòu)陣列上的映射具有較高的PE利用率。
表3展示了不同網(wǎng)絡(luò)模型算子和輸人大小下的PE利用率情況,其中VGGNet、LeNet和AlexNet在可重構(gòu)陣列上映射的PE利用率均達到 97.2% 。當輸入特征圖尺寸較小時,不需要所有行、列PE參與脈動傳輸,因此部分PE單元出現(xiàn)閑置。例如,MobileNet在輸入為 16×16×16 進行 3×3 步長為1的卷積時,PE利用率為 80.5% 。
圖10展示了表3中數(shù)據(jù)所得到的PE平均利用率與相關(guān)工作的對比。文獻[18]對 3×3.5×5.11×11 多個尺寸的卷積進行了并行映射并復(fù)用數(shù)據(jù),但各PE的數(shù)據(jù)復(fù)用策略無法在陣列維度上應(yīng)用,導(dǎo)致多個PE閑置。文獻[21]通過PE共享數(shù)據(jù)提高了硬件利用率,但在卷積核尺寸變化時無法調(diào)整參數(shù),導(dǎo)致小尺寸卷積時寄存器資源浪費。文獻[22]采用混合數(shù)據(jù)重用方法實現(xiàn)了多尺寸卷積的數(shù)據(jù)復(fù)用,但未討論不同尺寸卷積切換時的數(shù)據(jù)復(fù)用,PE利用率仍有提升空間。采用本文提出的多維融合數(shù)據(jù)復(fù)用方法,PE平均利用率達到94.1% ,相比文獻[18,21,22],提升了 2.3~14.9 百分點。這一提升表明,該方法在可重構(gòu)結(jié)構(gòu)中能夠更加充分地調(diào)用計算資源,提高模型的執(zhí)行效率。
本文方法與國內(nèi)外基于FPGA實現(xiàn)CNN數(shù)據(jù)復(fù)用的硬件資源消耗對比如表4所示。文獻[23]在FPGA應(yīng)用其并行映射方法實現(xiàn)CNN并開發(fā)了相應(yīng)編譯工具,可適應(yīng)不同的算子,但未充分結(jié)合硬件結(jié)構(gòu),功耗、硬件資源消耗遠高于本文。文獻[24]雖然功耗低于本文,但缺乏對陣列維度的數(shù)據(jù)復(fù)用討論。文獻[25]工作頻率高于本文,相關(guān)硬件資源消耗也更少,但其基于動態(tài)重構(gòu)的并行加速方法陣列利用率不高,對層間數(shù)據(jù)的復(fù)用也存在限制。文獻[26]采用靜態(tài)內(nèi)存分配策略,在較高的頻率下實現(xiàn)了CNN計算并進行層間數(shù)據(jù)復(fù)用,但功耗達本文的4倍以上,同時DSP資源多消耗近一倍。上述對比說明,本文方法在自重構(gòu)陣列結(jié)構(gòu)下能以較低功耗實現(xiàn)CNN多個維度的數(shù)據(jù)復(fù)用,同時在硬件資源消耗方面也具有優(yōu)勢。
5結(jié)束語
針對可重構(gòu)陣列結(jié)構(gòu)中實現(xiàn)CNN訪存開銷大、計算效率低的問題,本文提出了一種多維融合的數(shù)據(jù)復(fù)用方法。該方法基于數(shù)據(jù)循環(huán)調(diào)用與脈動傳輸策略,通過充分挖掘CNN主要計算間的并行性,在陣列中實現(xiàn)數(shù)據(jù)復(fù)用。同時,通過陣列重構(gòu)機制實現(xiàn)任務(wù)切換,形成多維度的數(shù)據(jù)復(fù)用方法。實驗結(jié)果表明,在可重構(gòu)陣列處理器上應(yīng)用該方法,典型CNN模型的PE平均利用率達 94.1% 。相比單一維度的數(shù)據(jù)復(fù)用方法,片上訪存開銷降低了 32% 以上,最高達 69.4% ,網(wǎng)絡(luò)運行速度平均提升了 16.4% 。與現(xiàn)有CNN數(shù)據(jù)復(fù)用方法相比,本文創(chuàng)新性地在可重構(gòu)陣列統(tǒng)一實現(xiàn)了PE、陣列、陣列重構(gòu)多個維度的數(shù)據(jù)復(fù)用,充分發(fā)揮了自重構(gòu)結(jié)構(gòu)配置靈活、并行加速的優(yōu)勢。在使用較少硬件資源的前提下,成功實現(xiàn)了良好的CNN加速效果,對于CNN在可重構(gòu)陣列結(jié)構(gòu)中的高效實現(xiàn)具有重要意義。
參考文獻:
[1]陶惜婷,葉青.融合CNN和Transformer的并行雙分支皮膚病灶 圖像分割[J].計算機應(yīng)用研究,2024,41(8):2554-2560. (TaoXiting,YeQing.Paralleldual-branchimagesegmentationof skin lesions fusing CNN and Transformer[J]. Application ResearchofComputers,2024,41(8):2554-2560.)
[2]蔣林,張丁月,李遠成,等.基于憶阻器的1T1M可重構(gòu)陣列結(jié) 構(gòu)[J].電子與信息學(xué)報,2023,45(8):3047-3056.(JiangLin, ZhangDingyue,Li Yuancheng,etal.1T1Mreconfigurablearray structure based on memristor[J].Journal of Electronicsamp; Information Technology,2023,45(8):3047-3056.)
[3]LuYanan,LiuLeibo,ZhuJianfeng,etal.Architecture,challenges and applications of dynamic reconfigurablecomputing[J].Journal ofSemiconductors,2020,41(2):021401.
[4]劉炎培,朱運靜,賓艷茹,等.邊緣環(huán)境下計算密集型任務(wù)調(diào)度 研究綜述[J].計算機工程與應(yīng)用,2022,58(20):28-42.(Liu Yanpei,Zhu Yunjing,Bin Yanru,etal.Review of research on computing-intensive task schedulingin edge environments[J]. ComputerEngineeringand Applications,2022,58(20):28-42.)
[5]朱家揚,蔣林,李遠成,等.基于可重構(gòu)陣列的CNN數(shù)據(jù)量化方 法[J].計算機應(yīng)用研究,2024,41(4):1070-1076.(ZhuJiayang,JiangLin,LiYuancheng,etal.CNN data quantizationmethod based on reconfigurable array[J].Application Research of Computers,2024,41(4):1070-1076.)
[6]Mohaidat T,Khalil K.A survey on neural network hardware accelerators [J].IEEETranson Artificial Intelligence,2024,5(8):3801-3822.
[7]Wei Shaojun,Lin Xinhan,Tu Fengbin,et al.Reconfigurability,why it matters in AI tasks processing:a survey of reconfigurable AI chips [J].IEEE Trans on Circuitsand Systems l:Regular Papers, 2023,70(3):1228-1241.
[8]Lai YK,HuangLingcheng. An efficient convolutional neural network acceleratoronFPGAplatform[C]//Procof IEEE International Conference onConsumer Electronics.Piscataway,NJ:IEEE Press,2O24:1-2.
[9]Wang Shang,Liang Feng,Cao Qi,et al.A weight mapping strategy formore fully exploiting data in CIM-based CNN accelerator[J]. IEEE Trans on Circuits and Systems Il: Express Briefs,2024, 71(4):2324-2328.
[10]Alantali F, Halawani Y, Mohammad B,et al. SLID: exploiting spatial localityin input data as acomputational reuse method for fficient CNN[J]. IEEE Access,2021,9:57179-57187.
[11]朱育琳,蔣林,王欣,等.可重構(gòu)結(jié)構(gòu)下卷積神經(jīng)網(wǎng)絡(luò)加速研究 與設(shè)計[J].傳感器與微系統(tǒng),2023,42(4):67-70.(ZhuYulin,JiangLin,Wang Xin,et al.Acceleration researchand design of CNN with reconfigurable structure [J]. Transducer and Microsystem Technologies,2023,42(4): 67-70.)
[12] Kang D,Kang D, Ha S.Multi-bank on-chip memory management techniques for CNN accelerators [J]. IEEE Trans on Computers, 2022,71(5): 1181-1193.
[13] Chen Liaochuan,Li Zhaofang,Lin YJ,et al. A1.93TOPS/Wdeep learning processor with areconfigurable processng element array based on SRAM access optimization [C]//Proc of IEEE Asia Pacific Conference on Circuits and Systems.Piscataway,NJ:IEEE Press, 2022:15-19.
[14]Islam MN,SresthaR,ChowurySR.Energy-effcientadhigh throughput CNN inference engine based on memory-sharing and datareusing for edge applications[J].IEEE Trans on Circuits and Systems l: Regular Papers,2024,71(7): 3189-3202.
[15]KimM,OhK,ChoY,etal.Alow-latencyFPGAacceleratorfor YOLOv3-tiny with flexible layerwise mapping and dataflow[J]. IEEE Trans on Circuitsand Systems l: Regular Papers,2024, 71(3) : 1158-1171.
[16]Yang Kun,JiangLin,ShanRui,etal.RMSRM:rea-time monitoringbased self-reconfiguration mechanism in reconfigurable PE array [J]. The Journal of Supercomputing,2024,80(5): 7071-7101.
[17]Li Kangle, Jiang Lin,Huang Xingjie,et al. DMPRA: a dynamic reconfiguration mechanism for a dual-mode programmable reconfigurable array architecture [J]. Journal of Circuits,Systems and Computers,2023,32(9):2350157.
[18] Shan R,Jiang L,Deng JY,et al.Paralel design of convolutional neural networks for remote sensing images object recognition based on data-driven array processor[J]. The Journal of China Universities of Postsand Telecommunications,2020,27(6): 87-100.
[19]Liu Youyao, Shi Qifei, Wang Haihao,et al. A convolutional computingdesign using pulsating arrays[C]//Proc of the19th International Conference on Natural Computation,F(xiàn)uzzy Systems and Knowledge Discovery. Piscataway,NJ: IEEE Press,2023:1-5.
[20] Zhang Qianqian, Zhang Xin. Design of a low-latency general-purpose CNN hardware accelerator based on pulsed arrays on FPGAs [C]// Proc of the 2Oth International Conference on Natural Computation, Fuzzy Systems and Knowledge Discovery.Piscataway,NJ: IEEE Press, 2024: 1-8.
[21]Chen K C,Liao Yisheng. A reconfigurable deep neural network on chip design with flexible convolutional operations [C]// Proc of the 15th IEEE/ACM International Workshop on Network on Chip Architectures.Piscataway,NJ:IEEE Press,2022:1-5.
[22] Chen KJ, Yang Y C,Liao Yisheng.An arbitrary kernel-size applicable NoC-based DNN processor design with hybrid data reuse [C]// Proc of IEEE International Midwest Symposium on Circuits and Systems.Piscataway,NJ: IEEE Press,2021: 657-660.
[23]Hadjis S,Olukotun K. TensorFlow tocloud FPGAs:tradeoffs foraccelerating deep neural networks[C]//Proc of the 29th International Conference on Field Programmable Logic and Applications.Piscataway,NJ: IEEE Press,2019: 360-366.
[24]Vinh TQ,Hai D V. Optimizing convolutional neural network accelerator on low-cost FPGA[J].Journal of Circuits,Systems and Computers,2021,30(11) : 2150193.
[25]Xiong Hao,SunKelin, Zhang Bing, et al.Dep-sea:areconfigurable accelerator for classic CNN[J].Wireless Communications and Mobile Computing,2022,2022(1):4726652.
[26]Nguyen D T, Je H,Nguyen TN,et al. ShortcutFusion: from TensorFlow to FPGA-based accelerator with a reuse-aware memory allocation for shortcut data [J]. IEEE Trans on Circuits and Systems l: Regular Papers,2022,69(6):2477-2489.