一种实现矩阵乘法运算的方法、装置及设备制造方法及图纸

技术编号:21090044 阅读:42 留言:0更新日期:2019-05-11 10:08
本发明专利技术公开了一种实现矩阵乘法运算的方法,能在接收到对第一矩阵和第二矩阵进行矩阵乘法运算的计算任务后,将计算任务分解为多个子任务,在执行子任务时,读取在一个矩阵中与子任务对应的目标元素以及在另一个矩阵中与该目标元素对应的多个关联元素,进而根据读取到的元素得到子任务的计算结果,最后根据各个子任务的计算结果得到该计算任务的最终结果。可见,该方法在实现矩阵乘法运算的过程中,在不改变对一个矩阵中元素的读取次数的前提下,减少了对另一个矩阵中元素的读取次数,实现了通过减少处理器与存储设备的交互次数提高计算效率的目的。此外,本发明专利技术还提供了一种实现矩阵乘法运算的装置及设备,其作用与上述方法的作用相对应。

【技术实现步骤摘要】
一种实现矩阵乘法运算的方法、装置及设备
本专利技术涉及计算机领域,特别涉及一种实现矩阵乘法运算的方法、装置及设备。
技术介绍
矩阵乘法是一种基本的数学运算,在实际工程中存在大量应用,如处理器设计、图像处理、导航系统、自动驾驶、AI计算等领域应用广泛。随着大数据时代的到来,应用场景中的矩阵规模越来越大,处理器完成矩阵乘法的运算量、资源需求、运算时间等指标将成指数级增长。一般情况下,在处理器对两个矩阵(为方便描述,以下称为第一矩阵和第二矩阵)进行矩阵乘法运算时(我们将运算得到的矩阵称为目标矩阵),每计算目标矩阵中的一个元素,需要从存储设备中分别读取第一矩阵的一行元素以及第二矩阵的一列元素,可见,在计算过程中,处理器需要频繁从存储设备读取矩阵元素,导致计算效率较低。
技术实现思路
本专利技术的目的是提供一种实现矩阵乘法运算的方法、装置及设备,用以解决传统的进行矩阵乘法运算的过程中,处理器需要频繁从存储设备读取矩阵元素,导致计算效率较低的问题。为解决上述技术问题,本专利技术提供了一种实现矩阵乘法运算的方法,应用于处理器,所述方法包括:接收对第一矩阵和第二矩阵进行矩阵乘法运算的计算任务;将所述计算任务分解为多个子任务,其中,所述多个子任务与所述第一矩阵或所述第二矩阵的元素一一对应;当所述多个子任务与所述第一矩阵中的元素一一对应时,从存储设备中的第一矩阵读取与所述子任务对应的目标元素,并从存储设备中的第二矩阵读取与所述目标元素对应的多个关联元素,其中,所述多个关联元素为所述第二矩阵中目标行的元素,所述目标行的行号为所述目标元素的列号;当所述多个子任务与所述第二矩阵中的元素一一对应时,从存储设备中的第二矩阵读取与所述子任务对应的目标元素,并从存储设备中的第一矩阵读取与所述目标元素对应的多个关联元素,其中,所述多个关联元素为所述第一矩阵中目标列的元素,所述目标列的列号为所述目标元素的行号;根据读取到的元素,计算得到所述子任务的执行结果;根据各个所述子任务的执行结果,计算得到所述计算任务的执行结果。可选的,所述根据读取到的元素,计算得到所述子任务的执行结果,包括:将所述目标元素分别与所述多个关联元素中的各个关联元素进行相乘运算,得到多个相乘运算结果。可选的,所述根据各个所述子任务的执行结果,计算得到所述计算任务的执行结果,具体包括:当所述多个子任务与所述第一矩阵中的元素一一对应时,遍历所述第一矩阵的各个行,选取与当前遍历到的行中的元素对应的子任务;根据选取到的子任务的执行结果,得到由多个相乘运算结果组成的矩阵,其中,各个所述相乘运算结果的行号列号等于与所述相乘运算结果相对应的关联元素的行号列号;对所述矩阵中各个列的元素进行相加运算,得到当前遍历到的行所对应的计算结果;根据所述第一矩阵的各个行所对应的计算结果,确定所述计算任务的执行结果。相应的,本专利技术还提供了一种实现矩阵乘法运算的装置,应用于处理器,所述装置包括:接收模块:用于接收对第一矩阵和第二矩阵进行矩阵乘法运算的计算任务;分解模块:用于将所述计算任务分解为多个子任务,其中,所述多个子任务与所述第一矩阵或所述第二矩阵的元素一一对应;第一读取模块:用于当所述多个子任务与所述第一矩阵中的元素一一对应时,从存储设备中的第一矩阵读取与所述子任务对应的目标元素,并从存储设备中的第二矩阵读取与所述目标元素对应的多个关联元素,其中,所述多个关联元素为所述第二矩阵中目标行的元素,所述目标行的行号为所述目标元素的列号;第二读取模块:用于当所述多个子任务与所述第二矩阵中的元素一一对应时,从存储设备中的第二矩阵读取与所述子任务对应的目标元素,并从存储设备中的第一矩阵读取与所述目标元素对应的多个关联元素,其中,所述多个关联元素为所述第一矩阵中目标列的元素,所述目标列的列号为所述目标元素的行号;子任务计算模块:用于根据读取到的元素,计算得到所述子任务的执行结果;计算任务计算模块:用于根据各个所述子任务的执行结果,计算得到所述计算任务的执行结果。可选的,所述子任务计算模块具体用于:将所述目标元素分别与所述多个关联元素中的各个关联元素进行相乘运算,得到多个相乘运算结果。可选的,所述计算任务计算模块具体包括:选取单元:用于当所述多个子任务与所述第一矩阵中的元素一一对应时,遍历所述第一矩阵的各个行,选取与当前遍历到的行中的元素对应的子任务;矩阵组成单元:用于根据选取到的子任务的执行结果,得到由多个相乘运算结果组成的矩阵,其中,各个所述相乘运算结果的行号列号等于与所述相乘运算结果相对应的关联元素的行号列号;相加运算单元:用于对所述矩阵中各个列的元素进行相加运算,得到当前遍历到的行所对应的计算结果;计算任务确定单元:用于根据所述第一矩阵的各个行所对应的计算结果,确定所述计算任务的执行结果。最后,本专利技术还提供了一种实现矩阵乘法运算的设备,包括:存储设备:用于存储第一矩阵和第二矩阵;处理器:用于在接收到对所述第一矩阵和所述第二矩阵进行矩阵乘法运算的计算任务时,执行如上所述的一种实现矩阵乘法的方法的步骤。本专利技术所提供的一种实现矩阵乘法运算的方法,应用于处理器,该方法能够在接收到对第一矩阵和第二矩阵进行矩阵乘法运算的计算任务后,将计算任务分解为多个子任务,在执行子任务时,读取在一个矩阵中与子任务对应的目标元素以及在另一个矩阵中与该目标元素对应的多个关联元素,进而对读取到的元素进行计算,得到子任务的计算结果,最后根据各个子任务的计算结果得到该计算任务的最终结果。可见,该方法在实现矩阵乘法运算的过程中,在不改变对一个矩阵中元素的读取次数的前提下,减少了对另一个矩阵中元素的读取次数,且该读取次数仅仅为一,因此显著减少了处理器与存储设备的交互次数,降低了计算过程中处理器与存储设备之间的交互过程带来的延迟影响,有效提高了计算效率。此外,本专利技术还提供了一种实现矩阵乘法运算的装置及设备,其作用与上述方法的作用相对应,这里不再赘述。附图说明为了更清楚的说明本专利技术实施例或现有技术的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单的介绍,显而易见地,下面描述中的附图仅仅是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1为一种矩阵乘法运算的应用场景示意图;图2-1、图2-2、图2-3、图2-4为现有技术方案中进行矩阵乘法运算的过程示意图;图3为本专利技术所提供的一种实现矩阵乘法运算的方法实施例一的实现流程图;图4为本专利技术所提供的一种实现矩阵乘法运算的方法实施例一种子任务与元素的对应关系示意图;图5-1、图5-2为本专利技术所提供的一种实现矩阵乘法运算的方法实施例一的运算过程示意图;图6-1、图6-2、图6-3、图6-4为本专利技术所提供的一种实现矩阵乘法运算的方法实施例二的运算过程示意图;图7为本专利技术所提供的一种实现矩阵乘法运算的装置实施例的功能框图;图8为本专利技术所提供的一种实现矩阵乘法运算的设备实施例的结构框图。具体实施方式本专利技术的核心是提供一种实现矩阵乘法运算的方法、装置及设备,减少了在矩阵乘法运算过程中处理器与存储设备之间的交互次数,提高了计算效率。为了使本
的人员更好地理解本专利技术方案,下面结合附图和具体实施方式对本专利技术作进一步的详细说明。显然,所描述的实本文档来自技高网
...

【技术保护点】
1.一种实现矩阵乘法运算的方法,其特征在于,应用于处理器,所述方法包括:接收对第一矩阵和第二矩阵进行矩阵乘法运算的计算任务;将所述计算任务分解为多个子任务,其中,所述多个子任务与所述第一矩阵或所述第二矩阵的元素一一对应;当所述多个子任务与所述第一矩阵中的元素一一对应时,从存储设备中的第一矩阵读取与所述子任务对应的目标元素,并从存储设备中的第二矩阵读取与所述目标元素对应的多个关联元素,其中,所述多个关联元素为所述第二矩阵中目标行的元素,所述目标行的行号为所述目标元素的列号;当所述多个子任务与所述第二矩阵中的元素一一对应时,从存储设备中的第二矩阵读取与所述子任务对应的目标元素,并从存储设备中的第一矩阵读取与所述目标元素对应的多个关联元素,其中,所述多个关联元素为所述第一矩阵中目标列的元素,所述目标列的列号为所述目标元素的行号;根据读取到的元素,计算得到所述子任务的执行结果;根据各个所述子任务的执行结果,计算得到所述计算任务的执行结果。

【技术特征摘要】
1.一种实现矩阵乘法运算的方法,其特征在于,应用于处理器,所述方法包括:接收对第一矩阵和第二矩阵进行矩阵乘法运算的计算任务;将所述计算任务分解为多个子任务,其中,所述多个子任务与所述第一矩阵或所述第二矩阵的元素一一对应;当所述多个子任务与所述第一矩阵中的元素一一对应时,从存储设备中的第一矩阵读取与所述子任务对应的目标元素,并从存储设备中的第二矩阵读取与所述目标元素对应的多个关联元素,其中,所述多个关联元素为所述第二矩阵中目标行的元素,所述目标行的行号为所述目标元素的列号;当所述多个子任务与所述第二矩阵中的元素一一对应时,从存储设备中的第二矩阵读取与所述子任务对应的目标元素,并从存储设备中的第一矩阵读取与所述目标元素对应的多个关联元素,其中,所述多个关联元素为所述第一矩阵中目标列的元素,所述目标列的列号为所述目标元素的行号;根据读取到的元素,计算得到所述子任务的执行结果;根据各个所述子任务的执行结果,计算得到所述计算任务的执行结果。2.如权利要求1所述的方法,其特征在于,所述根据读取到的元素,计算得到所述子任务的执行结果,包括:将所述目标元素分别与所述多个关联元素中的各个关联元素进行相乘运算,得到多个相乘运算结果。3.如权利要求2所述的方法,其特征在于,所述根据各个所述子任务的执行结果,计算得到所述计算任务的执行结果,具体包括:当所述多个子任务与所述第一矩阵中的元素一一对应时,遍历所述第一矩阵的各个行,选取与当前遍历到的行中的元素对应的子任务;根据选取到的子任务的执行结果,得到由多个相乘运算结果组成的矩阵,其中,各个所述相乘运算结果的行号列号等于与所述相乘运算结果相对应的关联元素的行号列号;对所述矩阵中各个列的元素进行相加运算,得到当前遍历到的行所对应的计算结果;根据所述第一矩阵的各个行所对应的计算结果,确定所述计算任务的执行结果。4.一种实现矩阵乘法运算的装置,其特征在于,应用于处理器,所述装置包括:接收模块:用于接收对第一矩阵和第二矩阵进行矩阵乘法运算的计算任务;分解模块:用于将所述计算任务...

【专利技术属性】
技术研发人员:满宏涛
申请(专利权)人:郑州云海信息技术有限公司
类型:发明
国别省市:河南,41

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

1