一种基于模式频率统计编码的神经网络处理器及设计方法与流程

文档序号:11458956阅读:344来源:国知局
一种基于模式频率统计编码的神经网络处理器及设计方法与流程

本发明涉及神经网络模型计算的硬件加速技术领域,特别涉及一种基于模式频率统计编码的神经网络处理器及设计方法。



背景技术:

深度学习技术在近几年得到了飞速的发展,深度神经网络,尤其是卷积神经网络,在图像识别、语音识别、自然语言理解、天气预测、基因表达、内容推荐和智能机器人等领域取得了广泛的应用。

深度学习所得的深度网络结构是一种运算模型,其中包含大量数据节点,每个数据节点与其他数据节点相连,各个节点间的连接关系用权重表示。伴随神经网络复杂度不断提高,神经网络技术在实际应用过程中存在占用资源多、运算速度慢、能量消耗大等问题,因此该技术在嵌入式设备或低开销数据中心等领域应用时存在严重能效问题和运算速度瓶颈。采用硬件加速替代传统软件计算的方法成为提高神经网络计算效率的一种行之有效方式。主流的硬件加速方式包括通用图形处理器、专用处理器芯片和现场可编程逻辑阵列(fpga)等。

当前的深度神经网络在实际应用中网络规模越来越大、数据吞吐量越来越高、任务类型越来越复杂,这会导致神经网络处理器电路规模变大、数据传输效率降低、计算速度变差。现有技术实际应用时,在神经网络计算过程中存在大量数值为0的数据元素,这类元素经过乘法和加法等数据运算后对运算结果不产生数值上的影响,但是神经网络处理器在处理这部分数据元素时会占用大量片上存储空间、消耗多余传输资源并增加运行时间,因此难以满足神经网络处理器的性能要求。



技术实现要素:

针对现有技术的不足,本发明提出一种基于模式频率统计编码的神经网络处理器及设计方法。

本发明提出一种基于模式频率统计编码的神经网络处理器,包括:

至少一存储单元,用于存储操作指令与运算数据;

至少一计算单元,用于执行神经网络计算;

以及控制单元,与所述至少一存储单元、所述至少一计算单元相连,用于经由所述至少一存储单元获得所述至少一存储单元存储的操作指令,并且解析所述操作指令以控制所述至少一计算单元;

至少一个数据压缩单元,其中每个所述数据压缩单元与所述至少一计算单元相连,用于压缩根据所述运算数据获取的计算结果,并重新编码;

至少一数据解压单元,其中每个所述数据解压单元与所述至少一个计算单元相连,用于解压被压缩的运算数据。

所述运算数据包括原始特征图数据或中间层数据计算结果。

所述数据压缩单元,采用模式频率统计压缩编码的方式对压缩并编码后的所述计算结果进行存储。

所述编码的编码模式为根据神经网络计算过程中数据模式的出现频率,依据数据的稀疏性,将二进制数据中各位全部为零或者多位连续为零的数据采用短位数二进制数表示。

所述数据解压单元将采用模式频率统计压缩编码的数据解压并送至所述计算单元中。

本发明还提出一种基于模式频率统计编码的神经网络处理器的设计方法,包括:

设置至少一存储单元,存储操作指令与运算数据;

设置至少一计算单元,执行神经网络计算;

设置以及控制单元,与所述至少一存储单元、所述至少一计算单元相连,经由所述至少一存储单元获得所述至少一存储单元存储的操作指令,并且解析所述操作指令以控制所述至少一计算单元;

设置至少一个数据压缩单元,压缩根据所述运算数据获取的计算结果,并重新编码,其中每个所述数据压缩单元与所述至少一计算单元相连;

设置至少一数据解压单元,解压被压缩的运算数据,其中每个所述数据解压单元与所述至少一个计算单元相连。

所述运算数据包括原始特征图数据或中间层数据计算结果。

所述数据压缩单元,采用模式频率统计压缩编码的方式对压缩并编码后的所述计算结果进行存储。

所述编码的编码模式为根据神经网络计算过程中数据模式的出现频率,依据数据的稀疏性,将二进制数据中各位全部为零或者多位连续为零的数据采用短位数二进制数表示。

所述数据解压单元将采用模式频率统计压缩编码的数据解压并送至所述计算单元中。

由以上方案可知,本发明的优点在于:

本发明在神经网络处理系统中引入基于模式频率统计编码的数据压缩结构,从而降低片上存储开销、减小运算电路规模并提高运算效率,使得神经网络处理系统整体性能更高。

附图说明

图1是本发明提供的神经网络处理器结构框图;

图2是本发明提出的模式频率统计压缩编码格式图;

图3是本发明一种实施例中数据压缩单元结构示意图;

图4是本发明中数据压缩单元将数据压缩为模式频率统计压缩编码的过程示意图;

图5是本发明一种实施例数据解压单元结构示意图;

图6是本发明中数据解压单元解压数据示意图;

图7是本发明神经网络处理器进行神经网络计算的流程图。

具体实施方式

针对现有神经网络处理器的缺陷,本发明目的为提供一种基于模式频率统计编码的神经网络处理器及设计方法,该处理器在现有神经网络处理器系统中引入数据压缩单元,进而提升了神经网络处理器的运算速度及运行能量效率。

为实现上述目的,本发明提供的一种基于模式频率统计编码的神经网络处理器,包括:

至少一个存储单元,用于存储操作指令和运算数据;

至少一个计算单元,用于执行神经网络计算;以及控制单元,与所述至少一个存储单元和所述至少一个计算单元相连,用于经由所述至少一个存储单元获得所述至少一个存储单元存储的指令,并且解析该指令以控制所述至少一个计算单元;

至少一个数据压缩单元,其中每个数据压缩单元与所述至少一个计算单元相连,用于压缩运算数据,对运算数据重新压缩编码;

至少一个数据解压单元,其中每个数据解压单元与所述至少一个计算单元相连,用于解压被压缩的运算数据;

一种基于模式频率统计的压缩编码方式,神经网络处理过程中的中间数据采用所述模式频率统计编码进行存储和传输;

根据本发明提出的神经网络处理器,所述运算数据包括原始特征图数据或中间层数据计算结果;

根据本发明的神经网络处理,所述神经网络处理器进行神经网络计算时,数据压缩单元会将特征图数据或中间层计算结果整合映射成为数据压缩格式;

所述具有数据压缩格式的数据为神经网络计算过程中间计算结果,需要进行再次存储或被其他系统单元使用。

为了使本发明的目的、技术方案、设计方法及优点更加清楚明了,以下结合附图通过具体实施例对本发明进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。

本发明旨在提供一种基于模式频率统计编码的神经网络处理器,其在神经网络处理中引入基于模式频率统计编码的数据压缩结构,从而降低片上存储开销、减小运算电路规模并提高运算效率,使得神经网络处理系统整体性能更高。

本发明提供的神经网络处理器基于存储-控制-计算的结构;

存储结构用于存储参与计算的数据、神经网络权重及处理器操作指令;

控制结构包括译码电路与控制逻辑电路,用于解析操作指令,生成控制信号,该信号用于控制片上数据的调度与存储以及神经网络计算过程;

计算结构包括计算单元,用于参与该处理器中的神经网络计算操作,其中应包括数据检索结构,保证被压缩的数据在计算单元中能够正确地与相应权重进行计算。

图1为本发明提供的一种神经网络处理器系统101,该神经网络处理器系统101架构由七个部分构成,包括输入数据存储单元102、控制单元103、输出数据存储单元104、权重存储单元105、指令存储单元106、计算单元107和数据压缩单元108。

输入数据存储单元102用于存储参与计算的数据,该数据包括原始特征图数据和参与中间层计算的数据;输出数据存储单元104存储计算得到的神经元响应值;指令存储单元106存储参与计算的指令信息,指令被解析为控制流来调度神经网络计算;权重存储单元105用于存储已经训练好的神经网络权重,其中输入数据存储单元102及输出数据存储单元104包括压缩数据存储单元和模式编码存储单元两部分。

控制单元103分别与输出数据存储单元104、权重存储单元105、指令存储单元106、计算单元107相连,控制单元103获得保存在指令存储单元106中的指令并且解析该指令,控制单元103可根据解析指令得到的控制信号控制计算单元进行神经网络计算。

计算单元107用于根据控制单元103产生的控制信号来执行相应的神经网络计算。计算单元107与一个或多个存储单元相关联,计算单元107可以从与其相关联的输入数据存储单元102中的数据存储部件获得数据以进行计算,并且可以向与其相关联的输出数据存储单元104写入数据。计算单元107完成神经网络算法中的大部分运算,即向量乘加操作等。此外,由于载入到计算单元107中参与计算的数据格式为数据压缩格式,因此在计算单元107中还应包括数据检索子单元,该子单元用于保证被压缩的数据可以与权重正确计算。

数据压缩单元108用于参与数据压缩,对计算结果重新编码,采用模式频率统计压缩编码的方式进行存储。

数据解压单元109用于参与数据解压,将采用模式频率统计压缩编码的数据解压并送至计算单元中。

本发明提供一种基于模式频率统计的压缩编码方式,所述编码模式根据神经网络计算过程中数据模式的出现频率,依据数据的稀疏性,将二进制数据中各位全部为零或者多位连续为零的数据采用短位数二进制数表示。例如数据0x0000等,输出字全部为零,或其他包含多个连续零位的数据,如果采用全字长进行存储在一定程度上是硬件开销和能耗的浪费。将这种具有相似形式的数据以短字长的方式存储,存储空间及数据传输能耗将大大减小

图2为本发明提供的一种基于模式频率统计的编码方式,该编码方式包括编码前缀值和数据值两部分。以8bit数据为例,当数据数值为0时,编码前缀值为00,此时存储保留数据低四位0000,即数据长度为4;当8bit数据的高四位为零时,编码前缀值为01,此时存储保留数据低四位,即数据长度为4;当8bit数据的低四位为零时,编码前缀值为10,此时存储保留数据高四位,即数据长度为4;当8bit不属于上述三种模式时,编码前缀值为11,此时存储保留完整8bit数据,不具有压缩格式,即数据长度为8。

为表述方便,本发明仅以图2为例描述所提供基于模式频率统计编码方式,在设计实施时可根据数据数值或数据模式进一步细化,采用更多模式类型表示原始数据。

所述基于模式频率统计编码方式中,编码值存储在模式编码存储单元中,数据保存在压缩数据存储单元中。

图3为数据压缩单元结构示意图。数据压缩单元包括模式匹配单元、模式编码存储单元和压缩数据缓存单元。

图4为数据压缩单元将数据压缩为模式频率统计压缩编码的过程示意图。以数据为8bit为例,原始数据首先被载入至模式匹配单元中,模式匹配单元将原始与模式类型进行比对,生成编码前缀值和数据两部分,编码前缀值通过寄存器拼接后存储在模式编码存储单元中,数据存储在数据缓存单元中。数据存储时,以4bit为数据存储长度,即每个存储单元保留4bit数据,当编码值为11时,由于数据长度为8,因此需要占用两个存储单元。

图5为数据解压单元结构示意图。数据解压单元包括模式编码译码器、压缩数据偏移累加器、并行移位寄存器和并行译码器。

图6为数据解压单元进行数据解压的示意图。首先,存储在模式编码存储单元中编码前缀值接入至模式编码译码器中;编码前缀值译码结果接入压缩数据偏移累加器中,通过累加器对偏移量的累加得到压缩数据存储的偏移地址,从而在压缩数据中分割得到各个压缩数据值;压缩数据值接着载入到并行译码器中,并行译码器根据所对应的编码前缀值,将压缩数据扩展为数据原始值。

图7是本发明神经网络处理器进行神经网络计算的流程图,该方法包括:

步骤s1,控制单元对存储单元寻址,读取并解析下一步需要执行的指令;

步骤s2,根据解析指令得到的存储地址从存储单元中获取输入数据;

步骤s3,将数据和权重分别从输入存储单元和权重存储单元载入至计算单元;

步骤s4,解压单元将压缩数据解压恢复为原始数据;

步骤s5,计算单元执行神经网络运算中的运算操作;

步骤s6,数据压缩单元将计算结果重编码为数据压缩存储格式;

步骤s7,将以数据压缩存储格式存储的数据存储输出至存储单元中。

本发明能够提升神经网络处理系统的运算速度并降低能耗,使得神经网络处理系统性能更加高效。

本发明还提出一种基于模式频率统计编码的神经网络处理器的设计方法,包括:设置至少一存储单元,存储操作指令与运算数据;

设置至少一计算单元,执行神经网络计算;

设置以及控制单元,与所述至少一存储单元、所述至少一计算单元相连,经由所述至少一存储单元获得所述至少一存储单元存储的操作指令,并且解析所述操作指令以控制所述至少一计算单元;

设置至少一个数据压缩单元,压缩根据所述运算数据获取的计算结果,并重新编码,其中每个所述数据压缩单元与所述至少一计算单元相连;

设置至少一数据解压单元,解压被压缩的运算数据,其中每个所述数据解压单元与所述至少一个计算单元相连。

所述运算数据包括原始特征图数据或中间层数据计算结果。

所述数据压缩单元,采用模式频率统计压缩编码的方式对压缩并编码后的所述计算结果进行存储。

所述编码的编码模式为根据神经网络计算过程中数据模式的出现频率,依据数据的稀疏性,将二进制数据中各位全部为零或者多位连续为零的数据采用短位数二进制数表示。

所述数据解压单元将采用模式频率统计压缩编码的数据解压并送至所述计算单元中。

综上所述,本发明针对神经网络处理器中存在的运算速度差、能量效率低这一问题,通过对数据进行重编码,实现了数据压缩功能,降低了神经网络处理器中数据的存储资源占用,提高了运算速度,提升了能量效率。

应当理解,虽然本说明书是按照各个实施例描述的,但并非每个实施例仅包含一个独立的技术方案,说明书的这种叙述方式仅仅是为清楚起见,本领域技术人员应当将说明书作为一个整体,各实施例中的技术方案也可以经适当组合,形成本领域技术人员可以理解的其他实施方式。

以上所述仅为本发明示意性的具体实施方式,并非用以限定本发明的范围。任何本领域的技术人员,在不脱离本发明的构思和原则的前提下所作的等同变化、修改与结合,均应属于本发明保护的范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1