数据处理方法、系统及装置、电子设备及存储介质制造方法及图纸

技术编号:36824055 阅读:13 留言:0更新日期:2023-03-12 01:14
本公开实施例提供一种数据处理方法、系统及装置、电子设备及存储介质。其中,数据处理方法,应用于张量指令单元TIU,包括:基于第一矩阵与第二矩阵在多个存储单元中的存储方式,确定对第一矩阵与第二矩阵的数据的读取方式,其中,存储方式包括转置存储或非转置存储;根据数据的读取方式,生成第一指令,其中,第一指令用于指示矢量处理单元向对应的存储单元读取第一矩阵与第二矩阵的行数据和/或列数据;向矢量处理单元传输第一指令;生成第二指令,其中,第二指令用于指示矢量处理单元基于行数据和/或列数据执行第一矩阵与第二矩阵的矩阵乘运算;向矢量处理单元传输第二指令;以及从矢量处理单元获取矩阵乘运算的运算结果。量处理单元获取矩阵乘运算的运算结果。量处理单元获取矩阵乘运算的运算结果。

【技术实现步骤摘要】
数据处理方法、系统及装置、电子设备及存储介质


[0001]本公开涉及数据计算
,尤其涉及一种数据处理方法、系统及装置、电子设备及存储介质。

技术介绍

[0002]相关技术中,对于基于矩阵乘运算的处理器,例如适用于深度学习加速的处理器主要包括单指令多线程(Single Instruction Multiple Threads,SIMT)架构或者专用集成电路(Application Specific Integrated Circuit,ASIC)处理器。现有的矩阵乘运算往往无法充分展开矩阵列数据,导致无法充分利用乘积累加运算(Multiply Accumulate,MAC)阵列,且实际应用中面向多种模型架构,灵活性和通用性较低,编程难度较大。

技术实现思路

[0003]本公开实施例提供一种数据处理方法、系统及装置、电子设备及存储介质。
[0004]本公开实施例第一方面提供一种数据处理方法,应用于张量指令单元(Tensor Instruction Unit,TIU),所述方法包括:
[0005]基于第一矩阵与第二矩阵在多个存储单元中的存储方式,确定对第一矩阵与第二矩阵的数据的读取方式,其中,所述存储方式包括转置存储或非转置存储;
[0006]根据所述数据的读取方式,生成第一指令,其中,所述第一指令用于指示矢量处理单元向对应的存储单元读取所述第一矩阵与所述第二矩阵的行数据和/或列数据;
[0007]向所述矢量处理单元传输所述第一指令;
[0008]生成第二指令,其中,所述第二指令用于指示所述矢量处理单元基于所述行数据和/或列数据执行所述第一矩阵与所述第二矩阵的矩阵乘运算;
[0009]向所述矢量处理单元传输所述第二指令;以及
[0010]从所述矢量处理单元获取所述矩阵乘运算的运算结果。
[0011]基于上述方案,所述第一指令具体用于:
[0012]指示至少一个矢量处理单元向对应的存储单元读取所述第二矩阵的目标数据;
[0013]基于所述目标数据,得到所述第二矩阵的目标列数据,以广播所述目标列数据;以及
[0014]基于所述目标列数据,指示每一矢量处理单元根据所述数据的读取方式分别向对应的存储单元读取第一矩阵的目标行数据。
[0015]基于上述方案,所述第一指令具体用于:
[0016]指示每一所述矢量处理单元基于所述目标列数据和向对应的存储单元读取的目标行数据执行乘累加计算,其中,所述乘累加计算的计算结果用于确定第一矩阵与第二矩阵的矩阵乘运算结果。
[0017]基于上述方案,所述根据所述数据的读取方式,生成第一指令,包括:
[0018]响应于所述第二矩阵的存储方式为非转置存储时,根据所述数据的读取方式,生
成第一指令;所述第一指令具体用于指示多个矢量处理单元向对应的存储单元读取存储地址偏移量为第一目标值的目标数据。
[0019]基于上述方案,所述第一指令还用于:
[0020]在指示每一所述矢量处理单元基于所述目标列数据和向对应的存储单元中读取的目标行数据执行乘累加计算后,指示多个矢量处理单元向对应的存储单元读取存储地址偏移量为第二目标值的目标数据。
[0021]基于上述方案,所述根据所述数据的读取方式,生成第一指令,包括:
[0022]响应于所述第二矩阵的存储方式为转置存储时,根据所述数据的读取方式,生成第一指令;所述第一指令具体用于指示一个目标矢量处理单元读取对应的存储单元中存储的目标数据,其中,所述目标数据包括所述第二矩阵的目标列数据。
[0023]基于上述方案,所述方法还包括:
[0024]响应于存储方式是非转置存储,将待存储矩阵的每一行数据存储在一个存储单元中;和/或
[0025]响应于存储方式是转置存储,将待存储矩阵的每一列数据存储在一个存储单元中。
[0026]本公开实施例第二方面提供一种数据处理方法,应用于与张量指令单元TIU通信连接的矢量处理单元,所述方法包括:
[0027]接收由所述TIU发送的第一指令,其中,所述第一指令是由所述TIU根据针对第一矩阵与第二矩阵的数据的读取方式生成,并且所述针对所述第一矩阵与所述第二矩阵的数据的读取方式是由所述TIU根据所述第一矩阵与所述第二矩阵在多个存储单元中的存储方式确定,其中,所述存储方式包括转置存储或非转置存储;
[0028]读取所述第一指令,以向对应的存储单元读取所述第一矩阵与所述第二矩阵的行数据和/或列数据;
[0029]接收由所述TIU发送的第二指令;
[0030]读取所述第二指令,以根据读取的所述第一矩阵与所述第二矩阵的行数据和/或列数据,执行所述第一矩阵与所述第二矩阵的矩阵乘运算,得到运算结果;以及
[0031]向所述TIU传输所述运算结果。
[0032]基于上述方案,所述向对应的存储单元读取所述第一矩阵与所述第二矩阵的行数据和/或列数据,包括:
[0033]向对应的存储单元读取所述第二矩阵的目标数据;
[0034]向所述TIU发送所述目标数据;
[0035]基于接收到的所述TIU广播的目标列数据,向对应的存储单元读取第一矩阵的目标行数据;所述目标列数据是基于所述目标数据确定。
[0036]基于上述方案,所述根据读取的所述第一矩阵与所述第二矩阵的行数据和/或列数据,执行所述第一矩阵与所述第二矩阵的矩阵乘运算,得到运算结果,包括:
[0037]基于所述目标列数据和向对应的存储单元读取的目标行数据执行乘累加计算;
[0038]基于所述乘累加计算的计算结果,确定第一矩阵与第二矩阵的矩阵乘运算结果。
[0039]基于上述方案,所述基于所述目标列数据和向对应的存储单元读取的目标行数据执行乘累加计算,包括:
[0040]通过立方乘积累加运算Cube MAC单元,基于所述目标列数据和向对应的存储单元读取的目标行数据执行乘累加计算。
[0041]基于上述方案,所述向对应的存储单元读取所述第二矩阵的目标数据,包括:
[0042]所述第二矩阵的存储方式为非转置存储时,向对应的存储单元读取存储地址偏移量为第一目标值的目标数据。
[0043]基于上述方案,所述方法还包括:
[0044]在基于所述目标列数据和向对应的存储单元中读取的目标行数据执行乘累加计算后,向对应的存储单元读取存储地址偏移量为第二目标值的目标数据。
[0045]基于上述方案,所述向对应的存储单元读取所述第二矩阵的目标数据,包括:
[0046]所述第二矩阵的存储方式为转置存储时,读取对应的存储单元中存储的目标数据;所述目标数据包括所述第二矩阵的目标列数据。
[0047]本公开实施例第三方面提供一种数据处理系统,包括:张量指令单元TIU、总线以及多个矢量处理单元;
[0048]所述TIU通过所述总线与所述多个矢量处理单元连接,用于基于第一矩阵与第二矩阵在多个存储单元本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种数据处理方法,其特征在于,应用于张量指令单元TIU,所述方法包括:基于第一矩阵与第二矩阵在多个存储单元中的存储方式,确定对第一矩阵与第二矩阵的数据的读取方式,其中,所述存储方式包括转置存储或非转置存储;根据所述数据的读取方式,生成第一指令,其中,所述第一指令用于指示矢量处理单元向对应的存储单元读取所述第一矩阵与所述第二矩阵的行数据和/或列数据;向所述矢量处理单元传输所述第一指令;生成第二指令,其中,所述第二指令用于指示所述矢量处理单元基于所述行数据和/或列数据执行所述第一矩阵与所述第二矩阵的矩阵乘运算;向所述矢量处理单元传输所述第二指令;以及从所述矢量处理单元获取所述矩阵乘运算的运算结果。2.根据权利要求1所述的方法,其特征在于,所述第一指令具体用于:指示至少一个矢量处理单元向对应的存储单元读取所述第二矩阵的目标数据,以得到所述第二矩阵的目标列数据;以及指示每一矢量处理单元根据所述数据的读取方式分别向对应的存储单元读取第一矩阵的目标行数据。3.根据权利要求2所述的方法,其特征在于,所述第一指令具体用于:指示每一所述矢量处理单元基于所述目标列数据和向对应的存储单元读取的目标行数据执行乘累加计算,其中,所述乘累加计算的计算结果用于确定第一矩阵与第二矩阵的矩阵乘运算结果。4.根据权利要求2所述的方法,其特征在于,所述根据所述数据的读取方式,生成第一指令,包括:响应于所述第二矩阵的存储方式为非转置存储时,根据所述数据的读取方式,生成第一指令;所述第一指令具体用于指示多个矢量处理单元向对应的存储单元读取存储地址偏移量为第一目标值的目标数据。5.根据权利要求4所述的方法,其特征在于,所述第一指令还用于:在指示每一所述矢量处理单元基于所述目标列数据和向对应的存储单元中读取的目标行数据执行乘累加计算后,指示多个矢量处理单元向对应的存储单元读取存储地址偏移量为第二目标值的目标数据。6.根据权利要求2所述的方法,其特征在于,所述根据所述数据的读取方式,生成第一指令,包括:响应于所述第二矩阵的存储方式为转置存储时,根据所述数据的读取方式,生成第一指令;所述第一指令具体用于指示一个目标矢量处理单元读取对应的存储单元中存储的目标数据,其中,所述目标数据包括所述第二矩阵的目标列数据。7.根据权利要求1所述的方法,其特征在于,所述方法还包括:响应于存储方式是非转置存储,将待存储矩阵的每一行数据存储在一个存储单元中;和/或响应于存储方式是转置存储,将待存储矩阵的每一列数据存储在一个存储单元中。8.一种数据处理方法,其特征在于,应用于与张量指令单元TIU通信连接的矢量处理单元,所述方法包括:
接收由TIU发送的第一指令,其中,所述第一指令是由所述TIU根据针对第一矩阵与第二矩阵的数据的读取方式生成,并且所述针对所述第一矩阵与所述第二矩阵的数据的读取方式是由所述TIU根据所述第一矩阵与所述第二矩阵在多个存储单元中的存储方式确定,其中,所述存储方式包括转置存储或非转置存储;读取所述第一指令,以向对应的存储单元读取所述第一矩阵与所述第二矩阵的行数据和/或列数据;接收由所述TIU发送的第二指令;读取所述第二指令,以根据读取的所述第一矩阵与所述第二矩阵的行数据和/或列数据,执行所述第一矩阵与所述第二矩阵的矩阵乘运算,得到运算结果;以及向所述TIU传输所述运算结果。9.根据权利要求8所述的方法,其特征在于,所述向对应的存储单元读取所述第一矩阵与所述第二矩阵的行数据和/或列数据,包括:向对应的存储单元读取所述第二矩阵的目标数据;向所述TIU发送所述目标数据;基于接收到的所述TIU广播的目标列数据,向对应的存储单元读取第一矩阵的目标行数据;所述目标列数据是基于所述目标数据确定。10.根据权利要求9所述的方法,其特征在于,所述根据读取的所述第一矩阵与所述第二矩阵的行数据和/或列数据,执行所述第一矩阵与所述第二矩阵的矩阵乘运算,得到运算结果,包括:基于所述目标列数据和向对应的存储单元读取的目标行数据执行乘累加计算;基于所述乘累加计算的计算结果,确定第一矩阵与第二矩阵的矩阵乘运算结果。11.根据权利要求10所述的方法,其特征在于,所述基于所述目标列数据和向对应的存储单元读取的目标行数据执行乘累加计算,包括:通过立方乘积累加运算Cube MAC单元,基于所述目标列数据和向对应的存储单元读取的目标行数据执行乘...

【专利技术属性】
技术研发人员:沈广冲洪宗会屈家丽薛雨楠
申请(专利权)人:北京算能科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1