System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本申请涉及人工智能,尤其涉及并行计算硬件中矩阵乘法运算的处理方法及相关设备。
技术介绍
1、近些年,随着机器学习、人工智能等领域的蓬勃发展,极大增加了矩阵乘法运算的数量的同时,也极大的加速了专门用于并行计算的专用硬件的发展。随之而来的是,提高矩阵乘法运算的精准度也成为了最需要注意的地方。
2、在相关技术中,针对于单精度矩阵的乘法运算中,可以使用支持单精度计算的计算芯片来计算,但支持单精度计算的计算芯片其成本较高。除此之外通常在使用仅支持半精度计算的计算芯片中,将待乘的单精度矩阵转换为半精度矩阵,然后再将半精度进行乘法运算,但是通过这种方案得到的结果的精准度较低。
技术实现思路
1、本申请实施例的提供了一种并行计算硬件中矩阵乘法运算的处理方法及相关设备,能够在使用支持半精度计算的计算芯片中提高单精度矩阵乘法运算的精准度。
2、为实现上述目的,本申请实施例的第一方面提出了一种并行计算硬件中矩阵乘法运算的处理方法,包括:
3、获取第一初始矩阵和第二初始矩阵;其中,所述第一初始矩阵和所述第二初始矩阵均为单精度矩阵;
4、基于单精度数据类型进行半精度处理,得到所述第一初始矩阵的第一半精度矩阵,以及所述第二初始矩阵的第二半精度矩阵;
5、基于所述第一初始矩阵和所述第一半精度矩阵的差值得到第一差值矩阵,以及基于所述第二初始矩阵和所述第二半精度矩阵的差值得到第二差值矩阵;其中,所述第一差值矩阵和所述第二差值矩阵均为半精度矩阵;
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、为实现上述目的,本申请实施例的第四方面提出了一种存储介质,所述存储介质为计算机可读存本文档来自技高网...
【技术保护点】
1.一种并行计算硬件中矩阵乘法运算的处理方法,其特征在于,包括:
2.根据权利要求1所述的并行计算硬件中矩阵乘法运算的处理方法,其特征在于,所述基于所述第一初始矩阵和所述第一半精度矩阵的差值得到第一差值矩阵,包括:
3.根据权利要求1所述的并行计算硬件中矩阵乘法运算的处理方法,其特征在于,所述累加所述第一半精度矩阵和所述第二半精度矩阵的乘积、所述第一半精度矩阵和所述第二差值矩阵的乘积以及所述第二半精度矩阵和所述第一差值矩阵的乘积,得到第一单精度目标矩阵,包括:
4.根据权利要求1所述的并行计算硬件中矩阵乘法运算的处理方法,其特征在于,所述第一半精度矩阵中元素包括尾数;所述累加所述第一半精度矩阵和所述第二半精度矩阵的乘积、所述第一半精度矩阵和所述第二差值矩阵的乘积以及所述第二半精度矩阵和所述第一差值矩阵的乘积,得到第一单精度目标矩阵,还包括:
5.根据权利要求1所述的并行计算硬件中矩阵乘法运算的处理方法,其特征在于,所述获取第一初始矩阵和第二初始矩阵,包括:
6.根据权利要求5所述的并行计算硬件中矩阵乘法运算的处理方法,其
7.根据权利要求6所述的并行计算硬件中矩阵乘法运算的处理方法,其特征在于,所述方法还包括:
8.一种矩阵乘法运算装置,其特征在于,所述装置包括:
9.一种电子设备,其特征在于,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至7任一项所述的并行计算硬件中矩阵乘法运算的处理方法。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至7任一项所述的并行计算硬件中矩阵乘法运算的处理方法。
...【技术特征摘要】
1.一种并行计算硬件中矩阵乘法运算的处理方法,其特征在于,包括:
2.根据权利要求1所述的并行计算硬件中矩阵乘法运算的处理方法,其特征在于,所述基于所述第一初始矩阵和所述第一半精度矩阵的差值得到第一差值矩阵,包括:
3.根据权利要求1所述的并行计算硬件中矩阵乘法运算的处理方法,其特征在于,所述累加所述第一半精度矩阵和所述第二半精度矩阵的乘积、所述第一半精度矩阵和所述第二差值矩阵的乘积以及所述第二半精度矩阵和所述第一差值矩阵的乘积,得到第一单精度目标矩阵,包括:
4.根据权利要求1所述的并行计算硬件中矩阵乘法运算的处理方法,其特征在于,所述第一半精度矩阵中元素包括尾数;所述累加所述第一半精度矩阵和所述第二半精度矩阵的乘积、所述第一半精度矩阵和所述第二差值矩阵的乘积以及所述第二半精度矩阵和所述第一差值矩阵的乘积,得到第一单精度目标矩阵,还包括:
5.根据...
【专利技术属性】
技术研发人员:徐柏松,杨凯,徐鹏翔,范登栋,刘勇翔,田永鸿,
申请(专利权)人:鹏城实验室,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。