本说明书涉及计算机,尤其涉及一种硬件加速方法、装置、存储介质及电子设备。
背景技术:
1、在各领域的开发与应用中,硬件都是不可或缺的一部分。随着人工智能技术的发展与普及,目前,大部分硬件都具有计算功能,能够根据被设定好的功能执行相应的运算。
2、在硬件执行的各种运算中,矩阵乘法是最常见的运算之一。但是,矩阵乘法本身就是一种复杂度较高的运算,同时,硬件本身的性能也存在瓶颈,这导致许多硬件在处理矩阵乘法时速度较慢。
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、获取模块,用于获取目标硬件在执行矩阵乘法时的样本矩阵;
29、原始确定模块,用于确定所述样本矩阵的原始维度与原始大小;
30、布局确定模块,用于根据所述样本矩阵的原始维度与原始大小,确定所述样本矩阵的候选布局,其中,样本矩阵在每个候选布局下的维度和大小不同,且在每个候选布局下样本矩阵中包含的元素数量不变;
31、时间确定模块,用于针对所述样本矩阵的每个候选布局,确定所述目标硬件采用所述样本矩阵在该候选布局下执行矩阵乘法时的运算时间;
32、选择模块,用于根据所述运算时间,选择满足指定条件的候选布局,作为所述目标硬件采用布局为所述原始维度与所述原始大小的矩阵执行矩阵乘法时的目标布局。
33、可选地,所述布局确定模块,具体用于根据所述样本矩阵的原始维度与原始大小,确定所述样本矩阵包含的元素数量;根据所述元素数量,确定所述样本矩阵的候选布局。
34、可选地,所述布局确定模块,具体用于根据所述元素数量,确定积为所述元素数量的候选因式;根据所述候选因式中的因子,确定所述样本矩阵的候选布局。
35、可选地,所述样本矩阵包括第一样本矩阵和第二样本矩阵;
36、所述布局确定模块,具体用于根据所述第一样本矩阵的元素数量和所述第二样本矩阵的元素数量,确定候选布局对,其中,所述候选布局对中包含所述第一样本矩阵的第一候选布局和所述第二样本矩阵第二候选布局,每个候选布局对中的第一候选布局与第二候选布局相匹配。
37、可选地,所述选择模块,具体用于在各候选布局中,选择所述目标硬件在采用所述样本矩阵执行矩阵乘法时的运算时间最小的候选布局,作为所述目标硬件采用布局为所述原始维度与所述原始大小的矩阵执行矩阵乘法时的目标布局。
38、可选地,所述选择模块,具体用于针对每个候选布局,根据所述目标硬件采用所述样本矩阵在该候选布局下执行矩阵乘法时的运算时间,确定该候选布局的评价值,其中,所述评价值与所述运算时间呈负相关;在各候选布局中选择评价值最高的候选布局,作为所述目标硬件采用布局为所述原始维度与所述原始大小的矩阵执行矩阵乘法时的目标布局。
39、可选地,所述装置还包括计算模块,具体用于接收待计算矩阵,并确定所述待计算矩阵的维度和大小;当所述待计算矩阵的维度为所述原始维度,且所述待计算矩阵的大小为所述原始大小时,将所述待计算矩阵的布局调整为所述目标布局;采用所述待计算矩阵执行矩阵乘法。
40、本说明书提供了一种计算机可读存储介质,所述存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述硬件加速方法。
41、本说明书提供了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上述硬件加速方法。
42、本说明书采用的上述至少一个技术方案能够达到以下有益效果:
43、在本说明书提供的硬件加速方法中,获取目标硬件用于执行矩阵乘法的样本矩阵;确定所述样本矩阵的原始维度与原始大小;根据所述样本矩阵的原始维度与原始大小,确定所述样本矩阵的候选布局,其中,样本矩阵在每个候选布局下的维度和大小不同,且在每个候选布局下样本矩阵中包含的元素数量不变;针对所述样本矩阵的每个候选布局,确定所述目标硬件采用所述样本矩阵在该候选布局下执行矩阵乘法时的运算时间;根据所述运算时间,选择满足指定条件的候选布局,作为所述目标硬件采用布局为所述原始维度与所述原始大小的矩阵执行矩阵乘法时的目标布局。
44、在采用本说明书提供的硬件加速方法对目标硬件的矩阵乘法运算进行优化时,可根据样本矩阵的原始布局,也就是原始维度和原始大小确定出样本矩阵的各候选布局,并确定出目标硬件在采用各候选布局的样本矩阵进行矩阵运算时的运算时间,根据运算时间确定出满足指定条件的候选布局,作为目标硬件在采用布局为原始维度与原始大小的矩阵执行矩阵乘法时的目标布局。通过本方法能够找到每种不同原始布局的矩阵与目标硬件之间的亲和程度最高的目标布局,使目标硬件在采用目标布局的矩阵执行矩阵乘法运算时消耗的时间减少,效率提升。