面向可重构阵列的CNN多维融合数据复用方法
2025-08-03张骁帆蒋林李远成盛明威



中图分类号: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引言
近年来,随着人工智能研究的兴起,卷积神经网络(convo-lutionalneuralnetwork,CNN)凭借其出色的特征提取能力和良好的并行性,在图像分类、目标检测等领域得到了广泛应用[1]。CNN内部包含大量重复的乘累加操作,可重构处理器[2.3],因其规则的并行结构和灵活的配置能力,在CNN计算研究中展现出显著优势。但是,由于应用场景中的高密集计算[4]和频繁访存特性,自重构结构的性能受存储容量[5]和带宽的限制日益严重。在如CNN这种高密集计算应用中,数据搬移的能耗已经超出计算开销。中央处理器和片外存储器间数据移动的能耗[]比浮点运算多两至三个数量级。
高效的数据复用是降低CNN在可重构结构上的能耗,缓解访存矛盾和提高计算效率的一种解决方法[8]。文献[9]提出了一种权重映射方法,实现了子数组中行列的复用,但存在灵活性较低的问题,无法在多个处理单元并行执行。文献[10]提出了基于滑窗卷积的数据复用方法,实现了访存时间的降低,但缺乏对多个卷积并行执行的讨论。文献[11]在计算单元维度利用CNN分布式存储特点,设计了不同尺寸卷积的数据复用方法,但未充分利用不同的计算资源。文献[12]通过数据路由临时重用本地数据,隐藏片外访问延迟,但该方法却难以在分支和层间这一维度进行数据重用。文献[13]提出了一种存储访问优化方案,通过数据路由临时重用本地数据,以支持跨步操作减少访存时间。然而,其在不同层之间的数据、操作数,以及理论上支持的最大数量差异很大,因此,该方法会使资源利用率较低。……
