数据处理方法和装置制造方法及图纸

技术编号:29060121 阅读:16 留言:0更新日期:2021-06-30 09:02
本说明书实施例提供一种数据处理方法和装置,将第一输入数据中的第一输入数据块和第二输入数据中的第二输入数据块从内存直接加载到寄存器,再对寄存器中的第一输入数据块和第二输入数据块进行矩阵乘法处理;其中,所述第一输入数据的宽度远小于所述第二输入数据的宽度。的宽度。的宽度。

【技术实现步骤摘要】
数据处理方法和装置


[0001]本公开涉及数据处理
,尤其涉及数据处理方法和装置。

技术介绍

[0002]矩阵乘法处理在许多高性能计算场景中有着极其重要的地位。例如在目前得到广泛运用的卷积神经网络(Convolutional Neural Networks,CNN)中,有很大一部分的耗时来源于进行矩阵乘法处理所带来的耗时。因此,优化矩阵乘法的性能对于优化高性能计算的耗时有着重要意义。

技术实现思路

[0003]本公开提供一种数据处理方案。
[0004]根据本公开实施例的第一方面,提供一种数据处理方法,所述方法包括:将第一输入数据中的第一输入数据块从内存加载到第一寄存器;将第二输入数据中的第二输入数据块从所述内存加载到第二寄存器;对所述第一寄存器中的所述第一输入数据块与所述第二寄存器中的所述第二输入数据块进行矩阵乘法处理,得到输出数据的输出数据块;其中,所述第一输入数据的宽度远小于所述第二输入数据的宽度。
[0005]在一些实施例中,所述将第二输入数据中的第二输入数据块从所述内存加载到第二寄存器,包括:基于指向所述内存中的第一目标地址的第一指针,将所述第一目标地址中存储的第一元素加载到所述第二寄存器,其中,所述第一元素为所述第二输入数据块中第j行最后一个元素;将读指针由所述第一指针跳转至指向所述内存中的第二目标地址的第二指针,其中,所述第二指针与所述第一指针之间的距离为所述第二输入数据的行数与所述第二输入数据块的行数之差;基于所述第二指针,将所述第二目标地址存储的第二元素加载到所述第二寄存器。
[0006]在一些实施例中,所述方法还包括:将所述输出数据块存储至第三寄存器;将所述第三寄存器中的输出数据块加载到所述内存。
[0007]在一些实施例中,所述将所述第三寄存器中的输出数据块加载到所述内存,包括:基于指向所述内存中的第三目标地址的第三指针,将所述输出数据块第m行的最后一个元素从所述第三寄存器存储到所述第三目标地址;将写指针由所述第三指针跳转至指向所述内存中的第四目标地址的第四指针,其中,所述第三目标地址与所述第四目标地址之间的距离为所述输出数据的行数与所述输出数据块的行数之差;基于所述第四指针,将所述输出数据块第m+1行的第一个元素从所述第三寄存器存储到所述第四目标地址。
[0008]在一些实施例中,所述将第一输入数据中的第一输入数据块从内存加载到第一寄存器,包括:基于指向所述内存的第五目标地址的第五指针,将所述第五目标地址所存储的第五元素加载到所述第一寄存器,其中,所述第五元素为所述第一输入数据块中第i列最后一个元素;将读指针从所述第五指针跳转至指向所述内存中的第六目标地址的第六指针,其中,所述第六目标地址与所述第五目标地址之间的距离为所述第一输入数据的列数与所
述第一输入数据块的列数之差;基于所述第六指针,将所述第六目标地址所存储的第六元素加载到所述第一寄存器。
[0009]在一些实施例中,所述第一输入数据的高度远小于所述第二输入数据的宽度。
[0010]在一些实施例中,所述第一输入数据为神经网络的卷积核参数,所述第二输入数据为图像的特征图。
[0011]根据本公开实施例的第二方面,提供一种数据处理装置,所述装置包括:第一加载模块,用于将第一输入数据中的第一输入数据块从内存加载到第一寄存器;第二加载模块,用于将第二输入数据中的第二输入数据块从所述内存加载到第二寄存器;处理模块,用于对所述第一寄存器中的所述第一输入数据块与所述第二寄存器中的所述第二输入数据块进行矩阵乘法处理,得到输出数据的输出数据块;其中,所述第一输入数据的宽度远小于所述第二输入数据的宽度。
[0012]根据本公开实施例的第三方面,提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现任一实施例所述的方法。
[0013]根据本公开实施例的第四方面,提供一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现权任一实施例所述的方法。
[0014]本公开实施例通过将待进行矩阵乘法处理的第一输入数据块和第二输入数据块从内存直接加载到寄存器,再对寄存器中的第一输入数据块和第二输入数据块进行矩阵乘法处理,相对于将第一输入数据块和第二输入数据块先从内存加载到缓存,再从缓存加载到寄存器的方式,避免了不必要的数据处理过程,从而降低了矩阵乘法处理的耗时,提高了矩阵乘法过程中的数据处理效率。
[0015]应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,而非限制本公开。
附图说明
[0016]此处的附图被并入说明书中并构成本说明书的一部分,这些附图示出了符合本公开的实施例,并与说明书一起用于说明本公开的技术方案。
[0017]图1A是传统的矩阵乘法处理过程的示意图。
[0018]图1B是本公开实施例的矩阵乘法处理过程的示意图。
[0019]图2是本公开实施例的数据处理方法流程图。
[0020]图3是本公开实施例的数据分块的示意图。
[0021]图4A是一些实施例的数据重排的示意图。
[0022]图4B是经过数据重排后缓存中的读指针移动过程的示意图。
[0023]图5A是本公开实施例的从内存加载数据的示意图。
[0024]图5B是本公开实施例的指针移动过程的示意图。
[0025]图6是本公开另一实施例的数据分块的示意图。
[0026]图7是本公开实施例的数据处理装置的框图。
[0027]图8是本公开实施例的计算机设备的示意图。
具体实施方式
[0028]这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本公开实施例相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开实施例的一些方面相一致的装置和方法的例子。
[0029]在本公开实施例使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本公开实施例。在本公开实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。另外,本文中术语“至少一种”表示多种中的任意一种或多种中的至少两种的任意组合。
[0030]应当理解,尽管在本公开实施例可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本公开实施例范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在
……
时”或“当
……
时”或“响应于确定”。
[0031本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种数据处理方法,其特征在于,所述方法包括:将第一输入数据中的第一输入数据块从内存加载到第一寄存器;将第二输入数据中的第二输入数据块从所述内存加载到第二寄存器;对所述第一寄存器中的所述第一输入数据块与所述第二寄存器中的所述第二输入数据块进行矩阵乘法处理,得到输出数据的输出数据块;其中,所述第一输入数据的宽度远小于所述第二输入数据的宽度。2.根据权利要求1所述的方法,其特征在于,所述将第二输入数据中的第二输入数据块从所述内存加载到第二寄存器,包括:基于指向所述内存中的第一目标地址的第一指针,将所述第一目标地址中存储的第一元素加载到所述第二寄存器,其中,所述第一元素为所述第二输入数据块中第j行最后一个元素;将读指针由所述第一指针跳转至指向所述内存中的第二目标地址的第二指针,其中,所述第二指针与所述第一指针之间的距离为所述第二输入数据的行数与所述第二输入数据块的行数之差;基于所述第二指针,将所述第二目标地址存储的第二元素加载到所述第二寄存器。3.根据权利要求1或2所述的方法,其特征在于,所述方法还包括:将所述输出数据块存储至第三寄存器;将所述第三寄存器中的输出数据块加载到所述内存。4.根据权利要求3所述的方法,其特征在于,所述将所述第三寄存器中的输出数据块加载到所述内存,包括:基于指向所述内存中的第三目标地址的第三指针,将所述输出数据块第m行的最后一个元素从所述第三寄存器存储到所述第三目标地址;将写指针由所述第三指针跳转至指向所述内存中的第四目标地址的第四指针,其中,所述第三目标地址与所述第四目标地址之间的距离为所述输出数据的行数与所述输出数据块的行数之差;基于所述第四指针,将所述输出数据块第m+1行的第一个元素从所述第三寄存器存储到所述第四目标地址。5.根据权利要求1至4任意一项所述的方法,其特征在于,所述第一输入数据的高度远小于所述第二输入数据的宽度。6.根据权利要求1至5任意一项所述的方法,其特征在于,所述第一输入数据为神经网络的卷积核参数,所述第二输入数据为图像的特征图。7.一种数据处理装置,其特征在于,所述装置包括:第一加载模块,用于将第一输入数据中的第一输入数据块从内存加载到第一寄存器;第二加载模块,用于将第二输入数据中的第二输入数据块从所述内存加载到第二寄存器;处理模块,用于对...

【专利技术属性】
技术研发人员:陈凯亮
申请(专利权)人:上海商汤智能科技有限公司
类型:发明
国别省市:

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

1