面向CNN加速器层间效率优化的设计空间探索

《Array》:Design space exploration for layer-specific efficiency enhancement in CNN accelerators

【字体: 时间:2026年02月21日 来源:Array 4.5

编辑推荐:

  本研究聚焦于在特定FPGA上部署卷积神经网络时,如何在有限的带宽和资源约束下充分利用片上资源以维持加速器的高效运行这一核心挑战。作者团队提出了一种软硬件协同设计的自动化方法,开发了一个可灵活配置的加速器架构并构建了一个设计空间探索(DSE)引擎,旨在为目标网络和目标FPGA设备找到最优配置。该方法能通过软件指令配置层特定的数据缓存大小,从而提升DSP计算效率,使加速器性能持续逼近峰值计算能力。实验表明,该方法预测的执行时间与实测结果偏差仅3.8%,且在资源利用效率和整体性能上较现有方法最高提升了1.83倍。

  
人工智能浪潮席卷全球,以ResNet、Transformer为代表的深度神经网络在图像识别、自然语言处理等领域取得了巨大成功。然而,这些成功往往伴随着极高的计算代价,这给它们在资源受限的边缘设备(如智能手机、嵌入式系统)上的部署带来了巨大挑战。为了提升神经网络的推理效率,硬件加速器应运而生。其中,现场可编程门阵列(FPGA)因其设计灵活性和低功耗特性,在神经网络加速领域备受青睐。然而,将卷积神经网络高效部署到目标FPGA板上并非易事,它面临一个关键难题:如何充分利用FPGA有限的片上资源,同时确保加速器在外部内存带宽等约束下仍能高效运行?这背后是几个棘手的现实问题。
首先,资源利用率失衡是一个常见瓶颈。许多现有加速器为了提高性能,过分聚焦于提升数字信号处理器(DSP)的利用效率,却导致逻辑切片(slices)或块随机存取存储器(BRAM)被过度占用,反而限制了DSP资源的可用空间。其次,神经网络不同卷积层之间,其计算特征和带宽需求存在显著的层间差异。由于不同层卷积核大小各异,其权重加载延迟变化很大,这使得DSP常常需要等待数据加载,从而降低了计算效率。最后,当前的软硬件协同设计仍然处于强定制化、局部优化但系统级协调不足的阶段,算法设计与硬件实现往往是割裂的,限制了效率和可扩展性。正是这些问题,严重阻碍了FPGA加速器的广泛应用。
为了系统性解决上述挑战,来自复旦大学微电子学院的研究人员开展了一项关于“为CNN加速器中特定层效率提升进行设计空间探索”的研究,旨在构建一个能够自动适应不同网络与FPGA的、高效的硬件/软件协同设计框架。这项工作的成果以论文形式发表在《Array》期刊上。
为了开展这项研究,作者团队开发了一套包含软件和硬件两部分的完整方案。在硬件层面,他们设计了一个单核CNN加速器架构,该架构具有可配置的缓存结构和计算单元,通过在不同维度配置展开策略,可以灵活调整DSP数量、特征图缓存大小和权重缓存大小,从而最大化目标FPGA芯片的片上资源利用率。其核心计算单元是处理单元(PU)阵列,每个PU包含一组由处理元件(PE,采用DSP实现) 组成的乘累加(MAC)阵列、算术逻辑单元和池化逻辑。为了高效利用BRAM资源,所有缓存都采用了乒乓缓冲机制。在软件层面,他们开发了一个设计空间探索(DSE)算法,用于分析每个卷积层的参数,并在指定FPGA芯片上确定加速器的最优架构配置。该算法通过精确建模资源消耗、计算时间和缓存访问时间,来评估在给定FPGA上推断目标CNN网络的最优指令参数。研究采用了基于分块的数据流来优化带宽利用,并设计了神经网络计算流,通过CPU侧的多线程实现数据传输与FPGA可编程逻辑(PL)计算的交叠。实验在多种网络架构和FPGA设备上进行验证。
2. 我们的加速器概览
加速器系统由软件部分的DSE引擎和硬件部分的异构计算平台(包含CPU和FPGA加速器)构成。DSE引擎集成了资源利用模型和推理时间模型,用于确定最优硬件配置和指令参数。硬件平台则是一个可重构架构,包含专用DDR控制器、缓存、卷积核、专用逻辑单元、指令存储和控制单元等,能够通过配置处理单元(PU)和PE的数量以及缓存深度来适应不同FPGA设备。
3. 我们加速器的硬件平台
硬件平台的核心是一个可配置卷积核,由多个PU、共享的输入特征图(IFM)缓存、输出特征图(OFM)缓存、多个权重缓存和共享控制逻辑组成。每个PU内部采用三级流水线,并支持深度可分离卷积、逐点卷积和空洞卷积等多种卷积类型,还能通过矩阵加法层支持残差连接。通过软件配置的控制器控制数据读取序列,加速器能够适应现代CNN架构中大多数常用的计算层。乒乓缓存单元通过将物理缓存划分为两个逻辑区域,实现读写操作的并发,从而重叠计算和数据传输,提升效率。数据仲裁单元负责管理IFM、权重和OFM数据在片外DDR内存访问的优先级(权重 > IFM > OFM),以确保数据访问的连续性。
4. 数据流
研究采用了基于分块的卷积方法,将特征图和卷积权重划分为独立的块。这种无数据依赖性的分块连接计算机制,允许在DSP执行有效计算的同时预加载后续数据块。通过精心调整卷积和特征图块的大小,可以使计算时间大于或等于数据传输时间,从而最大限度地提高DSP效率,避免其因等待数据而空闲。在神经网络计算流中,主机CPU负责传递权重、指令和预处理后的特征图到FPGA并启动计算,同时利用CPU端多线程处理多张图片,以重叠数据传输和PL端计算,进一步减少预处理时间。
5. 用于加速器设计的设计空间探索
加速器提供了多种可配置参数,包括PU和PE的数量、输入/输出特征图缓存深度以及权重缓存深度。软件指令则为每一层指定数据块加载参数。DSE引擎通过资源消耗模型和CNN推理时间模型,将性能优化表述为一个多目标组合优化问题,旨在最小化CNN推理时间,同时满足FPGA的DSP、BRAM和LUT资源限制,并确保数据加载和导出操作能在加速器计算时间内完成。
5.1 资源利用模型
资源模型定量评估不同配置对DSP、BRAM和LUT资源使用的影响。DSP总消耗取决于PE和PU的数量。BRAM消耗分为IFM缓存、OFM缓存和权重缓存三部分,其大小由缓存宽度和深度决定,宽度与PE、PU数量及位宽相关,深度则受可用BRAM资源限制。LUT总消耗则通过一个经验分析模型进行估算,主要由控制逻辑、PU阵列、AXI总线和DDR控制器消耗构成。
5.2 数据传输时间与计算时间模型
数据传输时间包括IFM、权重和OFM的传输时间。计算时间模型则用于平衡数据加载时间和计算时间。通过调整配置参数,DSE算法能够确保数据加载和结果导出的总时间不超过可用DSP计算时间,从而最大化DSP的利用效率。实验结果表明,该DSE算法能够在72.4秒内找到最优配置,且其性能预测误差在实测结果的3.8%以内。
通过在一系列不同的神经网络和FPGA平台上的实验验证,研究人员提出的方法展现出了卓越的通用性和高效性。所设计的加速器能够兼容多种网络和FPGA,实现了DSP和BRAM利用率均超过80%。特别是在Xilinx KCU1500平台上运行YOLOv3网络时,在200MHz频率下实现了2518.68 GOPs的吞吐量,与对比方法[11]相比,性能提升了2.2倍。这项研究的意义在于,它提出了一套完整的、自动化的软硬件协同设计流程,有效解决了FPGA CNN加速器设计中资源失衡、层间差异和软硬件协同不足三大核心挑战。通过精确的建模和高效的设计空间探索,该方法能够为目标网络和FPGA硬件快速找到接近最优的配置,显著提升了加速器的资源利用效率和整体性能,为在实际场景中高效、灵活地部署CNN模型提供了强有力的工具和方法论支持。
相关新闻
生物通微信公众号
微信
新浪微博

知名企业招聘

热点排行

    今日动态 | 人才市场 | 新技术专栏 | 中国科学人 | 云展台 | BioHot | 云讲堂直播 | 会展中心 | 特价专栏 | 技术快讯 | 免费试用

    版权所有 生物通

    Copyright© eBiotrade.com, All Rights Reserved

    联系信箱:

    粤ICP备09063491号