硬件加速方法、装置、终端设备及存储介质制造方法及图纸

技术编号:38020275 阅读:11 留言:0更新日期:2023-06-30 10:47
本申请适用于人工智能技术领域,提供了硬件加速方法、装置、终端设备及存储介质,包括:获取第一张量的目标排序关系,根据拆分规则对第二张量的维度编号进行拆分,得到第一维度集合,第一维度集合包括至少3个维度子集合,根据第一维度集合确定将第二张量转变为第一张量的第一转置操作序列,第一转置操作序列包括至少一个真实二维转置,真实二维转置将两个维度子集合中的维度编号所对应的数据进行二维转置,根据第二转置操作序列将第一张量转变为第二张量,第二转置操作序列的真实二维转置的排序关系与第一转置操作序列的真实二维转置的排序关系相反,对第二张量进行对应处理,得到模型的输出结果。本申请可以提高硬件设备对高维张量的转置效率。维张量的转置效率。维张量的转置效率。

【技术实现步骤摘要】
硬件加速方法、装置、终端设备及存储介质


[0001]本申请属于人工智能
,尤其涉及硬件加速方法、装置、终端设备及计算机可读存储介质。

技术介绍

[0002]神经网络所使用的数据通常表示为张量Tensor,数据在网络中流动必然要经过各种运算处理,这一系列的处理也就是神经网络实现最终结果的过程,这一系列的处理可以称为张量运算。神经网络中涉及了大量的张量运算,比如卷积、矩阵乘法、向量点乘等,其中,permute多维转置算子是一种非常常见的转置算子,该permute多维转置算子用于将一个任意维度的张量以任意顺序重排维度序列,以改变张量的形状,得到所需格式的张量。
[0003]目前通常采用专门的硬件设备来进行神经网络的张量运算,但在实现多维转置时通常需要逐个计算张量的各个数据在维度重排后的目标位置,再将各个数据复制到对应的位置上,从而实现张量维度重排,在张量维度较高时实现维度重排需要硬件设备进行大量的运算和数据读写操作,使得硬件设备的多维转置运算效率较低。

技术实现思路

[0004]本申请实施例提供了硬件加速方法、装置、终端设备及存储介质,可以通过一系列的二维转置实现张量的多维转置,提高硬件设备的多维转置运算效率。
[0005]第一方面,本申请实施例提供了一种硬件加速方法,包括:
[0006]获取第一张量对应的目标排序关系,所述第一张量为模型中的待处理数据;
[0007]根据预设的拆分规则对第二张量的维度编号进行拆分,得到第一维度集合,其中,所述第二张量的维度编号的排序关系符合所述目标排序关系,所述第一维度集合包括至少3个维度子集合,各个所述维度子集合根据所述第二张量的维度编号确定;
[0008]根据所述第一维度集合,确定用于将所述第二张量转变为所述第一张量的第一转置操作序列,其中,所述第一张量的维度编号为连续的编号,所述第一转置操作序列包括至少一个真实二维转置,每个所述真实二维转置用于将两个所述维度子集合中的维度编号所对应的数据进行二维转置;
[0009]根据第二转置操作序列,将所述第一张量转变为所述第二张量,其中,所述第二转置操作序列中的真实二维转置的排序关系与所述第一转置操作序列中的真实二维转置的排序关系相反;
[0010]对所述第二张量进行对应处理,得到所述模型的输出结果。
[0011]第二方面,本申请实施例提供了一种硬件加速装置,包括:
[0012]排序关系获取模块,用于获取第一张量对应的目标排序关系,所述第一张量为模型中的待处理数据;
[0013]拆分模块,用于根据预设的拆分规则对第二张量的维度编号进行拆分,得到第一维度集合,其中,上述第二张量的维度编号的排序关系符合预设的目标排序关系,上述第一
维度集合包括至少3个维度子集合,各个上述维度子集合根据上述第二张量的维度编号确定;
[0014]第一转换模块,用于根据上述第一维度集合,确定用于将上述第二张量转变为第一张量的第一转置操作序列,其中,上述第一张量的维度编号为连续的编号,上述第一转置操作序列包括至少一个真实二维转置,每个上述真实二维转置用于将两个上述维度子集合中的维度编号所对应的数据进行二维转置;
[0015]第二转换模块,用于根据第二转置操作序列,将上述第一张量转变为上述第二张量,其中,上述第二转置操作序列中的真实二维转置的排序关系与上述第一转置操作序列中的真实二维转置的排序关系相反;
[0016]处理模块,用于对所述第二张量进行对应处理,得到所述模型的输出结果。
[0017]第三方面,本申请实施例提供了一种终端设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述第一方面所述的硬件加速方法的步骤。
[0018]第四方面,本申请实施例提供了一种计算机可读存储介质,所述计算机存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述第一方面中所述的硬件加速方法的步骤。
[0019]第五方面,本申请实施例提供了一种计算机程序产品,当计算机程序产品在终端设备上运行时,使得终端设备执行上述第一方面中任一项所述的硬件加速方法。
[0020]本申请实施例与现有技术相比存在的有益效果是:
[0021]本申请实施例中,预先获取第一张量对应的目标排序关系,根据预设的拆分规则对第二张量的维度编号进行拆分,得到包括至少3个维度子集合的第一维度集合,并基于第一维度集合确定用于将第二张量转变为第一张量的第一转置操作序列。由于第二转置操作序列中的真实二维转置的排序关系与第一转置操作序列中的真实二维转置的排序关系相反,而第一转置操作序列中的一系列真实二维转置能够将第二张量转变为第一张量,因此,根据第二转置操作序列能够将第一张量转变为第二张量。同时,由于先将维度编号的排序关系符合预设的目标排序关系的第二张量的维度编号拆分为至少3个维度子集合,真实二维转置对两个维度子集合中的维度编号所对应的数据进行二维转置,而硬件设备对于二维转置的运算通常较为高效,因此,基于第二转置操作序列实现对第一张量的多维转置,使得硬件设备能够通过一系列的二维转置运算实现多维转置运算,从而提高硬件设备在执行模型的过程中多维转置的运算效率。并且,在将第一张量转变为第二张量的过程中,由于不需要逐个计算第一张量的各个数据在转变为第二张量后所对应的目标位置,大量减少了硬件设备执行模型过程中对应的多维转置运算的计算量和执行模型所需时间,从而减少硬件设备执行模型得到输出结果所需的时间,进而减小了硬件设备的负荷和提高了硬件设备执行模型的效率。
附图说明
[0022]为了更清楚地说明本申请实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍。
[0023]图1是本申请一实施例提供的一种硬件加速方法的流程示意图;
[0024]图2是本申请实施例提供的四维张量示意图;
[0025]图3是本申请实施例提供的硬件加速装置的结构示意图;
[0026]图4是本申请实施例提供的终端设备的结构示意图。
具体实施方式
[0027]以下描述中,为了说明而不是为了限定,提出了诸如特定系统结构、技术之类的具体细节,以便透彻理解本申请实施例。然而,本领域的技术人员应当清楚,在没有这些具体细节的其它实施例中也可以实现本申请。在其它情况中,省略对众所周知的系统、装置、电路以及方法的详细说明,以免不必要的细节妨碍本申请的描述。
[0028]应当理解,当在本申请说明书和所附权利要求书中使用时,术语“包括”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。
[0029]还应当理解,在本申请说明书和所附权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。
[0030]另外,在本申请说明书和所附权利要求书的描本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种硬件加速方法,应用于硬件设备,其特征在于,包括:获取第一张量对应的目标排序关系,所述第一张量为模型中的待处理数据;根据预设的拆分规则对第二张量的维度编号进行拆分,得到第一维度集合,其中,所述第二张量的维度编号的排序关系符合所述目标排序关系,所述第一维度集合包括至少3个维度子集合,各个所述维度子集合根据所述第二张量的维度编号确定;根据所述第一维度集合,确定用于将所述第二张量转变为所述第一张量的第一转置操作序列,其中,所述第一张量的维度编号为连续的编号,所述第一转置操作序列包括至少一个真实二维转置,每个所述真实二维转置用于将两个所述维度子集合中的维度编号所对应的数据进行二维转置;根据第二转置操作序列,将所述第一张量转变为所述第二张量,其中,所述第二转置操作序列中的真实二维转置的排序关系与所述第一转置操作序列中的真实二维转置的排序关系相反

对所述第二张量进行对应处理,得到所述模型的输出结果。2.如权利要求1所述的硬件加速方法,其特征在于,所述根据所述第一维度集合,确定用于将所述第二张量转变为第一张量的第一转置操作序列,包括:步骤1:对所述第一维度集合进行虚拟二维转置,得到第二维度集合,所述虚拟二维转置用于将两个所述维度子集合的位置进行互换;步骤2:若所述第二维度集合所包括的维度编号的排序关系与所述第一张量的维度编号的排序关系不一致,则根据所述拆分规则对所述第二维度集合中的维度编号进行拆分,得到新的第一维度集合;步骤3:重复所述步骤1至步骤2,直至最新的所述第二维度集合所包括的维度编号的排序关系与所述第一张量的维度编号的排序关系一致;步骤4:根据各个所述虚拟二维转置及各个所述虚拟二维转置对应的所述第二维度集合,确定所述第一转置操作序列。3.如权利要求2所述的硬件加速方法,其特征在于,所述第一张量的维度编号为从N开始的连续编号,其中,N为整数,所述第一维度集合中的维度子集合依次包括X0、X1、X2,其中,所述维度子集合X0由从N开始的连续整数的维度编号组成,所述维度子集合X2的第一个维度编号与所述维度子集合X0的最后一个维度编号连续;所述对所述第一维度集合进行虚拟二维转置,得到第二维度集合,包括:对所述第一维度集合中的所述维度子集合X1和维度子集合X2进行所述虚拟二维转置,得到所述第二维度集合,所述第二维度集合中的维度子集合依次包括X0、X2、X1。4.如权利要求3所述的硬件加速方法,其特征在于,在所述根据所述拆分规则对第二张量的维度编号进行拆分时,若所述第二张量的维度编号中的第一个维度编号不为N,则将所述...

【专利技术属性】
技术研发人员:陈敏蔡万伟
申请(专利权)人:深圳云天励飞技术股份有限公司
类型:发明
国别省市:

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

1