数据迁移的方法、装置、处理器和计算设备制造方法及图纸

技术编号:33064689 阅读:20 留言:0更新日期:2022-04-15 09:54
本申请公开了一种数据迁移的方法。该方法由处理器中的数据迁移单元执行,包括:获取待迁移矩阵的存储位置,待迁移矩阵以第一存储方式存储,读取所述待迁移矩阵中元素,按照第二存储方式存储待迁移矩阵的元素,第二存储方式是与第一存储方式不同的存储方式。在执行矩阵乘法时,处理器中数据迁移单元可以连续读取矩阵的一行或者一列的元素,无需外部设备以及频繁访问内存,整体计算效率更高。整体计算效率更高。整体计算效率更高。

【技术实现步骤摘要】
数据迁移的方法、装置、处理器和计算设备


[0001]本申请涉及计算机领域,特别涉及一种数据迁移的方法、装置、处理器和计算设备。

技术介绍

[0002]在机器学习技术,存在大量的矩阵乘法计算。矩阵乘法是将第一个矩阵的行元素与第二个矩阵的列元素对应相乘。在内存中通常对于矩阵采用列存储或者行存储中的一种。行存储,即对矩阵中属于同一行的元素连续存储,列存储,即对矩阵中属于同一列的元素连续存储。处理器在执行矩阵乘法时,需要连续读取乘号左侧矩阵的行元素和乘号右侧的列元素。由于传统技术中利用内存存储矩阵,执行矩阵乘的过程中处理器需要频繁访问内存,并将矩阵乘的过程数据也存储至内存,处理器和内存的频繁交互导致矩阵乘的过程耗时长、效率低,因此,如何提供一种高效的数据迁移方法成为亟待解决的技术问题。

技术实现思路

[0003]本申请提供一种数据迁移的方法、装置、处理器和计算设备,以此提升数据迁移方法的效率。
[0004]第一方面,提供了一种数据迁移的方法,该方法由处理器中的数据迁移单元执行,该方法包括获取待迁移矩阵的存储位置,待迁移矩阵以第一存储方式存储,读取所述待迁移矩阵中元素,按照第二存储方式存储待迁移矩阵的元素,第二存储方式是与第一存储方式不同的存储方式。
[0005]在上述方案中,获取待迁移矩阵的存储位置可以为获取待迁移矩阵的源存储地址,即待迁移矩阵进行迁移前,第一个元素的存储地址。还可以获取目的存储地址为待迁移矩阵迁移后,第一个元素的存储地址。还可以获取尺寸信息可以包括待迁移矩阵的行数和列数这两个信息。待迁移矩阵为需要进行迁移以改变存储方式的矩阵。在内存中矩阵以行存储的方式进行存储的情况下,在需要相乘的两矩阵中,因为乘号右侧的矩阵需要对列元素进行连续读取,所以该矩阵为待迁移矩阵,需要对该矩阵进行迁移,使得其存储方式由行存储变为列存储。在内存中矩阵以列存储的方式进行存储的情况下,在需要相乘的两矩阵中,因为乘号左侧的矩阵需要对行元素进行连续读取,所以该矩阵为待迁移矩阵,需要对该矩阵进行迁移,使得其存储方式由列存储变为行存储。本申请可以通过数据迁移单元实现矩阵的迁移过程,无需借助处理器以外的设备和存储空间,数据读取和处理速度更快。
[0006]数据迁移单元可以向处理器的内部总线发送多个读请求,每个读请求用于读取待迁移矩阵中的一行或者一列的元素。然后,将获取到的元素按照第二存储方式进行存储。整个过程由处理器内部的数据迁移单元实现,可以将乘号左侧矩阵作为待迁移矩阵转换为列存储的存储方式,或者将乘号右侧矩阵作为待迁移矩阵转换为行存储的存储方式,使得在计算矩阵乘时,可以连续获取一行或者一列元素进行相乘并累加,无需频繁访问内存,有效提高了计算效率。
[0007]在一种可能的实现方式中,第一存储方式和第二存储方式分别包括列存储方式和行存储方式。
[0008]在本申请所示的方案中,即可以将以行存储的方式存储的待迁移矩阵进行迁移,以转换存储方式,还可以将以列存储的方式存储的待迁移矩阵进行迁移,以转换存储方式。
[0009]在一种可能的实现方式中,所述获取待迁移矩阵的源存储地址、目的存储地址和尺寸信息之前,所述方法还包括:获取数据迁移指令,其中,数据迁移指令中携带有第一寄存器标识、第二寄存器标识和第三寄存器标识,其中,第一寄存器标识用于指示存储待迁移矩阵的源存储地址的第一寄存器、第二寄存器标识用于指示存储待迁移矩阵的目的存储地址的第二寄存器和所述第三寄存器标识用于指示存储待迁移矩阵的尺寸信息的寄存器。
[0010]则获取待迁移矩阵的源存储地址、目的存储地址和尺寸信息,包括:向第一寄存器获取所述待迁移矩阵的源存储地址,向第二寄存器获取待迁移矩阵的目的存储地址,向所述第三寄存器获取所述待迁移矩阵的尺寸信息。
[0011]在本申请所示的方案中,处理器在执行矩阵乘法之前,可以在内存中获取待迁移矩阵的源存储地址和尺寸信息,并申请内存空间存储迁移后的矩阵,申请的内存空间的首地址即为上述目的存储地址。
[0012]然后,处理器将源存储地址写入一个寄存器中,将目的存储地址写入一个寄存器中,将尺寸信息写入一个寄存器中。处理器可以生成数据迁移指令,该数据迁移指令中携带第一寄存器标识、第二寄存器标识和第三寄存器标识。此处,寄存器标识可以为寄存器编号。
[0013]处理器将生成的数据迁移指令存储在内存中,取指单元获取存储在内存中的数据迁移指令。取指单元获取到数据迁移指令后,将该数据迁移指令发送至译码单元。译码单元对接收到的数据迁移指令进行译码后发送至数据迁移单元。
[0014]数据迁移单元获取数据迁移指令中携带的第一寄存器标识、第二寄存器标识和第三寄存器标识,并向第一寄存器标识所指示的寄存器获取待迁移矩阵的源存储地址,向第二寄存器标识所指示的寄存器获取待迁移矩阵的目的存储地址,向第三寄存器标识所指示的寄存器获取待迁移矩阵的尺寸信息。
[0015]在一种可能的实现方式中,所述第三寄存器还存储所述待存储矩阵的矩阵类型标识、矩阵类型标识和LDA。
[0016]向所述第三寄存器获取待迁移矩阵的尺寸信息,包括:向第三寄存器获取待迁移矩阵的尺寸信息、矩阵类型标识和LDA。则所述基于所述尺寸信息和源存储地址,读取第一存储方式存储的待迁移矩阵,包括:基于尺寸信息、矩阵类型标识、LDA和源存储地址,读取第一存储方式存储的待迁移矩阵。
[0017]在本申请实施例所示的方案中,内存在存储矩阵时,可以设置有LDA,且对于一些类型的矩阵,可以进行压缩存储,因此,对于这些矩阵进行读取时,需要考虑到矩阵类型以及LDA。例如。矩阵类型可以包括普通矩阵、方阵、非压缩存储上三角矩阵、非压缩存储对角矩阵、压缩存储上三角矩阵、压缩存储下三角矩阵、压缩存储对角矩阵等。
[0018]在一种可能的实现方式中,在读取待迁移矩阵元素之前,将源存储地址作为待迁移矩阵中第一行的首个元素的地址或者第一列的首个元素的地址,并确定N-1个偏移值,N为待迁移矩阵的行数或列数;按照待迁移矩阵的行或列的首个元素的地址和偏移地址分别
逐行或逐列读取所述待迁移矩阵中元素。其中,偏移地址用于指示以行或列的首个元素的地址为准,偏移的位置,具体可以根据预设的每行或每列元素的大小计算获得。也就是说,根据行或列的首个元素的地址、矩阵的尺寸信息和预设的每个元素的大小,可以逐个确定行或列中各个元素的位置。通过上述过程,数据迁移单元可以一次读取待迁移矩阵整行或整列或整个矩阵的数据,避免逐个读取过程所带来的频繁访问内存的问题,读取效率更高。
[0019]在一种可能的实现方式中,读取待迁移矩阵中元素之前,方法还包括:在第一存储方式为行存储时,将源存储地址作为读取所述待迁移矩阵中的第一行的首个元素的地址,根据尺寸信息、矩阵类型标识和LDA,确定N-1个偏移值,N为待迁移矩阵的行数。再根据每i个偏移值和源存储地址,确定读取待迁移矩阵中的第i行的元素时的首地址,i为大于0小于N的正整数。在第一存储方式为列存储时,将源存储地址作为读取待迁移矩阵中的第一列本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种数据迁移的方法,其特征在于,所述方法包括:获取待迁移矩阵的存储位置,所述待迁移矩阵以第一存储方式存储;读取所述待迁移矩阵中元素;按照第二存储方式存储所述待迁移矩阵的元素,所述第二存储方式是与所述第一存储方式不同的存储方式。2.根据权利要求1所述的方法,其特征在于,所述第一存储方式和所述第二存储方式分别包括列存储方式和行存储方式。3.根据权利要求1或2所述的方法,其特征在于,在所述获取待迁移矩阵的存储位置之前,所述方法还包括:获取数据迁移指令,其中,所述数据迁移指令中携带有第一寄存器标识、第二寄存器标识和第三寄存器标识,其中,所述第一寄存器标识用于指示存储所述待迁移矩阵的源存储地址的第一寄存器;所述第二寄存器标识用于指示存储所述待迁移矩阵的目的存储地址的第二寄存器;所述第三寄存器标识用于指示存储所述待迁移矩阵的尺寸信息的寄存器;所述源存储地址和所述目的存储地址为内存的存储地址;则所述获取待迁移矩阵的存储位置,包括:向所述第一寄存器获取所述待迁移矩阵的源存储地址,向所述第二寄存器获取所述待迁移矩阵的目的存储地址,向所述第三寄存器获取所述待迁移矩阵的尺寸信息。4.根据权利要求1至3中任一所述的方法,其特征在于,在所述读取所述待迁移矩阵中元素之前,所述方法还包括:将源存储地址作为所述待迁移矩阵中第一行的首个元素的地址或者第一列的首个元素的地址,并确定N-1个偏移值,N为待迁移矩阵的行数或列数;则所述读取所述待迁移矩阵中元素,包括:按照所述待迁移矩阵的行或列的首个元素的地址和偏移地址分别逐行或逐列读取所述待迁移矩阵中元素。5.一种数据迁移的装置,其特征在于,所述方法应用于处理器中,所述方法包括:获取模块,用于获取待迁移矩阵的存储位置,所述待迁移矩...

【专利技术属性】
技术研发人员:侯新宇李涛俞立呈刘昊程
申请(专利权)人:华为技术有限公司
类型:发明
国别省市:

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

1