首页> 中国专利> 递归神经网络的多计算单元粗粒度可重构系统及方法

递归神经网络的多计算单元粗粒度可重构系统及方法

摘要

本发明公开一种面向递归神经网络LSTM的多计算单元粗粒度可重构系统及方法,系统的多矩阵积偏置和计算阵列,用于实现递归神经网络中多个矩阵向量积的计算及累加的运算,由控制信号控制进行加偏置计算,输出值经由输出缓存单元输出;激活拟合计算阵列,用于实现递归神经网络LSTM中激活函数的分段线性拟合计算功能,当输入值进入输入缓存单元,激活拟合计算单元由控制信号控制进行相应的激活函数分段线性拟合计算,输出值经由输出缓存单元输出;向量计算阵列,用于实现向量按维相乘和向量加法计算,乘法单元计算完毕后,由控制信号控制将数据传输到向量加法单元或直接输出;本发明提高了可重构系统的并行度、计算速度和阵列利用率。

著录项

  • 公开/公告号CN106775599A

    专利类型发明专利

  • 公开/公告日2017-05-31

    原文格式PDF

  • 申请/专利权人 南京工业大学;

    申请/专利号CN201710012584.8

  • 发明设计人 王琛;徐新艳;

    申请日2017-01-09

  • 分类号G06F9/38(20060101);G06N3/06(20060101);

  • 代理机构南京苏高专利商标事务所(普通合伙);

  • 代理人李玉平

  • 地址 211100 江苏省南京市浦口区浦珠南路30号

  • 入库时间 2023-06-19 02:17:44

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2019-03-01

    授权

    授权

  • 2017-06-23

    实质审查的生效 IPC(主分类):G06F9/38 申请日:20170109

    实质审查的生效

  • 2017-05-31

    公开

    公开

说明书

技术领域

本发明涉及一种面向递归神经网络LSTM的多计算单元粗粒度可重构系统及方法,属于嵌入式可重构系统领域。

背景技术

近年来,随着微电子技术、计算机技术的发展,尤其是大规模高性能的可编程器件的出现、软硬件设计方法和设计工具上的改进,实时电路重构技术逐渐成为国际上计算系统研究中的一个新热点。它的出现使过去传统意义上硬件和软件的界限变得模糊,让硬件系统软件化。实时电路重构的本质是利用可编程器件可多次重复配置逻辑状态的特性,在运行时根据需要动态改变系统的电路结构,从而使系统兼具灵活、简捷、硬件资源可复用、易于升级等多种优良性能。

现有的神经网络硬件计算加速方法主要有GPU、FPGA或ASIC加速芯片。GPU计算具有极高的并行性,但是利用GPU并行计算需要的程序代码更加复杂,并行程序的进程管理也增加了工作量,且GPU计算所需功耗大;FPGA灵活性强,提高了数字电路重复利用性功耗高,功耗同样较大;ASIC功耗及面积开销最小,计算速度最快,但投片价格高,从设计到使用需要很长时间。神经网络,尤其是递归神经网络LSTM中包含大量矩阵及向量运算,且网络结构多变,对电路的并行计算能力和电路灵活性具有很高的要求,粗粒度可重构芯片的优点是硬件设计的实现基于软件的灵活性,保持了传统的基于硬件方法的执行速度,及体系结构可变的特点,很好地适应了递归神经网络LSTM的计算要求,相对于ASIC来说,设计简单,开发周期短,相对于GPU和FPGA来说,在保留了计算并行度和电路灵活性的基础上,降低了功耗开销。

发明内容

发明目的:针对现有技术中存在的问题,本发明在传统的粗粒度可重构系统的结构基础上,提供一种面向递归神经网络LSTM的多计算单元粗粒度可重构系统及方法,本发明阵列利用率高,并行度好。

技术方案:一种面向递归神经网络LSTM的多计算单元粗粒度可重构系统,包括片上共享存储单元、数据交换存储单元、片上配置信息存储器、重构控制器、多矩阵积偏置和计算阵列、激活拟合计算阵列、向量计算阵列;完成递归神经网络LSTM的计算;多矩阵积偏置和计算阵列从外部存储器获取递归神经网络LSTM的权重参数和网络输入,计算结果传输至激活拟合计算阵列进行激活操作,得到LSTM网络各门值,再由向量计算阵列计算最终输出;

所述多矩阵积偏置和计算阵列,用于实现递归神经网络LSTM中多个矩阵向量积的计算及累加的运算,在累加计算完成后,由重构控制器输出的控制信号控制进行加偏置计算,输出值经由多矩阵积偏置和计算阵列的输出缓存单元输出;

所述激活拟合计算阵列,用于实现递归神经网络LSTM中激活函数的分段线性拟合计算功能,当输入值进入激活拟合计算阵列的输入缓存单元,激活拟合计算阵列的激活拟合计算单元由重构控制器输出的控制信号控制进行相应的激活函数分段线性拟合计算,输出值经由激活拟合计算阵列的输出缓存单元输出;

所述向量计算阵列,用于实现向量按维相乘和向量加法计算,向量计算阵列的乘法单元计算完毕后,由重构控制器输出的控制信号控制将数据传输到向量加法单元或直接输出到向量计算阵列的输出缓存单元;

所述片上共享存储单元,用于实现片上数据的存储;

所述数据交换存储单元,用于实现阵列间数据的交换;

所述片上配置信息存储器,用于实现配置信息的存储;

所述重构控制器,用于实现可重构阵列的配置控制。

作为优选,为了提高递归神经网络LSTM中的大规模矩阵积偏置和计算的并行度,尽可能提高阵列利用率,需要针对递归神经网络LSTM的数据流图特点,设计合理的阵列结构与工作流程。所述多矩阵积偏置和计算阵列为多个,多个多矩阵积偏置和计算阵列并行工作,每个多矩阵积偏置和计算阵列包括权值缓存单元、偏置缓存单元、输入寄存器、矩阵向量积计算单元、累加计算单元、累加寄存器;权值缓存单元,用于权值数据的输入,带宽为d*16bit,d为神经网络每层的LSTM单元个数;偏置缓存单元,用于偏置数据的输入,最大存储量为N*16bit,N为所述可重构系统并行计算的LSTM单元数;输入寄存器,用于输入向量的存储,最大存储量为d*16bit;矩阵向量积计算单元,从权值缓存单元和输入寄存器读取所需计算数据,用于计算N行d列矩阵和d维向量的积;累加计算单元,根据不同的控制信号,用于计算多个矩阵向量积的累和或用于计算累加值和偏置值的和;累加寄存器,用于累加值的存储,最大存储量为N*16bit;输出缓存单元,用于累加计算单元最终计算结果数据的输出,带宽为N*16bit。

作为优选,为了实现激活函数的计算功能,设计专用的激活拟合计算阵列及存储单元。所述激活拟合计算阵列为多个,多个激活拟合计算阵列并行工作,每个激活拟合计算阵列包括输入缓存单元、多个激活拟合计算单元、输出缓存单元和配置广播单元;激活拟合计算阵列用于门值的激活计算,从外部存储器中读取的未经激活的门值,存储在激活输入缓存单元中,以供激活拟合计算单元进行激活拟合计算,计算结果经由激活输出缓存单元输出;输入缓存单元,用于权值数据的输入,带宽为2N*16bit;输出缓存单元,用于数据的输出,带宽为2N*16bit;2N个激活拟合计算单元,根据不同的控制信号,通过多路选择器选择不同的计算通路,用于并行计算相应的16位定点数的激活函数的线性分段拟合值;配置广播单元,将配置信号广播输送至所有计算单元。

作为优选,为了进一步简化激活函数的计算,减少可重构芯片功耗和面积,提高计算速度和并行度,需要选取合理的拟合计算策略和实现方法,所述激活拟合计算单元包括输入寄存器、正负判断单元、绝对值计算单元、寄存器单元、区间判断单元、系数查找匹配单元、算术逻辑单元、多路选择输出单元和输出缓存单元;激活拟合计算单元用于激活函数的分段线性拟合计算,未经激活的门值存储于输入寄存器中,绝对值计算单元得到门值的绝对值,存储在绝对值寄存器单元中,经由绝对值区间判断单元判断所处区间,系数查找匹配单元根据不同的控制信号及区间,通过查找表选取相应的线性分段拟合系数,输入至激活算数逻辑单元进行线性分段拟合的计算,多路选择输出单元根据门值正负判断单元的控制信号,选择性地输出算术逻辑单元的计算结果,最终结果经由输出缓存单元输出;输入寄存器,用于输入数据的存储,带宽为16bit;正负判断单元,用于输入数据的正负判断;绝对值计算单元,用于计算数据的绝对值;寄存器单元,用于计算数据绝对值的存储,最大存储量为16bit;区间判断单元,用于判断数据所处的区间;系数查找匹配单元,根据不同的控制信号及数据所处的区间,通过查找表输出相应激活函数的线性分段拟合系数;算术逻辑单元,用于线性分段拟合的计算;多路选择输出单元,根据不同的正负判断信号,输出相应的数据;输出缓存单元,用于数据的输出,带宽为16bit。

作为优选,为了快速完成递归神经网络LSTM中大规模且分散的向量计算,设计了计算速度快、灵活性高专用向量计算阵列。所述向量计算阵列包括输入缓存单元、乘法单元、向量加法单元、累加寄存器、输出缓存单元;向量计算阵列用于计算最终的神经网络输出,输入缓存单元从外部存储器中读取各激活门值数据,向量乘法单元、向量加法单元和向量累加寄存器完成相应的向量计算,计算结果经由向量输出缓存单元输出;输入缓存单元,用于输入向量数据,带宽为N*16bit;乘法单元,用于N维向量的按维乘法计算,根据不同的控制信号,将数据输出至向量加法单元或输出缓存单元;向量加法单元,用于N维向量的加法计算;累加寄存器,用于累加值的存储,最大存储量为N*16bit;输出缓存单元,用于数据的输出,带宽为N*16bit。

为了进一步实现发明目的,本发明还公开了一种针对递归神经网络LSTM的粗粒度可重构系统工作流程,包括以下步骤:(1)片上共享存储单元从片外存储中读取所需的数据,多矩阵积偏置和计算阵列#0、#1、#2计算输入门、遗忘门、状态门的多矩阵积偏置和,每个计算阵列输出1个N维向量,总计共3个N维向量至数据交换存储单元;(2)激活拟合计算阵列#0从数据交换存储单元中读取步骤(1)所述3个N维向量,计算输入门、遗忘门激活值及状态门部分激活值,输出共3个N维向量至数据交换存储单元;(3)向量计算阵列从数据交换存储单元中读取步骤(2)所述3个N维向量,进行向量按维乘积和累加,输出共1个N维向量至数据交换存储单元;(4)多矩阵积偏置和计算阵列#3从片上共享存储单元中读取所需数据,计算输出门的多矩阵积偏置和,输出共1个N维向量至数据交换存储单元;(5)激活拟合计算阵列#1从数据交换存储单元中读取步骤(4)、(5)所述2个N维向量,计算状态门、输出门激活值,输出共2个N维向量至数据交换存储单元;(6)激活拟合计算阵列#1将状态门激活值,共1个N维向量输出至片上共享存储单元;(7)向量计算单元从数据交换存储单元中读取步骤(5)所述2个N维向量,计算最终输出值,输出共1个N维向量至片上共享存储单元;(8)若所有LSTM单元计算完毕,则结束计算,否则回到步骤(1)。

附图说明

图1为本发明的粗粒度可重构系统结构示意图;

图2位本发明的粗粒度可重构系统多矩阵积偏置和计算阵列示意图;

图3位本发明的粗粒度可重构系统激活拟合计算阵列示意图;

图4为本发明的粗粒度可重构系统激活拟合计算单元示意图;

图5为本发明的粗粒度可重构系统向量计算阵列示意图;

图6为本发明的粗粒度可重构系统工作流程示意图。

具体实施方式

下面结合具体实施例,进一步阐明本发明,应理解这些实施例仅用于说明本发明而不用于限制本发明的范围,在阅读了本发明之后,本领域技术人员对本发明的各种等价形式的修改均落于本申请所附权利要求所限定的范围。

如图1所示,面向递归神经网络LSTM的多计算单元粗粒度可重构系统,通过片上共享存储单元获取外部存储器的数据,片上配置信息存储和重构控制器通过配置总线控制片上计算阵列,各计算阵列可通过数据交换存储单元交换数据;包括片上共享存储单元、数据交换存储单元、片上配置信息存储器、重构控制器、多矩阵积偏置和计算阵列#0~#3、激活拟合计算阵列#0~#1、向量计算阵列;

多矩阵积偏置和计算阵列,用于实现递归神经网络LSTM中多个矩阵向量积的计算及累加的运算,在累加计算完成后,由重构控制器输出的控制信号控制进行加偏置计算,输出值经由多矩阵积偏置和计算阵列的输出缓存单元输出;

激活拟合计算阵列,用于实现递归神经网络LSTM中激活函数的分段线性拟合计算功能,用分段线性拟合方法进行激活函数的近似计算,当输入值进入激活拟合计算阵列的输入缓存单元,激活拟合计算阵列的激活拟合计算单元由重构控制器输出的控制信号控制进行相应的激活函数分段线性拟合计算,输出值经由激活拟合计算阵列的输出缓存单元输出;

向量计算阵列,用于实现向量按维相乘和向量加法计算,向量计算阵列的乘法单元计算完毕后,由重构控制器输出的控制信号控制将数据传输到向量加法单元或直接输出到向量计算阵列的输出缓存单元;

片上共享存储单元,用于实现片上数据的存储;

数据交换存储单元,用于实现阵列间数据的交换;

片上配置信息存储器,用于实现配置信息的存储;

重构控制器,用于实现可重构阵列的配置控制。

如图2所示,本发明包括多矩阵积偏置和计算阵列#0~#3,多矩阵积偏置和计算阵列#0~#3并行工作,多矩阵积偏置和计算阵列包括权值缓存单元、偏置缓存单元、输入寄存器、矩阵向量积计算单元、累加计算单元、累加寄存器;权值缓存单元带宽为d*16bit,d为神经网络每层的LSTM单元个数,将权值数据输入矩阵向量积计算单元,偏置缓存单元用于偏置数据的输入,最大存储量为N*16bit,N为所述可重构系统并行计算的LSTM单元数;输入寄存器存储输入向量,最大存储量为d*16bit;矩阵向量积计算单元从输入寄存器读取数据,计算N行d列矩阵和d维向量的积,将数据输入累加计算单元;累加计算单元根据不同的控制信号,计算多个矩阵向量积的累和或用于计算累加值和偏置值的和,计算时从累加寄存器中读取累加值,加上矩阵向量积计算单元的输出,将结果重新存入累加寄存器中;累加寄存器用于累加值的存储,最大存储量为N*16bit;输出缓存单元用于数据的输出,带宽为N*16bit。

如图3所示,本发明包括激活拟合计阵列#0~#1,激活拟合计算阵列#0~#1并行工作,激活拟合计阵列包括输入缓存单元、2N个激活拟合计算单元、输出缓存单元;输入缓存单元,用于权值数据的输入,带宽为2N*16bit;输出缓存单元,用于数据的输出,带宽为2N*16bit;激活拟合计算单元从输入缓存单元获取数据,根据不同的控制信号,用于并行计算2N个16位定点数的激活函数的线性分段拟合值。

如图4所示,本发明的激活拟合计算单元包括输入寄存器、正负判断单元、绝对值计算单元、寄存器单元、区间判断单元、系数查找匹配单元、算术逻辑单元、多路选择输出单元和输出缓存单元;输入寄存器,用于输入数据的存储,带宽为16bit;正负判断单元用于输入数据的正负判断;绝对值计算单元用于计算数据的绝对值;寄存器单元用于数据的存储,最大存储量为16bit;区间判断单元用于判断数据所处的区间;系数查找匹配单元,根据不同的控制信号及数据所处的区间,输出相应激活函数的线性分段拟合系数;算术逻辑单元用于线性分段拟合的计算;多路选择输出单元,根据不同的正负判断信号,输出相应的数据;输出缓存单元,用于数据的输出,带宽为16bit;

如图5所示,本发明的向量计算阵列包括输入缓存单元、乘法单元、向量加法单元、累加寄存器、输出缓存单元;向量计算阵列用于计算最终的神经网络输出,输入缓存单元从外部存储器中读取各激活门值数据,向量乘法单元、向量加法单元和向量累加寄存器完成相应的向量计算,计算结果经由向量输出缓存单元输出;输入缓存单元,用于输入向量数据,带宽为N*16bit;乘法单元从输入缓存单元获取相应的数据,用于N维向量的按维乘法计算,根据不同的控制信号,将数据输出至向量加法单元或输出缓存单元;向量加法单元用于N维向量的累加计算,计算开始时,从累加寄存器读取累加值,累加完毕后再送入累加寄存器;累加寄存器用于累加值的存储,最大存储量为N*16bit;输出缓存单元用于数据的输出,带宽为N*16bit。

如图6所示,本发明的粗粒度可重构系统工作流程如下,片上共享存储单元从片外存储中读取所需的数据,多矩阵积偏置和计算阵列#0、#1、#2计算输入门、遗忘门、状态门的多矩阵积偏置和,每个计算阵列输出1个N维向量,总计共3个N维向量至数据交换存储单元,激活拟合计算阵列#0从数据交换存储单元中读取3个N维向量,计算输入门、遗忘门激活值及状态门部分激活值,输出共3个N维向量至数据交换存储单元,向量计算阵列从数据交换存储单元中读取步骤3个N维向量,进行向量按维乘积和累加,输出共1个N维向量至数据交换存储单元,多矩阵积偏置和计算阵列#3从片上共享存储单元中读取所需数据,计算输出门的多矩阵积偏置和,输出共1个N维向量至数据交换存储单元,激活拟合计算阵列#1从数据交换存储单元中读取步骤2个N维向量,计算状态门、输出门激活值,输出共2个N维向量至数据交换存储单元,激活拟合计算阵列#1将状态门激活值,共1个N维向量输出至片上共享存储单元,向量计算单元从数据交换存储单元中读取2个N维向量,计算最终输出值,输出共1个N维向量至片上共享存储单元,若所有LSTM单元计算完毕,则结束计算,否则重复计算。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号