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

技术编号:30164430 阅读:23 留言:0更新日期:2021-09-25 15:19
本披露公开了一种基于神经网络的矩阵乘运算方法及相关装置,该方法包括应用于芯片,芯片包括N个集群,N个集群中的每个集群包括M个处理器核,N和M属于正整数,方法包括:将输入矩阵和权值矩阵写入N个集群中,其中,输入矩阵包括N个输入数据块,权值矩阵包括N*M个权值数据块,每个输入数据块分别写入在每个集群中,每个权值数据块分别写入每个处理器核中;按照预设顺序将第一输入数据块在N个集群中依次传递并计算,得到矩阵乘结果,其中,第一输入数据块为N个输入数据块中的任意一个输入数据块,矩阵乘结果为输入矩阵和权值矩阵的相乘结果。通过本披露,在一定程度上可以充分利用集群之间的通信宽带,节省IO时间,提高运行效率。提高运行效率。提高运行效率。

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


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

技术介绍

[0002]全连接层(Fully Connected Layers,FC)在整个神经网络中起到“分类器”的作用,作为神经网络中较为基础的运算,其数学表示为Y=X*M+b。也即,输入矩阵X与权值矩阵M先进行矩阵乘,然后加上偏置b,得到输出Y。
[0003]一般来说,现代处理器多采用多核并行的架构,每个处理器核上的空间有限。由于神经网络FC层的权值矩阵M较大,单个核难以完成矩阵乘运算。一般需要较多次的输入/输出(Input/Output,IO)操作才可以完成矩阵乘计算,而多次IO操作可能会增加通信时间,降低处理器的运行效率。

技术实现思路

[0004]为了解决如上所提到的一个或多个技术问题,本申请实施例在多个方面提出了提供了基于神经网络的矩阵乘运算方法及相关装置,按照预设顺序将输入数据块在N个集群中依次传递并计算,在一定程度上可以充分利用集群之间的通信宽带,节省IO时间,提高运行效率。
[0005]在第一方面中,本申请实施例提供了一种基于神经网络的矩阵乘运算方法,所述,该述方法应用于芯片,所述芯片包括N个集群,所述N个集群中的每个集群包括M个处理器核,N和M属于正整数,所述方法包括:将输入矩阵和权值矩阵写入所述N个集群中,其中,所述输入矩阵包括N个输入数据块,所述权值矩阵包括N*M个权值数据块,每个输入数据块分别写入在每个集群中,每个权值数据块分别写入每个处理器核中;按照预设顺序将第一输入数据块在所述N个集群中依次传递并计算,得到矩阵乘结果,其中,所述第一输入数据块为所述N个输入数据块中的任意一个输入数据块,所述矩阵乘结果为所述输入矩阵和所述权值矩阵的相乘结果。
[0006]在第二方面中,本申请实施例提供了一种基于神经网络的矩阵乘运算装置,该装置包括:写入单元,用于将输入矩阵和权值矩阵写入所述N个集群中,其中,所述输入矩阵包括N个输入数据块,所述权值矩阵包括N*M个权值数据块,每个输入数据块分别写入在每个集群中,每个权值数据块分别写入每个处理器核中;处理单元,用于按照预设顺序将第一输入数据块在所述N个集群中依次传递并计算,得到矩阵乘结果,其中,所述第一输入数据块为所述N个输入数据块中的任意一个输入数据块,所述矩阵乘结果为所述输入矩阵和所述权值矩阵的相乘结果。
[0007]在第三方面中,本申请实施例提供了一种计算机可读存储介质,计算机可读存储介质中存储有计算机程序,当所述计算机程序在一个或多个处理器上运行时,执行如前述第一方式的任一实施例的方法。
[0008]在第四方面中,本申请实施例提供了一种芯片系统,该芯片系统包括至少一个处理器、存储器和接口电路,所述存储器中存储有计算机程序,当所述计算机程序在一个或多个处理器上运行时,执行如前述第一方式的任一实施例的方法。
[0009]通过如上所提供的基于神经网络的矩阵乘运算方法及相关装置,本申请实施例的方案利用了集群上的存储空间,将数据(比如说输入矩阵和权值矩阵)一次写入到N个集群中,并且本申请实施例的方案还利用了集群之间的通信宽带,按照预设顺序将第一输入数据块在N个集群中依次传递并计算来完成输入矩阵与权值矩阵的矩阵乘运算。可以看出,对于神经网络FC层来说,当进行一次读取操作,将FC层的输入矩阵和权值矩阵写入到集群中后,利用集群之间的通信宽带,完成输入矩阵和权值矩阵的矩阵乘运算,相比于现有技术而言,可以减少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是示出一种基于神经网络的矩阵乘运算装置800的结果示意图。
具体实施方式
[0021]下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
[0022]本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别不同对象,而不是用于描述特定顺序。此外,术语“包括”和“具有”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其他步骤或单元。
[0023]在本文中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本申请的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同
的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员显式地和隐式地理解的是,本文所描述的实施例可以与其它实施例相结合。
[0024]下面结合附图来详细描述本方案的具体实施方式。
[0025]图1是示出此实施例的一种板卡10的结构示意图。如图1所示,板卡10包括芯片101,其是一种系统级芯片(System on Chip,SoC),或称片上系统,集成有一个或多个组合处理装置,组合处理装置是一种人工智能运算单元,用以支持各类深度学习和机器学习算法,满足计算机视觉、语音、自然语言处理、数据挖掘等领域复杂场景下的智能处理需求。特别是深度学习技术大量应用在云端智能领域,云端智能应用的一个显著特点是输入矩阵量大,对平台的存储能力和计算能力有很高的要求,此实施例的板卡10适用在云端智能应用,具有庞大的片外存储、片上存储和强大的计算能力。
[0026]芯片101通过对外接口装置102与外部设备103相连接。外部设备103例如是服务器、计算机、摄像头、显示器、鼠标、键盘、网卡或wifi接口等。待处理的数据可以由外部设备103通过对外接口装置102传递至芯片101。芯片10本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于神经网络的矩阵乘运算方法,其特征在于,所述方法应用于芯片,所述芯片包括N个集群,所述N个集群中的每个集群包括M个处理器核,N和M属于正整数,所述方法包括:将输入矩阵和权值矩阵写入所述N个集群中,其中,所述输入矩阵包括N个输入数据块,所述权值矩阵包括N*M个权值数据块,每个输入数据块分别写入在每个集群中,每个权值数据块分别写入每个处理器核中;按照预设顺序将第一输入数据块在所述N个集群中依次传递并计算,得到矩阵乘结果,其中,所述第一输入数据块为所述N个输入数据块中的任意一个输入数据块,所述矩阵乘结果为所述输入矩阵和所述权值矩阵的相乘结果。2.根据权利要求1所述的方法,其特征在于,所述按照预设顺序将第一输入数据块在所述N个集群中依次传递计算,得到矩阵乘结果,包括:按照预设顺序将第一输入数据块在所述N个集群中依次传递;将传递到第一集群中的所述第一输入数据块与所述第一集群中每个处理器核中的所述权值数据块进行矩阵乘运算,得到多个第一相乘结果;其中,所述第一集群为所述N个集群中的任意一个集群;根据在N个集群中所得到的多个第一相乘结果确定所述矩阵乘结果。3.根据权利要求2所述的方法,其特征在于,所述N个集群之间存在环状通信链路;所述按照预设顺序将第一输入数据块在所述N个集群中依次传递,包括:通过每个集群之间的所述环状通信链路按照顺时针或逆时针将所述第一输入数据块在所述N个集群中依次传递。4.根据权利要求1至3任一项所述的方法,其特征在于,所述将输入矩阵和权值矩阵写入所述N个集群中,包括:根据所述集群的数量将所述输入矩阵按行进行拆分,得到所述N个输入数据块;根据所述处理器核的数量将所述权值矩阵按列进行拆分,得到N*M个权值数据块;将所述N个输入数据块中的每个输入数据块分别写入所述N个集群的每个集群中,将所述N*M个权值数据块中的每个权值数据块分别写入所述N个集群的所述M个处理器核中。5.根据权利要求1至3任一项所述的方法,其特征在于,所述将输入矩阵和权值矩阵写入所述N个集群中,包括:根据所述集群的数量将所述输入矩阵按列进行拆分,得到所述N个输入数据块;根据所述集群的数量先将所述权值矩阵按行进行拆分,得到N个目标数据块;然后根据每个集群中处理器核的数量再将每个目标数据块按列进行拆分,得到N*M个权值数据块;将所述N个输入数据块中的每个输入数据块分别写入所述N个集群的每个集群中,将所述N*M个权值数据块中的每个权值数据块分别写入所述N个集群的所述M个处理器核中。6.根据权利要求1至3任一项所述的方法,其特征在于,所述将输入矩阵和权值矩阵写入所述N个集群中,包括:根据所述集群的数量对所述输入矩阵按列进行拆分,得到所述N个输入数据块;根据所述处...

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

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

1