硬件加速方法、装置、终端设备及存储介质与流程

文档序号:34594134发布日期:2023-06-28 19:43阅读:40来源:国知局
硬件加速方法、装置、终端设备及存储介质与流程

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


背景技术:

1、神经网络所使用的数据通常表示为张量tensor,数据在网络中流动必然要经过各种运算处理,这一系列的处理也就是神经网络实现最终结果的过程,这一系列的处理可以称为张量运算。神经网络中涉及了大量的张量运算,比如卷积、矩阵乘法、向量点乘等,其中,permute多维转置算子是一种非常常见的转置算子,该permute多维转置算子用于将一个任意维度的张量以任意顺序重排维度序列,以改变张量的形状,得到所需格式的张量。

2、目前通常采用专门的硬件设备来进行神经网络的张量运算,但在实现多维转置时通常需要逐个计算张量的各个数据在维度重排后的目标位置,再将各个数据复制到对应的位置上,从而实现张量维度重排,在张量维度较高时实现维度重排需要硬件设备进行大量的运算和数据读写操作,使得硬件设备的多维转置运算效率较低。


技术实现思路

1、本申请实施例提供了硬件加速方法、装置、终端设备及存储介质,可以通过一系列的二维转置实现张量的多维转置,提高硬件设备的多维转置运算效率。

2、第一方面,本申请实施例提供了一种硬件加速方法,包括:

3、获取第一张量对应的目标排序关系,所述第一张量为模型中的待处理数据;

4、根据预设的拆分规则对第二张量的维度编号进行拆分,得到第一维度集合,其中,所述第二张量的维度编号的排序关系符合所述目标排序关系,所述第一维度集合包括至少3个维度子集合,各个所述维度子集合根据所述第二张量的维度编号确定;

5、根据所述第一维度集合,确定用于将所述第二张量转变为所述第一张量的第一转置操作序列,其中,所述第一张量的维度编号为连续的编号,所述第一转置操作序列包括至少一个真实二维转置,每个所述真实二维转置用于将两个所述维度子集合中的维度编号所对应的数据进行二维转置;

6、根据第二转置操作序列,将所述第一张量转变为所述第二张量,其中,所述第二转置操作序列中的真实二维转置的排序关系与所述第一转置操作序列中的真实二维转置的排序关系相反;

7、对所述第二张量进行对应处理,得到所述模型的输出结果。

8、第二方面,本申请实施例提供了一种硬件加速装置,包括:

9、排序关系获取模块,用于获取第一张量对应的目标排序关系,所述第一张量为模型中的待处理数据;

10、拆分模块,用于根据预设的拆分规则对第二张量的维度编号进行拆分,得到第一维度集合,其中,上述第二张量的维度编号的排序关系符合预设的目标排序关系,上述第一维度集合包括至少3个维度子集合,各个上述维度子集合根据上述第二张量的维度编号确定;

11、第一转换模块,用于根据上述第一维度集合,确定用于将上述第二张量转变为第一张量的第一转置操作序列,其中,上述第一张量的维度编号为连续的编号,上述第一转置操作序列包括至少一个真实二维转置,每个上述真实二维转置用于将两个上述维度子集合中的维度编号所对应的数据进行二维转置;

12、第二转换模块,用于根据第二转置操作序列,将上述第一张量转变为上述第二张量,其中,上述第二转置操作序列中的真实二维转置的排序关系与上述第一转置操作序列中的真实二维转置的排序关系相反;

13、处理模块,用于对所述第二张量进行对应处理,得到所述模型的输出结果。

14、第三方面,本申请实施例提供了一种终端设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述第一方面所述的硬件加速方法的步骤。

15、第四方面,本申请实施例提供了一种计算机可读存储介质,所述计算机存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述第一方面中所述的硬件加速方法的步骤。

16、第五方面,本申请实施例提供了一种计算机程序产品,当计算机程序产品在终端设备上运行时,使得终端设备执行上述第一方面中任一项所述的硬件加速方法。

17、本申请实施例与现有技术相比存在的有益效果是:

18、本申请实施例中,预先获取第一张量对应的目标排序关系,根据预设的拆分规则对第二张量的维度编号进行拆分,得到包括至少3个维度子集合的第一维度集合,并基于第一维度集合确定用于将第二张量转变为第一张量的第一转置操作序列。由于第二转置操作序列中的真实二维转置的排序关系与第一转置操作序列中的真实二维转置的排序关系相反,而第一转置操作序列中的一系列真实二维转置能够将第二张量转变为第一张量,因此,根据第二转置操作序列能够将第一张量转变为第二张量。同时,由于先将维度编号的排序关系符合预设的目标排序关系的第二张量的维度编号拆分为至少3个维度子集合,真实二维转置对两个维度子集合中的维度编号所对应的数据进行二维转置,而硬件设备对于二维转置的运算通常较为高效,因此,基于第二转置操作序列实现对第一张量的多维转置,使得硬件设备能够通过一系列的二维转置运算实现多维转置运算,从而提高硬件设备在执行模型的过程中多维转置的运算效率。并且,在将第一张量转变为第二张量的过程中,由于不需要逐个计算第一张量的各个数据在转变为第二张量后所对应的目标位置,大量减少了硬件设备执行模型过程中对应的多维转置运算的计算量和执行模型所需时间,从而减少硬件设备执行模型得到输出结果所需的时间,进而减小了硬件设备的负荷和提高了硬件设备执行模型的效率。



技术特征:

1.一种硬件加速方法,应用于硬件设备,其特征在于,包括:

2.如权利要求1所述的硬件加速方法,其特征在于,所述根据所述第一维度集合,确定用于将所述第二张量转变为第一张量的第一转置操作序列,包括:

3.如权利要求2所述的硬件加速方法,其特征在于,所述第一张量的维度编号为从n开始的连续编号,其中,n为整数,所述第一维度集合中的维度子集合依次包括x0、x1、x2,其中,所述维度子集合x0由从n开始的连续整数的维度编号组成,所述维度子集合x2的第一个维度编号与所述维度子集合x0的最后一个维度编号连续;

4.如权利要求3所述的硬件加速方法,其特征在于,在所述根据所述拆分规则对第二张量的维度编号进行拆分时,若所述第二张量的维度编号中的第一个维度编号不为n,则将所述维度子集合x0置为空,根据所述拆分规则按序对所述第二维度集合中的维度编号进行拆分,得到所述维度子集合x1和所述维度子集合x2,且所述维度子集合x2的第一个维度编号为n。

5.如权利要求1至4任一项所述的硬件加速方法,其特征在于,在所述根据预设的拆分规则对第二张量的维度编号进行拆分,得到第一维度集合之前,还包括:

6.如权利要求5所述的硬件加速方法,其特征在于,所述根据所述第一张量的维度和预设的维度阈值判断是否需要对所述第二张量的维度编号进行拆分,包括:

7.如权利要求6所述的硬件加速方法,其特征在于,所述根据所述第一张量的维度和预设的维度阈值判断是否需要对所述第二张量的维度编号进行拆分,还包括:

8.一种硬件加速装置,其特征在于,包括:

9.一种终端设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1至7任一项所述的方法。

10.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至7任一项所述的方法。


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

技术研发人员:陈敏,蔡万伟
受保护的技术使用者:深圳云天励飞技术股份有限公司
技术研发日:
技术公布日:2024/1/13
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1