一种数据处理方法、装置和系统
技术领域
本申请涉及数据处理
技术领域
,特别是涉及一种数据处理方法、装置和系统。背景技术
在各种工程数据处理
技术领域
,比如分子动力学、数字信号处理、卷积神经网络中,存在大量复杂非线性数学计算。这些复杂数学计算一般使用通用微处理器CPU通过软件编程实现,消耗时间长,功耗大。目前在各领域会选择专用处理器进行加速运算,即使用专用处理器中的基本加法、乘法、查表运算部件功能进行加速运算。例如,在分子动力学(MD,Molecule Dynamic)模拟中,将待测体系放入一个物理空间立方体中,体系中的粒子根据受力情况运动。粒子之间存在长程作用、短程作用、成键作用等多种经典力学相互作用,这些相互作用涉及高次幂函数、三角函数、e指数函数、积分函数等,甚至是以上函数的组合形式,计算复杂度很高,计算量巨大,数据精度要求高。为了加速计算,需要使用专用处理器。
目前,在工程实现中,通常使用查表法实现非线性数学运算。常规的查表法实现方式为:首先构建查找表,针对特定的计算函数,将函数可能取到的自变量区间分段(通常是均匀分段,或针对函数特性的部分区间增多分段数),在每段的段首求出因变量值和一阶、二阶求导系数(也可以是变形),存入查找表中;计算时,由自变量取值,按照构建查找表时的分段方式计算出表项地址,取该表项地址的表项后通过拟合运算,计算函数值。
由于函数形式具有多样性,不同函数的自变量取值范围不同,同一函数在不同子区间的变化快慢也不同,而目前的查表法仅能针对特定函数制定分段方式,并采用与制定的分段方式匹配的计算方式来计算表项地址,通用性较差,计算效率较低。
发明内容
有鉴于此,本申请提供了一种数据处理方法、装置和系统,以解决现有技术因无法采用统一的查表法计算函数值导致通用性差和计算效率低的问题,其技术方案如下:
一种数据处理方法,应用于第一处理器,包括:
以将自变量范围限定在指定区间为改写目标,对第一目标函数进行改写,改写后的函数作为第二目标函数,其中,指定区间为[2Q,2G]或[2Q,2G)或(2Q,2G)或(2Q,2G],Q和G均为整数,G≥Q;
基于2的幂次方对第二目标函数的自变量区间进行划分,以得到M个区间段,其中,M个区间段中第m个区间段为[2Q+(m-1),2Q+m),M=G-Q;
采用均匀分段方式对M个区间段中的每个区间段进行划分,其中,对M个区间段中的第m个区间段进行划分得到的区间段的数量Nm满足log2(Nm)为正整数;
根据自变量区间的最终分段结果,构建查找表,以便第二处理器基于查找表确定第一目标函数的待计算自变量对应的函数值。
可选的,根据自变量区间的最终分段结果,构建查找表,包括:
针对获得的每个区间段,在该区间段的段首对第二目标函数进行指定阶数的泰勒系数展开,以得到该区间段对应的求导系数;
基于各区间段分别对应的求导系数构建查找表。
可选的,基于各区间段分别对应的求导系数构建查找表,包括:
将各区间段分别对应的求导系数转换为浮点系数,以得到各个区间段分别对应的浮点系数;
基于各区间段分别对应的浮点系数构建查找表;
和/或,
针对获得的每个区间段,按照该区间段对应的求导系数中不溢出的最大定点标值,将该区间段对应的求导系数转换为设定位宽的定点系数,以得到该区间段对应的定点系数;
基于各个区间段分别对应的定点系数和最大定点标值构建查找表。
一种数据处理方法,应用于第二处理器,包括:
确定第一目标函数的待计算自变量对应于第二目标函数中的自变量,将确定出的自变量作为目标自变量,其中,第二目标函数为第一处理器以将自变量范围限定在指定区间为改写目标,对第一目标函数进行改写得到,指定区间为[2Q,2G]或[2Q,2G)或(2Q,2G)或(2Q,2G],Q和G均为整数,G≥Q;
确定目标自变量对应的段首偏移量和表项地址,其中,段首偏移量为目标自变量相对于其所在区间段的段首的偏移量,区间段为第二目标函数的自变量区间的最终分段结果中包含的一个区间段,最终分段结果为第一处理器在基于2的幂次方对第二目标函数的自变量区间进行划分,以得到M个区间段后,采用均匀分段方式对M个区间段中的每个区间段进行划分得到的多个区间段,表项地址为目标自变量所在区间段对应于查找表中的地址,查找表为根据自变量区间的最终分段结果构建的表;
基于段首偏移量、表项地址和查找表,确定第一目标函数的待计算自变量对应的函数值。
可选的,确定表项地址,包括:
获取目标自变量对应的二进制比特流;
根据二进制比特流和预设参数,确定目标自变量所在区间段的区间号;
根据目标自变量所在区间段的区间号,确定表项地址。
可选的,确定目标自变量对应的段首偏移量,包括:
将目标自变量对应的二进制比特流的前设定比特位数置为0,得到段首偏移量。
可选的,采用浮点处理方式和/或定点处理方式对数据处理方法进行处理。
一种数据处理系统,包括第一处理器和第二处理器;
第一处理器,用于以将自变量范围限定在指定区间为改写目标,对第一目标函数进行改写,改写后的函数作为第二目标函数,其中,指定区间为[2Q,2G]或[2Q,2G)或(2Q,2G)或(2Q,2G],Q和G均为整数,G≥Q;基于2的幂次方对第二目标函数的自变量区间进行划分,以得到M个区间段,其中,M个区间段中第m个区间段为[2Q+(m-1),2Q+m),M=G-Q;采用均匀分段方式对M个区间段中的每个区间段进行划分,其中,对M个区间段中的第m个区间段进行划分得到的区间段的数量Nm满足log2(Nm)为正整数;根据自变量区间的最终分段结果,构建查找表;
第二处理器,用于确定第一目标函数的待计算自变量对应于第二目标函数中的自变量,将确定出的自变量作为目标自变量;确定目标自变量对应的段首偏移量和表项地址,其中,段首偏移量为目标自变量相对于其所在区间段的段首的偏移量,表项地址为目标自变量所在区间段对应于查找表中的地址;基于段首偏移量、表项地址和查找表,确定第一目标函数的待计算自变量对应的函数值。
一种数据处理装置,应用于第一处理器,包括:函数改写模块、第一分段模块、第二分段模块和查找表构建模块;
函数改写模块,用于以将自变量范围限定在指定区间为改写目标,对第一目标函数进行改写,改写后的函数作为第二目标函数,其中,指定区间为[2Q,2G]或[2Q,2G)或(2Q,2G)或(2Q,2G],Q和G均为整数,G≥Q;
第一分段模块,用于基于2的幂次方对第二目标函数的自变量区间进行划分,以得到M个区间段,其中,M个区间段中第m个区间段为[2Q+(m-1),2Q+m),M=G-Q;
第二分段模块,用于采用均匀分段方式对M个区间段中的每个区间段进行划分,其中,对M个区间段中的第m个区间段进行划分得到的区间段的数量Nm满足log2(Nm)为正整数;
查找表构建模块,用于根据自变量区间的最终分段结果,构建查找表,以便第二处理器基于查找表确定第一目标函数的待计算自变量对应的函数值。
一种数据处理装置,应用于第二处理器,包括:目标自变量确定模块、信息确定模块和函数值确定模块;
目标自变量确定模块,用于确定第一目标函数的待计算自变量对应于第二目标函数中的自变量,将确定出的自变量作为目标自变量,其中,第二目标函数为第一处理器以将自变量范围限定在指定区间为改写目标,对第一目标函数进行改写得到,指定区间为[2Q,2G]或[2Q,2G)或(2Q,2G)或(2Q,2G],Q和G均为整数,G≥Q;
信息确定模块,用于确定目标自变量对应的段首偏移量和表项地址,其中,段首偏移量为目标自变量相对于其所在区间段的段首的偏移量,区间段为第二目标函数的自变量区间的最终分段结果中包含的一个区间段,最终分段结果为第一处理器在基于2的幂次方对第二目标函数的自变量区间进行划分,以得到M个区间段后,采用均匀分段方式对M个区间段中的每个区间段进行划分得到的多个区间段,表项地址为目标自变量所在区间段对应于查找表中的地址,查找表为根据自变量区间的最终分段结果构建的表;
函数值确定模块,用于基于段首偏移量、表项地址和查找表,确定第一目标函数的待计算自变量对应的函数值。
经由上述的技术方案可知,本申请提供的数据处理方法,第一处理器在以将自变量范围限定在指定区间为改写目标,对第一目标函数进行改写,得到第二目标函数后,基于2的幂次方对第二目标函数的自变量区间进行划分,以得到M个区间段,采用均匀分段方式对M个区间段中的每个区间段进行划分,之后根据自变量区间的最终分段结果,构建查找表,第二处理器首先确定第一目标函数的待计算自变量对应于第二目标函数中的自变量,将确定出的自变量作为目标自变量,接着确定目标自变量对应的段首偏移量和表项地址,最后根据段首偏移量、表项地址和查找表,确定第一目标函数的待计算自变量对应的函数值。本申请提供的函数计算方法,可采用统一的分段方式对各种形式的第二目标函数的自变量区间进行分段,并且可以采用统一的计算方式确定表项地址、段首偏移量以及函数值,通用性更强,计算效率更高。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本申请实施例提供的一种数据处理方法的流程示意图;
图2为本申请实施例提供的第二区间段包含M个区间段的示意图;
图3为本申请实施例提供的定点格式的二进制比特流取比特示意图;
图4为本申请实施例提供的一种应用于第一处理器的数据处理装置的结构示意图;
图5为本申请实施例提供的一种应用于第二处理器的数据处理装置的结构示意图;
图6为本申请实施例提供的一种应用于第一处理器的数据处理设备的硬件结构框图;
图7为本申请实施例提供的一种应用于第二处理器的数据处理设备的硬件结构框图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
现有的数据处理方法在确定自变量有限定范围的非线性复杂函数的函数值时可采用查表法,但是在构造查找表时所需的分段方式需要各函数定制,这意味着计算查表地址时也需要采用与分段方式匹配的计算方式,从而无法采用统一的查表法计算函数值,通用性不强,实现效率低下。
鉴于现有技术存在的问题,本案发明人进行了深入研究,最终提出了一种数据处理方法,该数据处理方法可将自变量有限定范围的第一目标函数转换为自变量区间为指定区间的第二目标函数,在构建查找表时,可利用二进制数据表示特性,采用一套固定模式的分段方式对第二目标函数的自变量区间进行分段,并在计算函数值时采用与固定模式的分段方式匹配的计算方式,从而可以高效高精度地完成计算,通用性更强。接下来通过下述实施例对本申请提供的数据处理方法进行详细介绍。
请参阅图1,示出了本申请实施例提供的数据处理方法的流程示意图,该数据处理方法可以包括:
步骤S101、第一处理器以将自变量范围限定在指定区间为改写目标,对第一目标函数进行改写,改写后的函数作为第二目标函数。
为便于描述,以下将第一目标函数用Fori(xori)表示,其中,xori为第一目标函数的自变量,该自变量满足xori∈[R1,R2],R1∈N,R2∈N,R2>R1(可选的,第一目标函数的自变量区间也可为全开区间或半开半闭区间),将第二目标函数用F(x)表示。
本实施例中,第一处理器可以为通用中央处理器CPU,第一目标函数为非线性复杂函数,例如分子动力学模拟中涉及的范德华作用势函数、范德华作用力函数、短程静电作用势函数、短程静电作用力函数等。
本步骤将第一目标函数的自变量范围限定在指定区间内,即将第一目标函数改写为自变量区间为指定区间的第二目标函数,便于后续采用统一的分段方式对改写后的第二目标函数的自变量区间进行分段。
其中,根据第一目标函数的自变量区间的开合情况,上述指定区间为[2Q,2G]或[2Q,2G)或(2Q,2G)或(2Q,2G],这里,G∈Z,Q∈Z,G≥Q。例如,若第一目标函数的自变量区间为[R1,R2],则指定区间为[2Q,2G],若第一目标函数的自变量区间为[R1,R2),则指定区间为[2Q,2G),若第二目标函数的自变量区间为(R1,R2),则指定区间为(2Q,2G),若第二目标函数的自变量区间为(R1,R2],则指定区间为(2Q,2G]。
为实现将第一目标函数的自变量范围限定在指定区间[2Q,2G]或[2Q,2G)或(2Q,2G)或(2Q,2G]的目的,本步骤可采用如下映射函数,对第一目标函数的自变量区间进行平移、归一化、再平移处理,以得到第二目标函数。
这里,映射函数为:
以下步骤S102~步骤S103为采用统一的分段方式对第二目标函数的自变量区间进行分段的过程,该步骤S102~步骤S103为考虑自变量对应的二进制数据表示特性后得到的分段方式,采用该分段方式便于后续确定表项地址。
步骤S102、第一处理器基于2的幂次方对第二目标函数的自变量区间进行划分,以得到M个区间段。
其中,M=G-Q。
参见图2所示,对第二区间段进行分段后,M个区间段中第m个区间段为[2Q+(m-1),2Q +m),m=1,2,3,…,M,即分段后后一区间段的长度为前一区间段的长度的2倍。
值得注意的是,本步骤在分段后,M个区间段的总和并不一定等于第二目标函数的自变量区间,比如,在第二目标函数的自变量区间为[2Q,2G]时,M个区间段的总和实际上为[2Q,2G)。
本步骤基于2的幂次方的分段方式使得,在二进制数据表示中,对应后一区间段为前一区间段左移一位,此特性方便后续确定表项地址。
步骤S103、第一处理器采用均匀分段方式对M个区间段中的每个区间段进行划分。
本步骤可对图2所示的M个区间段中的每个区间段,再次进行均匀分段,其中,对M个区间段中的第m个区间段进行划分得到的区间段的数量Nm满足log2(Nm)为正整数,m=1,2,3,…,M,并且分段数Nm与第二目标函数在第m个区间段的变化快慢和计算精度需求有关,可由实施者通过算法设计和仿真来确定。
本步骤均匀分段方式和M个区间段中的第m个区间段对应的分段数Nm使得,在二进制数据表示中,对应取自变量某一截log2(Nm)比特后,对应的十进制可用于确定该自变量在此第m个区间段中的区间号。
经由上述步骤S102~步骤S103对第二目标函数的自变量区间进行分段后,获得的区间段的总数量为:
步骤S104、第一处理器根据自变量区间的最终分段结果,构建查找表。
可选的,本步骤“根据自变量区间的最终分段结果,构建查找表”的过程具体可以包括以下步骤S1041~步骤S1042:
步骤S1041、针对获得的每个区间段,在该区间段的段首对第二目标函数进行指定阶数的泰勒系数展开,以得到该区间段对应的求导系数。
一区间段的段首是指该区间段的首位置处的自变量,本步骤可在该区间段的段首对第二目标函数进行指定阶数的泰勒系数展开,以得到该区间段对应的求导系数。若后续需要确定该区间段内的各个自变量对应于第二目标函数的函数值,则可基于该区间段对应的求导系数确定。
举例来说,若一个区间段为[0.1,0.15),第二目标函数为F(x),指定阶数为Γ阶,则可在该区间段的段首0.1处对F(0.1)进行Γ阶泰勒系数展开,得到该区间段对应的Γ个求导系数。对于该区间段内的各个自变量,例如0.13,后续可基于得到的Γ个求导系数确定F(0.13)的具体数值。
步骤S1042、基于各区间段分别对应的求导系数构建查找表。
本步骤可将各区间段分别对应的求导系数存入查找表中,其中,一个区间段对应的求导系数作为查找表的一行,构建完毕后,查找表的总行数为S(即步骤S102~步骤S103获得的区间段的总数量)。
步骤S105、第二处理器确定第一目标函数的待计算自变量对应于第二目标函数中的自变量,将确定出的自变量作为目标自变量。
本实施例中,第二处理器为包含基本运算部件功能的处理器,基本运算部件功能包括加法、乘法和查表。
本实施例中后续拟合计算的过程实际上是确定第二目标函数的函数值的过程,而确定第二目标函数的函数值需要有对应于第二目标函数的待计算自变量,因此本步骤可在获取第一目标函数的待计算自变量后,先将第一目标函数的待计算自变量转换为对应于第二目标函数中的自变量,为便于后续描述,这里将确定出的自变量作为目标自变量,即目标自变量是指与第一目标函数的待计算自变量对应的、能够确定第二目标函数的函数值的自变量。
本步骤基于第一目标函数的待计算自变量,确定第二目标函数的目标自变量时,可采用如步骤S101所示的映射函数,即将第一目标函数的待计算自变量作为映射函数中的xori,得到的x为目标自变量。
步骤S106、第二处理器确定目标自变量对应的段首偏移量和表项地址。
在本步骤中,段首偏移量为目标自变量相对于其所在区间段的段首的偏移量,表项地址为目标自变量所在区间段对应于查找表中的地址,其可用于指示目标自变量所在区间段对应的求导系数在查找表中的位置。
由此可见,表项地址和段首偏移量均与目标自变量所在区间段相关,那么可选的,本步骤可首先确定目标自变量所在区间段,进而基于目标自变量所在区间段,确定表项地址和段首偏移量。
步骤S107、第二处理器基于段首偏移量、表项地址和查找表,确定第一目标函数的待计算自变量对应的函数值。
参见如下的设定泰勒变形公式,采用设定泰勒变形公式对第二目标函数F(x)进行指定阶数的泰勒系数展开后,第二目标函数变为仅与段首偏移量和求导系数相关的函数。
设定泰勒变形公式:F(x)=((kΓΔx+kΓ-1)Δx...+k2)Δx+k1,其中,kΓ、kΓ-1、…、k1为目标自变量所在区间段对应的求导系数,Δx为段首偏移量。
因此,本步骤可基于表项地址和查找表,确定目标自变量所在区间段对应的求导系数,进而基于确定出的求导系数和段首偏移量,确定第一目标函数的待计算自变量对应的函数值。
本申请提供的数据处理方法,可采用步骤S102~步骤S103示出的统一的分段方式对各种形式的第二目标函数的自变量区间进行分段,分段方式具备灵活性,可通过调整分段数M和Nm来适应不同形式的第二目标函数,并且本申请可以采用步骤S106~步骤S107示出的统一的计算方式确定表项地址、段首偏移量以及函数值,通用性更强,计算效率更高。此外,本申请提供的数据处理方法的计算精度较高。
本领域技术人员应当理解,数据在处理器中有两种存储格式:浮点和定点,基于此,本实施例可采用浮点处理方式和/或定点处理方式对上文描述的数据处理方法进行处理。
这里,通过良好的定点化设计,包含多步数学运算的系统可以在使用低数据位宽的定点处理时,获得与高数据位宽浮点处理下相同的系统性能,但是,定点化实现对系统数据特性和算法工作人员有极高的要求,因此,在实现本申请时,在选择浮点和定点处理方式时会权衡处理。
具体来说,若本实施例采用浮点处理方式对上文描述的数据处理方法进行处理,则上述“步骤S1042、基于各区间段分别对应的求导系数构建查找表”的过程可以包括步骤S10421a~步骤S10422a:
步骤S10421a、将各区间段分别对应的求导系数转换为浮点系数,以得到各个区间段分别对应的浮点系数。
若采用浮点处理方式,则查找表中的表项需为浮点格式,因此在基于各区间段分别对应的求导系数构建查找表之前,需要先将各区间段分别对应的求导系数转换为浮点系数。
步骤S10422a、基于各区间段分别对应的浮点系数构建查找表。
本步骤可将第二目标函数的自变量区间包含的第s个区间段对应的Γ个求导系数存入查找表的第s行的1~Γ列,其中,s=1,2,3,…,S,S为步骤S102~步骤S103获得的区间段的总数量,Γ为指定阶数,即构建完毕的查找表的维度为:S行×Γ列。
相应的,上述“步骤S107、第二处理器基于待拟合偏移量、表项地址和查找表,确定原函数的待计算自变量对应的函数值”的过程可以包括步骤S1071a~步骤S1073a:
步骤S1071a、根据表项地址,从查找表中获取目标自变量所在区间段对应的浮点系数。
步骤S1072a、根据目标自变量所在区间段对应的浮点系数和段首偏移量,对第二目标函数进行拟合计算,以得到目标自变量对应的函数值。
本步骤拟合计算中的乘法和加法需使用浮点运算部件,得到的目标自变量对应的函数值为浮点格式。
步骤S1073a、将目标自变量对应的函数值作为第一目标函数的待计算自变量对应的函数值。
与上述浮点处理方式相似,若采用定点处理方式,则上述“步骤S1042、基于各区间段分别对应的求导系数构建查找表”的过程可以包括步骤S10421b~步骤S10422b:
步骤S10421b、针对获得的每个区间段,按照该区间段对应的求导系数中不溢出的最大定点标值,将该区间段对应的求导系数转换为设定位宽的定点系数,以得到该区间段对应的定点系数。
若采用定点处理方式,则查找表中的表项需为定点格式,因此在基于各区间段分别对应的求导系数构建查找表之前,需要先将各区间段分别对应的求导系数转换为定点系数,具体转换方法采用现有技术,在此不再详细介绍。
步骤S10422b、基于各个区间段分别对应的定点系数和最大定点标值构建查找表。
与浮点处理方式不同,定点处理方式是基于各个区间段分别对应的定点系数和最大定点标值构建查找表的,具体来说,将第二目标函数的自变量区间包含的第s个区间段对应的Γ个求导系数存入查找表的第s行的1~Γ列,将该第s个区间段对应的最大定点标值存入查找表的第(Γ+1)列,其中,s=1,2,3,…,S,S为步骤S102~步骤S103获得的区间段的总数量,Γ为指定阶数,即构建完毕的查找表的维度为:S行×(Γ+1)列。
相应的,上述“步骤S107、第二处理器基于待拟合偏移量、表项地址和查找表,确定原函数的待计算自变量对应的函数值”的过程可以包括步骤S1071b~步骤S1073b:
步骤S1071b、根据表项地址,从查找表中获取目标自变量所在区间段对应的定点求导系数和最大定点标值。
步骤S1072b、根据目标自变量所在区间段对应的定点系数、最大定点标值以及段首偏移量,对第二目标函数进行拟合计算,以得到目标自变量对应的函数值。
本步骤拟合运算中的乘法和加法需使用定点运算部件,得到的目标自变量对应的函数值为定点格式,该定点格式的函数值的标值为步骤S1071b获取的最大定点标值。
需要说明的是,本步骤拟合运算过程中,定点乘法运算在每次运算前后保持相同的位宽。
步骤S1073b、基于最大定点标值,将目标自变量对应的函数值转换为浮点格式,将浮点格式的函数值作为第一目标函数的待计算自变量对应的函数值。
本实施例提供的数据处理方法支持浮点处理方式和定点处理方式,根据实际需要可选择合适的处理方式,使得本申请更加灵活,并且拟合计算时的计算精度更高。
以下对上述实施例中的“步骤S106、第二处理器确定目标自变量对应的段首偏移量和表项地址”进行说明。
在一可选实施例中,针对浮点处理方式和定点处理方式,上述“步骤S106、第二处理器确定目标自变量对应的段首偏移量和表项地址”时采用的确定方式有所不同,下面分别从这两种处理方式出发,对步骤S106进行详细介绍。
步骤S1061、获取目标自变量对应的二进制比特流。
具体的,若采用浮点处理方式,则本步骤可按照约定的浮点数据存储方式获取目标自变量对应的浮点格式的二进制比特流,该浮点格式的二进制比特流为1位符号位、P位阶码和T位尾数组合成的通用浮点二进制表示方法,例如IEEE754双精度浮点形式的二进制比特流由1位符号位、11位阶码和52位尾数组成。
若采用定点处理方式,则获取目标自变量对应的定点格式的二进制比特流,该定点格式的二进制比特流是指定点格式的目标自变量对应的二进制比特流,该定点格式的目标自变量为按照预设标值将目标自变量转换为定点格式得到。
步骤S1062、根据二进制比特流和预设参数,确定目标自变量所在区间段的区间号。
具体的,若采用浮点处理方式,则根据浮点格式的二进制比特流和预设参数Q、Nm,确定目标自变量所在区间段的区间号,具体确定过程可以包括:首先获取浮点格式的二进制比特流中的P位阶码,将该P位阶码对应的十进制数记为E,通过公式m=E-(2P-1-1)-(Q-1)确定目标自变量落在自变量区间包含的M个区间段中的第m个区间段,然后计算A=log2(Nm),截取浮点格式的二进制比特流中第(P+1)+1至第(P+1)+A比特,截取的A比特对应的十进制数值记为s,则目标自变量落在第m个区间段包含的第s+1个区间段,那么目标自变量所在区间段的区间号为:
若采用定点处理方式,则根据定点格式的二进制比特流和预设参数M、Nm(对于浮点处理方式和定点处理方式而言,预设参数不同),确定目标自变量所在区间段的区间号,具体确定过程可以包括:从最高位开始查找定点格式的二进制比特流中的第一个1,参见图3所示,若查找到的第一个1为除符号位外的第B比特,则通过公式m=M-B+1确定目标自变量落在自变量区间包含的M个区间段中的第m个区间段,之后从查找到的第一个1往后取log2(Nm)比特,记为b(1:log2(Nm)),则该log2(Nm)比特对应的十进制数值bin2dec(b(1:log2(Nm)))记为s,则目标自变量落在第m个区间段包含的第s+1个区间段,那么目标自变量所在区间段的区间号为:这里,bin2dec()表示二进制转十进制。
需要说明的是,本步骤确定出的区间号从1开始计数,即自变量区间包含的第一个区间段的区间号为1,第二个区间段的区间号为2,以此类推。
步骤S1063、根据目标自变量所在区间段的区间号,确定表项地址。
目标自变量所在区间段的区间号与表项地址相关,可选的,本步骤可将目标自变量所在区间段的区间号作为表项地址,此时表项地址从1开始计数。
步骤S1064、将目标自变量对应的二进制比特流的前设定比特位数置为0,得到段首偏移量。
具体的,若采用浮点处理方式,则将浮点格式的二进制比特流的前(P+1)+A比特置0,得到段首偏移量。
若采用定点处理方式,则将定点格式的二进制比特流的前(B+1)+log2(Nm)比特置0,得到段首偏移量。
在本实施例中,可采用如步骤S1062和步骤S1063所示的统一寻址方式确定表项地址,这意味着第二处理器加速运算部件仅需设计一套电路,并且算法实现时仅需要一套代码。此外,可采用如步骤S1064所示的统一方式确定段首偏移量,使得本方案更具有通用性,实现效果更好。
本申请实施例还提供了一种应用于第一处理器的数据处理装置,下面对本申请实施例提供的应用于第一处理器的数据处理装置进行描述,下文描述的应用于第一处理器的数据处理装置与上文描述的应用于第一处理器的数据处理方法可相互对应参照。
请参阅图4,示出了本申请实施例提供的应用于第一处理器的数据处理装置的结构示意图,如图4所示,该应用于第一处理器的数据处理装置可以包括:函数改写模块401、第一分段模块402、第二分段模块403和查找表构建404。
函数改写模块401,用于以将自变量范围限定在指定区间为改写目标,对第一目标函数进行改写,改写后的函数作为第二目标函数,其中,指定区间为[2Q,2G]或[2Q,2G)或(2Q,2G)或(2Q,2G],Q和G均为整数,G≥Q。
第一分段模块402,用于基于2的幂次方对第二目标函数的自变量区间进行划分,以得到M个区间段,其中,M个区间段中第m个区间段为[2Q+(m-1),2Q+m),M=G-Q。
第二分段模块403,用于采用均匀分段方式对M个区间段中的每个区间段进行划分,其中,对M个区间段中的第m个区间段进行划分得到的区间段的数量Nm满足log2(Nm)为正整数。
查找表构建模块404,用于根据自变量区间的最终分段结果,构建查找表,以便第二处理器基于查找表确定第一目标函数的待计算自变量对应的函数值。
在一种可能的实现方式中,上述查找表构建模块404可以包括:求导系数确定子模块和查找表构建子模块;
求导系数确定子模块,用于针对获得的每个区间段,在该区间段的段首对第二目标函数进行指定阶数的泰勒系数展开,以得到该区间段对应的求导系数。
查找表构建子模块,用于基于各区间段分别对应的求导系数构建查找表。
在一种可能的实现方式中,上述查找表构建子模块具体用于将各区间段分别对应的求导系数转换为浮点系数,以得到各个区间段分别对应的浮点系数,并基于各区间段分别对应的浮点系数构建查找表。
在一种可能的实现方式中,上述查找表构建子模块具体用于针对获得的每个区间段,按照该区间段对应的求导系数中不溢出的最大定点标值,将该区间段对应的求导系数转换为设定位宽的定点系数,以得到该区间段对应的定点系数,并基于各个区间段分别对应的定点系数和最大定点标值构建查找表。
本申请实施例还提供了一种应用于第二处理器的数据处理装置,下面对本申请实施例提供的应用于第二处理器的数据处理装置进行描述,下文描述的应用于第二处理器的数据处理装置与上文描述的数据处理方法可相互对应参照。
请参阅图5,示出了本申请实施例提供的应用于第二处理器的数据处理装置的结构示意图,如图5所示,该应用于第二处理器的数据处理装置可以包括:目标自变量确定模块501、信息确定模块502和函数值确定模块503。
目标自变量确定模块501,用于确定第一目标函数的待计算自变量对应于第二目标函数中的自变量,将确定出的自变量作为目标自变量,其中,第二目标函数为第一处理器以将自变量范围限定在指定区间为改写目标,对第一目标函数进行改写得到,指定区间为[2Q,2G]或[2Q,2G)或(2Q,2G)或(2Q,2G],Q和G均为整数,G≥Q。
信息确定模块502,用于确定目标自变量对应的段首偏移量和表项地址,其中,段首偏移量为目标自变量相对于其所在区间段的段首的偏移量,区间段为第二目标函数的自变量区间的最终分段结果中包含的一个区间段,最终分段结果为第一处理器在基于2的幂次方对第二目标函数的自变量区间进行划分,以得到M个区间段后,采用均匀分段方式对M个区间段中的每个区间段进行划分得到的多个区间段,表项地址为目标自变量所在区间段对应于查找表中的地址,查找表为根据自变量区间的最终分段结果构建的表。
函数值确定模块503,用于基于段首偏移量、表项地址和查找表,确定第一目标函数的待计算自变量对应的函数值。
在一种可能的实现方式中,上述信息确定模块502确定表项地址的过程可以包括:二进制比特流获取子模块、区间号确定子模块和表项地址确定子模块。
二进制比特流获取子模块,用于获取目标自变量对应的二进制比特流。
区间号确定子模块,用于根据二进制比特流和预设参数,确定目标自变量所在区间段的区间号。
表项地址确定子模块,用于根据目标自变量所在区间段的区间号,确定表项地址。
在一种可能的实现方式中,上述信息确定模块502确定目标自变量对应的段首偏移量的过程可以包括:段首偏移量确定子模块。
段首偏移量确定子模块,用于将目标自变量对应的二进制比特流的前设定比特位数置为0,得到段首偏移量。
本申请实施例提供了一种数据处理系统,该数据处理系统包括第一处理器和第二处理器。
其中,第一处理器,用于以将自变量范围限定在指定区间为改写目标,对第一目标函数进行改写,改写后的函数作为第二目标函数,其中,指定区间为[2Q,2G]或[2Q,2G)或(2Q,2G)或(2Q,2G],Q和G均为整数,G≥Q;基于2的幂次方对第二目标函数的自变量区间进行划分,以得到M个区间段,其中,M个区间段中第m个区间段为[2Q+(m-1),2Q+m),M=G-Q;采用均匀分段方式对M个区间段中的每个区间段进行划分,其中,对M个区间段中的第m个区间段进行划分得到的区间段的数量Nm满足log2(Nm)为正整数;根据自变量区间的最终分段结果,构建查找表。
第二处理器,用于第二处理器,用于确定第一目标函数的待计算自变量对应于第二目标函数中的自变量,将确定出的自变量作为目标自变量;确定目标自变量对应的段首偏移量和表项地址,其中,段首偏移量为目标自变量相对于其所在区间段的段首的偏移量,表项地址为目标自变量所在区间段对应于查找表中的地址;基于段首偏移量、表项地址和查找表,确定第一目标函数的待计算自变量对应的函数值。
需要说明的是,本申请实施例提供的数据处理系统与上文描述的数据处理方法、应用于第一处理器的数据处理装置、应用于第二处理器的数据处理装置可以相互对应参照,详细参照前述实施例介绍,在此不再重复赘述。
本申请实施例还提供了一种应用于第一处理器的数据处理设备。可选的,图6示出了应用于第一处理器的数据处理设备的硬件结构框图,参照图6,该应用于第一处理器的数据处理设备的硬件结构可以包括:至少一个处理器601,至少一个通信接口602,至少一个存储器603和至少一个通信总线604;
在本申请实施例中,处理器601、通信接口602、存储器603、通信总线604的数量为至少一个,且处理器601、通信接口602、存储器603通过通信总线604完成相互间的通信;
处理器601可能是一个中央处理器CPU,或者是特定集成电路ASIC(ApplicationSpecific Integrated Circuit),或者是被配置成实施本发明实施例的一个或多个集成电路等;
存储器603可能包含高速RAM存储器,也可能还包括非易失性存储器(non-volatile memory)等,例如至少一个磁盘存储器;
其中,存储器603存储有程序,处理器601可调用存储器603存储的程序,所述程序用于:
以将自变量范围限定在指定区间为改写目标,对第一目标函数进行改写,改写后的函数作为第二目标函数,其中,指定区间为[2Q,2G]或[2Q,2G)或(2Q,2G)或(2Q,2G],Q和G均为整数,G≥Q;
基于2的幂次方对第二区间段进行划分,以得到M个区间段,其中,M个区间段中第m个区间段为[2Q+(m-1),2Q+m),M=G-Q;
采用均匀分段方式对M个区间段中的每个区间段进行划分,其中,对M个区间段中的第m个区间段进行划分得到的区间段的数量Nm满足log2(Nm)为正整数;
根据自变量区间的最终分段结果,构建查找表,以便第二处理器基于查找表确定第一目标函数的待计算自变量对应的函数值。
可选的,所述程序的细化功能和扩展功能可参照上文描述。
本申请实施例还提供了一种应用于第二处理器的数据处理设备。可选的,图7示出了应用于第二处理器的数据处理设备的硬件结构框图,参照图7,该应用于第二处理器的数据处理设备的硬件结构可以包括:至少一个处理器701,至少一个通信接口702,至少一个存储器703和至少一个通信总线704;
在本申请实施例中,处理器701、通信接口702、存储器703、通信总线704的数量为至少一个,且处理器701、通信接口702、存储器703通过通信总线704完成相互间的通信;
处理器701可能是一个中央处理器CPU,或者是特定集成电路ASIC(ApplicationSpecific Integrated Circuit),或者是被配置成实施本发明实施例的一个或多个集成电路等;
存储器703可能包含高速RAM存储器,也可能还包括非易失性存储器(non-volatile memory)等,例如至少一个磁盘存储器;
其中,存储器703存储有程序,处理器701可调用存储器703存储的程序,所述程序用于:
确定第一目标函数的待计算自变量对应于第二目标函数中的自变量,将确定出的自变量作为目标自变量,其中,第二目标函数为第一处理器以将自变量范围限定在指定区间为改写目标,对第一目标函数进行改写得到,指定区间为[2Q,2G]或[2Q,2G)或(2Q,2G)或(2Q,2G],Q和G均为整数,G≥Q;
确定目标自变量对应的段首偏移量和表项地址,其中,段首偏移量为目标自变量相对于其所在区间段的段首的偏移量,区间段为第二目标函数的自变量区间的最终分段结果中包含的一个区间段,最终分段结果为第一处理器在基于2的幂次方对第二区间段进行划分,以得到M个区间段后,采用均匀分段方式对M个区间段中的每个区间段进行划分得到的多个区间段,表项地址为目标自变量所在区间段对应于查找表中的地址,查找表为根据自变量区间的最终分段结果构建的表;
基于段首偏移量、表项地址和查找表,确定第一目标函数的待计算自变量对应的函数值。
可选的,所述程序的细化功能和扩展功能可参照上文描述。
本申请实施例还提供一种可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时,实现如上述应用于第一处理器的数据处理方法。
可选的,所述程序的细化功能和扩展功能可参照上文描述。
本申请实施例还提供一种可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时,实现如上述应用于第二处理器的数据处理方法。
可选的,所述程序的细化功能和扩展功能可参照上文描述。
最后,还需要说明的是,在本文中,诸如和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本申请。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本申请的精神或范围的情况下,在其它实施例中实现。因此,本申请将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
- 上一篇:石墨接头机器人自动装卡簧、装栓机
- 下一篇:一种停电窗口期编排方法、系统、设备及介质