首页> 中国专利> 一种矩阵乘法器的实现方法及矩阵乘法器装置

一种矩阵乘法器的实现方法及矩阵乘法器装置

摘要

本发明公开了一种矩阵乘法器的实现方法,方法包括:配置第一乘法运算模块、第二乘法运算模块、保留进位加法运算模块和超前进位加法运算模块;将待运算的多个乘数根据矩阵乘法运算的需求分割成满足第一乘法运算模块和第二乘法运算模块所需的小矩阵;通过小矩阵进行矩阵的乘法运算生成多个部分积;通过保留进位加法运算模块对多个部分积根据不同的权重进行压缩至两个部分积;通过超前进位加法运算模块对两个部分积进行运算生成用于组成矩阵乘法结果的元素。根据本发明公开的方法能够减少矩阵运算所需的时钟周期,提高了计算模块的利用效率,减少了运算资源的浪费。

著录项

  • 公开/公告号CN113032723A

    专利类型发明专利

  • 公开/公告日2021-06-25

    原文格式PDF

  • 申请/专利号CN202110568171.4

  • 申请日2021-05-25

  • 分类号G06F17/16(20060101);G06F7/523(20060101);

  • 代理机构11317 北京商专润文专利代理事务所(普通合伙);

  • 代理人熊雯

  • 地址 510656 广东省广州市黄埔区神舟路18号

  • 入库时间 2023-06-19 11:35:49

说明书

技术领域

本发明涉及计算机算法技术领域,尤其涉及一种矩阵乘法器的实现方法及矩阵乘法器装置。

背景技术

矩阵乘法在深度学习,图像识别,自动驾驶,5G/B5G无线基带信号处理等领域有着广泛的应用。随着这些领域的快速发展,特别是人工智能和5G在垂直行业的应用,对矩阵乘法的运算速度的要求越来越高。现有的矩阵乘法的实现一般是采用通用CPU处理器来实现的,由于CPU处理器主要是应用于控制,并不擅长矩阵乘法运算,需要根据人工的编入的算法按照矩阵乘法的运算规则逐个将两个矩阵的每个元素多次读出并进行乘法计算,会存在计算缓慢不能满足深度学习,5G信号处理等需求的问题。

为了解决这一问题,有根据深度学习的需求研究了脉动整列来实现矩阵乘法,通过脉动阵列实现矩阵乘法运算确实解决了传统处理器运算速度低下的问题,但是由于脉动阵列实现的方式实质是大矩阵阵列的运算,需要的乘法器资源多,成本高昂,并且并不能满足小矩阵的运算速度,存在资源浪费的问题。

发明内容

本发明所要解决的技术问题在于,提供一种矩阵乘法器的实现方法及矩阵乘法器装置,能够减少矩阵运算所需的时钟周期,提高了计算模块的利用效率,减少了运算资源的浪费。

为了解决上述技术问题,本发明第一方面公开了一种矩阵乘法器的实现方法,所述方法包括:配置第一乘法运算模块、第二乘法运算模块、保留进位加法运算模块和超前进位加法运算模块;将待运算的多个乘数根据乘法运算的需求分割成满足所述第一乘法运算模块和第二乘法运算模块所需的小矩阵;通过所述小矩阵进行矩阵的乘法运算生成多个部分积;通过保留进位加法运算模块对所述多个部分积根据不同的权重进行压缩至两个部分积;通过所述超前进位加法运算模块对两个部分积进行运算生成用于组成矩阵乘法结果的元素。

在一些实施方式中,矩阵乘法器的实现方法,所述乘数包括矩阵,在配置第一乘法运算模块、第二乘法运算模块、保留进位加法运算模块和超前进位加法运算模块之后,还将待运算的多个矩阵根据矩阵乘法运算的需求分割成满足所述第一乘法运算模块和第二乘法运算模块所需的小矩阵。

在一些实施方式中,通过所述小矩阵进行矩阵的乘法运算生成多个部分积,包括:对所述小矩阵的乘数的偶数位及其相邻位交替编码生成多个部分积和所述部分积对应的权重;根据所述部分积的权重进行组合生成多个部分积。

在一些实施方式中,还包括:将待运算的多个乘数和通过用于组成矩阵乘法结果的元素组成的乘法结果根据行的方式进行存储。

在一些实施方式中,还包括:将待运算的多个乘数和通过用于组成矩阵乘法结果的元素组成的乘法结果根据分割后的小矩阵的方式分块列进行存储。

根据本发明的第二个方面,公开了一种矩阵乘法器装置,所述装置包括:矩阵运算控制模块,用于将待运算的多个乘数根据矩阵乘法运算的需求分割成满足所述第一乘法运算模块和第二乘法运算模块所需的小矩阵;第一乘法运算模块和第二乘法运算模块,用于通过所述小矩阵进行矩阵的乘法运算生成多个部分积;保留进位加法运算模块,用于对所述多个部分积根据不同的权重进行压缩至两个部分积;超前进位加法运算模块,用于对两个部分积进行运算生成用于组成矩阵乘法结果的元素。

在一些实施方式中,第一乘法运算模块和第二乘法运算模块实现为:对所述小矩阵的乘数的偶数位及其相邻位交替编码生成多个部分积和所述部分积对应的权重;根据所述部分积的权重进行组合生成多个部分积。

在一些实施方式中,还包括:第一存储模块,用于将待运算的多个乘数和通过用于组成矩阵乘法结果的元素组成的乘法结果根据行的方式进行存储。

在一些实施方式中,还包括:第二存储模块,用于将待运算的多个乘数和通过用于组成矩阵乘法结果的元素组成的乘法结果根据分割后的小矩阵的方式分块列进行存储。

根据本发明的第三个方面,公开了一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如上述的矩阵乘法器的实现方法中的步骤。

与现有技术相比,本发明的有益效果在于:

实施本发明通过一个单时钟周期就能够完成一次矩阵乘加运算,然后根据不同的矩阵乘法需求将两个大矩阵根据矩阵自动分割成满足运算单元所需的小矩阵进行矩阵的乘法运算,并且巧妙的利用了部分积进行压缩节约了运算时间,大大的提高了矩阵乘法运算的性能。

附图说明

图1为本发明实施例公开的一种矩阵乘法器的实现方法的流程示意图;

图2为本发明实施例公开的一种矩阵乘法器的实现方法应用示意图;

图3为本发明实施例公开的又一种矩阵乘法器的实现方法应用示意图;

图4为本发明实施例公开的又一种矩阵乘法器的实现方法应用示意图;

图5为本发明实施例公开的一种矩阵乘法器装置示意图;

图6为本发明实施例公开的一种矩阵乘法器实现装置结构示意图。

具体实施方式

为了更好地理解和实施,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

本发明实施例的术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或模块的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或模块,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或模块。

现有的脉动阵列实现矩阵乘法运算确实解决了传统处理器运算速度低下的问题,但是脉动阵列由于实现大矩阵运算,需要乘法器资源多,成本高昂,并且对于小矩阵来说,运算速度还是不能满足。例如谷歌的TPU的脉动阵列是一个256x256的矩阵,对于一个小于或等于256x256的矩阵乘法运算,需要的计算时间是511个时钟周期,对于一个16x16的小矩阵的矩阵乘法运算也是需要511个时钟周期。

本发明实施例公开了一种矩阵乘法器的实现方法及矩阵乘法器装置,通过一个单时钟周期就能够完成一次矩阵乘加运算,然后根据不同的矩阵乘法需求将两个大矩阵根据矩阵自动分割成满足运算单元所需的小矩阵进行矩阵的乘法运算,并且巧妙的利用了部分积进行压缩节约了运算时间,大大的提高了矩阵乘法运算的性能。

实施例一

请参阅图1,图1为本发明实施例公开的一种矩阵乘法器实现方法的流程示意图。其中,该矩阵乘法器可以应用于不同的矩阵运算组合,对于该矩阵乘法器的应用运算组合本发明实施例不做限制。如图1所示,该矩阵乘法器实现方法可以包括以下操作:

101、配置第一乘法运算模块、第二乘法运算模块、保留进位加法运算模块和超前进位加法运算模块。

为了满足矩阵运算所需的乘加运算,为此,在本实施例中首先需要配置可以用于矩阵乘法运算的第一乘法运算模块、第二乘法运算模块,以及可以用于矩阵加法运算的保留进位加法运算模块和超前进位加法运算模块。

102、将待运算的多个乘数根据矩阵乘法运算的需求分割成满足第一乘法运算模块和第二乘法运算模块所需的小矩阵。

为了便于举例如何通过需求分割矩阵,在本实施例中通过两个整数的乘法运算进行说明,假设待运算的乘数为p*q,其中,p和q的位宽都是n,如果n是奇数,那么q进行符号位扩展,扩展一位,如果n是偶数,那么q不变,这样经过处理后乘数的位宽一定是偶数的可以便于进行矩阵的运算,将处理后的乘数命名为r,位宽为h。那么r可以用二进制表示为:

r = -r

=(-r

=(-2*r

=

=

那么两个乘数相乘所得的小矩阵就可以表示为:

p*r=p*(

其真值表如下所示:

103、通过小矩阵进行矩阵的乘法运算生成多个部分积。

通过上述步骤所得到的矩阵化后的乘数,对小矩阵的乘数的偶数位及其相邻位交替编码生成多个部分积和部分积对应的权重,例如p*r可以分解成p*4n乘以-2,-1,0,1,2这五种操作,p*4

104、通过保留进位加法运算模块对多个部分积根据不同的权重进行压缩至两个部分积。

再获取到多个由上述步骤生成的部分积后,将所有部分积按照权重加起来就可以得到乘法运算的结果。现有技术中一般采用超前进位加法器进行相加,但是会产生从最低位到最高位进位延迟传递,所有在本实施例中采用了保留进位加法器进行压缩,直至最后形成2个部分积后才用超前进位加法器相加得到乘法的结果。最终压缩至只有两个部分积后再用超前进位加法器相加就可以得到乘法结果。该保留进位加法运算模块有三输入端口I1、I2和Ci,分别是被加数、加数和相邻的低位进位,两个输出端口Co和SUM,其中SUM具有与I1、I2、Ci相同的权重,是本位的累加结果,而Co的权重是SUM权重的2倍,是向高位的进位信号。其中,该运算器的真值表如下表所示:

示例性地,如图2所示,将多个CSA32加法器(CSA:Carry Save Adder,保留进位加法器)排成一行就可以实现对部分积进行压缩,如果部分积的位宽是32位,那么就需要32个CSA32排成一行,将三个部分积压缩成两个部分积,此时Co的权重是2。

作为一种其他实施方式,保留进位加法运算模块还可以实现为CSA53计数器,其具有五个输入端: I1、I2、I3、I4、Ci;三个输出端:SUM、C、Co。将CSA53编码器并成一行,即为CSA53计数行;若将相邻低位之Co接入本位之Ci,则成为CSA42压缩器。这样可以减少二个操作数。

其中,计数器代数运算式如下:

SUM + C * 2 + Co * 2 = I1 + I2 + I3 + I4 + Ci

即:I1、I2、I3、I4、Ci、SUM权值为1;C、Co权值为2。

其中,该运算器的真值表如下表所示:

SUM= I1 ^ I2 ^ I3 ^ I4 ^ Ci

C=(I1 ^ I2 ^ I3 ^ I4) & Ci | (~ (I1 ^ I2 ^ I3 ^ I4)) & (I1 & I2 | I3& I4)

= (I1 ^ I2 ^ I3 ^ I4) & Ci | (~ ((I1 ^ I2 ^ I3 ^ I4) | (~ (I1 & I2 |I3 & I4))))

Co = (I1 | I2) & (I3 | I4)

由上述公式可以看出:用作CSA42 压缩器时,将相邻低位之Co接入本位的Ci,对延迟并无影响。因为Ci在被用到时,Co正好形成。4个输入数据经过42压缩器处理后得到两个输出,一个权重为1的结果SUM,一个是权重为2的数据C。由于Co信号不需要根据Ci信号译码得到,所以不会产生进位链传递延迟。同理将多个CSA42排成一列,可以将4个部分积进行压缩,压缩后可以得到两个部分积结果,一个是权重为2的部分积结果。

105、通过超前进位加法运算模块对压缩后最终的两个部分积进行运算生成用于组成矩阵乘法结果的元素。每一个乘法结果的元素都按照上述步骤进行运算就可以在效率高且不占用资源的情况下进行高效的矩阵运算。

根据另一种优选实施方式中,特别是在实际应用中可以有两种方法来存储两个乘数矩阵例如A和B,第一种方法是将A矩阵和B矩阵按照行的方式存储到DDR内存中,进行运算的时候需要按照矩阵的行来取出各个元素,这个时候可以在矩阵运算控制器内部设置一个缓存,每次预取多个小矩阵,具体小矩阵的数目可以根据运算速度和成本平衡的需求来确定,然后控制各个小矩阵按照上述描述的方式送入到各个运算模块中进行运算。运算的结果也可以按照小矩阵分块的方式存储到DDR缓存中,可以根据配置将小矩阵块按照行或列的方式进行存储,或者先缓存在矩阵运算控制器内部,等多个运算结果小矩阵拼接成矩阵行才存储到DDR缓存中。第二种方法是将A矩阵根据矩阵乘加模块的要求分成小矩阵块,然后按照行存储各个小矩阵块,B矩阵也根据矩阵乘加单元的要求分成小矩阵块,按照列的方式存储各个小矩阵块。至于需求使用哪种方式存储在设计矩阵运算控制器的时候可以做成可配置的,根据用户实际需求配置相关寄存器选择其中的一种方式来实现矩阵的乘法运算。

根据本实施例提供的方法,通过一个单时钟周期就能够完成一次矩阵乘加运算,然后根据不同的矩阵乘法需求将两个大矩阵根据矩阵自动分割成满足运算单元所需的小矩阵进行矩阵的乘法运算,并且巧妙的利用了部分积进行压缩节约了运算时间,大大的提高了矩阵乘法运算的性能。

实施例二

请参阅图3,图3为本发明实施例公开的一种矩阵乘法器实现方法的应用示意图。如图3所示,待运算的多个乘数可以实现为多个矩阵,具体包括为由A、B、C组成,将D设为乘法结果,矩阵规则即需求为D=A*B+C,其中,A,B,C可以是任意元素的矩阵,只要A,B的行列要满足矩阵乘法规则即可。在本实施例中,为了表述方便,假设A,B,C,D都是32x32的方阵。

可见,对于D矩阵的第一个元素d

d

d

d

通过D矩阵的运算规则可以看出,A矩阵第一行和B矩阵第一列的对应元素进行乘法运算时则一共需要32个乘法器,在具体实现上则需要根据实施例一中所描述的方法将A和B相乘后的所有部分积通过保留进位加法器(CSA32或CSA42)进行压缩,同时把作为加法的C矩阵的第一个元素也当作一个部分积进行压缩,最后得到两个压缩后部分积结果,之后再用一个超前进位加法器完成累加得到了D矩阵的第一个元素。示例性地,以乘法结果D矩阵的第一个元素为例,先把a

在其他实施方式中,还可以采用流水线的方式提高矩阵乘法运算单元的运算能力。由于采用保留进位加法器完成部分积的压缩没有进位传递延迟,所以实际组合逻辑路径非常短,可以在一个时钟周期内将32个乘法运算产生的部分积和C矩阵的一个元素进行压缩,压缩后得到最终的两个部分积。32位乘法运算最终得到64位的结果,考虑到64位超前进位加法器的进位链的延迟需要从最低位传递到最高位,组合逻辑延迟过大,所以将64位超前进位加法器采用两级流水实现,第一个时钟周期实现低32位超前进位加法器运算,第二个时钟周期实现高32位超前进位加法器运算,所以D矩阵的一个元素需要三个时钟周期才能完成。对于D矩阵的所有元素采用并行计算实现,所以整个D矩阵只需三个时钟周期就能够完成所有元素的运算得到运算结果。由于是采用流水线的方式实现矩阵乘加运算,在第一个时钟周期送入A,B,C三个矩阵的数据,在下一个时钟周期可以送入新的A,B,C三个矩阵的数据。即第一次送入的数据需要等到第三个时钟周期才能得到运算结果,第二次送入的数据需要等到第四个时钟周期才能得到运算结果,等效一个时钟周期就可以完成一次矩阵乘累加运算,只是运算的结果延迟是三个时钟周期而已。由此可见本申请在实现32x32矩阵的乘累加运算完成一次矩阵乘累加等效只需一个时钟周期,大大提高了矩阵乘法运算的性能。

实施例三

请参阅图4,图4为本发明实施例公开的一种矩阵乘法器实现方法的应用示意图。对于其他任意行列的矩阵如果矩阵的行列数不是32整数倍,则需要对矩阵的行和列进行补零操作,直至补到矩阵的行数和列数为32的整数倍;若矩阵行列是32的整数倍则直接进入下一步。先按照矩阵乘法运算的要求按照行或列进行分割,分别送入到矩阵乘法运算单元进行乘加运算。例如A矩阵是一个64x96的矩阵,B矩阵是一个64x64的矩阵,那么在做矩阵乘法运算可以将A矩阵按照32x32进行分割,分割成6个小矩阵,分别是A

B矩阵也按照32x32进行分割,分割成4个小矩阵,分别是B

在现有技术例如设计的矩阵乘加单元支持一个时钟周期完成A*B+C,其中A, B, C都是32x32的小矩阵。采用处理器方法完成256x256矩阵乘法运算,即便处理器一个时钟周期完成一次乘法运算,那么最少也需要65536个时钟周期,还没有计算存取数据和加法的计算时间;如果采用脉动整列方法做矩阵乘法运算需要511个时钟周期;但是,如果采用本实施例的方法完成矩阵乘法运算则需要514个时钟周期即可。而脉动阵列需要65536个乘法器,而本发明只需要1024个乘法器就可以实现了。由此,根据本实施例提供的方法,通过一个单时钟周期就能够完成一次矩阵乘加运算,然后根据不同的矩阵乘法需求将两个大矩阵根据矩阵自动分割成满足运算单元所需的小矩阵进行矩阵的乘法运算,并且巧妙的利用了部分积进行压缩节约了运算时间,大大的提高了矩阵乘法运算的性能。

实施例四

请参阅图5,图5为本发明实施例公开的一种矩阵乘法器装置示意图。其中,该矩阵乘法器装置可以应用于不同的矩阵运算组合,对于该矩阵乘法器的应用运算组合本发明实施例不做限制。如图5所示,该矩阵乘法器装置包括:

矩阵运算控制模块1,用于将待运算的多个乘数或多个矩阵根据矩阵乘法运算的需求分割成满足第一乘法运算模块和第二乘法运算模块所需的小矩阵。为了便于举例如何通过需求分割矩阵,在本实施例中首先设计两个整数的乘法运算。假设为p*q,其中,p和q的位宽都是n,如果n是奇数,那么q进行符号位扩展,扩展一位,如果n是偶数,那么q不变,这样经过处理后乘数的位宽一定是偶数的可以便于进行矩阵的运算,将处理后的乘数命名为r,位宽为h。那么r可以用二进制表示为:

r = -r

=(-r

=(-2*r

=

=

那么两个乘数相乘所得的小矩阵就可以表示为:

p*r=p*(

其真值表如下所示:

第一乘法运算模块2和第二乘法运算模块3,用于通过小矩阵进行矩阵的乘法运算生成多个部分积。通过上述步骤所得到的矩阵化后的乘数,对小矩阵的乘数的偶数位及其相邻位交替编码生成多个部分积和部分积对应的权重,例如p*r可以分解成p*4n乘以-2,-1,0,1,2这五种操作,p*4

保留进位加法运算模块3,用于对多个部分积根据不同的权重进行压缩至两个部分积。再获取到多个由上述步骤生成的部分积后,将所有部分积按照权重加起来就可以得到乘法运算的结果。现有技术中一般采用超前进位加法器进行相加,但是会产生从最低位到最高位进位延迟传递,所有在本实施例中采用了保留进位加法器进行压缩,直至最后形成2个部分积后才用超前进位加法器相加得到乘法的结果。最终压缩至只有两个部分积后再用超前进位加法器相加就可以得到乘法结果。该保留进位加法运算模块有三输入端口I1、I2和Ci,分别是被加数、加数和相邻的低位进位,两个输出端口Co和SUM,其中SUM具有与I1、I2、Ci相同的权重,是本位的累加结果,而Co的权重是SUM权重的2倍,是向高位的进位信号。其中,该运算器的真值表如下表所示:

SUM = I1 ^ I2 ^ Ci

Co = I1 & I2 | I1 & Ci | I2 & Ci

= I1 & I2 | (I1 | I2) & Ci

示例性地,如图2所示,将多个CSA32加法器(CSA:Carry Save Adder,保留进位加法器)排成一行就可以实现对部分积进行压缩,如果部分积的位宽是32位,那么就需要32个CSA32排成一行,将三个部分积压缩成两个部分积,此时Co的权重是2。

作为一种其他实施方式,保留进位加法运算模块还可以实现为CSA53计数器,其具有五个输入端: I1、I2、I3、I4、Ci;三个输出端:SUM、C、Co。将CSA53编码器并成一行,即为CSA53计数行;若将相邻低位之Co接入本位之Ci,则成为CSA42压缩器。这样可以减少二个操作数。

其中,计数器代数运算式如下:

SUM + C * 2 + Co * 2 = I1 + I2 + I3 + I4 + Ci

即:I1、I2、I3、I4、Ci、SUM权值为1;C、Co权值为2。

其中,该运算器的真值表如下表所示:

SUM= I1 ^ I2 ^ I3 ^ I4 ^ Ci

C= (I1 ^ I2 ^ I3 ^ I4) & Ci | (~ (I1 ^ I2 ^ I3 ^ I4)) & (I1 & I2 | I3& I4)

= (I1 ^ I2 ^ I3 ^ I4) & Ci | (~ ((I1 ^ I2 ^ I3 ^ I4) | (~ (I1 & I2 |I3 & I4))))

Co = (I1 | I2) & (I3 | I4)

由上述公式可以看出:用作CSA42 压缩器时,将相邻低位之Co接入本位的Ci,对延迟并无影响。因为Ci在被用到时,Co正好形成。4个输入数据经过42压缩器处理后得到两个输出,一个权重为1的结果SUM,一个是权重为2的数据C。由于Co信号不需要根据Ci信号译码得到,所以不会产生进位链传递延迟。同理将多个CSA42排成一列,可以将4个部分积进行压缩,压缩后可以得到两个部分积结果,一个是权重为2的部分积结果。

超前进位加法运算模块4,用于对两个部分积进行运算生成用于组成矩阵乘法结果的元素。当获取到最后的两个部分积之后就可以直接运用超前进位加法运算模块进行运算。每一个乘法结果的元素都按照上述步骤进行运算就可以在效率高且不占用资源的情况下进行高效的矩阵运算。

在其他实施方式中,该装置还包括两个存储模块:第一存储模块(图中未示),用于将待运算的多个矩阵和通过用于组成矩阵乘法结果的元素组成的乘法结果根据行的方式进行存储。第二存储模块(图中未示),用于将待运算的多个矩阵和通过用于组成矩阵乘法结果的元素组成的乘法结果根据分割后的小矩阵的方式分块列进行存储。在实际应用中第一存储模块5是将A矩阵和B矩阵按照行的方式存储到DDR内存中,进行运算的时候需要按照矩阵的行来取出各个元素,这个时候可以在矩阵运算控制器内部设置一个缓存,每次预取多个小矩阵,具体小矩阵的数目可以根据运算速度和成本平衡的需求来确定,然后控制各个小矩阵按照上述描述的方式送入到各个运算模块中进行运算。运算的结果也可以按照小矩阵分块的方式存储到DDR缓存中,可以根据配置将小矩阵块按照行或列的方式进行存储,或者先缓存在矩阵运算控制器内部,等多个运算结果小矩阵拼接成矩阵行才存储到DDR缓存中。第二存储模块6是将A矩阵根据矩阵乘加模块的要求分成小矩阵块,然后按照行存储各个小矩阵块,B矩阵也根据矩阵乘加单元的要求分成小矩阵块,按照列的方式存储各个小矩阵块。至于需求使用哪种方式存储在设计矩阵运算控制器的时候可以做成可配置的,根据用户实际需求配置相关寄存器选择其中的一种方式来实现矩阵的乘法运算。

根据本实施例提供的装置,通过一个单时钟周期就能够完成一次矩阵乘加运算,然后根据不同的矩阵乘法需求将两个大矩阵根据矩阵自动分割成满足运算单元所需的小矩阵进行矩阵的乘法运算,并且巧妙的利用了部分积进行压缩节约了运算时间,大大的提高了矩阵乘法运算的性能。

实施例五

请参阅图6,图6是本发明实施例公开的一种矩阵乘法器实现装置的结构示意图。其中,图6所描述的矩阵乘法器实现装置可以应用在系统,对于该矩阵乘法器实现装置的应用系统本发明实施例不做限制。如图6所示,该装置可以包括:

存储有可执行程序代码的存储器601;

与存储器601耦合的处理器602;

处理器602调用存储器601中存储的可执行程序代码,用于执行实施例一所描述的矩阵乘法器的实现。

实施例六

本发明实施例公开了一种计算机可读存储介质,其存储用于电子数据交换的计算机程序,其中,该计算机程序使得计算机执行实施例一所描述的矩阵乘法器的实现方法。

实施例七

本发明实施例公开了一种计算机程序产品,该计算机程序产品包括存储了计算机程序的非瞬时性计算机可读存储介质,且该计算机程序可操作来使计算机执行实施例一或实施例二中所描述的矩阵乘法器实现方法。

以上所描述的实施例仅是示意性的,其中所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理模块,即可以位于一个地方,或者也可以分布到多个网络模块上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。

通过以上的实施例的具体描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,存储介质包括只读存储器(Read-Only Memory,ROM)、随机存储器(Random Access Memory,RAM)、可编程只读存储器(Programmable Read-only Memory,PROM)、可擦除可编程只读存储器(ErasableProgrammable Read Only Memory,EPROM)、一次可编程只读存储器(One-timeProgrammable Read-Only Memory,OTPROM)、电子抹除式可复写只读存储器(Electrically-Erasable Programmable Read-Only Memory,EEPROM)、只读光盘(CompactDisc Read-Only Memory,CD-ROM)或其他光盘存储器、磁盘存储器、磁带存储器、或者能够用于携带或存储数据的计算机可读的任何其他介质。

最后应说明的是:本发明实施例公开的一种矩阵乘法器实现方法及装置所揭露的仅为本发明较佳实施例而已,仅用于说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解;其依然可以对前述各项实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或替换,并不使相应的技术方案的本质脱离本发明各项实施例技术方案的精神和范围。

去获取专利,查看全文>

相似文献

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

客服邮箱:kefu@zhangqiaokeyan.com

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

  • 服务号