论文部分内容阅读
随着互联网时代的到来,人类所产生的数据发生了前所未有的膨胀。用于处理数据的数据中心所能提供的算力也在极速增长。这就为训练更深层次的神经元网络提供了条件。深度神经网络能够从互联网所产生的大数据里获取并归纳其承载的丰富信息,并在越来越多的领域中发挥更着重大的作用。虽然更深的网络结构带来了网络能力的大幅提升,但其对处理器的计算性能,和计算能效也提出了更严苛的要求。对于通用处理器来说,CPU无法满足深度神经网络的性能需求,而GPU由于使用了过多的功耗而导致应用场景受限。定制硬件加速器是满足未来计算能效需求的重要发展方向。对于深度学习应用来说,由于其特殊的计算访存特征,使用通用处理器难以达到较高的执行效率。由此,本文以“深度学习算法硬件加速关键技术”为研究课题,探索适用于深度学习计算的加速器体系结构,解决深度学习算法所带来的性能与功耗需求。本文在研究的过程中,始终注重系统的均衡性考虑,致力提高计算资源的运行效率和访存资源的带宽利用率。保证在有限的存储带宽下,满足计算资源所需要的数据传输,保证系统整体的高效运行。本文的主要工作与创新点有:1.提出了一种基于链式矩阵乘法器的深度学习加速器核心计算部件结构。该结构可以覆盖典型深度学习应用90%以上的计算负载。并且针对链式乘法器在处理边缘分块较多的非均匀矩阵时,计算效率下降的问题,提出了一种负载特征敏感的动态可变规模矩阵乘法器结构以及一种面向非均匀矩阵的优化分块技术,明显的提高了链式矩阵乘法器的运行效率。2.针对卷积神经网络的计算模式,提出了一种流映射单元结构,将卷积层的操作映射到链式矩阵乘法器上,对计算进行细粒度的并行,有效的减轻了网络结构对加速器执行效率的影响,该单元的运行与乘法器链的计算可以同时进行,彻底消除了由数据重组带来的时间开销。此外还针对卷积神经网络的访存特征,提出了一种数据预取方法,该方法将卷积层原本随机的存储访问整合成连续地址的存储访问,在减少数据交互总量的情况下,还保证了对存储器访存带宽的利用率,显著提高了加速器的整体性能。3.通过对面向CPU/GPU的OpenCL CNN实现的分析,找到了该实现的瓶颈所在为访存行为。又通过对代码对FPGA OpenCL访存行为的影响进行探索,提出了数种提高FPGA OpenCL访存效率的编程规则。最终利用上述规则提出了一种高度优化的面向FPGA的CNN OpenCL实现,与原版本相比,获得了4.76×的加速比。