当前位置: 首页 > 专利查询>南京大学专利>正文

一种基于模型压缩的递归神经网络加速器的硬件架构制造技术

技术编号:17139246 阅读:38 留言:0更新日期:2018-01-27 14:59
本发明专利技术公开了一种基于模型压缩的递归神经网络加速器的硬件架构。硬件架构包含以下部分:矩阵乘加单元,用于实现神经网络中主要的矩阵向量乘法运算,该单元由多个乘加单元簇组成,每个乘加单元簇内包含多个由不同的基本乘加单元构成的乘加单元块,其数量直接决定加速器的并行度和吞吐率;多个双端片上静态随机存储器,其中有三个用于存储递归神经网络计算时产生的中间结果,并且有两个构成乒乓存储结构以提高数据存取效率,其余存储器用于存储神经网络的参数;多个非线性计算单元,用于实现神经网络中的非线性函数;控制单元,用于产生相关控制信号及控制数据流的流动。本发明专利技术可以实现很高的硬件效率,且可扩展性强,是一种可用于智能人机交互、机器人控制等相关领域嵌入式系统的合理方案。

A hardware architecture of a recursive neural network accelerator based on model compression

The invention discloses a hardware architecture of a recursive neural network accelerator based on model compression. The hardware architecture consists of the following parts: matrix multiply add unit, for the realization of matrix vector multiplication of neural network, the unit is composed of a plurality of MAC unit clusters, each cluster MAC unit includes a plurality of different basic elements multiply add multiply add unit block, the number of directly determines the degree of parallelism and throughput accelerator; static random access memory on a double end piece, which has three intermediate results for memory recurrent neural network method, and composed of two ping-pong structure in order to improve the efficiency of data access, the remaining memory for storing parameters of neural network; multiple nonlinear calculation unit, used to implement nonlinear function neural network; the control unit for generating control signal and control data flow. The invention can achieve high hardware efficiency and expansibility, and is a reasonable scheme for embedded system in intelligent human-machine interaction, robot control and other related fields.

【技术实现步骤摘要】
一种基于模型压缩的递归神经网络加速器的硬件架构
本专利技术涉及计算机及电子信息
,特别是一种基于模型压缩的递归神经网络加速器的硬件架构。
技术介绍
递归神经网络有着强大的非线性拟合能力,其天然的递归结构十分适用于建模序列数据,如文本、语音和视频等。目前,递归神经网络模型在自然语言处理领域,尤其是在语音识别和机器翻译上已经取得了接近甚至超过人类的效果或准确率;通过结合增强学习,递归神经网络在机器人自适应控制和学习领域也有广泛的应用前景。这些技术是实现智能人机交互所必须的,但是在嵌入式设备上运行递归神经网络模型存在着诸多问题。一方面,递归神经网络模型需要存储大量的参数,而且计算量巨大;另一方面,嵌入式系统所能提供的存储资源和计算能力十分有限,无法满足模型存储和计算的需求,实时性和功耗上也面临着诸多挑战。由前者催生出一些模型压缩技术来减少网络模型的参数以减少模型的存储需求,并降低模型的计算复杂度。但是,现有的解决方案多采用GPU芯片,过高的功耗使之无法应用于嵌入式场景;而目前嵌入式系统中广泛采用的硬件平台无法很好地利用前述模型压缩技术。因此有必要设计专门的硬件架构以充分利用已有模型压缩技术。现有的模型压缩技术可以粗略归为两大类,一类不减少模型参数个数,但可以减少参数存储所需要的空间。如通过剪枝使参数矩阵变稀疏,而后可通过特殊的格式存储稀疏参数矩阵;也可采用不同的参数量化方法,减少存储每个参数需要的比特。另一类是通过对参数矩阵施加特殊的约束减少参数个数或是减少计算复杂度,如通过哈希映射将网络参数限制为几种特殊的值,存储时存储值及每个参数所属的类别;或是将参数矩阵限制为一些结构化矩阵,如托普利兹矩阵或循环矩阵,不但可以减少存储空间,也可以通过快速算法减少计算的时间复杂度。混合量化和结构化矩阵约束(尤其是循环矩阵约束)是十分高效的两种模型压缩技术,但目前已有的基于模型压缩的硬件架构多使用单一量化方式,且未考虑结构化矩阵约束带来的优势,因而还未很好地利用这两种技术,其在嵌入式场景下巨大的优势和潜力尚待发掘。
技术实现思路
专利技术目的:本专利技术所要解决的技术问题是针对递归神经网络无法满足嵌入式系统低功耗、低延迟的需求,提出一种基于模型压缩的递归神经网络加速器的硬件架构,使递归神经网络在低功耗、实时嵌入式系统上的应用成为可能。技术方案:为了解决上述技术问题,本专利技术公开了一种基于模型压缩的递归神经网络加速器的硬件架构,其特征在于,包括以下部分:1、矩阵乘加单元MAT-VEC,用于实现神经网络中主要的矩阵向量乘法运算,该单元内含多个乘加单元簇MVU/CMVU,每个乘加单元簇用于处理递归神经网络中的一个矩阵向量乘法。2、多个硬件友好的非线性计算单元Sigmoid/Tanh,用于实现神经网络中的非线性函数。3、多个双端片上静态随机存储器,其中有两个存储中间状态的存储器HRAM0和HRAM1组成乒乓存储结构以提高数据存取效率,其余还包括另外一个状态存储器CRAM和由多个参数存储单元组成的参数存储单元块WRAMs用于存储递归神经网络的模型参数。4、控制单元,用于产生相关控制信号及控制数据流的流动。其中,乘加单元簇MVU/CMVU是本硬件架构的主要计算单元,每个乘加单元簇包含多个乘加单元块B-PE,而每个乘加单元块内又包含多个基本乘加单元PE。基本乘加单元用于实现多个数之间的基本乘加运算,不同的量化方法对应于不同的基本乘加单元结构。不同基本乘加单元的输出在乘加单元块内求和作为乘加单元块的输出,多个基本乘加单元的求和可以根据需要插入流水线以减少时序延迟,提高系统吞吐率。对于循环矩阵向量乘法,通过一种针对硬件优化了的循环矩阵向量乘法重组方法,使其可以与普通的矩阵向量乘法共享相同的硬件架构,唯一的不同在于每个乘加单元簇中需额外包含与乘加单元块个数相同的移位单元用于实现额外的移位操作。为了区分该类乘加单元簇与普通乘加单元簇,将用于实现循环矩阵向量乘法的乘加单元簇定义为CMVU,而普通乘加单元簇定义为MVU。整个递归神经网络加速器的并行度由上述乘加单元簇、乘加单元块和基本乘加单元的个数共同决定。有益效果:本专利技术所述硬件架构在底层支持不同的参数量化方法,在上层支持普通矩阵和循环矩阵两种类型的矩阵向量乘法运算,因而可以很好地利用模型压缩带来的算法上的优势,只需较少的存储空间和计算复杂度就可以获得较好的性能,硬件效率高;另一方面,本专利技术所述硬件架构有着十分简洁而统一的结构单元,支持配置成不同的并行度,可扩展性强,也可以在较低功耗下实现较高的吞吐率,适用于低功耗、实时嵌入式系统,是一种可用于智能人机交互、机器人控制等相关领域嵌入式系统的合理方案。附图说明下面结合附图和具体实施方式对本专利技术做更进一步的具体说明,本专利技术的上述和/或其他方面的优点将会变得更加清楚。图1是本专利技术的顶层硬件架构图。图2是两种不同量化方法下的基本乘加单元硬件架构图。图3是乘加单元块的内部结构图。图4是矩阵向量乘法所用棋盘分解方式说明图。具体实施方式:下面详细描述本专利技术的实施例。本实施例中将包含多个硬件单元输入输出变量的定义和说明,以及为了说明某一功能而引证的具体示例,旨在用于解释本专利技术,而不能理解为对本专利技术的限制。因递归神经网络包含多种变体,本实施例将不限制具体的递归神经网络变体类型,只讨论通用情况。拥有n个输入和输出节点的递归神经网络的基本单元可定义为:ht=f(Wxt+Uht-1+b),(1)其中,ht∈Rn×1为t时刻递归神经网络的隐状态(中间状态),同时也作为t时刻的输出;xt∈Rn×1为t时刻的输入向量;W、U∈Rn×n、b∈Rn×1为递归神经网络的模型参数,b为偏置项,W和U为参数矩阵;f为非线性函数,常见的有σ和tanh:如公式1所示,每个递归神经网络的基本单元共有两个矩阵向量乘法和一个非线性函数。递归神经网络往往由一个至多个类似的基本单元组成。一次性计算所有的矩阵向量乘法对于存储资源和计算能力受限的嵌入式系统而言是不现实的,因此有必要将其分解成多个子计算过程。本实施例采用如图4所示的棋盘划分方法,将整个n×n矩阵乘以n×1向量的计算过程分解成p2个矩阵乘以向量的子过程。下面结合图1描述公式(1)所定义基本单元在本专利技术所述硬件架构下的计算流程:对于每个时刻的输入,控制单元将依据图4所示棋盘划分方式,每次从存储单元WRAMs和HRAM0/HRAM1中读取相应的参数和中间状态到矩阵乘加单元MAT-VEC中,并按照图4所示从左至右,从上至下的顺序完成子矩阵向量乘法,计算结果保存在MAT-VEC中进行累加;当整行的p个子矩阵向量乘法完成之后,对应结果将输出至非线性计算单元完成非线性计算,进行状态更新后将更新后的状态存至状态存储单元,同时MAT-VEC单元清零进行下一行的子矩阵向量乘法计算,依次类推直至整个计算过程完成。从公式(1)可以看到,t时刻的状态向量ht中每个元素的更新要取决于整个t-1时刻的状态向量ht-1,根据图4所示棋盘划分方式,每次整个模块只更新部分结果,直接将更新后的部分结果存回原存储地址将覆盖上一时刻的状态导致后续计算出错。为了解决这一问题,可以引入乒乓存储结构。如图1所示,维持两个大小相同的存储单元HRAM0和HRAM1,每个时刻从其中一个存储单本文档来自技高网
...
一种基于模型压缩的递归神经网络加速器的硬件架构

【技术保护点】
一种基于模型压缩的递归神经网络加速器的硬件架构,其特征在于,硬件架构包括:(11)矩阵乘加单元MAT‑VEC,用于实现神经网络中主要的矩阵向量乘法运算,该单元内含多个乘加单元簇MVU/CMVU,每个乘加单元簇用于处理递归神经网络中的一个矩阵向量乘法;(12)多个硬件友好的非线性计算单元Sigmoid/Tanh,用于实现神经网络中的非线性函数;(13)多个双端片上静态随机存储器,其中有两个存储中间状态的存储器HRAM0和HRAM1组成乒乓存储结构以提高数据存取效率,其余还包括另外一个状态存储器CRAM和由多个参数存储单元组成的参数存储单元块WRAMs用于存储递归神经网络的模型参数;(14)控制单元,用于产生相关控制信号及控制数据流的流动。

【技术特征摘要】
1.一种基于模型压缩的递归神经网络加速器的硬件架构,其特征在于,硬件架构包括:(11)矩阵乘加单元MAT-VEC,用于实现神经网络中主要的矩阵向量乘法运算,该单元内含多个乘加单元簇MVU/CMVU,每个乘加单元簇用于处理递归神经网络中的一个矩阵向量乘法;(12)多个硬件友好的非线性计算单元Sigmoid/Tanh,用于实现神经网络中的非线性函数;(13)多个双端片上静态随机存储器,其中有两个存储中间状态的存储器HRAM0和HRAM1组成乒乓存储结构以提高数据存取效率,其余还包括另外一个状态存储器CRAM和由多个参数存储单元组成的参数存储单元块WRAMs用于存储递归神经网络的模型参数;(14)控制单元,用于产生相关控制信号及控制数据流的流动。2.权利要求1所述的乘加单元簇MVU/CMVU,其特征在于,包括:(21)多个乘加单元块B-PE,每个乘...

【专利技术属性】
技术研发人员:王中风王智生林军
申请(专利权)人:南京大学
类型:发明
国别省市:江苏,32

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1