流水线结构神经网络矩阵运算架构及方法技术

技术编号:20024712 阅读:22 留言:0更新日期:2019-01-06 04:00
本发明专利技术提出了一种流水线结构神经网络矩阵运算架构,其包含:加速器,通过数字电路实现,用于对输入向量A和输入矩阵B执行流水线式乘加操作以得到A*B=D的结果,其中,A为一个维度1*m的列向量,B的维度为m*n,D为1行n列的向量矩阵输出结果;所述的流水线式乘加操作指,将输入矩阵B分为多个不同列块,将输入向量A与输入矩阵B的第一列块进行乘和累加并将结果输出,再继续执行输入向量A与输入矩阵B中下一列块的乘和累加并将结果输出,如此反复迭代,直至输入向量A与输入矩阵B中最后一列块也完成了乘和累加并且结果也输出之后,即得到输入向量A与输入矩阵B的相乘结果D。

【技术实现步骤摘要】
流水线结构神经网络矩阵运算架构及方法
本专利技术涉及数字电路集成设计
,具体涉及一种流水线结构神经网络矩阵运算架构及方法。
技术介绍
对于一组输入数据,如语音信号的特征向量或者二维图像数据,通过神经网络模型的计算能够得出该语音信号或二维图像数据所对应语素信息或图像对应的标注信息,从数据输入到利用神经网络模型计算最后产生输出结果往往需要消耗大量的计算资源或者存储资源。而我们知道,一块集成电路性能的好坏主要从其处理数据的速度、性能稳定性、材料成本以及占用空间大小等方面进行评价,数据的处理方式关系到运算的速度等多个方面的性能,就目前市场上的芯片设计师在处理算法上想方设法进行各种优化,以便达到高效、节约成本、提高产品性能等目的,例如,现有的神经网络矩阵运算架构通常具有以下缺点:1、矩阵运算的维度是固定的,不能自适应地改变运算规模;2、通常是中央处理单元CPU经由占用内存,如RAM来进行计算,是一种软件操作运算,其速度取决于CPU的运算频率,规模大时会消耗大量内存空间,计算效率非常低;3、通过DSP处理器来实现矩阵向量乘法操作,这样的操作往往是串行执行,执行效率低耗时较长,输入向量和权重矩阵式预先存在RAM空间,计算过程中的中间变量也需要输出,进一步增加了存储以及宽带开销。
技术实现思路
本专利技术的目的在于提供一种流水线结构神经网络矩阵运算架构及方法,利用数字电路实现包含有阵列排布的乘累加MAC单元以及配合设置的计数器、移位器实现的加速器,结合循环原理将数据循环输入,实现如流水线结构按照原始要求进行叠加、归位累加,使得矩阵与向量乘操作可以并行执行,相对于CPU以及DSP的处理方式而言,大大提升了处理速度,且中间结果可以保存在本地,不消耗额外的存储开销;通过控制器的辅助,实现动态配置参与乘加运算的矩阵和向量的维度、计数器脉冲的数量、移位器的移位深度。为了达到上述目的,本专利技术通过以下技术方案实现:一种流水线结构神经网络矩阵运算架构,其特征是,包含:加速器,通过数字电路实现,用于对输入向量A和输入矩阵B执行流水线式乘加操作以得到A*B=D的结果,其中,A为一个维度1*m的列向量,B的维度为m*n,D为1行n列的向量矩阵输出结果;所述的流水线式乘加操作指,将输入矩阵B分为多个不同列块,将输入向量A与输入矩阵B的第一列块进行乘和累加并将结果输出,再继续执行输入向量A与输入矩阵B中下一列块的乘和累加并将结果输出,如此反复迭代,直至输入向量A与输入矩阵B中最后一列块也完成了乘和累加并且结果也输出之后,即得到输入向量A与输入矩阵B的相乘结果D。上述的流水线结构神经网络矩阵运算架构,其中,所述的加速器包含:定点乘累加模块,用于对输入向量A与输入矩阵B执行流水式乘加操作;该定点乘累加模块包含若干并行运行的定点乘加器,每个定点乘累加器的两个输入端依次输入向量A的1行m列的各个元素以及输入矩阵B对应列块中对应列里的各个元素,以分别同步地执行对输入向量A与输入矩阵B的对应列块中各对应列的乘和累加,并且计算完成后在计数器reset脉冲对每个定点乘加器的RC复位脉冲使能端的控制下进行乘累加结果的输出和归零,再执行输入向量A与输入矩阵B中下一个对应列块的乘和累加;计数器,用于在定点乘加器每执行完一次输入向量A和输入矩阵B的对应列块的乘和累加后输出一个reset脉冲,该脉冲经过第一寄存器链产生流水线复位信号给每个定点乘加器的RC复位脉冲使能端,以及在定点乘累加模块每完成一次输入向量A与输入矩阵B的流水式乘加操作以后控制自身脉冲的清零;移位器,用于控制输入向量A列数的移位深度;第一寄存器链,计数器通过该第一寄存器链对每个定点乘加器的RC复位脉冲使能端进行脉冲控制;第二寄存器链,输入向量A的1行m列元素连续地通过该第二寄存器链输入至每个定点乘加器;若干第三寄存器链,输入矩阵B对应列块中的对应列元素连续地通过对应的第三寄存器链输入至对应的定点乘加器。上述的流水线结构神经网络矩阵运算架构,其中,还包含:控制器,连接加速器,用于动态配置输入向量A的列数和输入矩阵B的行数m、输入矩阵B的列数n、以及加速器中计数器脉冲的数量,以便移位器控制对输入向量A列数的移位深度,和在完成一次输入向量A与输入矩阵B的对应列块的乘加操作以后计数器对RC复位脉冲使能端的控制,以及在完成一次输入向量A与输入矩阵B的流水式乘加操作以后计数器控制其脉冲的清零。上述的流水线结构神经网络矩阵运算架构,其中:所述的控制器通过CPU实现。上述的流水线结构神经网络矩阵运算架构,其中:定点乘加器以及第三寄存器链的数量分别与输入矩阵B每个列块所包含的列数相同。一种数字电路实现的流水线结构神经网络矩阵运算的方法,其特征是,包含:通过数字电路实现对输入向量A和输入矩阵B执行流水线式乘加操作以得到A*B=D的结果,其中,A为一个维度1*m的列向量,B的维度为m*n,D为1行n列的向量矩阵输出结果;所述的流水线式乘加操作指,将输入矩阵B分为多个不同列块,将输入向量A与输入矩阵B的第一列块进行乘和累加并将结果输出,再继续执行输入向量A与输入矩阵B中下一列块的乘和累加并将结果输出,如此反复迭代,直至输入向量A与输入矩阵B中最后一列块也完成了乘和累加并且结果也输出之后,即得到输入向量A与输入矩阵B的相乘结果D。本专利技术与现有技术相比具有以下优点:通过高速矩阵向量乘加等操作的硬件加速实现快速的神经网络加速能力,使得数据输入以及模型加载之后通过上述运算构架实时计算出结果,以大程度的提升神经网络运算的速度和效率,进一步加速图像或语音识别过程。附图说明图1为本专利技术的结构框图;图2为本专利技术中加速器的结构框图;图3为本专利技术的实施例中加速器的具体结构框图。具体实施方式以下结合附图,通过详细说明一个较佳的具体实施例,对本专利技术做进一步阐述。如图1所示,本专利技术提出了一种流水线结构神经网络矩阵运算架构,其包含:加速器,通过数字电路实现,用于对输入向量A和输入矩阵B执行流水线式乘加操作以得到A*B=D的结果,其中,A为一个维度1*m的列向量,B的维度为m*n,D为1行n列的向量矩阵输出结果;所述的流水线式乘加操作指,将输入矩阵B分为多个不同列块,将输入向量A与输入矩阵B的第一列块进行乘和累加并将结果输出,再继续执行输入向量A与输入矩阵B中下一列块的乘和累加并将结果输出,如此反复迭代,直至输入向量A与输入矩阵B中最后一列块也完成了乘和累加并且结果也输出之后,即得到输入向量A与输入矩阵B的相乘结果D。如图2所示,具体的,所述的加速器包含:定点乘累加模块,用于对输入向量A与输入矩阵B执行流水式乘加操作;该定点乘累加模块包含若干并行运行的定点乘加器,每个定点乘累加器的两个输入端依次输入向量A的1行m列的各个元素以及输入矩阵B对应列块中对应列里的各个元素,以分别同步地执行对输入向量A与输入矩阵B的对应列块中各对应列的乘和累加(图中,i表示矩阵B中的第i列,B[:][i]表示矩阵B中第i列的所有元素,一次迭代所进行乘加操作的列数为x+1),并且计算完成后在计数器reset脉冲对每个定点乘加器的RC复位脉冲使能端的控制下进行乘累加结果的输出和归零,再执行输入向量A与输入矩阵B中下一个对应列块的乘和累加;计数器(可以是循环计时器或定时器),本文档来自技高网...

【技术保护点】
1.一种流水线结构神经网络矩阵运算架构,其特征在于,包含:加速器,通过数字电路实现,用于对输入向量A和输入矩阵B执行流水线式乘加操作以得到A*B=D的结果,其中,A为一个维度1*m的列向量,B的维度为m*n,D为1行n列的向量矩阵输出结果;所述的流水线式乘加操作指,将输入矩阵B分为多个不同列块,将输入向量A与输入矩阵B 的第一列块进行乘和累加并将结果输出,再继续执行输入向量A与输入矩阵B中下一列块的乘和累加并将结果输出,如此反复迭代,直至输入向量A与输入矩阵B中最后一列块也完成了乘和累加并且结果也输出之后,即得到输入向量A与输入矩阵B的相乘结果D。

【技术特征摘要】
1.一种流水线结构神经网络矩阵运算架构,其特征在于,包含:加速器,通过数字电路实现,用于对输入向量A和输入矩阵B执行流水线式乘加操作以得到A*B=D的结果,其中,A为一个维度1*m的列向量,B的维度为m*n,D为1行n列的向量矩阵输出结果;所述的流水线式乘加操作指,将输入矩阵B分为多个不同列块,将输入向量A与输入矩阵B的第一列块进行乘和累加并将结果输出,再继续执行输入向量A与输入矩阵B中下一列块的乘和累加并将结果输出,如此反复迭代,直至输入向量A与输入矩阵B中最后一列块也完成了乘和累加并且结果也输出之后,即得到输入向量A与输入矩阵B的相乘结果D。2.如权利要求1所述的流水线结构神经网络矩阵运算架构,其特征在于,所述的加速器包含:定点乘累加模块,用于对输入向量A与输入矩阵B执行流水式乘加操作;该定点乘累加模块包含若干并行运行的定点乘加器,每个定点乘累加器的两个输入端依次输入向量A的1行m列的各个元素以及输入矩阵B对应列块中对应列里的各个元素,以分别同步地执行对输入向量A与输入矩阵B的对应列块中各对应列的乘和累加,并且计算完成后在计数器reset脉冲对每个定点乘加器的RC复位脉冲使能端的控制下进行乘累加结果的输出和归零,再执行输入向量A与输入矩阵B中下一个对应列块的乘和累加;计数器,用于在定点乘加器每执行完一次输入向量A和输入矩阵B的对应列块的乘和累加后输出一个reset脉冲,该脉冲经过第一寄存器链产生流水线复位信号给每个定点乘加器的RC复位脉冲使能端,在定点乘累加模块每完成一次输入向量A与输入矩阵B的流水式乘加操作以后控制自身脉冲的清零;移位器,用于控制输入向量A列数的移位深度;第一寄存器链,计数器通过该第一寄存...

【专利技术属性】
技术研发人员:王照钢毛劲松徐栋麟
申请(专利权)人:上海亮牛半导体科技有限公司
类型:发明
国别省市:上海,31

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

1