一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种支持非线性函数扩展功能的并行查表方法及装置与流程

2022-11-12 23:30:38 来源:中国专利 TAG:


1.本发明涉及人工智能技术领域,特别是涉及一种支持非线性函数扩展功能的并行查表方法及装置。


背景技术:

2.指令多数据的向量计算结构能为深度神经学习等领域提供有力的并行算力支撑;深度学习等领域中各类非线性函数对拟合方法的因变量精度、因变量数值范围、拟合误差提出了更高的要求。分段线性拟合方法结合了查表和乘法运算操作,相比直接查表读取函数值、泰勒级数展开等拟合方法,能较好的对拟合精度、存储开销、运算开销进行权衡。
3.其中,采用分段线性拟合的方法可以将非线性函数表示为分段线性函数y=ax b(y0= a0x0 b0,y1=a1x1 b1,

,yn=anxn bn),根据提供的因变量xi,可以通过查表操作得到相应参数ai、b
i ,最终通过乘加运算得到yi。根据因变量精度、因变量数值范围,分段线性函数需要相应分段建表存储参数ai、bi,同一个因变量xi在不同特性的非线性函数参数表中可能对应不同的表内偏移。目前,分段线性拟合方法中由于需要进行大量同类型的标量表内偏移地址转化操作和标量查表操作,极大的限制了向量计算指令效率的高效发挥。
4.现有技术中浮点因变量xi到表内偏移地址的转化,一般需要通过浮点、整数乘加运算操作完成,该类型操作频繁,需要相当大功耗开销, 不利于向量运算结构的有效利用, 是制约查表操作性能的重要瓶颈之一。同时,程序员必须在程序设计中显式进行xi到表内偏移地址的转化,编程友好性较差。
5.目前的通用处理器中,受存储器端口的限制,通常通过利用多次移位和装载操作完成匹配向量计算指令的查表功能。在得到表内偏移地址后,每个元素查表对应三个操作:将表内偏移值从特定指令字段中移至低位;发送普通装载指令获取元素查询结果;将查询结果移至高位。
6.在上述现有技术的上述操作过程中,扩展实现饱和函数功能的并行查表操作实现的过程需要反复进行浮点运算,向量、标量转换操作,对运算部件和通用寄存器资源均有较大程度的占用,不利于高效发挥流水线的性能因此,无论对于资源利用率还是优化流水线性能,设计支持非线性函数扩展功能的并行查表方法都是非常有必要的。


技术实现要素:

7.本发明的目的是提供一种支持非线性函数扩展功能的并行查表方法及装置,可以在普通单端口或双端口存储器上快速实现因变量到表内偏移的转化,并实现向量查表的方法,提升向量计算结构、通用寄存器等资源的利用率,从而优化流水线性能。
8.根据本发明的第一方面,提出一种支持非线性函数扩展功能的并行查表方法,包括:将非线性函数分割成若干区间,每个区间内函数值由线性函数表示,其中线性函
数系数存放在查找表内,查找表位于局部存储内;进行多格式数据转换,根据函数种类指示符中的数据格式字段,针对输入源操作数的格式,进行展开并移位至预定小数点位置;获取上述数据放置规则,计算出并行查表的表内偏移地址;向量查询基地址和表内偏移地址相加,得到待访问元素的存放地址。
9.进一步的,在将线性函数系数存放在查找表内,具体包括:获得查找表的表内有符号偏移地址;计算出线性系数并写入至查找表内。
10.进一步的,进行多格式数据转换时,数据格式包括:无符号和/或有符号的字和/或双字整数、半精度和/或单精度和/或双精度格式数据。
11.进一步的,根据函数种类指示符中的数据格式字段,针对输入源操作数的格式,进行展开并移位至预定小数点位置,具体包括:获取函数种类指示符type;获取输入源操作数的格式,即所需的因变量xi精度及数值范围;根据函数种类指示符中不同格式的数据进行转换,得到有符号二进制定点数,移位至预定小数点位置。
12.进一步的,依据数据放置规则,计算出并行查表的表内偏移地址,具体包括:根据函数种类指示符中的函数类型字段和多格式数据转换逻辑得到的定点结果,计算出并行查表的表内偏移地址。
13.进一步的,根据函数种类指示符中的函数类型字段和多格式数据转换逻辑得到的定点结果,计算出并行查表的表内偏移地址,具体包括:对函数种类指示符type 中的函数类型字段进行配置;根据关注的因变量数值范围、目标函数拟合误差精度进行函数种类指示符type配置;计算出并行查表的表内偏移地址。
14.进一步的,向量查询基地址和表内偏移地址相加,得到待访问元素的存放地址,具体包括:访问存储器,得到各元素的值,拼接向量查表结果;将向量查表结果写入指定的目标寄存器。
15.根据本发明的第二方面,提供了一种支持非线性函数扩展功能的并行查表装置,包括:分割模块:将非线性函数分割成若干区间,每个区间内函数值由线性函数表示,其中线性函数系数存放在查找表内,查找表位于局部存储内;数据转换模块:进行多格式数据转换,根据函数种类指示符中的数据格式字段,针对输入源操作数的格式,进行展开并移位至预定小数点位置;计算模块:获取上述数据放置规则,计算出并行查表的表内偏移地址;向量查询模块:向量查询基地址和表内偏移地址相加,得到待访问元素的存放地址。
16.根据本发明的第三方面,提供了一种电子设备,包括存储器、处理器及存储在存储
器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述第一方面中任一项的所述方法步骤。
17.根据本发明的第四方面,提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述第一方面中任一项的所述方法步骤。
18.本发明的有益效果为:本发明提供了一种支持非线性函数扩展功能的并行查表方法及装置,可以在普通单端口或双端口存储器上快速实现因变量到表内偏移的转化,并实现向量查表的方法,提升向量计算结构、通用寄存器等资源的利用率,从而优化流水线性能;支持多种格式数据到定点数据的转换逻辑,该逻辑可以支持对无符号/有符号的字/双字整数、半精度/单精度/双精度格式数据到定点数据的格式转换,能支持多种变量数据的函数拟合;并行处理的表内偏移转换逻辑,该逻辑可以根据因变量数值范围、目标函数拟合误差精度,同时完成多个定点数据到表内偏移的转换;高效利用向量运算结构的向量查表方法,实现与向量计算指令匹配的向量查表指令,能通过并行操作有效发挥系统峰值性能。
附图说明
19.并入到说明书中并且构成说明书的一部分的附图示出了本发明的实施例,并且与描述一起用于解释本发明的原理。在这些附图中,类似的附图标记用于表示类似的要素。下面描述中的附图是本发明的一些实施例,而不是全部实施例。对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,可以根据这些附图获得其他的附图。
20.图1为本发明实施例的一种支持非线性函数扩展功能的并行查表方法的流程图;图2为本发明实施例的一种支持非线性函数扩展功能的并行查表装置的模块连接示意图。
具体实施方式
21.为了更清楚的说明本发明实施例和现有技术中的技术方案,下面将对照附图说明本发明的具体实施方式。显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创在性劳动的前提下,还可以根据这些附图获得其他的附图,并获得其他的实施方式。另,设计方位的属于仅表示各部件间的相对位置关系,而不是绝对位置关系。
22.实施例一、如图1所示,根据本发明的第一方面,提出一种支持非线性函数扩展功能的并行查表方法,包括:s101:将非线性函数分割成若干区间,每个区间内函数值由线性函数表示,其中线性函数系数存放在查找表内,查找表位于局部存储内;在本发明实施例中,步骤s101可以相当于是基于查找表的驱动的分段线性拟合,将非线性函数分割成若干个区间,每一个区间内的函数值都由线性函数y=ax b进行表示,每一个区间的a值、b值都可能不相同,那么有n个区间,就有n个线性函数表示,分别为y1=
a1x1 b1,y2=a2x2 b2,

,yn=anxn bn。
23.将以上这些线性函数的系数a和b(共计2n个系数值)分别存放在查找表内,查找表位于局部存储(local data memory,ldm)内,以方便进行查找。
24.相当于,先将非线性函数进行分段线性拟合,相比于普通的分段线性拟合方法中将各段的中间值作为本段函数的拟合值,本发明中将线性函数的系数存放在查找表内,查找更方便,函数求解精度更高。
25.当然,将非线性函数进行分段线性拟合并将线性函数的系数存放在查找表内,拟合的精确度越高,那么函数求解的范围则越大,需要的查找表深度越深,占用的局部存储(local data memory,ldm)容量则更多,所以为了尽可能的降低局部存储占用容量,可以根据非线性函数的实际需求进行拟合。
26.那么在本发明实施例中,在将非线性函数分割成若干区间,每个区间内函数值由线性函数表示时:需要获得查找表的表内有符号偏移地址,并计算出线性系数并写入查找表内。
27.其中,获得查找表的表内有符号偏移地址时:通过对输入的32bit单精度数据和/或dp数据和/或hp数据进行转换获得查找表的表内有符号偏移地址。
28.以及,计算出线性系数并写入查找表内时:根据应用需求,预先计算出线性系数,并由写入软件将线性系数写入查找表内;在这里,应用需求包括非线性函数类型、求解范围以及求解精度等。
29.以上,通过采用查找表和分段线性拟合相结合的方法,对分段线性函数进行存放在查找表内,比起直接使用查找表法,直接将非线性函数多个对应点的函数值进行存放,本发明实施例中需要的表项要少,并且可满足函数求解精度要求。
30.s102:进行多格式数据转换,根据函数种类指示符中的数据格式字段,针对输入源操作数的格式,进行展开并移位至预定小数点位置;在本发明实施例中,步骤s102可以相当于是数据移位,也就是根据函数种类指示符type中的数据格式字段,针对输入源操作数的格式,进行展开并移位至预定小数点位置,且该小数点位置为固定的。
31.在这里,根据函数种类指示符中的数据格式字段,针对输入源操作数的格式,进行展开并移位至预定小数点位置,具体包括:获取函数种类指示符type;获取输入源操作数的格式,即所需的因变量xi精度及数值范围;根据函数种类指示符中不同格式的数据进行转换,得到有符号二进制定点数,数据移位至预定小数点位置。
32.在本发明实施例中,进行多格式数据转换时,数据格式包括:无符号和/或有符号的字、无符号和/或有符号的双字整数、半精度和/或单精度和/或双精度格式数据。
33.也就是说,支持多种格式数据到定点数据的转换逻辑,该逻辑可以支持对无符号/有符号的字/双字整数、半精度/单精度/双精度格式数据到定点数据的格式转换,能支持多种变量数据的函数拟合。
34.例如:对ieee754标准的双精度浮点格式数据,首先需要对输入源操作数srci进行规格化数判断,然后根据输入源操作数srci的尾数与输入源操作数srci的指数对尾数补充
隐式0或1;再其次,根据实际符号位进行有符号扩展;最后根据双精度浮点数和具体定点数小数点的位置进行有符号移位。
35.s103:获取上述数据放置规则,计算出并行查表的表内偏移地址;在本发明实施例中,步骤s103的主要是根据步骤s102的数据转换的逻辑,计算得到并行查表的表内偏移地址。
36.在本发明实施例中,依据数据放置规则,计算出并行查表的表内偏移地址,具体包括:根据函数种类指示符type中的函数类型字段和多格式数据转换逻辑得到的定点结果,计算出并行查表的表内偏移地址。
37.在这里,根据函数种类指示符中的函数类型字段和多格式数据转换逻辑得到的定点结果,计算出并行查表的表内偏移地址,具体包括:对函数种类指示符type 中的函数类型字段进行配置;函数种类指示符type 中的函数类型字段可以配置为面向广数值范围的模式,或配置为面向小数高精度的模式;根据关注的因变量数值范围、目标函数拟合误差精度进行函数种类指示符type配置;计算出并行查表的表内偏移地址。
38.需要说明的是,当需要关注的因变量的数值范围广、相应目标函数变化缓慢时,可采用面向广数值范围的配置方式对目标函数拟合进行支持。当需要关注的因变量数值范围窄、相应目标函数变化剧烈时,可采用面向小数高精度的配置方式对目标函数进行拟合。当需要关注的因变量数值范围广且相应目标函数变化剧烈时,可采取分段建表、查表、计算的方式进行目标函数拟合。
39.s104:向量查询基地址和表内偏移地址相加,得到待访问元素的存放地址。
40.在本发明实施例中,步骤s104实际是根据步骤s103计算得到的表内偏移地址,进行向量查询,也就是并行查表。
41.在本发明实施例中,向量查询基地址和表内偏移地址相加,得到待访问元素的存放地址,具体包括:访问存储器,得到各元素的值,拼接向量查表结果; 将向量查表结果写入指定的目标寄存器。
42.也就是,依据函数种类指示符type与输入源操作数srci能得到表内偏移地址disp(type,srci),通过域向量查询基地址中相应的ai相加,得到待访问元素的存放地址。
43.本发明提供了一种支持非线性函数扩展功能的并行查表方法,可以在普通单端口或双端口存储器上快速实现因变量到表内偏移的转化,并实现向量查表的方法,提升向量计算结构、通用寄存器等资源的利用率,从而优化流水线性能;支持多种格式数据到定点数据的转换逻辑,该逻辑可以支持对无符号/有符号的字/双字整数、半精度/单精度/双精度格式数据到定点数据的格式转换,能支持多种变量数据的函数拟合;并行处理的表内偏移转换逻辑,该逻辑可以根据因变量数值范围、目标函数拟合误差精度,同时完成多个定点数据到表内偏移的转换;高效利用向量运算结构的向量查表方法,实现与向量计算指令匹配的向量查表指令,能通过并行操作有效发挥系统峰值性能。
44.实施例二、如图2所示,根据本发明的第二方面,提供了一种支持非线性函数扩展功能的并行查表装置,包括:分割模块:将非线性函数分割成若干区间,每个区间内函数值由线性函数表示,其中线性函数系数存放在查找表内,查找表位于局部存储内;数据转换模块:进行多格式数据转换,根据函数种类指示符中的数据格式字段,针对输入源操作数的格式,进行展开并移位至预定小数点位置;计算模块:获取上述数据放置规则,计算出并行查表的表内偏移地址;向量查询模块:向量查询基地址和表内偏移地址相加,得到待访问元素的存放地址。
45.可以理解的是,本发明实施例提供的装置均适用于实施例一所述的方法,各个模块的具体功能可参照上述方法流程,此处不再赘述。
46.实施例三、根据本发明的第三方面,提供了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述实施例一的所述方法步骤。
47.该电子设备用于实现实施例一所述的方法,电子设备可以包括:至少一个中央处理器,至少一个网络接口,控制接口,存储器,至少一个通信总线。
48.其中,通信总线用于实现各组件之间的连接通信,信息交互。
49.其中,网络接口可选的可以包括标准的有线接口、无线接口(如wi-fi接口)。
50.其中,控制接口用于根据指令输出控制操作。
51.其中,中央处理器可以包括一个或者多个处理核心。中央处理器利用各种接口和线路连接整个终端内的各个部分,通过运行或执行存储在存储器内的指令、程序、代码集或指令集,以及调用存储在存储器内的数据,根据实施例一所述的方法执行终端的各种功能和处理数据。
52.其中,存储器可以包括随机存储器(random access memory,ram),也可以包括只读存储器(read-only memory)。可选的,该存储器包括非瞬时性计算机可读介质(non-transitory computer-readable storage medium)。存储器可用于存储指令、程序、代码、代码集或指令集。存储器可包括存储程序区和存储数据区,其中,存储程序区可存储用于实现操作系统的指令、用于至少一个功能的指令(比如触控功能、声音播放功能、图像播放功能等)、用于实现上述实施例一所述的方法等;存储数据区可存储上面各个方法实施例中涉及到的数据等。
53.本发明还有第四方面,提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现上述实施例一所述的方法。其中,计算机可读存储介质可以包括但不限于任何类型的盘,包括软盘、光盘、dvd、cd-rom、微型驱动器以及磁光盘、rom、ram、eprom、eeprom、dram、vram、闪速存储器设备、磁卡或光卡、纳米系统(包括分子存储器ic),或适合于存储指令和/或数据的任何类型的媒介或设备。
54.本发明提供了一种支持非线性函数扩展功能的并行查表方法及装置,可以在普通单端口或双端口存储器上快速实现因变量到表内偏移的转化,并实现向量查表的方法,提
升向量计算结构、通用寄存器等资源的利用率,从而优化流水线性能;支持多种格式数据到定点数据的转换逻辑,该逻辑可以支持对无符号/有符号的字/双字整数、半精度/单精度/双精度格式数据到定点数据的格式转换,能支持多种变量数据的函数拟合;并行处理的表内偏移转换逻辑,该逻辑可以根据因变量数值范围、目标函数拟合误差精度,同时完成多个定点数据到表内偏移的转换;高效利用向量运算结构的向量查表方法,实现与向量计算指令匹配的向量查表指令,能通过并行操作有效发挥系统峰值性能。
55.需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本技术并不受所描述的动作顺序的限制,因为依据本技术,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本技术所必须的。
56.在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
57.在本技术所提供的几个实施例中,应该理解到,所揭露的装置,可通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些服务接口,装置或单元的间接耦合或通信连接,可以是电性或其它的形式。
58.所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
59.另外,在本技术各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
60.所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储器中。基于这样的理解,本技术的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储器中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本技术各个实施例所述方法的全部或部分步骤。而前述的存储器包括:u盘、只读存储器(read-only memory, rom)、随机存取存储器(random access memory,ram)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
61.本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通进程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储器中,存储器可以包括:闪存盘、只读存储器(read-only memory, rom)、随机存取器(random access memory,ram)、磁盘或光盘等。
62.需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包含一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
…”
限定的要素,并不排除在包括要素的过程、方法、物品或者设备中还存在另外的相同要素。
63.以上所述者,仅为本公开的示例性实施例,不能以此限定本公开的范围。即但凡依本公开教导所作的等效变化与修饰,皆仍属本公开涵盖的范围内。本领域技术人员在考虑说明书及实践这里的公开后,将容易想到本公开的其实施方案。本技术旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未记载的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的范围和精神由权利要求限定。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献