张量转置装置、方法、设备及存储介质制造方法及图纸

技术编号:39254634 阅读:10 留言:0更新日期:2023-10-30 12:06
本申请提供一种张量转置装置、方法、设备及存储介质,涉及数据处理技术领域,该装置包括:多个级联的子转置模块;子转置模块包括:使能寄存器、模式寄存器和位宽寄存器;使能寄存器用于对每一级输入的NHWC四维数据开启行和列的形状转置进程;其中,NHWC四维数据包括:H个数量的行数和W个数量的列数,行数与列数的乘积为因子2的幂次方;模式寄存器用于在形状转置进程中,对每一级的NHWC四维数据进行HW维的逆向转置或正向转置;位宽寄存器用于在逆向转置或正向转置过程中,定义C维数据的最小粒度,直到输出的NHWC四维数据完成形状转置,实现逻辑简单,对芯片后端无额外压力,给软件提供了丰富的使用空间,提高了灵活性。提高了灵活性。提高了灵活性。

【技术实现步骤摘要】
张量转置装置、方法、设备及存储介质


[0001]本申请涉及数据处理
,具体而言,涉及一种张量转置装置、方法、设备及存储介质。

技术介绍

[0002]张量(tensor)是指多维的数据,例如四维的tensor一般表示为(N,H,W,C),其中C为最内维,而tensor的转置(transpose)是指任意相邻维度交换位置,比如(N,H,W,C)转置为(N,W,H,C)的过程就是把中间两个维度进行了转置。现有的转置方案通常使用一片较大的寄存器阵列,以fifo(First In First Out,即先入先出)的方式先进行按行写入,写满之后再按列读取,按列读出的同时将下一批数据按列写入,写满之后再按行读出,该过程交替反复来实现转置的功能。
[0003]目前,该转置方案仅支持特定的一种或几种形状的转置,灵活性不高;而且如果要求支持的转置形状较多的话,由于组合逻辑的分支过多导致芯片后端的时序很难收敛,频率难以跑上去使得芯片性能较差,可实现性不高,很难满足现在人工智能技术对转置操作的高要求。

技术实现思路

[0004]有鉴于此,本申请实施例的目的在于提供一种张量转置装置、方法、设备及存储介质,通过将多个包含使能寄存器、模式寄存器和位宽寄存器的子转置模块进行级联,对使能寄存器、模式寄存器和位宽寄存器的配合对每一级输入的NHWC四维数据开启行和列的形状转置,并对每一级的NHWC四维数据进行HW维的逆向转置或正向转置,直到输出的NHWC四维数据完成形状转置,容易实现,提高了灵活性,从而解决了上述技术问题。<br/>[0005]第一方面,本申请实施例提供一种张量转置装置,所述装置包括:多个级联的子转置模块;所述子转置模块包括:使能寄存器、模式寄存器和位宽寄存器;所述使能寄存器用于对每一级输入的NHWC四维数据开启行和列的形状转置进程;其中,所述NHWC四维数据包括:H个数量的行数和W个数量的列数,所述行数与列数的乘积为因子2的幂次方;所述模式寄存器用于在所述形状转置进程中,对每一级的NHWC四维数据进行HW维的逆向转置或正向转置;所述位宽寄存器用于在所述逆向转置或正向转置过程中,定义C维数据的最小粒度,直到输出的NHWC四维数据完成形状转置。
[0006]在上述实现过程中,通过将多个包含使能寄存器、模式寄存器和位宽寄存器的子转置模块进行级联,对每一级使能寄存器、模式寄存器和位宽寄存器进行配置,能够实现多种形状的转置,实现逻辑简单,对芯片后端无额外压力,给软件提供了丰富的使用空间,提高了灵活性。
[0007]可选地,在HC的乘积满足预设条件的情况下,所述预设条件为:HC的乘积为因子32的倍数;所述使能寄存器具体用于对每一级输入的NHWC四维数据开启行和列的形状转置进程;所述模式寄存器具体用于在所述形状转置进程中,对每一级的NHWC四维数据进行HW维
的逆向转置或正向转置;所述位宽寄存器具体用于将每一级W维度中的数据拆出因子2转移至H维度左侧,直到经过log2(W)次转移完成形状转置。
[0008]在上述实现过程中,通过对多个子转置模块的使能寄存器、模式寄存器和位宽寄存器进行赋值和对应配置,能够实现HC的乘积为因子32的倍数条件下张量数据的转置,实现逻辑简单,对芯片后端无额外压力,分类处理提高了效率和灵活性。
[0009]可选地,在HC的乘积未满足预设条件的情况下,所述预设条件为:HC的乘积为因子32的倍数;所述使能寄存器具体用于对每一级输入的NHWC四维数据开启行和列的形状转置进程;所述模式寄存器具体用于在所述形状转置进程中,对每一级的NHWC四维数据进行HW维的逆向转置或正向转置;所述位宽寄存器具体用于将W维度中的数据拆出因子2转移至H维度中,再将每一级W维度中的数据拆出因子2转移至H维度左侧,直到经过log2(W)次转移完成形状转置。
[0010]在上述实现过程中,通过对多个子转置模块的使能寄存器、模式寄存器和位宽寄存器进行赋值和对应配置,能够实现HC的乘积不为因子32的倍数条件下张量数据的转置,实现逻辑简单,对芯片后端无额外压力,分类处理提高了效率和灵活性。
[0011]可选地,所述NHWC四维数据包括:C个最内维;所述最内维的取值范围为1字节、2字节、4字节、8字节或16字节。
[0012]在上述实现过程中,通过对子转置模块的位宽字节进行限制,避免硬件逻辑出现错误,提高了数据处理准确率和效率。
[0013]可选地,所述行数、列数、最内维的乘积与因子2之商小于或等于当前级子转置模块的行缓存容量。
[0014]在上述实现过程中,通过对子转置模块的行缓存进行限制,避免硬件逻辑存储数据出现错误,提高了数据处理准确率和效率。
[0015]可选地,所述行数、列数、最内维的乘积与因子2之商与32字节取整为零。
[0016]在上述实现过程中,通过对子转置模块读取的行数据量进行限制,避免硬件逻辑存储数据出现错误,提高了数据处理准确率和效率。
[0017]可选地,所述多个级联的子转置模块的数量为log2(W)个。
[0018]在上述实现过程中,通过设置log2(W)个数量级的子转置模块,节省了数据存储空间,提高了数据处理效率。
[0019]第二方面,本申请实施例提供了一种张量转置方法,所述方法应用于上述任一所述的装置,所述装置包括:多个级联的子转置模块;所述子转置模块包括:使能寄存器、模式寄存器和位宽寄存器;所述方法包括:对每一级子转置模块输入的NHWC四维数据开启行和列的形状转置进程;其中,所述NHWC四维数据包括:H个数量的行数和W个数量的列数,所述行数与列数的乘积为因子2的幂次方;在所述形状转置进程中,对每一级的NHWC四维数据进行HW维的逆向转置或正向转置;在所述逆向转置或正向转置过程中,定义C维数据的最小粒度,直到输出的NHWC四维数据完成形状转置。
[0020]在上述实现过程中,通过将多个包含使能寄存器、模式寄存器和位宽寄存器的子转置模块进行级联,对每一级使能寄存器、模式寄存器和位宽寄存器进行配置,能够实现多种形状的转置,实现逻辑简单,对芯片后端无额外压力,给软件提供了丰富的使用空间,提高了灵活性。
[0021]第三方面,本申请实施例还提供一种电子设备,包括:处理器、存储器,所述存储器存储有所述处理器可执行的机器可读指令,当电子设备运行时,所述机器可读指令被所述处理器执行时执行上述的方法的步骤。
[0022]第四方面,本申请实施例提供一种计算机可读存储介质,所述存储介质上存储有计算机程序,所述计算机程序被处理器运行时执行上述的方法的步骤。
[0023]为使本申请的上述目的、特征和优点能更明显易懂,下文特举实施例,并配合所附附图,作详细说明如下。
附图说明
[0024]为了更清楚地说明本申请实施例的技术方案,下面将对本申请实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种张量转置装置,其特征在于,所述装置包括:多个级联的子转置模块;所述子转置模块包括:使能寄存器、模式寄存器和位宽寄存器;所述使能寄存器用于对每一级输入的NHWC四维数据开启行和列的形状转置进程;其中,所述NHWC四维数据包括:H个数量的行数和W个数量的列数,所述行数与列数的乘积为因子2的幂次方;所述模式寄存器用于在所述形状转置进程中,对每一级的NHWC四维数据进行HW维的逆向转置或正向转置;所述位宽寄存器用于在所述逆向转置或正向转置过程中,定义C维数据的最小粒度,直到输出的NHWC四维数据完成形状转置。2.根据权利要求1所述的装置,其特征在于,其中,在HC的乘积满足预设条件的情况下,所述预设条件为:HC的乘积为因子32的倍数;所述使能寄存器具体用于对每一级输入的NHWC四维数据开启行和列的形状转置进程;所述模式寄存器具体用于在所述形状转置进程中,对每一级的NHWC四维数据进行HW维的逆向转置或正向转置;所述位宽寄存器具体用于将每一级W维度中的数据拆出因子2转移至H维度左侧,直到经过log2(W)次转移完成形状转置。3.根据权利要求2所述的装置,其特征在于,其中,在HC的乘积未满足预设条件的情况下,所述预设条件为:HC的乘积为因子32的倍数;所述使能寄存器具体用于对每一级输入的NHWC四维数据开启行和列的形状转置进程;所述模式寄存器具体用于在所述形状转置进程中,对每一级的NHWC四维数据进行HW维的逆向转置或正向转置;所述位宽寄存器具体用于将W维度中的数据拆出因子2转移至H维度中,再将每一级W维度中的数据拆出因子2转移至H维度左侧,直到经过log2(W)次转移完成形状转置。4.根据权利要求1...

【专利技术属性】
技术研发人员:杜兴庄永文
申请(专利权)人:爱芯元智半导体宁波有限公司
类型:发明
国别省市:

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

1