一种基于神经网络的矩阵乘运算方法及相关装置制造方法及图纸

技术编号:30164432 阅读:26 留言:0更新日期:2021-09-25 15:19
本申请实施例公开了一种基于神经网络的矩阵乘运算方法及相关装置,该方法包括:将输入矩阵和i个权值矩阵写入所述N个集群中;按照第一预设顺序将第一输入数据块在所述N个集群中依次传递并计算,得到多个第一中间结果;将在每个集群中计算得到的第一中间结果分别向对应的目标集群发送,得到多个第一中间数据块;按照第二预设顺序将目标第一中间数据块在所述N个集群中依次传递并计算,得到多个第二中间结果。通过本披露,在一定程度上可以充分利用集群之间的通信宽带,节省IO时间,提高运行效率。行效率。行效率。

【技术实现步骤摘要】
一种基于神经网络的矩阵乘运算方法及相关装置


[0001]本披露一般地涉及数据处理领域。更具体地,本披露涉及一种基于神经网络的矩阵乘运算方法及相关装置。

技术介绍

[0002]前馈神经网络层(Feedforward Neural Network Layer,FNN)是深度学习算法中常见的运算层,被广泛应用于transformer,bert等网络。其数学表示可以为Y=Relu(X*M1+b1)*M2+b2,即输入数据X与第一权值矩阵M1先进行矩阵乘,然后加上偏置b1,通过Relu激活作为下一层的输入矩阵,然后与第二权值矩阵M2进行矩阵乘,加上偏置b2,得到输出Y。
[0003]一般来说,现代处理器多采用多核并行的架构,每个处理器核上的空间有限。由于FNN层的权值矩阵M1和/或M2较大,单个核难以完成矩阵乘计算。一般需要较多次的输入/输出(Input/Output,IO)操作才可以完成矩阵乘计算,而多次IO操作可能会增加通信时间,降低处理器的运行效率。

技术实现思路

[0004]为了解决如上所提到的一个或多个技术问题,本申请实施例在多个方面提出了提供了基于神经网络的矩阵乘运算方法及相关装置,按照预设顺序将输入数据块在N个集群中依次传递并计算,并将计算得到的结果向目标集群发送来完成下一次矩阵程序,在一定程度上可以充分利用集群之间的通信宽带,节省IO时间,提高运行效率。
[0005]在第一方面中,本申请实施例提供了一种基于神经网络的矩阵乘运算方法,该述方法应用于芯片,芯片包括N个集群,N个集群中的每个集群包括M个处理器核,N和M属于正整数,方法包括:将输入矩阵和i个权值矩阵写入N个集群中,其中,输入矩阵包括N个输入数据块,i个权值矩阵中的每个权值矩阵包括N*M个权值数据块,每个输入数据块分别写入在每个集群中,每个权值数据块分别写入在每个处理器核中;其中,i为大于且等于1的正整数;按照第一预设顺序将第一输入数据块在N个集群中依次传递并计算,得到多个第一中间结果,其中,第一输入数据块为N个输入数据块中的任意一个输入数据块,第一中间结果用于确定第一次矩阵乘时,输入矩阵和i个权值矩阵中的第一权值矩阵的第一矩阵乘结果;将在每个集群中计算得到的第一中间结果分别向对应的目标集群发送,得到多个第一中间数据块,其中,目标集群属于第一输入数据块没有被依次传递之前所写入的集群,所述第一中间数据块在每个集群中的摆放方式与所述第一输入数据块在每个集群中的摆放方式一致;按照第二预设顺序将目标第一中间数据块在N个集群中依次传递并计算,得到多个第二中间结果,其中,目标第一中间数据块为多个第一中间数据块中的任意一个第一中间数据块,第二中间结果用于确定第二次矩阵乘时,第一矩阵乘结果和i个权值矩阵中的第二权值矩阵的第二矩阵乘结果。
[0006]在第二方面中,本申请实施例提供了一种基于神经网络的矩阵乘运算装置,该装置包括:写入单元,用于将输入矩阵和i个权值矩阵写入N个集群中,其中,输入矩阵包括N个
输入数据块,i个权值矩阵中的每个权值矩阵包括N*M个权值数据块,每个输入数据块分别写入在每个集群中,每个权值数据块分别写入在每个处理器核中;其中,i为大于且等于1的正整数;处理单元,用于按照第一预设顺序将第一输入数据块在N个集群中依次传递并计算,得到多个第一中间结果,其中,第一输入数据块为N个输入数据块中的任意一个输入数据块,第一中间结果用于确定第一次矩阵乘时,输入矩阵和i个权值矩阵中的第一权值矩阵的第一矩阵乘结果;发送单元,用于将在每个集群中计算得到的第一中间结果分别向对应的目标集群发送,得到多个第一中间数据块,其中,目标集群属于第一输入数据块没有被依次传递之前所写入的集群;处理单元,还用于按照第二预设顺序将目标第一中间数据块在N个集群中依次传递并计算,得到多个第二中间结果,其中,目标第一中间数据块为多个第一中间数据块中的任意一个第一中间数据块,第二中间结果用于确定第二次矩阵乘时,第一矩阵乘结果和i个权值矩阵中的第二权值矩阵的第二矩阵乘结果。
[0007]在第三方面中,本申请实施例提供了一种计算机可读存储介质,计算机可读存储介质中存储有计算机程序,当所述计算机程序在一个或多个处理器上运行时,执行如前述第一方式的任一实施例的方法。
[0008]在第四方面中,本申请实施例提供了一种芯片系统,该芯片系统包括至少一个处理器、存储器和接口电路,所述存储器中存储有计算机程序,当所述计算机程序在一个或多个处理器上运行时,执行如前述第一方式的任一实施例的方法。
[0009]通过如上所提供的基于神经网络的矩阵乘运算方法及相关装置,本申请实施例的方案利用了集群上的存储空间,将数据(比如说输入矩阵和权值矩阵)一次写入到N个集群中,并且本申请实施例的方案还利用了集群之间的通信宽带,按照预设顺序将第一输入数据块在N个集群中依次传递并计算来完成输入矩阵与第一权值矩阵的第一次矩阵乘运算,其中,所述第一输入数据块为所述N个输入数据块中的任意一个输入数据块。然后将计算得到的结果向目标集群发送,为下一次矩阵乘做准备。可以看出,对于神经网络FFN层来说,当进行一次读取操作,将FFN层的输入矩阵和权值矩阵写入到集群中后,利用集群之间的通信宽带,完成输入矩阵和权值矩阵的第一次矩阵乘运算。然后将第一次矩阵乘运算得到的结果向目标集群发送,这样就可以直接根据上述结果来完成第二次矩阵乘。相比于现有技术而言,可以减少IO操作,提高运行效率。
附图说明
[0010]为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0011]图1是示出此实施例的一种板卡10的结构示意图;
[0012]图2是示出此实施例的组合处理装置的结构图;
[0013]图3示出了计算装置201为单核的内部结构示意图;
[0014]图4示出了计算装置201为多核的内部结构示意图;
[0015]图5示出当一个处理器核欲将数据写入至另一个集群的处理器核时的示意图;
[0016]图6示出矩阵乘的拆分方式的示意图;
[0017]图7A示出一种基于神经网络的矩阵乘运算方法的流程示意图;
[0018]图7B示出的一种对输入矩阵和权值矩阵进行拆分的示意图;
[0019]图7C示出第一输入数据块在N个集群中依次传递的示意图;
[0020]图8示出一种基于神经网络的多次矩阵乘运算方法的流程示意图;
[0021]图9示出FFN层运算的示意图;
[0022]图10示出一种基于神经网络的矩阵乘运算装置1000的结果示意图。
具体实施方式
[0023]下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于神经网络的矩阵乘运算方法,其特征在于,所述方法应用于芯片,所述芯片包括N个集群,所述N个集群中的每个集群包括M个处理器核,N和M属于正整数,所述方法包括:将输入矩阵和i个权值矩阵写入所述N个集群中,其中,所述输入矩阵包括N个输入数据块,所述i个权值矩阵中的每个权值矩阵包括N*M个权值数据块,每个输入数据块分别写入在每个集群中,每个权值数据块分别写入在每个处理器核中;其中,i为大于且等于2的正整数;按照第一预设顺序将第一输入数据块在所述N个集群中依次传递并计算,得到多个第一中间结果,其中,所述第一输入数据块为所述N个输入数据块中的任意一个输入数据块,所述第一中间结果用于确定第一次矩阵乘时,所述输入矩阵和所述i个权值矩阵中的第一权值矩阵的第一矩阵乘结果;将在每个集群中计算得到的第一中间结果分别向对应的目标集群发送,得到多个第一中间数据块,其中,所述目标集群属于所述第一输入数据块没有被依次传递之前所写入的集群,所述第一中间数据块在每个目标集群中的摆放方式与所述输入数据块的摆放方式一致;按照第二预设顺序将目标第一中间数据块在所述N个集群中依次传递并计算,得到多个第二中间结果,其中,所述目标第一中间数据块为所述多个第一中间数据块中的任意一个第一中间数据块,所述第二中间结果用于确定第二次矩阵乘时,所述第一矩阵乘结果和所述i个权值矩阵中的第二权值矩阵的第二矩阵乘结果。2.根据权利要求1所述的方法,其特征在于,按照第二预设顺序将目标第一中间数据块在所述N个集群中依次传递并计算,得到多个第二中间结果之后,还包括:将在每个集群中计算得到的第i

1中间结果分别向对应的所述目标集群发送,得到多个第i

1中间数据块,其中,所述第i

1中间数据块在每个集群中的摆放方式与所述输入数据块的摆放方式一致;按照第i预设顺序将目标第i

1中间数据块在所述N个集群中依次传递并计算,得到多个第i中间结果,其中,所述目标第i

1中间数据块为所述多个第i

1中间数据块中的任意一个第i

1中间数据块,所述第i中间结果用于确定第i次矩阵乘时,所述第i

1矩阵乘结果和所述i个权值矩阵中的第i权值矩阵的第i次矩阵乘结果。3.根据权利要求1或2所述的方法,其特征在于,所述按照第一预设顺序将第一输入数据块在所述N个集群中依次传递并计算,得到多个第一中间结果,包括:按照第一预设顺序将第一输入数据块在所述N个集群中依次传递;将传递到第一集群中的所述第一输入数据块与所述第一集群中每个处理器核中的所述权值数据块进行矩阵乘运算,得到多个第一中间结果;其中,所述第一集群为所述N个集群中的任意一个集群。4.根据权利要求3所述的方法,其特征在于,所述N个集群之间存在环状通信链路;所述按照第一预设顺序将第一输入数据块在所述N个集群中依次传递,包括:通过每个集群之间的所述环状通信链路按照顺时针或逆时针将所述第一输入数据块在所述N个集群中依次传递。5.根据权利要求1所述的方法,其特征在于,所述按照第二预设顺序将目标第一中间数
据块在所述N个集群中依次传递并计算,得到多个第二中间结果,包括:按照第二预设顺序将目标第一中间数据块在所述N个集群中依次传递;将传递到第一集群中的所述目标第一中间数据块与所述第一集群中每个处理器核中的所述权值数据块进行矩阵乘运算,得到多个第二中间结果;其中,所述第一集群为所述N个集群中的任意一个集群。6.根据权利要求5所述的方法,其特征在于,所述N个集群之间存在环状通信链路;所述按照第二预设顺序将目标第一中间数据块在所述N个集群中依次传递,包括:通过每个集群之间的所述环状通信链路按照顺时针或逆时...

【专利技术属性】
技术研发人员:ꢀ七四专利代理机构
申请(专利权)人:上海寒武纪信息科技有限公司
类型:发明
国别省市:

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

1