System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本专利技术涉及数据处理,尤其涉及一种基于多核硬件的矩阵运算方法、装置、设备及介质。
技术介绍
1、随着大数据技术的发展,在越来越多的领域需要对高阶矩阵进行运算。“矩阵乘法”是高性能计算(high performance computing,hpc)常用的核心模块之一,是典型的计算密集和访存密集型应用,对处理器的乘加(multiply accumulate,mac)能力和访存带宽要求非常高,计算的时间复杂度很高,大约为o(n3),n为矩阵规模。
2、现有技术中,采用传统的三重循环实现矩阵乘法。三重循环实现方法的计算访存比较低,cache(缓存)的数据缺失、矩阵数据搬移开销占比大,导致处理器的运算效率较低。
3、尤其是对于高阶矩阵的运算,以16384阶的双精度矩阵为例,一个矩阵需占用2g的空间,运算时两个输入矩阵需要4g空间,加上结果的存储,总共需要6g的空间。核内空间完全不足以存储如此大的数据量,故需要将输入数据存储在核外空间,但数据放在核外会大大增加每次计算前数据传输进核内的时间,导致硬件执行效率不高。
技术实现思路
1、本专利技术提供了一种基于多核硬件的矩阵运算方法、装置、设备及介质,以充分运用硬件执行能力、提高硬件执行性能;节省数据传输时间,并提高运算性能。
2、根据本专利技术的一方面,提供了一种基于多核硬件的矩阵运算方法,所述多核硬件的核内空间,包括:并行执行的数据存放区域和数据运算区域;该方法包括:
3、获取待运算的原始左矩阵
4、根据所述原始左矩阵和所述原始右矩阵的矩阵维度、所述多核硬件的核数、以及各核的运算执行度,确定矩阵分块运算的目标块数;
5、根据所述目标块数对所述原始左矩阵和所述原始右矩阵进行分块处理,得到多个左矩阵分块和多个右矩阵分块;
6、通过所述数据存放区域,获取各所述左矩阵分块和各所述右矩阵分块,并根据左右矩阵分块的对应关系设置矩阵存储位置;
7、通过所述数据运算区域,在所述数据存放区域中读取与矩阵分块运算对应的矩阵分块数据进行运算,并将运算结果更新存储至对应的目标矩阵存储位置。
8、根据本专利技术的另一方面,提供了一种基于多核硬件的矩阵运算装置,所述多核硬件的核内空间,包括:并行执行的数据存放区域和数据运算区域;该装置包括:
9、原始矩阵获取模块,用于获取待运算的原始左矩阵和原始右矩阵;
10、目标块数确定模块,用于根据所述原始左矩阵和所述原始右矩阵的矩阵维度、所述多核硬件的核数、以及各核的运算执行度,确定矩阵分块运算的目标块数;
11、分块处理模块,用于根据所述目标块数对所述原始左矩阵和所述原始右矩阵进行分块处理,得到多个左矩阵分块和多个右矩阵分块;
12、矩阵存储位置设置模块,用于通过所述数据存放区域,获取各所述左矩阵分块和各所述右矩阵分块,并根据左右矩阵分块的对应关系设置矩阵存储位置;
13、矩阵分块运算模块,用于通过所述数据运算区域,在所述数据存放区域中读取与矩阵分块运算对应的矩阵分块数据进行运算,并将运算结果更新存储至对应的目标矩阵存储位置。
14、根据本专利技术的另一方面,提供了一种电子设备,所述电子设备包括:
15、至少一个处理器;以及
16、与所述至少一个处理器通信连接的存储器;其中,
17、所述存储器存储有可被所述至少一个处理器执行的计算机程序,所述计算机程序被所述至少一个处理器执行,以使所述至少一个处理器能够执行本专利技术任一实施例所述的基于多核硬件的矩阵运算方法。
18、根据本专利技术的另一方面,提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机指令,所述计算机指令用于使处理器执行时实现本专利技术任一实施例所述的基于多核硬件的矩阵运算方法。
19、本专利技术实施例的技术方案,通过获取待运算的原始左矩阵和原始右矩阵;根据所述原始左矩阵和所述原始右矩阵的矩阵维度、所述多核硬件的核数、以及各核的运算执行度,确定矩阵分块运算的目标块数;根据所述目标块数对所述原始左矩阵和所述原始右矩阵进行分块处理,得到多个左矩阵分块和多个右矩阵分块;通过所述数据存放区域,获取各所述左矩阵分块和各所述右矩阵分块,并根据左右矩阵分块的对应关系设置矩阵存储位置;通过所述数据运算区域,在所述数据存放区域中读取与矩阵分块运算对应的矩阵分块数据进行运算,并将运算结果更新存储至对应的目标矩阵存储位置,解决了充分利用硬件资源进行高阶矩阵运算的问题,通过对矩阵运算进行分块处理,可以充分运用硬件的执行能力,提高运算性能;通过并行的数据存放与运算可以节省数据传输时间,提高硬件执行性能。
20、应当理解,本部分所描述的内容并非旨在标识本专利技术的实施例的关键或重要特征,也不用于限制本专利技术的范围。本专利技术的其它特征将通过以下的说明书而变得容易理解。
本文档来自技高网...【技术保护点】
1.一种基于多核硬件的矩阵运算方法,其特征在于,所述多核硬件的核内空间,包括:并行执行的数据存放区域和数据运算区域;所述方法,包括:
2.根据权利要求1所述的方法,其特征在于,所述数据存放区域中设置有三个存储子区域;
3.根据权利要求1所述的方法,其特征在于,通过所述数据运算区域,在所述数据存放区域中读取与矩阵分块运算对应的矩阵分块数据进行运算,并将运算结果更新存储至对应的目标矩阵存储位置,包括:
4.根据权利要求3所述的方法,其特征在于,通过所述数据运算区域,根据矩阵分块运算的当前运算次数,在所述数据存放区域中读取与矩阵分块运算对应的矩阵分块数据进行运算,并将当前次数的运算结果叠加至对应的目标矩阵存储位置,包括:
5.根据权利要求4所述的方法,其特征在于,根据矩阵分块运算的执行运算核和当前次数,分别确定与矩阵分块数据对应的原始地址与偏移地址,包括:
6.根据权利要求5所述的方法,其特征在于,根据矩阵分块运算的执行运算核和当前次数,分别确定与矩阵分块数据对应的原始地址与偏移地址,包括:
7.根据权利要求1所述
8.一种基于多核硬件的矩阵运算装置,其特征在于,所述多核硬件的核内空间,包括:并行执行的数据存放区域和数据运算区域;所述装置,包括:
9.一种电子设备,其特征在于,所述电子设备包括:
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机指令,所述计算机指令用于使处理器执行时实现权利要求1-7中任一项所述的基于多核硬件的矩阵运算方法。
...【技术特征摘要】
1.一种基于多核硬件的矩阵运算方法,其特征在于,所述多核硬件的核内空间,包括:并行执行的数据存放区域和数据运算区域;所述方法,包括:
2.根据权利要求1所述的方法,其特征在于,所述数据存放区域中设置有三个存储子区域;
3.根据权利要求1所述的方法,其特征在于,通过所述数据运算区域,在所述数据存放区域中读取与矩阵分块运算对应的矩阵分块数据进行运算,并将运算结果更新存储至对应的目标矩阵存储位置,包括:
4.根据权利要求3所述的方法,其特征在于,通过所述数据运算区域,根据矩阵分块运算的当前运算次数,在所述数据存放区域中读取与矩阵分块运算对应的矩阵分块数据进行运算,并将当前次数的运算结果叠加至对应的目标矩阵存储位置,包括:
5.根据权利要求4所述的方法,其特征在于,根据矩阵分块运算的执行运算核和当前次数,分别确定与矩...
【专利技术属性】
技术研发人员:张思磊,刘君佩,张昊,张媛,
申请(专利权)人:上海思朗科技有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。