矩阵运算方法、装置、设备及可读介质制造方法及图纸

技术编号:20866598 阅读:22 留言:0更新日期:2019-04-17 09:22
本公开实施例公开了一种矩阵运算方法、装置、设备及可读介质。其中,方法包括:获取第一矩阵、第二矩阵和矩阵运算规则;根据矩阵运算规则,确定第一矩阵和/或第二矩阵的多组切割尺度;按照多组切割尺度中每组切割尺度,分别对第一矩阵和第二矩阵进行矩阵运算,得到运算时长;选择满足预设要求的运算时长对应的切割尺度,对第一矩阵和第二矩阵进行矩阵运算。本公开实施例能够自动选择出最优的切割尺度,对矩阵进行切割,无需人工设置切割尺度,从而减少运算时长。

【技术实现步骤摘要】
矩阵运算方法、装置、设备及可读介质
本公开实施例涉及计算机技术,尤其涉及一种矩阵运算方法、装置、设备及可读介质。
技术介绍
矩阵运算包括矩阵与矩阵相乘、矩阵相加减等等,在电子设备上进行矩阵运算时,需要将矩阵读入缓存中,例如一级缓存或者二级缓存,寄存器再从缓存中读取矩阵进行运算。但是缓存的空间有限,当矩阵包含的数据量较大时,可能会占满缓存,并溢出至内存中,寄存器如果从内存中读取矩阵会比较耗时。现有技术中,为了减少运算时长,会对矩阵进行切块,并将切割的子矩阵依次读入缓存中,避免溢出至内存中;同时,由于子矩阵数据量较小,可以在其运算周期内一直存储在缓存中,不必频繁读入和踢出缓存,进一步减少运算时长。再者,由于寄存器的计算资源有限,还需要再对子矩阵进行切割,得到多个运算单元,以匹配寄存器的计算资源。可见,现有技术需要子矩阵的尺寸与缓存相匹配,运算单元的尺寸与寄存器的计算资源相匹配,矩阵的切割尺度和子矩阵的切割尺度是关键。但是,目前,切割尺度是人为设定的,很难与缓存和寄存器相匹配,达不到最小化运算时长。
技术实现思路
本公开实施例提供一种矩阵运算方法、装置、设备及可读介质,以减少矩阵运算时长。第一方面,本公开实施例提供了一种矩阵运算方法,包括:获取第一矩阵、第二矩阵和矩阵运算规则;根据矩阵运算规则,确定第一矩阵和/或第二矩阵的多组切割尺度;按照多组切割尺度中每组切割尺度,分别对第一矩阵和第二矩阵进行矩阵运算,得到运算时长;选择满足预设要求的运算时长对应的切割尺度,对第一矩阵和第二矩阵进行矩阵运算。第二方面,本公开实施例还提供了一种矩阵运算装置,包括:获取模块,用于获取第一矩阵、第二矩阵和矩阵运算规则;确定模块,用于根据矩阵运算规则,确定第一矩阵和/或第二矩阵的多组切割尺度;运算模块,用于按照多组切割尺度中每组切割尺度,分别对第一矩阵和第二矩阵进行矩阵运算,得到运算时长;选择模块,用于选择满足预设要求的运算时长对应的切割尺度,对第一矩阵和第二矩阵进行矩阵运算。第三方面,本公开实施例还提供了一种电子设备,所述电子设备包括:一个或多个处理装置;存储装置,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理装置实现任一实施例所述的矩阵运算方法。第四方面,本公开实施例还提供了一种计算机可读介质,其上存储有计算机程序,该程序被处理装置执行时实现任一实施例所述的矩阵运算方法。本公开实施例中,通过获取第一矩阵、第二矩阵和矩阵运算规则,根据矩阵运算规则,确定第一矩阵和/或第二矩阵的多组切割尺度,按照多组切割尺度中每组切割尺度,分别对第一矩阵和第二矩阵进行矩阵运算,得到运算时长,从而对多组切割尺度进行搜索,自动选择出最优的切割尺度,对矩阵进行切割,无需人工设置切割尺度,从而减少运算时长。附图说明图1a是本公开实施例一提供的一种矩阵运算方法的流程图;图1b是本公开实施例一提供的第一矩阵和第二矩阵的切割尺度示意图;图2是本公开实施例二提供的一种矩阵运算方法的流程图;图3是本公开实施例三提供的一种矩阵运算方法的流程图;图4是本公开实施例四提供的一种矩阵运算装置的结构示意图;图5是本公开实施例五提供的一种电子设备的结构示意图。具体实施方式下面结合附图和实施例对本公开作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本公开,而非对本公开的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本公开相关的部分而非全部结构。下述各实施例中,每个实施例中同时提供了可选特征和示例,实施例中记载的各个特征可进行组合,形成多个可选方案,不应将每个编号的实施例仅视为一个技术方案。实施例一图1a是本公开实施例一提供的一种矩阵运算方法的流程图,本实施例可适用于在电子设备上对两个矩阵进行运算的情况。该方法可以由矩阵运算装置来执行,该装置可以由硬件和/或软件构成,并集成在电子设备中。结合图1a,本公开实施例提供的方法具体包括如下操作:S110、获取第一矩阵、第二矩阵和矩阵运算规则。第一矩阵包括至少一行和/或至少一列,同样地,第二矩阵也包括至少一行和/或至少一列,第一矩阵和第二矩阵的尺寸(即长和宽)可能相同也可能不同。第一矩阵和第二矩阵中的数据可以是浮点型也可以是定点型。第一矩阵和第二矩阵的矩阵运算规则包括但不限于相乘、相加减等。以矩阵相乘为例,矩阵运算规则还应包括运算关系,即哪个矩阵是乘数,哪个矩阵是被乘数。S120、根据矩阵运算规则,确定第一矩阵和/或第二矩阵的多组切割尺度。在进行矩阵运算时,需要按照切割尺度,将矩阵进行切割得到子矩阵,以及将子矩阵进行切割得到运算单元。本实施例中,对两个矩阵的至少一者进行切割即可,如果第一矩阵或者第二矩阵的尺寸较小,可以不进行切割。一个矩阵具有多组切割尺度,即多组切割方式,从而寻找最优的切割尺度。其中,一组切割尺度包括固定切割方向上的固定切割单位,不同组的切割尺度可以是切割方向不同,和/或,切割单位不同。如图1b所示,每个方格代表一个数据,第一矩阵的一组切割尺度包括:在第一矩阵的横向方向上,2个数据为一个切割单位;对于第一矩阵的子矩阵,在横向方向上,1个数据为一个切割单位。第二矩阵的一组切割尺度包括:在第二矩阵的纵向方向上,2个数据为一个切割单位;对于第二矩阵的子矩阵,在纵向方向上,1个数据为一个切割单位。S130、按照多组切割尺度中每组切割尺度,分别对第一矩阵和第二矩阵进行矩阵运算,得到运算时长。具体地,结合图1b,首先按照每组切割尺度,对第一矩阵和/或第二矩阵进行分割,得到子矩阵,并将子矩阵读入缓存。再在寄存器中,对第一矩阵的子矩阵分割得到的运算单元和第二矩阵的子矩阵分割得到的运算单元进行运算,得到总运算时长。可见,一组切割尺度对应一个运算时长,通过按照多组切割尺度分别进行矩阵运算,能够得到多个运算时长。可选地,按照应用场景选择矩阵运算的电子设备。例如,矩阵运算应用在终端应用程序中,则在终端对第一矩阵和第二矩阵进行矩阵运算。从而选择出符合应用场景的运算时长和切割尺度。可选地,对于多组切割尺度,可采用网格搜索方法,将各组切割尺度分配到各网格中,依次按照每个网格中的切割尺度进行矩阵运算,得到运算时长。S140、选择满足预设要求的运算时长对应的切割尺度,对第一矩阵和第二矩阵进行矩阵运算。运算时长的长短反应了切割尺度的好坏,根据
技术介绍
的描述,如果某一组切割尺度对应的运算时长较短,说明子矩阵的尺寸与缓存相匹配,运算单元与寄存器的计算资源相匹配。可选地,选择最小的运算时长对应的切割尺度,对第一矩阵和第二矩阵进行矩阵运算;或者,选择小于等于时长阈值的运算时长对应的切割尺度,对第一矩阵和第二矩阵进行矩阵运算。如果小于等于时长阈值的运算时长有多个,则任选一个运算时长对应的切割尺度。通过按照每组切割尺度进行矩阵运算,并比较运算时长,从而选择出最优的切割尺度。进而,在后续对第一矩阵和第二矩阵进行运算时,可以按照选择出的切割尺度进行切割并运算,以减少运算时长。本公开实施例中,通过获取第一矩阵、第二矩阵和矩阵运算规则,根据矩阵运算规则,确定第一矩阵和/或第二矩阵的多组切割尺度,按照多组切割尺度中每组切割尺度,分别对第一矩阵和第二矩阵进行矩阵运算,得到运算时长,从而对多组切割尺本文档来自技高网
...

【技术保护点】
1.一种矩阵运算方法,其特征在于,包括:获取第一矩阵、第二矩阵和矩阵运算规则;根据矩阵运算规则,确定第一矩阵和/或第二矩阵的多组切割尺度;按照多组切割尺度中每组切割尺度,分别对第一矩阵和第二矩阵进行矩阵运算,得到运算时长;选择满足预设要求的运算时长对应的切割尺度,对第一矩阵和第二矩阵进行矩阵运算。

【技术特征摘要】
1.一种矩阵运算方法,其特征在于,包括:获取第一矩阵、第二矩阵和矩阵运算规则;根据矩阵运算规则,确定第一矩阵和/或第二矩阵的多组切割尺度;按照多组切割尺度中每组切割尺度,分别对第一矩阵和第二矩阵进行矩阵运算,得到运算时长;选择满足预设要求的运算时长对应的切割尺度,对第一矩阵和第二矩阵进行矩阵运算。2.根据权利要求1所述的方法,其特征在于,所述选择满足预设要求的运算时长对应的切割尺度,对第一矩阵和第二矩阵进行矩阵运算,包括:选择最小的运算时长对应的切割尺度,对第一矩阵和第二矩阵进行矩阵运算;或者,选择小于等于时长阈值的运算时长对应的切割尺度,对第一矩阵和第二矩阵进行矩阵运算。3.根据权利要求1所述的方法,其特征在于,所述根据矩阵运算规则,确定第一矩阵和/或第二矩阵的多组切割尺度,包括:将矩阵运算规则的代码,转换成二叉搜索树,所述二叉搜索树的节点包括第一矩阵和第二矩阵的尺寸,第一矩阵和/或第二矩阵的切割方向;根据第一矩阵的尺寸和计算资源,确定与第一矩阵的切割方向对应的第一切割尺度范围,和/或,根据第二矩阵的尺寸和计算资源,确定与第二矩阵的切割方向对应的第二切割尺度范围;在第一切割尺寸范围和/或第二切割尺寸范围内,分别确定第一矩阵和/或第二矩阵的多组切割尺度;其中,切割尺度范围包括矩阵切割尺度范围和子矩阵切割尺度范围。4.根据权利要求3所述的方法,其特征在于,所述多组切割尺度包括多组矩阵切割尺度和多组子矩阵切割尺度;所述按照多组切割尺度中每组切割尺度,分别对第一矩阵和第二矩阵进行矩阵运算,得到运算时长,包括:按照多组切割尺度中每组切割尺度,对二叉搜索树进行变形;将变形后的二叉搜索树,生成底层机器可执行的代码,以通过执行所述可执行代码对第一矩阵和第二矩阵进行矩阵运算,得到运算时长;其中,变形后的二叉搜索树的节点包括:按照每个矩阵切割尺度对第一矩阵和/或第二矩阵进行切割后的子矩阵的尺寸,以及按照每个子矩阵切割尺度对子矩阵进行切割后的运算单元的尺寸。5.根据权利要求4所述的方法,其特征在于,在将变形后的二叉搜索树,生成底层机器可执行的代码之前,还包括:根据矩阵运算规则,确定变形后的二叉搜索树的节点之间的运算关系;将存在运算关系的节点进行合并。6.根据权利要求4所述的方法,其特征在于,在将变形后的二叉搜索树,生成底层...

【专利技术属性】
技术研发人员:胡耀全
申请(专利权)人:北京字节跳动网络技术有限公司
类型:发明
国别省市:北京,11

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

1