论文部分内容阅读
现场可编程门阵列(Field Programmable Gate Arrays,FPGAs)因具有开发周期短、功耗低、可重构等优势而在图像处理、视频追踪、自主导航等领域中被广泛应用于卷积神经网络加速器设计的实现。卷积神经网络往往具有较高的资源及带宽需求。在温度方面,布局布线资源的不均匀分布易导致FPGA存在显著的片上温差,进而影响电路的可靠性及FPGA使用寿命;在性能方面,不同的并行策略会导致电路受到不同类型资源的限制,进而影响性能。由于FPGA的温度和性能优化对资源、访存及频率的需求互斥,温度和性能的制约关系使得二者的优化成为研究热点。本文从FPGA的温度优化、性能优化、温度及性能协同优化三个角度,研究卷积神经网络FPGA加速器设计的温度和性能。本文的主要贡献及创新性研究成果包括: 1.提出了一种基于实测温度的热点驱动FPGA布局优化方法。由于设计阶段的温度优化往往难以获得准确的片上温度分布,运行阶段的温度管理往往带来较大性能开销,因此,提出将实测温度反馈至布局阶段进行热点优化。首先,在运行阶段,通过可编程温度传感器获取未优化电路的准确温度分布。然后,对FPGA电路的布局进行一次性的热点优化调整。其中,该热点驱动的布局问题被建模为超二部图最小匹配问题,并采用启发式算法求解。最后将该方法实现在基于VTR-to-Bitstream的开源、商用混合设计流程上。该设计流程所支持的基准电路实验结果表明,通过加入用户可调的温度、性能权衡参数,温度优先的参数设置可降低片上最高温达7.75℃,改善热均匀性达14.52%;性能优先的参数设置可降低片上最高温达4.87℃,改善热均匀性达6.96%。 2.提出了一种跨层优化的卷积神经网络FPGA加速器性能优化方法。卷积神经网络往往具有较高的计算及带宽需求。通过循环分块、循环展开和循环调序可以有效提升层内计算和数据复用,通过引入流水级设计可以进一步提升网络层间的并行计算。然而,层间并行方面的计算效率和数据复用还有待发掘。因此,首先综合考虑层内和层间的计算资源利用率,提出跨层对齐策略,提升被占用资源的计算效率,降低运行周期数。然后针对各并行计算层的缓存需求,提出跨层保留策略,提升层间数据的片上复用,减小对外访存。最后对异构流式结构的设计空间探索问题建模,采用遗传算法、贪心算法嵌套的启发式算法求解。该方法在全精度AlexNet、VGG-Net和低精度BinaryNet的实验结果表明,所提设计方法可分别提升全精度与低精度网络的性能达4.13倍及6.03倍,说明对不同精度的卷积神经网络均能设计实现较高性能。 3.提出了一种利用实际温度裕度的卷积神经网络FPGA加速器设计方法。卷积神经网络FPGA加速器的性能由并行度及运行频率共同决定。然而,加速器的设计空间探索往往着重优化并行度,将频率设定为商用工具给出的保守频率值。由于实际应用场景的温度、电压及FPGA工艺偏差往往与保守预估存在较大误差,频率存在较高的提升空间。因此,首先对频率、并行度及其影响因素间的关系进行详细分析,建立资源与并行度间的量化建模。然后探索加速器在不同并行度下实际可达的最高频率,建立频率与并行度间的分析模型。最后对卷积神经网络的FPGA加速器设计进行问题抽象,提出可同时求解频率和并行度的设计空间探索方法。在深度神经网络AlexNet上的实验结果表明,所提方法可实现吞吐量达906.25GOPS,与国际上同类方法相比,提高了39%。