一种可配置矩阵乘法装置及算法制造方法及图纸

技术编号:29253355 阅读:21 留言:0更新日期:2021-07-13 17:23
本发明专利技术提出一种可配置矩阵乘法装置及算法,包括:运算电路、第一存储器、第二存储器和控制器,所述运算电路包括P个矩阵计算单元,并配备有矩阵累加器。所述第一存储器和所述第二存储器分别与矩阵计算单元连接,所述矩阵计算单元与矩阵累加器连接,所述控制器与矩阵计算单元双向连接。本发明专利技术通过矩阵运算单元组的方式,可以使得控制器根据需求选择需要采用的矩阵运算单元,配置高性能或低功耗模式,并且本发明专利技术可以利用矩阵运算单元组中全部乘法器,实现资源利用最大化。

【技术实现步骤摘要】
一种可配置矩阵乘法装置及算法
本专利技术涉及计算
,尤其是一种可配置矩阵乘法装置及算法。
技术介绍
矩阵乘法运算广泛存在于图像处理、深度学习、信号处理等领域。深度学习中的卷积神经网络主要包括卷积层和全连接层,这两层的计算均可以转化为矩阵乘法运算。现有技术中,专利CN109992743B提出了一种矩阵乘法器,包含存储器、运算电路、控制器。上述矩阵乘法器在生产或出厂之后,其所包括的M行N列的矩阵数据计算已经固定,其中的乘积累加计算器(MultiplyAccumulate,MAC)中乘法器数量L也固定,计算过程中需要进行矩阵分块及数据填充补齐操作;所述矩阵乘法器设计过程中若M*N数值太小,则不能提高矩阵运算性能,即一个周期内完成矩阵乘法单元数量有限;若M*N数值太大,则增加功耗,对于较低功耗环境需求难以满足,不能动态调节,且存在数据填充补齐过程中的计算资源浪费。而且对于全连接层,结果矩阵是单列或单行,属于矩阵和向量的计算,M*N矩阵计算实际是M*1的数据计算,一个周期内只能完成M*1*L个乘法计算,即只能利用运算电路中一列来计算,不能充分利用全部乘法器,上述矩阵乘法器存在资源浪费,不适合进行全连接层的计算。
技术实现思路
针对上述现有矩阵计算存在的技术问题,本专利技术提出一种可配置矩阵乘法装置及算法。本专利技术保护一种可配置矩阵乘法装置,包括:运算电路、第一存储器、第二存储器和控制器,所述运算电路包括P个矩阵计算单元,并配备有矩阵累加器。所述第一存储器和所述第二存储器分别与矩阵计算单元连接,所述矩阵计算单元与矩阵累加器连接,所述控制器与矩阵计算单元双向连接。所述第一存储器用于存储第一矩阵;所述第二存储器用于存储第二矩阵;所述矩阵计算单元用于提取所述第一存储器和所述第二存储器中的矩阵数据并进行向量的乘法和加法运算,其包含多个乘积累加计算器,每个乘积累加计算器包含k个乘法器和k-1个加法器;所述矩阵累加器包含多个累加单元AC,用于矩阵累加器中每个位置、每行或每列数据相加;所述控制器用于依据预设的程序或者指令控制所述矩阵计算单元和所述矩阵累加器完成运算。本专利技术还保护一种可配置矩阵乘法算法,该算法的具体运行步骤为:步骤S1,输入第一计算矩阵到第一存储器并且输入第二计算矩阵到第二存储器,确定矩阵计算单元的使用数量。其中,所述矩阵计算单元的使用数量,根据需求动态调整。通过矩阵运算单元组的方式,可以使得控制器根据需求选择需要采用的矩阵运算单元,配置高性能或低功耗模式。步骤S2,根据第一计算矩阵和第二计算矩阵是否为单列或单行矩阵,第一存储器和第二存储器分别对第一计算矩阵和第二计算矩阵进行分块。进一步地,对非单行或单列矩阵进行一次或多次分块,具体分块次数根据矩阵大小和矩阵计算单元的使用数量确定。步骤S3,控制器在一个周期内,将第一存储器和第二存储器内的分块矩阵输入对应的矩阵计算单元,并控制矩阵计算单元进行向量的乘法和加法运算。通过利用矩阵运算单元组中全部乘法器,实现资源利用最大化。步骤S4,将每个矩阵计算单元对应位置的计算结果送入矩阵累加器的对应位置,完成累加计算,输出最后的运算结果。进一步地,第一计算矩阵和第二计算矩阵均为非单列或单行矩阵,每个矩阵计算单元对应位置的计算结果输入矩阵累加器的对应位置。例如:将每个矩阵计算单元的第一行第一列数值的计算结果输入矩阵累加器的第一行第一列,完成一次累加计算。进一步地,对于第一计算矩阵是单行矩阵,将第一矩阵计算单元的第一列结果输入累加器,完成一次累加计算,第一矩阵计算单元剩余列执行相同的操作。剩余矩阵计算单元执行上述相同的操作。控制器控制矩阵累加器中的列累加器工作,将矩阵累加器中每列数据相加,完成矩阵运算。进一步地,若第二计算矩阵为单列矩阵,将第一矩阵计算单元的第一行结果输入累加器,完成一次累加计算,第一矩阵计算单元剩余行执行相同的操作。剩余矩阵计算单元执行上述相同的操作。控制器控制矩阵累加器中的行累加器工作,将矩阵累加器中每行数据相加,完成矩阵运算。本专利技术的有益效果:1、本专利技术通过矩阵运算单元组的方式,可以使得控制器根据需求选择需要采用的矩阵运算单元,配置高性能或低功耗模式;2、本专利技术可以利用矩阵运算单元组中全部乘法器,实现资源利用最大化。附图说明图1为一种可配置矩阵乘法装置结构图;图2为实施例1中第一计算矩阵存储图;图3为实施例1中第二计算矩阵存储图;图4为实施例1中第一矩阵计算单元示意图;图5为实施例1中乘积累加计算单元示意图;图6为实施例1中第一计算矩阵和第二计算矩阵存储图;图7为实施例2中第一矩阵计算单元示意图;图8为实施例2中矩阵累加器示意图。具体实施方式下面结合附图和具体实施方式对本专利技术作进一步详细的说明。本专利技术的实施例是为了示例和描述起见而给出的,而并不是无遗漏的或者将本专利技术限于所公开的形式。很多修改和变化对于本领域的普通技术人员而言是显而易见的。选择和描述实施例是为了更好说明本专利技术的原理和实际应用,并且使本领域的普通技术人员能够理解本专利技术从而设计适于特定用途的带有各种修改的各种实施例。实施例1本实施例输入任意两个非单行或单列矩阵到矩阵乘法装置(主要结构如图1所示)中进行乘法运算,对本专利技术技术方案进行具体阐述。步骤S1,输入第一计算矩阵W到第一存储器并且输入第二计算矩阵H到第二存储器。其中,W为4*7矩阵,H为7*4矩阵,均不是单行和单列矩阵;参见图2和图3。根据第一计算矩阵和第二计算矩阵的大小,本实施例可以选定矩阵计算单元为2~4个,能充分利用选定的矩阵计算单元内的乘法器;每个矩阵计算单元由4行4列MAC组成;每个MAC由4个乘法器和3个加法器组成。若采用2个矩阵计算单元,配置成低功耗模式;若采用4个矩阵计算单元,配置成高性能模式。本实施例选定的矩阵计算单元的数量为P=4个。步骤S2,第一存储器和第二存储器对W和H分为4块,分别为:步骤S3,如图4所示,控制器在一个周期内,将第一存储器内第一分块X44的第i行数据送入第一矩阵计算单元中的第i行MACi1、MACi2...MACi4;将第二存储器内第一分块Y44的第j列数据送入第一矩阵计算单元中的第j列MAC1j、MAC2j...MAC4j;对MAC11内的数据,完成第一存储器第一行和第二存储器第一列的计算,参见图5,结果为A11*B11+A12*B21+A13*B31+A14*B41;第一矩阵计算单元对剩余MAC同时执行上述相同的操作,完成一次矩阵计算,输出为X44Y44。同周期内,第一存储器与第二存储器的分块对应输入第二矩阵计算单元,第三矩阵计算单元和第四矩阵计算单元执行与第一矩阵计算单元相同的操作,各完成一次矩阵运算,输出为X45Y54,X46Y64,X47Y74。一个周期内一个矩阵计算单元可以完成4*4*4次乘法计算,P=4个矩阵计算单元可本文档来自技高网...

【技术保护点】
1.一种可配置矩阵乘法装置,包括运算电路、第一存储器、第二存储器和控制器,其特征在于,所述运算电路包括P个矩阵计算单元,并配备有矩阵累加器;所述第一存储器和所述第二存储器分别与矩阵计算单元连接,所述矩阵计算单元与矩阵累加器连接,所述控制器与矩阵计算单元双向连接;/n所述第一存储器用于存储第一矩阵;所述第二存储器用于存储第二矩阵;/n所述矩阵计算单元用于提取所述第一存储器和所述第二存储器中的矩阵数据并进行向量的乘法和加法运算,其包含多个乘积累加计算器,每个乘积累加计算器包含k个乘法器和k-1个加法器;/n所述矩阵累加器包含多个累加单元AC,用于矩阵累加器中每个位置、每行或每列数据相加;/n所述控制器用于依据预设的程序或者指令控制所述矩阵计算单元和所述矩阵累加器完成运算。/n

【技术特征摘要】
1.一种可配置矩阵乘法装置,包括运算电路、第一存储器、第二存储器和控制器,其特征在于,所述运算电路包括P个矩阵计算单元,并配备有矩阵累加器;所述第一存储器和所述第二存储器分别与矩阵计算单元连接,所述矩阵计算单元与矩阵累加器连接,所述控制器与矩阵计算单元双向连接;
所述第一存储器用于存储第一矩阵;所述第二存储器用于存储第二矩阵;
所述矩阵计算单元用于提取所述第一存储器和所述第二存储器中的矩阵数据并进行向量的乘法和加法运算,其包含多个乘积累加计算器,每个乘积累加计算器包含k个乘法器和k-1个加法器;
所述矩阵累加器包含多个累加单元AC,用于矩阵累加器中每个位置、每行或每列数据相加;
所述控制器用于依据预设的程序或者指令控制所述矩阵计算单元和所述矩阵累加器完成运算。


2.基于权利要求1所述的矩阵乘法装置的矩阵乘法算法,其特征在于,包括如下运行步骤:
步骤S1,输入第一计算矩阵到第一存储器并且输入第二计算矩阵到第二存储器,确定矩阵计算单元的使用数量;
步骤S2,根据第一计算矩阵和第二计算矩阵是否为单列或单行矩阵,对第一计算矩阵和第二计算矩阵进行分块;
步骤S3,控制器在一个周期内,将第一存储器和第二存储器内的分块矩阵输入对应的矩阵计算单元,并控制矩阵计算单元进行向量的乘法和加法运算;
步骤S4,将每个矩阵计算单元...

【专利技术属性】
技术研发人员:黄光红刘振林广栋张笑
申请(专利权)人:安徽芯纪元科技有限公司
类型:发明
国别省市:安徽;34

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

1