论文部分内容阅读
目前,通用处理器在神经网络处理方面性能不佳。现场可编程门阵列(FPGA)具有可重构、低功耗的特点,易于适配神经网络的计算过程。虽然神经网络通过稀疏连接、权重共享、池化采样等技术手段来降低运算的复杂度,但是依然具有计算密集和资源密集的特点,使之难以在资源有限的设备上部署应用。针对上述研究背景和问题,本文主要做了以下研究工作:1、大规模神经网络对资源的要求很高,无法在整体部署在FPGA设备上,本文通过分析神经网络的运算逻辑,将其分解为基本计算单元,并通过复用的方式在卷积运算控制器中嵌入池化采样控制器,减小控制器对资源的需求,使计算模块获得更多资源以提高计算密度。2、传统的神经网络加速器计算核心对通道个数敏感,在通道变化时,计算核心的加速效果并不理想。本文通过镜像树结构,将与通道相关的运算逻辑从硬件结构中分离出去,以保证运算效率。3、在卷积神经网络的反向传播过程中,特征图中有大量的零值元素,导致资源利用率和计算效率降低。因此,采取合适的压缩策略剔除特征图中的零值元素,以压缩存储空间并加快计算速度。实验结果表明,当精度为32位定点数/浮点数时,该实现方法的计算性能达到22.74GOPS。对比MAPLE加速器,计算密度提高283.3%,计算速度提高了 24.9%,对比MCA(Memory-Centric Accelerator)加速器,计算密度提高了 14.47%,计算速度提高了 33.76%,当精度为8-16位定点数时,计算性能达到58.3GOPS,对比LBA(Layer-Based Accelerator)计算密度提高了 8.5%。