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

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

Info

Publication number
CN106775599B
CN106775599B CN201710012584.8A CN201710012584A CN106775599B CN 106775599 B CN106775599 B CN 106775599B CN 201710012584 A CN201710012584 A CN 201710012584A CN 106775599 B CN106775599 B CN 106775599B
Authority
CN
China
Prior art keywords
unit
activation
output
array
data
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201710012584.8A
Other languages
English (en)
Other versions
CN106775599A (zh
Inventor
王琛
徐新艳
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nanjing Tech University
Original Assignee
Nanjing Tech University
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Nanjing Tech University filed Critical Nanjing Tech University
Priority to CN201710012584.8A priority Critical patent/CN106775599B/zh
Publication of CN106775599A publication Critical patent/CN106775599A/zh
Application granted granted Critical
Publication of CN106775599B publication Critical patent/CN106775599B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline, look ahead
    • G06F9/3824Operand accessing
    • G06F9/383Operand prefetching
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/06Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons

Abstract

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

Description

递归神经网络的多计算单元粗粒度可重构系统及方法
技术领域
本发明涉及一种面向递归神经网络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单元计算完毕,则结束计算,否则重复计算。

Claims (9)

1.一种面向递归神经网络LSTM的多计算单元粗粒度可重构系统,包括片上共享存储单元、数据交换存储单元、片上配置信息存储器、重构控制器,其特征在于,还包括:多矩阵积偏置和计算阵列、激活拟合计算阵列、向量计算阵列,完成递归神经网络LSTM的计算;多矩阵积偏置和计算阵列从外部存储器获取递归神经网络LSTM的权重参数和网络输入,计算结果传输至激活拟合计算阵列进行激活操作,得到LSTM网络各门值,再由向量计算阵列计算最终输出;
所述多矩阵积偏置和计算阵列,用于实现递归神经网络LSTM中多个矩阵向量积的计算及累加的运算,在累加计算完成后,由重构控制器输出的控制信号控制进行加偏置计算,输出值经由多矩阵积偏置和计算阵列的输出缓存单元输出。
2.如权利要求1所述的面向递归神经网络LSTM的多计算单元粗粒度可重构系统,其特征在于,所述激活拟合计算阵列,用于实现递归神经网络LSTM中激活函数的分段线性拟合计算功能,当输入值进入激活拟合计算阵列的输入缓存单元,激活拟合计算阵列的激活拟合计算单元由重构控制器输出的控制信号控制进行相应的激活函数分段线性拟合计算,输出值经由激活拟合计算阵列的输出缓存单元输出。
3.如权利要求1所述的面向递归神经网络LSTM的多计算单元粗粒度可重构系统,其特征在于,所述向量计算阵列,用于实现向量按维相乘和向量加法计算,向量计算阵列的乘法单元计算完毕后,由重构控制器输出的控制信号控制将数据传输到向量加法单元或直接输出到向量计算阵列的输出缓存单元。
4.如权利要求1所述的面向递归神经网络LSTM的多计算单元粗粒度可重构系统,其特征在于,所述片上共享存储单元,用于实现片上数据的存储;
所述数据交换存储单元,用于实现阵列间数据的交换;
所述片上配置信息存储器,用于实现配置信息的存储;
所述重构控制器,用于实现可重构阵列的配置控制。
5.如权利要求1所述的面向递归神经网络LSTM的多计算单元粗粒度可重构系统,其特征在于,所述多矩阵积偏置和计算阵列为多个,多个多矩阵积偏置和计算阵列并行工作,每个多矩阵积偏置和计算阵列包括权值缓存单元、偏置缓存单元、输入寄存器、矩阵向量积计算单元、累加计算单元、累加寄存器;权值缓存单元,用于权值数据的输入,带宽为d*16bit,d为神经网络每层的LSTM单元个数;偏置缓存单元,用于偏置数据的输入,最大存储量为N*16bit,N为所述可重构系统并行计算的LSTM单元数;输入寄存器,用于输入向量的存储,最大存储量为d*16bit;矩阵向量积计算单元,从权值缓存单元和输入寄存器读取所需计算数据,用于计算N行d列矩阵和d维向量的积;累加计算单元,根据不同的控制信号,用于计算多个矩阵向量积的累和或用于计算累加值和偏置值的和;累加寄存器,用于累加值的存储,最大存储量为N*16bit;输出缓存单元,用于累加计算单元最终计算结果数据的输出,带宽为N*16bit。
6.如权利要求1或2所述的面向递归神经网络LSTM的多计算单元粗粒度可重构系统,其特征在于,所述激活拟合计算阵列为多个,多个激活拟合计算阵列并行工作,每个激活拟合计算阵列包括输入缓存单元、多个激活拟合计算单元、输出缓存单元、配置广播单元;激活拟合计算阵列用于门值的激活计算,从外部存储器中读取的未经激活的门值,存储在激活输入缓存单元中,以供激活拟合计算单元进行激活拟合计算,计算结果经由激活输出缓存单元输出;输入缓存单元,用于权值数据的输入,带宽为2N*16bit;输出缓存单元,用于数据的输出,带宽为2N*16bit;2N个激活拟合计算单元,根据不同的控制信号,通过多路选择器选择不同的计算通路,用于并行计相应的16位定点数的激活函数的线性分段拟合值;配置广播单元,将配置信号广播输送至所有计算单元。
7.如权利要求6所述的面向递归神经网络LSTM的多计算单元粗粒度可重构系统,其特征在于,所述激活拟合计算单元包括输入寄存器、正负判断单元、绝对值计算单元、寄存器单元、区间判断单元、系数查找匹配单元、算术逻辑单元、多路选择输出单元和输出缓存单元;激活拟合计算单元用于激活函数的分段线性拟合计算,未经激活的门值存储于输入寄存器中,绝对值计算单元得到门值的绝对值,存储在绝对值寄存器单元中,经由绝对值区间判断单元判断所处区间,系数查找匹配单元根据不同的控制信号及区间,通过查找表选取相应的线性分段拟合系数,输入至激活算数逻辑单元进行线性分段拟合的计算,多路选择输出单元根据门值正负判断单元的控制信号,选择性地输出算术逻辑单元的计算结果,最终结果经由输出缓存单元输出;输入寄存器,用于输入数据的存储,带宽为16bit;正负判断单元,用于输入数据的正负判断;绝对值计算单元,用于计算数据的绝对值;寄存器单元,用于计算数据绝对值的存储,最大存储量为16bit;区间判断单元,用于判断数据所处的区间;系数查找匹配单元,根据不同的控制信号及数据所处的区间,输出相应激活函数的线性分段拟合系数;算术逻辑单元,用于线性分段拟合的计算;多路选择输出单元,根据不同的正负判断信号,输出相应的数据;输出缓存单元,用于数据的输出,带宽为16bit。
8.如权利要求1所述的面向递归神经网络LSTM的多计算单元粗粒度可重构系统,其特征在于,所述向量计算阵列包括输入缓存单元、乘法单元、向量加法单元、累加寄存器、输出缓存单元;向量计算阵列用于计算最终的神经网络输出,输入缓存单元从外部存储器中读取各激活门值数据,向量乘法单元、向量加法单元和向量累加寄存器完成相应的向量计算,计算结果经由向量输出缓存单元输出;输入缓存单元,用于输入向量数据,带宽为N*16bit;乘法单元,用于N维向量的按维乘法计算,根据不同的控制信号,通过多路选通器将数据输出至向量加法单元或输出缓存单元;向量加法单元,用于N维向量的加法计算;累加寄存器,用于累加值的存储,最大存储量为N*16bit;输出缓存单元,用于数据的输出,带宽为N*16bit。
9.一种用于实现递归神经网络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从数据交换存储单元中读取步骤(3)、(4)所述2个N维向量,计算状态门、输出门激活值,输出共2个N维向量至数据交换存储单元;(6)激活拟合计算阵列#1将状态门激活值,共1个N维向量输出至片上共享存储单元;(7)向量计算单元从数据交换存储单元中读取步骤(5)所述2个N维向量,计算最终输出值,输出共1个N维向量至片上共享存储单元;(8)若所有LSTM单元计算完毕,则结束计算,否则回到步骤(1)。
CN201710012584.8A 2017-01-09 2017-01-09 递归神经网络的多计算单元粗粒度可重构系统及方法 Active CN106775599B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710012584.8A CN106775599B (zh) 2017-01-09 2017-01-09 递归神经网络的多计算单元粗粒度可重构系统及方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710012584.8A CN106775599B (zh) 2017-01-09 2017-01-09 递归神经网络的多计算单元粗粒度可重构系统及方法

Publications (2)

Publication Number Publication Date
CN106775599A CN106775599A (zh) 2017-05-31
CN106775599B true CN106775599B (zh) 2019-03-01

Family

ID=58950373

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710012584.8A Active CN106775599B (zh) 2017-01-09 2017-01-09 递归神经网络的多计算单元粗粒度可重构系统及方法

Country Status (1)

Country Link
CN (1) CN106775599B (zh)

Families Citing this family (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109684653B (zh) * 2017-10-19 2023-12-22 成都海存艾匹科技有限公司 含有可编程计算单元的可编程门阵列封装
CN107844322B (zh) * 2017-07-20 2020-08-04 上海寒武纪信息科技有限公司 用于执行人工神经网络正向运算的装置和方法
CN109522254B (zh) * 2017-10-30 2022-04-12 上海寒武纪信息科技有限公司 运算装置及方法
WO2019087500A1 (ja) * 2017-11-02 2019-05-09 Tdk株式会社 ニューロモルフィック素子を含むアレイ装置およびニューラルネットワークシステム
CN107968817A (zh) * 2017-11-13 2018-04-27 福州瑞芯微电子股份有限公司 一种普通设备与人工智能设备交互方法和系统
CN109961136B (zh) * 2017-12-14 2020-05-19 中科寒武纪科技股份有限公司 集成电路芯片装置及相关产品
CN108038815B (zh) * 2017-12-20 2019-12-17 深圳云天励飞技术有限公司 集成电路
CN108154224A (zh) * 2018-01-17 2018-06-12 北京中星微电子有限公司 用于数据处理的方法、装置和非暂时性计算机可读介质
CN110163360B (zh) * 2018-02-13 2021-06-25 上海寒武纪信息科技有限公司 一种计算装置及方法
CN110197262B (zh) * 2018-02-24 2021-07-30 赛灵思电子科技(北京)有限公司 用于lstm网络的硬件加速器
CN108376285A (zh) * 2018-03-23 2018-08-07 中国科学院计算技术研究所 一种面向多变异体lstm神经网络加速器及数据处理方法
CN108446761B (zh) * 2018-03-23 2021-07-20 中国科学院计算技术研究所 一种神经网络加速器及数据处理方法
CN108510065A (zh) * 2018-03-30 2018-09-07 中国科学院计算技术研究所 应用于长短时记忆神经网络的计算装置和计算方法
CN108647779B (zh) * 2018-04-11 2021-06-04 复旦大学 一种低位宽卷积神经网络可重构计算单元
CN108898216A (zh) * 2018-05-04 2018-11-27 中国科学院计算技术研究所 应用于神经网络的激活处理装置
CN108921288A (zh) * 2018-05-04 2018-11-30 中国科学院计算技术研究所 神经网络激活处理装置和基于该装置的神经网络处理器
CN108805273A (zh) * 2018-05-20 2018-11-13 复旦大学 一种lstm中门控单元加速运算的硬件实现电路
CN108763159A (zh) * 2018-05-22 2018-11-06 中国科学技术大学苏州研究院 一种基于fpga的lstm前向运算加速器
CN108920748B (zh) * 2018-05-22 2023-01-06 复旦大学 一种具有高灵活性与精度的非线性运算电路结构
WO2020125092A1 (zh) * 2018-12-20 2020-06-25 中科寒武纪科技股份有限公司 计算装置及板卡
CN109670158B (zh) * 2018-12-27 2023-09-29 北京及客科技有限公司 一种用于根据资讯数据生成文本内容的方法与设备
KR20210001574A (ko) * 2019-06-28 2021-01-06 에스케이하이닉스 주식회사 벡터-매트릭스 곱셈을 수행하는 연산 회로 및 이를 포함하는 반도체 장치
CN112541581A (zh) * 2019-09-23 2021-03-23 阿里巴巴集团控股有限公司 一种加速计算单元和加速计算系统
CN111047007B (zh) * 2019-11-06 2021-07-30 北京中科胜芯科技有限公司 一种针对量化后的lstm的激活函数计算单元
CN111652361B (zh) * 2020-06-04 2023-09-26 南京博芯电子技术有限公司 长短时记忆网络的复合粒度近存储近似加速结构系统和方法
CN112051798B (zh) * 2020-08-17 2021-07-20 扬州大学 一种可计算的可重构机床几何位姿误差定义方法
CN112540946A (zh) * 2020-12-18 2021-03-23 清华大学 可重构处理器及其上多种神经网络激活函数计算方法

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103984560A (zh) * 2014-05-30 2014-08-13 东南大学 基于大规模粗粒度嵌入式可重构系统及其处理方法

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100730280B1 (ko) * 2005-12-06 2007-06-19 삼성전자주식회사 재구성 프로세서에서 루프 버퍼를 최적화하기 위한 장치 및방법
CN106250103A (zh) * 2016-08-04 2016-12-21 东南大学 一种卷积神经网络循环卷积计算数据重用的系统

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103984560A (zh) * 2014-05-30 2014-08-13 东南大学 基于大规模粗粒度嵌入式可重构系统及其处理方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
基于FPGA的神经网络硬件可重构实现;李利歌等;《河南科技大学学报》;20090215;第30卷(第1期);第37页-41页
基于FPGA的神经网络硬件实现方法;李昂等;《北京科技大学学报》;20070115;第29卷(第1期);第89-95页

Also Published As

Publication number Publication date
CN106775599A (zh) 2017-05-31

Similar Documents

Publication Publication Date Title
CN106775599B (zh) 递归神经网络的多计算单元粗粒度可重构系统及方法
CN106951395B (zh) 面向压缩卷积神经网络的并行卷积运算方法及装置
CN109934339A (zh) 一种基于一维脉动阵列的通用卷积神经网络加速器
CN106940815A (zh) 一种可编程卷积神经网络协处理器ip核
CN109729734A (zh) 芯片装置及相关产品
CN109711533A (zh) 基于fpga的卷积神经网络模块
CN104699458A (zh) 定点向量处理器及其向量数据访存控制方法
CN103049241B (zh) 一种提高cpu+gpu异构装置计算性能的方法
CN102043761B (zh) 一种基于可重构技术的傅立叶变换的实现方法
CN110390385A (zh) 一种基于bnrp的可配置并行通用卷积神经网络加速器
CN108647779A (zh) 一种低位宽卷积神经网络可重构计算单元
CN109034373A (zh) 卷积神经网络的并行处理器及处理方法
CN105373367B (zh) 支持标向量协同工作的向量simd运算结构
CN108052347A (zh) 一种执行指令选择的装置、方法及指令映射方法
CN110222818A (zh) 一种用于卷积神经网络数据存储的多bank行列交织读写方法
CN102945224A (zh) 基于fpga的高速可变点fft处理器及其处理方法
Hendry et al. IP core implementation of a self-organizing neural network
Huo et al. An improved multi-cores parallel artificial Bee colony optimization algorithm for parameters calibration of hydrological model
CN110321997A (zh) 高并行度计算平台、系统及计算实现方法
CN106295670A (zh) 数据处理方法及数据处理装置
Giordano et al. Survey and comparison of milliwatts micro controllers for tiny machine learning at the edge
CN108960414A (zh) 一种基于深度学习加速器实现单广播多运算的方法
CN101833439A (zh) 基于分合思想的并行计算硬件结构
Yazdani et al. LSTM-sharp: An adaptable, energy-efficient hardware accelerator for long short-term memory
CN108133257A (zh) 一种基于人工鱼群算法的泵站优化方法

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant