数据处理方法、数据处理装置及电子设备制造方法及图纸

技术编号:37843440 阅读:12 留言:0更新日期:2023-06-14 09:48
本申请提供一种数据处理方法、数据处理装置及电子设备,涉及数据运算技术领域。该方法包括:确定相应输入数据类型的待输入数据流;根据待输入数据流的数据流数量,在硬件电路的多个运算模块中确定目标运算方法;基于目标运算方法对待输入数据流进行计算,得到输出数据类型的目标数据流,以目标数据流作为神经网络的运算因子。本申请通过在硬件电路中设置多个不同功能的运算模块,能够根据待输入数据流的数据量数量,在多个运算模块中确定相应的目标运算方法,计算得到所需类型的目标数据流。能够复用硬件电路中的资源对不同数量的数据流、不同输入数据类型和输出数据类型的数据进行处理,减小硬件电路的面积,减少计算的成本,提高计算的效率。高计算的效率。高计算的效率。

【技术实现步骤摘要】
数据处理方法、数据处理装置及电子设备


[0001]本申请涉及数据运算
,具体而言,涉及一种数据处理方法、数据处理装置及电子设备。

技术介绍

[0002]融合乘积累加运算(fma,fused multiply

accumulate),是在数字信号处理器中常用的一种操作,即对三个操作数a,b,c完成∑(a*b)+c,将需要若干条指令的操作简化成一条指令。
[0003]传统的融合乘积累加运算结构简单,功能单一,只具有加法计算和乘法计算的功能。而在神经网络计算的应用场景中,数据流的输入和输入具有多种不同的数据类型,目前的融合乘积累加运算方式无法应对神经网络计算中多种不同输入数据类型的运算场景,也无法完成相应的矢量操作运算,导致计算时所占用的硬件资源较多,硬件电路设计时的面积压力较大,计算成本较高且效率较低。

技术实现思路

[0004]有鉴于此,本申请实施例的目的在于提供一种数据处理方法、数据处理装置及电子设备,以改善现有技术中存在的硬件电路进行融合乘积累加运算时的计算成本较高且效率较低的问题。
[0005]为了解决上述问题,第一方面,本申请实施例提供了一种数据处理方法,所述方法包括:
[0006]确定相应输入数据类型的待输入数据流;
[0007]根据所述待输入数据流的数据流数量,在硬件电路的多个运算模块中确定目标运算方法;
[0008]基于所述目标运算方法对所述待输入数据流进行计算,得到输出数据类型的目标数据流,以所述目标数据流作为神经网络的运算因子。
[0009]在上述实现过程中,通过对输入的数据流的输入数据类型进行限定,以便于后续进行计算,提高计算时的效率。并且,通过在进行数据运算的硬件电路中设置多个不同功能的运算模块,能够根据待输入数据流的数据量数量,在多个运算模块中确定相应的目标运算方法,以根据目标运算方法对待输入数据流进行计算,得到所需的输出类型的目标数据流。能够复用硬件电路中的多个运算模块的资源对不同数量的数据流、不同输入数据类型和输出数据类型的数据进行处理,实现多种不同的运算功能,提高了计算时的精度,减少处理时的指令操作,以提高硬件电路进行编译时的效率,还能够减小硬件电路设计时的面积压力,从而减小硬件电路的面积和计算的成本,提高计算的效率。
[0010]可选地,其中,所述待输入数据流包括:第一输入数据流,和/或第二输入数据流,和/或第三输入数据流;
[0011]所述确定相应输入数据类型的待输入数据流,包括:
[0012]若所述待输入数据流包括所述第一输入数据流或所述第二输入数据流,确定所述第一输入数据流和所述第二输入数据流的第一输入数据类型;
[0013]若所述待输入数据流包括所述第三输入数据流,确定所述第三输入数据流的第二输入数据类型。
[0014]在上述实现过程中,为了实现融合乘积累加运算的相关计算,待输入数据流中可以包括三路数据流。在进行计算前,可以对三路数据流的数据类型进行相应地设置,将第一输入数据流与第二输入数据流的输入数据类型设置为一致的第一输入数据类型,将第三输入数据流设置为与第一输入数据类型相同或不同的第二输入数据类型。通过对输入数据类型的限定,以便于后续进行统一地计算和处理,从而提高计算时的效率,适用于多种FPGA或者集成电路IP设计。
[0015]可选地,所述根据所述待输入数据流的数据流数量,在硬件电路的多个运算模块中确定目标运算方法,包括:
[0016]确定所述待输入数据流中的所述数据流数量;其中,若所述待输入数据流包括所述第一输入数据流、所述第二输入数据流或所述第三输入数据流,则所述数据流数量为1;若所述待输入数据流包括所述第一输入数据流和所述第二输入数据流、或所述第一输入数据流和所述第三输入数据流,或所述第二输入数据流和所述第三输入数据流,则所述数据流数量为2;若所述待输入数据流包括所述第一输入数据流、所述第二输入数据流和所述第三输入数据流,则所述数据流数量为3;
[0017]若所述数据流数量为1,在多个所述运算模块中确定单路运算方法为所述目标运算方法;
[0018]若所述数据流数量为2,在多个所述运算模块中确定双路运算方法为所述目标运算方法;
[0019]若所述数据流数量为3,在多个所述运算模块中确定三路运算方法为所述目标运算方法;
[0020]其中,所述硬件电路的多个运算模块中包括乘积模块、累加模块、加法模块、常数模块、移位模块、通道模块和截位模块。
[0021]在上述实现过程中,在实际的计算场景中,输入硬件电路中进行计算的数据流的数量并不确定,因此,为了对不同数量的数据流都进行处理,可以先根据每个输入数据流是否使能,对待输入数据流的数据流数量进行确定,从而根据不同的数据流数量,在硬件电路中的多个运算模块中选择相应的模块进行计算,以形成相应的多种运算方法。通过在硬件电路中设置不同功能的运算模块,能够实现多种不同的运算以及相应的功能,例如乘积、累加、加法、加常数、移位等操作,还能够对多种不同的输入输出数据类型的时钟周期的通道进行相应地处理和截位输出,从而能够针对不同数量的数据流,支持不同符号位混合运算,进行多种不同类型的计算和处理,提高了计算时的泛用性以及计算精度。
[0022]可选地,若所述目标运算方法为所述单路运算方法;则所述基于所述目标运算方法对所述待输入数据流进行计算,得到输出数据类型的目标数据流,包括:
[0023]根据所述累加模块,对所述待输入数据流进行计算,得到累加数据;
[0024]根据所述加法模块和所述常数模块,对所述累加数据和预设常数进行加法计算,得到加法数据;
[0025]根据所述移位模块,对所述加法数据进行移位和数值修约,得到移位数据;
[0026]根据所述通道模块,对所述移位数据的时钟周期的通道数量进行处理,得到传输数据;
[0027]根据所述输出数据类型在多个所述截位模块中选择对应的目标截位模块,以对所述传输数据进行处理,得到所述目标数据流。
[0028]在上述实现过程中,在只有一路输入数据流使能时,即只需要对一路输入数据流进行运算。运算时可以对输入数据流进行累加、加常数、按需求移位、根据数据的时钟周期的通道数量进行处理、以及根据设置的输出数据类型,选择相应的截位模块输出相应结构的数据等多种操作。能够根据需求对单路的输入数据流进行相应地计算和处理,提高了单路输入数据流的计算效率和精度。
[0029]可选地,若所述目标运算方法为所述双路运算方法,且所述待输入数据流包括所述第一输入数据流和所述第二输入数据流;则所述基于所述目标运算方法对所述待输入数据流进行计算,得到输出数据类型的目标数据流,包括:
[0030]根据所述乘积模块,对所述第一输入数据流和所述第二输入数据流进行乘积处理,得到乘积数据;
[0031]根据所述累加模块,对所述乘积数据进行计算,得到累加数据;
[0032]根据所述加法模块和所述常数模块,对所述累加数据本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种数据处理方法,其特征在于,所述方法包括:确定相应输入数据类型的待输入数据流;根据所述待输入数据流的数据流数量,在硬件电路的多个运算模块中确定目标运算方法;基于所述目标运算方法对所述待输入数据流进行计算,得到输出数据类型的目标数据流,以所述目标数据流作为神经网络的运算因子。2.根据权利要求1所述的方法,其特征在于,其中,所述待输入数据流包括:第一输入数据流,和/或第二输入数据流,和/或第三输入数据流;所述确定相应输入数据类型的待输入数据流,包括:若所述待输入数据流包括所述第一输入数据流或所述第二输入数据流,确定所述第一输入数据流和所述第二输入数据流的第一输入数据类型;若所述待输入数据流包括所述第三输入数据流,确定所述第三输入数据流的第二输入数据类型。3.根据权利要求1所述的方法,其特征在于,所述根据所述待输入数据流的数据流数量,在硬件电路的多个运算模块中确定目标运算方法,包括:确定所述待输入数据流中的所述数据流数量;其中,若所述待输入数据流包括所述第一输入数据流、所述第二输入数据流或所述第三输入数据流,则所述数据流数量为1;若所述待输入数据流包括所述第一输入数据流和所述第二输入数据流、或所述第一输入数据流和所述第三输入数据流,或所述第二输入数据流和所述第三输入数据流,则所述数据流数量为2;若所述待输入数据流包括所述第一输入数据流、所述第二输入数据流和所述第三输入数据流,则所述数据流数量为3;若所述数据流数量为1,在多个所述运算模块中确定单路运算方法为所述目标运算方法;若所述数据流数量为2,在多个所述运算模块中确定双路运算方法为所述目标运算方法;若所述数据流数量为3,在多个所述运算模块中确定三路运算方法为所述目标运算方法;其中,所述硬件电路的多个运算模块中包括乘积模块、累加模块、加法模块、常数模块、移位模块、通道模块和截位模块。4.根据权利要求3所述的方法,其特征在于,若所述目标运算方法为所述单路运算方法;则所述基于所述目标运算方法对所述待输入数据流进行计算,得到输出数据类型的目标数据流,包括:根据所述累加模块,对所述待输入数据流进行计算,得到累加数据;根据所述加法模块和所述常数模块,对所述累加数据和预设常数进行加法计算,得到加法数据;根据所述移位模块,对所述加法数据进行移位和数值修约,得到移位数据;根据所述通道模块,对所述移位数据的时钟周期的通道数量进行处理,得到传输数据;根据所述输出数据类型在多个所述截位模块中选择对应的目标截位模块,以对所述传输数据进行处理,得到所述目标数据流。
5.根据权利要求3所述的方法,其特征在于,若所述目标运算方法为所述双路运算方法,且所述待输入数据流包括所述第一输入数据流和所述第二输入数据流;则所述基于所述目标运算方法对所述待输入数据流进行计算,得到输出数据类型的目标数据流,包括:根据所述乘积模块,对所述第一输入数据流和所述第二输入数据流进行乘积处理,得到乘积数据;根据所述累加模块,对所述乘积数据进行计算,得到累加数据;根据所述加法模块和所述常数模块,对所述累加数据和预设常数进行加法计算,得到加法数据;根据所述移位模块,对所述加法数据进行移位和数值修约,得到移位数据;根据所述通道模块,对所述移位数据的时钟周期的通道数量进行处理,得到传输数据;根据所述输出数据类型在多个所述截位模块中选择对应的目标截位模块,以对所述传输数据进行处理,得到所述目标数据流。6.根据权利要求3所述的方法,其特征在于,若所述目...

【专利技术属性】
技术研发人员:方天琪梁喆刘建伟
申请(专利权)人:爱芯元智半导体上海有限公司
类型:发明
国别省市:

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

1