论文部分内容阅读
近年来,随着深度学习的发展,卷积神经网络(Convolutional Neural Network,CNN)的硬件加速逐渐成为了研究的热门问题。可重构的加速器与通用CPU相结合的模式,既有通用性,又有针对具体问题情景的优化,成为一种高效地解决卷积神经网络加速问题的方案。但是,一方面商用CPU的专利授权费日益高昂,另一方面商用CPU与加速器各自的开发流程不兼容,有着开发流程复杂等问题,因此以RISC-V为代表的开源处理器+加速器的模式并结合全自动化设计方法,有助于更高效地进行CNN加速平台设计。为此,本文提出了一种基于RISC-V开源处理器的卷积神经网络加速结构及其硬件设计。本文首先通过对现有加速器结构,如加法树结构、脉动阵列结构、Eyeriss结构等进行分析,选取了综合性能较好的Eyeriss结构作为基础,之后在单个处理单元(Process Element,PE)内部、PE阵列的结构、PE阵列之间的并行、系统软硬件划分等四个层面进行研究。在单个PE层面,为了减少PE单元内部数据的移动,本文采用了维护循环数组指针的方式,提高了PE单元内部的运算效率。在PE阵列的层面,本文针对Eyeriss结构在卷积神经网络运行后期容易造成PE资源浪费的问题,提出了一种尺寸自适应的加速结构,有效提高了PE资源的利用率,进而对卷积神经网络起到了加速作用,此外也针对不同网络以及卷积层可能存在的Stride不同的情况进行了优化。在PE阵列之间并行的层面,本文利用输入输出混合并行的思想,分析了基于输入特征图和输出特征图的并行结构对带宽、缓存等的要求,最终在网络结构不改变的情况下设计了2×1×2的并行加速结构,在控制访存带宽的同时提高了加速效果。在系统软硬件划分方面,为了提高本文设计的灵活性,对系统的控制逻辑等进行了适当的划分,提高了系统对不同网络结构的适应性。本文在Rocket-Chip Emulator中对设计进行仿真,在Vivado软件中进行仿真和综合,测试结果表明:在使用本文结构的情况下前向流程的周期数缩减为串行的19.46%。相比普通Eyeriss结构,本文效果提高了22.3%。引入了输入输出特征图的并行结构后,一张图完成前向流程的周期数缩减为串行结构的11.6%,相比普通Eyeriss结构,本文效果提高了13.01%。实验结果验证了该结构在加速卷积神经网络方面的有效性,同时综合结果也说明硬件资源的消耗在可以接受的范围内。