本发明涉及数据处理,尤其涉及一种矩阵乘计算结果累加方法、装置、设备及存储介质。
背景技术:
1、矩阵乘计算是一种计算机数据处理中常用的运算方式。在计算机图形学、人工智能和机器学习、信号处理和图像处理、优化以及仿真等领域被广泛应用。
2、为了提高矩阵乘的计算效率,通常采用并行的方式进行批量计算。现有的矩阵乘计算库在并行计算批量矩阵乘通常采用batch gemm或规约的方法进行计算。使用batchgemm计算方法时如果将不同的矩阵乘计算结果存放地址指向相同内存会出现内存写冲突,从而造成计算结果之间的累加计算结果错误;使用规约方法在批量矩阵乘计算完成之后再进行计算结果累加则会造成严重的性能负担。这两种方法在进行矩阵乘计算时,都存在较大局限性。
3、上述内容仅用于辅助理解本发明的技术方案,并不代表承认上述内容是现有技术。
技术实现思路
1、本发明的主要目的在于提供了一种矩阵乘计算结果累加方法、装置、设备及存储介质,旨在解决现有技术中矩阵乘计算方法局限性较大,并行计算效率低的技术问题。
2、为实现上述目的,本发明提供了一种矩阵乘计算结果累加方法,所述方法包括以下步骤:
3、获取矩阵乘任务,对所述矩阵乘任务进行分解,获得矩阵乘子任务;
4、在所述矩阵乘子任务访问结果存放地址时,设置并发限制操作;
5、基于所述并发限制操作从结果存放地址中获取历史累加结果;
6、将所述矩阵乘子任务的矩阵乘计算结果与所述历史累加结果进行累加,获得累加结果。
7、可选地,所述将所述矩阵乘子任务的矩阵乘计算结果与所述历史累加结果进行累加,获得累加结果的步骤之后,还包括:
8、将所述累加结果存储至所述结果存放地址;
9、解除所述矩阵乘子任务的并发限制,以对下一矩阵乘子任务的矩阵乘计算结果进行累加。
10、可选地,所述解除所述矩阵乘子任务的并发限制,以对下一矩阵乘子任务的矩阵乘计算结果进行累加的步骤之后,还包括:
11、在所述矩阵乘任务对应的矩阵乘子任务全部执行完成时,基于所述结果存放地址中的累加结果确定所述矩阵乘任务的矩阵乘计算结果。
12、可选地,所述在所述矩阵乘子任务访问结果存放地址时,设置并发限制操作的步骤,包括:
13、并发执行矩阵乘子任务,获得各所述矩阵乘子任务的矩阵乘计算结果;
14、在所述矩阵乘子任务访问结果存放地址时,设置并发限制操作;所述并发限制操作包括内存加锁操作和原子操作。
15、可选地,所述并发执行矩阵乘子任务,获得各所述矩阵乘子任务的矩阵乘计算结果的步骤,包括:
16、并行获取各矩阵乘子任务矩阵权重参数,并基于所述矩阵权重参数执行所述矩阵乘子任务,获得所述矩阵乘子任务的矩阵乘计算结果。
17、可选地,所述并行获取各矩阵乘子任务矩阵权重参数,并基于所述矩阵权重参数执行所述矩阵乘子任务,获得所述矩阵乘子任务的矩阵乘计算结果的步骤,包括:
18、并行获取所述矩阵乘子任务的矩阵预处理方式,基于所述矩阵预处理方式对所述矩阵乘子任务涉及的矩阵进行矩阵预处理;
19、获取所述矩阵乘子任务的矩阵权重参数,基于所述矩阵权重参数对矩阵预处理后的所述矩阵乘子任务进行处理,获得矩阵乘计算结果。
20、可选地,所述预处理方式包括:矩阵转置或共轭转置。
21、此外,为实现上述目的,本发明还提出一种矩阵乘计算结果累加装置,所述矩阵乘计算结果累加装置包括:
22、任务分解模块,用于获取矩阵乘任务,对所述矩阵乘任务进行分解,获得矩阵乘子任务;
23、并发管理模块,用于在所述矩阵乘子任务访问结果存放地址时,设置并发限制操作;
24、结果计算模块,用于基于所述并发限制操作从结果存放地址中获取历史累加结果;
25、所述结果计算模块,还用于将所述矩阵乘子任务的矩阵乘计算结果与所述历史累加结果进行累加,获得累加结果。
26、此外,为实现上述目的,本发明还提出一种矩阵乘计算结果累加设备,所述设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的矩阵乘计算结果累加程序,所述矩阵乘计算结果累加程序配置为实现如上文所述的矩阵乘计算结果累加方法的步骤。
27、此外,为实现上述目的,本发明还提出一种存储介质,所述存储介质上存储有矩阵乘计算结果累加程序,所述矩阵乘计算结果累加程序被处理器执行时实现如上文所述的矩阵乘计算结果累加方法的步骤。
28、本发明实施例通过获取矩阵乘任务,对矩阵乘任务进行分解,获得矩阵乘子任务;对矩阵乘子任务设置并发限制操作;基于并发限制操作从结果存放地址中获取历史累加结果;将矩阵乘子任务的矩阵乘计算结果与历史累加结果进行累加,获得累加结果。由于是将矩阵乘任务分解为多个矩阵乘子任务,通过对这些矩阵乘子任务并行处理,显著提高了计算效率,有效地节约计算时间;并且通过并发限制操作实现各矩阵乘子任务对结果存放地址的互斥访问,保证了矩阵乘计算结果累加时的数据一致性,避免了由于并发访问和修改共享资源导致的数据不一致和可能导致的计算错误,提高了矩阵乘计算结果的准确性。
1.一种矩阵乘计算结果累加方法,其特征在于,所述方法包括:
2.如权利要求1所述的矩阵乘计算结果累加方法,其特征在于,所述将所述矩阵乘子任务的矩阵乘计算结果与所述历史累加结果进行累加,获得累加结果的步骤之后,还包括:
3.如权利要求2所述的矩阵乘计算结果累加方法,其特征在于,所述解除所述矩阵乘子任务的并发限制,以对下一矩阵乘子任务的矩阵乘计算结果进行累加的步骤之后,还包括:
4.如权利要求1所述的矩阵乘计算结果累加方法,其特征在于,所述在所述矩阵乘子任务访问结果存放地址时,设置并发限制操作的步骤,包括:
5.如权利要求4所述的矩阵乘计算结果累加方法,其特征在于,所述并发执行矩阵乘子任务,获得各所述矩阵乘子任务的矩阵乘计算结果的步骤,包括:
6.如权利要求5所述的矩阵乘计算结果累加方法,其特征在于,所述并行获取各矩阵乘子任务矩阵权重参数,并基于所述矩阵权重参数执行所述矩阵乘子任务,获得所述矩阵乘子任务的矩阵乘计算结果的步骤,包括:
7.如权利要求6所述的矩阵乘计算结果累加方法,其特征在于,所述预处理方式包括:矩阵转置或共轭转置。
8.一种矩阵乘计算结果累加装置,其特征在于,所述矩阵乘计算结果累加装置包括:
9.一种矩阵乘计算结果累加设备,其特征在于,所述设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的矩阵乘计算结果累加程序,所述矩阵乘计算结果累加程序配置为实现如权利要求1至7中任一项所述的矩阵乘计算结果累加方法的步骤。
10.一种存储介质,其特征在于,所述存储介质上存储有矩阵乘计算结果累加程序,所述矩阵乘计算结果累加程序被处理器执行时实现如权利要求1至7任一项所述的矩阵乘计算结果累加方法的步骤。