关键词:
非还原压缩
编码行复用
卷积神经网络
硬件加速
摘要:
卷积神经网络(Convolution neural networks,CNN)因其在图像识别、语音识别和无人驾驶等方面具有的卓越性能而被国内外广泛研究。随着其性能和精度的提升,CNN的层数和计算量显著上升。经过线性整流函数后,CNN含有超过50%的零值数据。零值数据的计算不会改变计算结果,但是它消耗较高的能耗和计算周期。因此,零值数据的非还原压缩方法和压缩数据的复用方法成为目前急需解决的问题。本文以此为研究对象,从以下三个方面开展研究工作:(1)多路径包连接电路提升传输效率;(2)非还原压缩的编译码方法降低功耗和计算周期;(3)编码行复用方法提升数据的利用效果;(4)基于低功耗高性能的CNN硬件加速器的设计。主要工作有:(1)设计多路径包连接电路针对传统包连接电路(Packet connect circuit,PCC)的(X,Y)路由算法导致的多播传输的节点数量少、传输效率低,不能同时实现多种传输方式等情况,以及无法满足CNN每一层传输数据量大、传输方式复杂的要求,本文设计多路径包连接电路提升传输效率。多路径包连接电路采用两条多播输入通道和一条单播输出通道实现数据的输入-计算-输出的相互独立,结合多播和路由接收模块的判断机制实现多种传输方式。实验结果表明,与传统PCC相比,通道建立时间降低60.4%,数据包传输时间提升2.53x。(2)设计非还原压缩的编译码方法针对传统编译码方法在CNN领域中压缩率低,传输和计算时的再还原,以及零值在计算中仍无法实际跳过等情况,本文设计非还原压缩的编译码方法并实现其硬件化设计。编码时,该方法根据卷积计算的特性,对输入数据的每一行进行0/1编码,保留每行有效值个数,提升压缩率;在译码时,该方法根据有效值个数将编码与对应的有效值发送进入计算单元,计算单元根据编码进行移位译码计算,达到跳过零计算的目的,提升计算速度。实验结果表明,总的压缩率达到58.91%,其中,单层最高的压缩率达到48.64%。(3)设计编码行复用方法针对目前尚未有对压缩数据进行数据复用方法的情况,本文提出编码行复用方法。该方法充分挖掘压缩数据的数据量低的优点,利用卷积核在输入特征图向下滑动过程中产生的行数据复用,采用分时复用方式提升编码数据的利用率。实验结果表明,与Eyeriss的固定行复用相比,片外存储的读写次数降低45%。(4)设计低功耗高性能的CNN硬件加速器根据多路径包连接电路、非还原压缩编译码方法、编码行复用方法,本文设计低功耗高性能的CNN硬件加速器,设计多路径包连接电路、编码电路、控制电路、发送电路、计算电路,使用配置链配置每一层卷积的计算参数。实验结果表明,计算速度与Eyeriss相比,加速比为14.8x。