有效
并行计算硬件中矩阵乘法运算的处理方法及相关设备
徐柏松、杨凯、徐鹏翔、范登栋、刘勇翔、田永鸿
鹏城实验室
摘要
本申请实施例提供了一种并行计算硬件中矩阵乘法运算的处理方法及相关设备,通过获取第一初始矩阵和第二初始矩阵;然后基于单精度数据类型进行半精度处理,得到第一初始矩阵的第一半精度矩阵,以及第二初始矩阵的第二半精度矩阵;再基于第一初始矩阵和第一半精度矩阵的差值得到第一差值矩阵,以及基于第二初始矩阵和第二半精度矩阵的差值得到第二差值矩阵;最后,累加第一半精度矩阵和第二半精度矩阵的乘积、第一半精度矩阵和第二差值矩阵的乘积以及第二半精度矩阵和第一差值矩阵的乘积,得到第一单精度目标矩阵,从而在仅支持半精度乘法运算的硬件设备上得到一个精准度较高的单精度乘法运算结果。
1.一种并行计算硬件中矩阵乘法运算的处理方法,其特征在于,包括:获取第一初始矩阵和第二初始矩阵;其中,所述第一初始矩阵和所述第二初始矩阵均为单精度矩阵;基于单精度数据类型进行半精度处理,得到所述第一初始矩阵的第一半精度矩阵,以及所述第二初始矩阵的第二半精度矩阵;基于所述第一初始矩阵和所述第一半精度矩阵的差值得到第一差值矩阵,以及基于所述第二初始矩阵和所述第二半精度矩阵的差值得到第二差值矩阵;其中,所述第一差值矩阵和所述第二差值矩阵均为半精度矩阵;累加所述第一半精度矩阵和所述第二半精度矩阵的乘积、所述第一半精度矩阵和所述第二差值矩阵的乘积以及所述第二半精度矩阵和所述第一差值矩阵的乘积,得到第一单精度目标矩阵,并将所述第一单精度目标矩阵作为所述第一初始矩阵和所述第二初始矩阵进行矩阵乘法运算的结果;所述并行计算硬件包括L1缓冲区、缓冲区L0A、缓冲区L0B和矩阵计算单元;其中,所述L1缓冲区用于存储第一目标矩阵和第二目标矩阵,然后在缓存转换单元中进行矩阵转换操作并保存,缓冲区L0A和缓冲区L0B用于存储即将进行矩阵相乘运算的矩阵,矩阵计算单元用于接收缓冲区L0A和缓冲区L0B的矩阵执行矩阵相乘运算操作。
2.根据权利要求1所述的并行计算硬件中矩阵乘法运算的处理方法,其特征在于,所述基于所述第一初始矩阵和所述第一半精度矩阵的差值得到第一差值矩阵,包括:将所述第一半精度矩阵进行单精度处理,得到第一中间矩阵;对所述第一初始矩阵与所述第一中间矩阵的差值进行半精度处理,得到所述第一差值矩阵。
3.根据权利要求1所述的并行计算硬件中矩阵乘法运算的处理方法,其特征在于,所述累加所述第一半精度矩阵和所述第二半精度矩阵的乘积、所述第一半精度矩阵和所述第二差值矩阵的乘积以及所述第二半精度矩阵和所述第一差值矩阵的乘积,得到第一单精度目标矩阵,包括:累加所述第一半精度矩阵和所述第二半精度矩阵的乘积、所述第一半精度矩阵和所述第二差值矩阵的乘积以及所述第二半精度矩阵和所述第一差值矩阵的乘积,得到第一加成项;根据所述第一差值矩阵和所述第二差值矩阵的乘积,得到第二加成项;累加所述第一加成项和所述第二加成项,得到所述第一单精度目标矩阵。
4.根据权利要求1所述的并行计算硬件中矩阵乘法运算的处理方法,其特征在于,所述第一半精度矩阵中元素包括尾数;所述累加所述第一半精度矩阵和所述第二半精度矩阵的乘积、所述第一半精度矩阵和所述第二差值矩阵的乘积以及所述第二半精度矩阵和所述第一差值矩阵的乘积,得到第一单精度目标矩阵,还包括:获取根据所述尾数的位数确定的预设乘值;利用预设乘值乘以所述第一差值矩阵,得到第一放大矩阵,并利用所述预设乘值乘以所述第二差值矩阵,得到第二放大矩阵;累加所述第一半精度矩阵和所述第二放大矩阵的乘积、所述第二半精度矩阵和所述第一放大矩阵的乘积,得到中间放大矩阵;将所述中间放大矩阵除以所述预设乘值,得到中间缩小矩阵;累加所述第一半精度矩阵和所述第二半精度矩阵的乘积以及所述中间缩小矩阵,得到所述第一单精度目标矩阵。
5.根据权利要求1所述的并行计算硬件中矩阵乘法运算的处理方法,其特征在于,所述获取第一初始矩阵和第二初始矩阵,包括:获取第一目标矩阵和第二目标矩阵;获取所述并行计算硬件的最大矩阵乘法运算阶数;基于所述最大矩阵乘法运算阶数,将所述第一目标矩阵进行划分得到至少一个第一初始矩阵,并将所述第二目标矩阵进行划分得到至少一个第二初始矩阵。
6.根据权利要求5所述的并行计算硬件中矩阵乘法运算的处理方法,其特征在于,当所述第一初始矩阵和所述第二初始矩阵为多个时,所述方法还包括:根据所述第一初始矩阵在所述第一目标矩阵中的分块位置在所述第二目标矩阵中选取所述第二初始矩阵,并生成多个矩阵序列;每个所述矩阵序列中包括多个矩阵组,每个所述矩阵组包括所述第一初始矩阵和所述第二初始矩阵;将每个所述矩阵组中所述第一半精度矩阵和所述第二半精度矩阵的乘积进行累加,得到所述矩阵序列的第一累积矩阵,将每个所述矩阵组中所述第一半精度矩阵和所述第二差值矩阵的乘积和所述第二半精度矩阵和所述第二差值矩阵的乘积的和进行累加,得到所述矩阵序列的第二累积矩阵;根据所述第一累积矩阵和所述第二累积矩阵,得第二单精度目标矩阵,并将所述第二单精度目标矩阵作为所述第一目标矩阵和所述第二目标矩阵进行矩阵乘法运算的结果。
7.根据权利要求6所述的并行计算硬件中矩阵乘法运算的处理方法,其特征在于,所述方法还包括:基于单精度数据类型进行双精度处理,得到所述第一目标矩阵的第一双精度矩阵、所述第二目标矩阵的第二双精度矩阵以及所述第二单精度目标矩阵的检验矩阵;将所述第一双精度矩阵和所述第二双精度矩阵进行乘法运算得到评估矩阵;基于所述检验矩阵和所述评估矩阵得到检验结果;将所述检验结果与预设检验阈值进行对比,并基于对比结果输出所述第二单精度目标矩阵。
8.一种矩阵乘法运算装置,其特征在于,所述装置包括:获取模块,用于获取第一初始矩阵和第二初始矩阵;其中,所述第一初始矩阵和所述第二初始矩阵均为单精度矩阵;半精度转换模块,用于基于单精度数据类型进行半精度处理,得到所述第一初始矩阵的第一半精度矩阵,以及所述第二初始矩阵的第二半精度矩阵;差值处理模块,用于基于所述第一初始矩阵和所述第一半精度矩阵的差值得到第一差值矩阵,以及基于所述第二初始矩阵和所述第二半精度矩阵的差值得到第二差值矩阵;其中,所述第一差值矩阵和所述第二差值矩阵均为半精度矩阵;计算模块,用于累加所述第一半精度矩阵和所述第二半精度矩阵的乘积、所述第一半精度矩阵和所述第二差值矩阵的乘积以及所述第二半精度矩阵和所述第一差值矩阵的乘积,得到第一单精度目标矩阵,并将所述第一单精度目标矩阵作为所述第一初始矩阵和所述第二初始矩阵进行矩阵乘法运算的结果;所述矩阵乘法运算装置还包括L1缓冲区、缓冲区L0A、缓冲区L0B和矩阵计算单元;其中,所述L1缓冲区用于存储第一目标矩阵和第二目标矩阵,然后在缓存转换单元中进行矩阵转换操作并保存,缓冲区L0A和缓冲区L0B用于存储即将进行矩阵相乘运算的矩阵,矩阵计算单元用于接收缓冲区L0A和缓冲区L0B的矩阵执行矩阵相乘运算操作。
9.一种电子设备,其特征在于,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至7任一项所述的并行计算硬件中矩阵乘法运算的处理方法。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至7任一项所述的并行计算硬件中矩阵乘法运算的处理方法。



