论文部分内容阅读
近年来,深度学习成功地应用在目标检测、图像识别、语音识别、自然语言处理等多个领域。由于需要大量的计算资源,深度学习相关算法主要在企业的服务器集群等计算性能高的设备中运行。随着物联网时代来临,深度学习需要在复杂的实际环境中落地,原本的软硬件解决方案无法适应复杂多变、实时性要求高的实际工程。为深度学习应用找到新的软、硬件解决方案是大家研究的重点。ARM作为一种最通用的移动端处理器具有开发周期短等优势。ARM NEON指令集最早被应用在多媒体处理等计算量密集型的应用,其单指令多数据的处理方式适合大规模的数据计算,因此被运用到处理深度学习应用上。本文以ARM cortex-A55为开发平台,研究以深度学习为特征提取层的目标检测网络的加速实现技术,主要研究内容如下:首先,研究深度学习及目标检测网络拓扑结构和深度学习加速技术。从深度学习的基本思想出发,以目标检测网络为深度学习的典型应用背景,详细分析网络的结构特点,分析技术难点。在神经网络加速上,研究目前深度学习网络轻量化方法,得出本文深度学习应用的软硬件解决办法。其次,完成高速并行的深度学习相关的基础运算。以ARM为硬件开发平台,实现半精度浮点数的使用、基本循环的设计、矩阵相乘设计、快速指数函数计算等基础运算。设计高速缓存优化方案,提高程序的时间局部性和空间局部性,为设计实时性的目标检测网络提供基础运算支持。再次,实现目标检测网络的前向传播。一方面,完成深度学习算子层的计算,包括卷积层、池化层、全连接层、Softmax层等。在卷积上实现了两种计算方式并进行对比,其中img2col方法比直接计算方法在缓存上有优势,winograd方法在算法复杂度上有优势。在池化层,设计新的模型数据存储结构。在全连接层,调用矩阵相乘的计算。在Softmax层,利用快速指数函数的计算。另一方面,设计计算图将算子层进行连接,完成整个目标检测网络的构建。最后,搭建实验平台。依据现有的实验条件,搭建验证系统的硬件和软件环境。在开发板上完成对比实验,得出实验结果。设计实验验证方法对本文设计目标检测网络进行验证,在计算性能、访存性能、算子性能、目标检测网络整体等方面进行分析,得出本文设计方案具有计算性能上的优势的结论。