论文部分内容阅读
深度卷积神经网络(CNNs)已经被广泛的应用在各个领域,由于其特殊的计算过程,使其具有局部感知和权值共享的机制,进而在处理图像任务时具有优异的性能。卷积神经网络在多智能应用上达到了极高的精度,比如图像分类,目标识别,语义识别以及行为识别等。但是随之而来的是计算量和功耗的大幅提升。卷积神经网络的计算量巨大是因为在一个维度比较高的卷积层中,其需要同时处理数以百计的滤波器和通道的数据,这就会导致处理器和存储器之间大量数据的移动。而一个性能优异的卷积神经网络则是由成百上千层的卷积层叠加而成,其数据传输和计算的量极为巨大。虽然可以通过现有的技术,比如CPU中使用的单指令多数据(SIMD)和GPU中的使用的单指令多线程(SIMT)技术来满足卷积神经网络对计算量和吞吐量的需求。但是即使采用了这些并行化技术,卷积神经网络的计算以及由于数据的传输所带来的功耗依然很高,并没有解决计算效率的问题。特别是针对IOT终端计算,要求具有低功耗、实时性、成本低、架构优、框架灵活等特点,显然现有的CPU+GPU的通用计算框架具有高功耗高延时等缺点,所以并不能满足IOT终端计算的需求。为了满足以上这些需求,专用的神经网络芯片应运而生。本文为了解决通用计算框架的这些问题,设计出了一款针对神经网络的专用芯片(ASIC),采用了一种新的可重构的计算框架,并针对这种计算框架提出了一种名为垂直数据流[41](Vertical Date Streaming)的新数据流方式,主要研究成果如下:1.针对卷积神经网络计算的特点,提出了一种名为粗粒度可重构神经形态阵列(Coarse-Grained Reconfigurable Neuron Array,CGRNA)计算框架。该计算框架以人工神经处理单元为基本计算单元,通过与之相连的连续的移位寄存器组传输数据,并采用分布式的片上SRAM。该计算框架能够灵活实现各种结构的神经网络,并支持卷积层,全连层,以及池化层等操作。实验表明,该计算框架在很大程度上提高了神经网络的计算效率,特别是针对具有极高维度的卷积层,相比通用的计算框架,计算效率上会有极大的提升。2.针对粗粒度可重构神经形态阵列这种计算框架,提出一种垂直数据流的方式。该方法采用通过改变神经网络特征图的数据在内存中存储的方式,以及以垂直读取的存储方式,提高了特征数据以及权重数据的复用率,从而大大提高卷积神经网络的计算效率,降低了功耗,也降低了芯片内部逻辑控制的复杂度。实验结果表明,本数据流方式降低了卷积神经网络计算功耗以及计算延时,以及芯片的面积,最终降低了芯片成本。3.针对粗粒度可重构神经形态阵列这种计算框架以及垂直数据流的方式,提出了与之相应的专用指令集,使用该指令集可以实现任意由卷积层,全连层,池化层组成的神经网络。并能通过控制计算过程中的数据位宽,激活函数等参数,从而实现灵活可配置的特点。