论文部分内容阅读
随着大数据时代的到来,与传统的机器学习相比,具有更多隐含层的卷积神经网络具有更复杂的网络结构和更强的特征学习以及特征表达能力。自从引入卷积神经网络以来,它在计算机视觉、语音识别以及自然语言处理领域取得了显著的成果。为了增强卷积神经网络的准确率,越来越深的网络结构被设计出来,但是随之而来的是参数量和计算量的急剧增加,这导致CPU、GPU等通用计算平台面临性能、能效挑战。为了解决性能以及能效的问题,针对于卷积神经网络的专用加速器越来越成为研究的热点。然而现在的卷积神经网络加速器还存在问题。在硬件层面,现代的卷积神经网络加速器主要通过提高运行频率与增加计算单元个数来提升算力,其已经面临诸如计算单元利用率低下以及可扩展性差等问题。在软件层面,很多卷积神经网络加速器还在加速一些低效率的卷积神经网络比如AlexNet与VGG16,由于对计算资源和存储资源的大量需求,这些卷积神经网络已经被更先进的计算机视觉应用抛弃。针对于上述的硬件问题,本文提出一种可灵活配置、动态扩展的多线程架构,并针对多线程架构设计全新的访存模式。针对于软件问题,本文将MobileNet这一紧凑型卷积神经网络作为目标网络之一。本文的主要工作如下:1.本文通过分析卷积神经网络的计算模式,提出一种数据流可重构的计算模块。该模块可通过指令进行数据流、计算单元以及存储的动态配置,支持常规卷积层、激活层、池化层、深度卷积层、点卷积层以及全连接层这六种计算模式。2.本文提出一种针对于卷积神经网络的多线程架构,可实现滑动窗口与输出通道两个维度的并行计算。该架构将计算单元阵列抽象成线程,每个线程处理一个滑动窗口。线程内部实现多个输出维度的并行计算,线程之间实现滑动窗口的并行计算。同时该架构线程内部特征图共享,线程之间权重共享,减少了对于片上内存以及访存带宽的需求。3.在多线程架构的基础上,本文提出一种行访存模式,可减少加速器访存次数。经试验得出,以LeNet为目标网络时,使用该访存模式可以获得1.6倍的加速比。同时该架构具备良好的动态扩展性,32线程与4线程相比,可获得3.83倍的加速比。未获得线性加速比的原因在于,线程数目的增加只能线性加速计算过程,无法线性加速访存过程。与同类设计相比,该架构的吞吐量和能量效率分别为1.28倍和2.82倍。4.本文提出的加速器支持MobileNet独有的深度卷积层和点卷积层,同时进行批归一化层和点卷积层的融合。经试验得出,以MobileNet为目标网络时,该架构具有良好的动态扩展性,32线程与4线程相比,可获得3.58倍的加速比。未获得线性加速比的原因同上。与同类设计相比,该架构的吞吐量和能量效率分别为3.61倍和1.16倍。