CN114546330B - 函数实现方法、逼近区间分段方法、芯片、设备及介质 - Google Patents

函数实现方法、逼近区间分段方法、芯片、设备及介质 Download PDF

Info

Publication number
CN114546330B
CN114546330B CN202210441226.XA CN202210441226A CN114546330B CN 114546330 B CN114546330 B CN 114546330B CN 202210441226 A CN202210441226 A CN 202210441226A CN 114546330 B CN114546330 B CN 114546330B
Authority
CN
China
Prior art keywords
function
processed
floating point
interval
point number
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN202210441226.XA
Other languages
English (en)
Other versions
CN114546330A (zh
Inventor
孙存浩
赵芮
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shanghai Denglin Technology Co ltd
Chengdu Denglin Technology Co ltd
Original Assignee
Shanghai Denglin Technology Co ltd
Chengdu Denglin Technology Co ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Shanghai Denglin Technology Co ltd, Chengdu Denglin Technology Co ltd filed Critical Shanghai Denglin Technology Co ltd
Priority to CN202210441226.XA priority Critical patent/CN114546330B/zh
Publication of CN114546330A publication Critical patent/CN114546330A/zh
Application granted granted Critical
Publication of CN114546330B publication Critical patent/CN114546330B/zh
Priority to PCT/CN2022/107166 priority patent/WO2023206832A1/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/483Computations with numbers represented by a non-linear combination of denominational numbers, e.g. rational numbers, logarithmic number system or floating-point numbers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30007Arrangements for executing specific machine instructions to perform operations on data operands
    • G06F9/3001Arithmetic instructions
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Pure & Applied Mathematics (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Nonlinear Science (AREA)
  • Complex Calculations (AREA)

Abstract

本申请提供一种函数实现方法、逼近区间分段方法、芯片、设备及介质,涉及数据处理技术领域。本申请中,目标函数对应的逼近区间进行分段得到的各分段区间,根据目标函数的数值变化曲线的斜率变化率分段得到。其中,逼近区间内,位于同一预设变化率范围内的斜率变化率对应的区间,按该预设变化率范围所对应的预设间隔进行分段得到;不同预设变化率范围不重叠,且预设变化率范围的上限值越小,则所对应的预设间隔越大。这就使得对于目标函数而言,无需针对整个逼近区间,都按照最小的间隔进行均匀分段,从而可以减少分段数量,进而减少所存储的插值系数数量,节约存储开销,提高芯片性能。

Description

函数实现方法、逼近区间分段方法、芯片、设备及介质
技术领域
本申请涉及数据处理技术领域,具体而言,涉及一种函数实现方法、逼近区间分段方法、芯片、设备及介质。
背景技术
随着三维图形、数字信号处理及人工智能技术的发展,人们对GPU(GraphicsProcessing Unit,图形处理器)的渲染质量和速度、数字信号处理器的浮点运算能力与人工智能模型的推理速度提出了更高的要求,而初等函数运算单元在这些运算中是必不可少的。例如人工智能模型中的批归一化、Sigmoid函数等都需要进行初等函数计算(求倒数、平方根、平方根倒数、指数等)。目前,在芯片设计中,对芯片面积、功耗和运算速度都不断提出更高的要求,这就迫切要求在满足限定精度的情况下设计出功耗低、速度快、面积小的初等函数运算单元,以适应日渐增长的芯片算力需求。
目前,GPU中初等函数的计算主要是通过以下两种方式实现:
方式一:以软件形式进行定义域范围内的插值实现或逼近实现。
方式二:通过设置专用的初等函数电路,首先将初等函数的输入通过计算机浮点的表示特点缩小到一定范围内,然后在这个范围内进行均匀分段,通过初等函数电路调用每一分段对应的插值函数的系数进行逼近,最后对得到的结果进行规范化。
其中,方式一中需要重复调用多次浮点运算指令(例如ADD(加法指令),MUL(乘法指令),FMA(Fused Multiply and Add,融合乘法和加法指令))在性能表现上较差。
方式二在保证计算精度的情况下拥有更好的性能表现,但是会消耗一定硬件来存储插值函数的系数,存储各分段对应的插值函数的系数,所耗费的硬件面积与各分段对应的插值函数的插值次数、分段数量成正比关系。显然,存储的插值函数的系数越多,所需的存储开销就越大,芯片性能就越低。
发明内容
本申请实施例的目的在于提供一种函数实现方法、逼近区间分段方法、芯片、设备及介质,用以降低存储开销,提高设备性能。
本申请实施例提供了一种函数实现方法,包括:获取需处理数据;将所述需处理数据发送至目标函数的初等函数电路中进行分段逼近运算,得到处理结果;其中,所述初等函数电路在进行分段逼近运算时,根据所述需处理数据所在的分段区间,调用该分段区间所对应的插值系数进行插值运算;所述分段区间为:根据所述目标函数的数值变化曲线的斜率变化率,对所述目标函数对应的逼近区间进行分段得到的各区间;其中,所述逼近区间内,位于同一预设变化率范围内所述斜率变化率对应的区间,按该预设变化率范围所对应的预设间隔进行分段得到;其中,不同预设变化率范围不重叠,且预设变化率范围的上限值越小,则所对应的预设间隔越大。
在上述实现过程中,由于分段区间是根据目标函数的数值变化曲线的斜率变化率进行划分,且斜率变化率位于值越小的预设变化率范围时,分段的间隔越大。这就使得对于目标函数而言,无需针对整个逼近区间,都按照最小的间隔进行均匀分段,从而可以减少分段数量,进而减少所存储的插值系数数量,节约存储开销,提高芯片性能。
此外,数值变化曲线中斜率变化率越小,即表明该斜率变化率所对应的区间内,不同点所对应的插值函数的差别就越小,从而通过较大的间隔进行分段,仍旧可以达到所需的插值精度要求,从而使得本申请所提供的方案仍可满足目标函数的计算精度要求。
此外,本申请所提供的方案,可以继续采用已有的各种初等函数电路,因此硬件实现友好,利于在工业应用中推广应用。
进一步地,获取需处理数据包括:获取待处理浮点数;对所述待处理浮点数进行预处理,得到所述需处理数据;所述需处理数据位于所述逼近区间内。
在上述实现过程中,通过对待处理浮点数进行预处理,以使需处理数据得以位于目标函数的逼近区间内,从而保证了目标函数的初等函数电路可以正确进行运算。
进一步地,对所述待处理浮点数进行预处理包括:判断所述目标函数所属的函数集合;若所述目标函数属于第一函数集合中的函数,则取所述待处理浮点数的尾数位,得到所述需处理数据;若所述目标函数属于第二函数集合中的函数,则确定所述待处理浮点数为所述需处理数据;若所述目标函数属于第三函数集合中的函数,则对所述待处理浮点数进行定点化处理,得到所述需处理数据。
在上述实现过程中,通过对不同类型的函数做不同的处理操作,可以使得输出数据能够满足该类型的函数的处理要求,保证初等函数电路可以正确进行运算。
进一步地,所述目标函数为倒数函数、平方根函数、平方根倒数函数、对数函数、指数函数、三角函数、sigmoid函数、tanh函数、erf函数中的一种。
进一步地,所述目标函数为三角函数;所述目标函数的初等函数电路通过泰勒插值函数进行插值运算。
在实际应用过程中,由于三角函数的二阶导数与原函数相等或者互为相反数,这样在采用泰勒插值函数进行插值运算时,那么插值系数中的常数项系数与二次项系数就是相等或者互为相反数的,因此在进行插值系数的存储时,就可以仅保存常数项系数与二次项系数中的一个,从而可以进一步减少保存的插值系数的数量,节约存储开销,提高芯片性能。
进一步地,对所述待处理浮点数进行预处理之前,所述方法还包括:确定所述待处理浮点数为规范浮点数。
进一步地,所述方法还包括:若所述待处理浮点数为非规范浮点数,则将所述待处理浮点数中除符号位外的其他部分全部置0,得到规范浮点数0;若所述待处理浮点数为非数值数,输出所述待处理浮点数。
在上述实现过程中,对于非规范化浮点数可以在输入初等函数电路前就变换为规范化浮点数0,再进行运算。这样,在进行芯片设计时,就可以省去初等函数电路中为了支持非规范化浮点数而额外增加的硬件面积及功耗。此外,上述实现过程中,对于非数值数直接进行输出,不进行运算,这就避免了初等函数电路在分段逼近中对非数值数进行处理,减少了不必要的处理开销。
本申请实施例还提供了一种函数的逼近区间分段方法,包括:获取目标函数在该目标函数对应的逼近区间内的数值变化曲线;获取所述数值变化曲线上各采样位置对应的斜率;根据所述数值变化曲线上各采样位置对应的斜率,确定所述数值变化曲线上各相邻采样位置形成的采样区间对应的斜率变化率;将斜率变化率位于同一预设变化率范围内的连续多个采样区间构成的总区间,按该预设变化率范围所对应的预设间隔进行分段;其中,不同预设变化率范围不重叠,且预设变化率范围的上限值越小,则所对应的预设间隔越大。
在上述实现过程中,分段区间是根据目标函数的数值变化曲线的斜率变化率进行划分,且斜率变化率位于值越小的预设变化率范围时,分段的间隔越大。这就使得对于目标函数而言,无需针对整个逼近区间,都按照最小的间隔进行均匀分段,从而可以减少分段数量,进而减少所存储的插值系数数量,节约存储开销,提高芯片性能。
此外,数值变化曲线中斜率变化率越小,即表明该斜率变化率所对应的区间内,不同点所对应的插值函数的差别就越小,从而通过较大的间隔进行分段,仍旧可以达到所需的插值精度要求,从而使得本申请所提供的方案仍可满足目标函数的计算精度要求。
本申请实施例还提供了一种函数实现电路,包括:不同初等函数对应的不同初等函数电路;所述初等函数电路用于对需处理数据进行分段逼近运算,以实现所对应的初等函数的功能;其中,所述初等函数电路在进行分段逼近运算时,根据所述需处理数据所在的分段区间,调用该分段区间所对应的插值系数进行插值运算;所述分段区间为:根据目标函数的数值变化曲线的斜率变化率,对所述目标函数对应的逼近区间进行分段得到的各区间;其中,所述目标函数为所述初等函数电路对应的初等函数;所述逼近区间内,位于同一预设变化率范围内所述斜率变化率对应的区间,按该预设变化率范围所对应的预设间隔进行分段得到;其中,不同预设变化率范围不重叠,且预设变化率范围的上限值越小,则所对应的预设间隔越大。
在上述电路中,由于分段区间是根据目标函数的数值变化曲线的斜率变化率进行划分,且斜率变化率位于值越小的预设变化率范围时,分段的间隔越大。这就使得对于目标函数而言,无需针对整个逼近区间,都按照最小的间隔进行均匀分段,从而可以减少分段数量,进而减少电路中所存储的插值系数数量,节约存储开销,提高电路性能。
此外,数值变化曲线中斜率变化率越小,即表明该斜率变化率所对应的区间内,不同点所对应的插值函数的差别就越小,从而通过较大的间隔进行分段,仍旧可以达到所需的插值精度要求,从而使得本申请所提供的函数实现电路仍可满足目标函数的计算精度要求。
进一步地,所述函数实现电路还包括:预处理单元,用于对待处理浮点数进行预处理,得到所述需处理数据;所述需处理数据位于所述逼近区间内。
进一步地,所述预处理单元具体用于:判断所述目标函数所属的函数集合;若所述目标函数属于第一函数集合中的函数,则取所述待处理浮点数的尾数位,得到所述需处理数据;若所述目标函数属于第二函数集合中的函数,则确定所述待处理浮点数为所述需处理数据;若所述目标函数属于第三函数集合中的函数,则对所述待处理浮点数进行定点化处理,得到所述需处理数据。
进一步地,所述不同初等函数包括倒数函数、平方根函数、平方根倒数函数、对数函数、指数函数、三角函数、sigmoid函数、tanh函数、erf函数中的至少两种。
进一步地,所述不同初等函数包括sigmoid函数和tanh函数时,所述tanh函数对应的初等函数电路中,复用所述sigmoid函数的初等函数电路。
考虑到对于tanh函数,有tanh (x)=2×sigmoid(2x)-1,因此在上述实现电路中,在设计tanh函数的初等函数电路时,通过在tanh函数对应的初等函数电路中,复用sigmoid函数的初等函数电路,从而就可以在保证硬件功能的情况下,减少重复硬件单元的设计,优化硬件单元的面积与功耗。
进一步地,所述函数实现电路还包括:浮点异常值处理单元,用于:判断所述待处理浮点数的类型;若所述待处理浮点数为规范浮点数,将所述待处理浮点数输出给所述预处理单元;若所述待处理浮点数为非规范浮点数,将所述待处理浮点数中除符号位外的其他部分全部置0,得到规范浮点数0,并将所述规范浮点数0输出给所述预处理单元;若所述待处理浮点数为非数值数,直接输出所述待处理浮点数。
进一步地,所述不同初等函数电路复用乘法器和加法器。
考虑到插值运算是通过调用乘法器和加法器进行计算实现的,因此在上述实现电路中,通过设置可被不同初等函数电路复用的乘法器和加法器,这样对于各个初等函数电路而言,就可以减少对于各个初等函数电路中的乘法器和加法器的设计,从而可以有效减少重复硬件的设计,优化硬件的面积与功耗。
本申请实施例还提供了一种芯片,包括:如上任一种的函数实现电路。
本申请实施例还提供了一种电子设备,包括:上述芯片。
本申请实施例中还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理单元执行,以实现上述任一种的函数实现方法。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对本申请实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1为本申请实施例提供的一种函数实现方法的流程示意图;
图2为本申请实施例提供的一种示例的数值变化曲线;
图3为本申请实施例提供的一种函数的逼近区间分段方法的流程示意图;
图4为本申请实施例提供的一种函数实现电路的结构示意图;
图5为本申请实施例提供的一种较具体的函数实现电路的结构示意图;
图6为本申请实施例提供的一种更具体的函数实现电路的结构示意图;
图7为本申请实施例提供的一种示例性的函数实现电路内部各处理单元之间的连接逻辑示意图;
图8为本申请实施例提供的一种预处理单元的处理逻辑示意图;
图9为本申请实施例示例的一种电子设备的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行描述。
实施例一:
为了降低存储开销,提高实现初等函数时的性能,本申请实施例中提供了一种函数实现方法。可以参见图1所示,图1为本申请实施例中提供的函数实现方法的流程示意图,包括:
S101:获取需处理数据。
S102:将需处理数据发送至目标函数的初等函数电路中进行分段逼近运算,得到处理结果。
其中,初等函数电路在进行分段逼近运算时,根据需处理数据所在的分段区间,调用该分段区间所对应的插值系数进行插值运算。
在本申请实施例中,分段区间可以为:根据目标函数的数值变化曲线的斜率变化率,对目标函数对应的逼近区间进行分段得到的各区间。其中,逼近区间内,位于同一预设变化率范围内斜率变化率对应的区间,按该预设变化率范围所对应的预设间隔进行分段得到。其中,不同预设变化率范围不重叠,且预设变化率范围的上限值越小,则所对应的预设间隔越大。
应理解,对于一个初等函数而言,其在逼近区间内,数值变化曲线中斜率变化率越小,即表明该斜率变化率所对应的区间内,不同点所对应的插值函数的差别就越小。例如,参见图2所示的数值变化曲线,可见在虚线左侧部分,曲线接近直线,该部分的斜率的变化率很小,甚至可能接近于0。在该部分曲线所对应的区间内,各处对应的插值函数的系数差别非常小,甚至可能没有差别。此时,若对该部分也进行密集性的分段,对于运算精度的提升并不高,但是却会显著增加插值系数的数量。而在本申请实施例中,对于该部分,则会采用较大的间隔进行分段,从而减少该部分的分段区间数量,从而减少插值系数的数量,且保证运算精度。
为了实现对于各函数的逼近区间的合理分段,可以参见图3所示,可以按照图3所示的函数的逼近区间分段方法进行分段:
S301:获取目标函数在该目标函数对应的逼近区间内的数值变化曲线。
S302:获取数值变化曲线上各采样位置对应的斜率。
需要理解的是,采样位置可以由工程师预先设定。例如,可以设置以原点为起点,每间隔预设距离即生成一个采样位置进行该位置处的斜率获取。可选的,考虑到计算机中的数据为二进制数,因此设定的采样位置的数量可以为2的整数次方,这就使得计算机可以仅根据二进制数的高位部分就确定出采样位置,对于硬件实现友好,减少了硬件实现的成本。
S303:根据数值变化曲线上各采样位置对应的斜率,确定数值变化曲线上各相邻采样位置形成的采样区间对应的斜率变化率。
S304:将斜率变化率位于同一预设变化率范围内的连续多个采样区间构成的总区间,按该预设变化率范围所对应的预设间隔进行分段。
其中,不同预设变化率范围不重叠,且预设变化率范围的上限值越小,则所对应的预设间隔越大。
示例性的,假设目标函数的逼近区间为0至1,其中:0至0.5(含)区间内的所有斜率变化率均位于第一预设变化率范围内,0.5(不含)至1区间内的所有斜率变化率均位于第二预设变化率范围内,则对0至0.5(含)区间以第一预设变化率范围所对应的第一间隔进行分段,对0.5(不含)至1区间以第二预设变化率范围所对应的第二间隔进行分段。假设第一预设变化率范围为0至50%(含),第二预设变化率范围为50%(不含)至100%,则第一间隔大于第二间隔。假设,第一间隔为0.002,第二间隔为0.001,则逼近区间内,0至0.5(含)区间内均分为64段,而0.5(不含)至1区间内均分为128段。相比于将整个逼近区间全部密集性分段(即全部按2-8进行分段),可以减少25%的分段区间数量,从而减少25%的插值系数存储开销。
在本申请实施例中,整个逼近区间内的总区间数量,以及各总区间内分段得到的分段区间的总数量可以为2的整数次方,这就使得后续进行数据的所属区间的确定时,计算机可以仅根据二进制数的高位部分就确定出所属的分段区间,对于硬件实现友好,减少了硬件实现的成本。
应理解,以上过程可以由工程师在实验室等环境中预先获取到各类初等函数进行在对应的逼近区间内的数值变化曲线,然后进行分段后,应用到芯片或电路中。
还应理解,在实际应用过程中,设备传来的需要通过初等函数电路进行运算的数据通常是浮点数(后文记为待处理浮点数)。而对于不同的函数而言,其所具有的逼近区间可能不同,从而对于数据的要求也就有所不同。因此,为了保证输入至初等函数电路中进行运算的需处理数据可以正确被该初等函数电路所处理,需处理数据应当位于该初等函数电路所对应的目标函数的逼近区间内。为此,在本申请实施例中,可以对待处理浮点数进行预处理,得到位于目标函数的逼近区间的需处理数据。
示例性的,对待处理浮点数的预处理过程可以包括:
判断目标函数所属的函数集合。若目标函数属于第一函数集合中的函数,则取待处理浮点数的尾数位,得到需处理数据。若目标函数属于第二函数集合中的函数,则确定所述待处理浮点数为需处理数据。若目标函数属于第三函数集合中的函数,则对浮点数进行定点化处理,得到需处理数据。
应理解,第一函数集合、第二函数集合和第三函数集合中所具有的函数,可以由工程师根据各初等函数对于数据的要求进行归类得到。示例性的,第一函数集合中可以包括倒数函数、平方根函数、倒数平方根函数、对数函数;第二函数集合中可以包括三角函数(sin函数、cos函数)、erf函数;第三函数集合中可以包括sigmoid函数、tanh函数、指数函数。
需要说明的是,在芯片或电路中,预先可以布设有多种不同初等函数的初等函数电路,从而实现不同初等函数的功能。而芯片或电路在运行过程中,根据数据处理需要,在输出待处理浮点数时,该待处理浮点数需要采样何种初等函数进行计算是已经被确定好的,也即目标函数是已被确定好的。在此基础上,可以很容易的判断目标函数所属的函数集合。
可选的,在本申请实施例中,目标函数可以为倒数函数、平方根函数、平方根倒数函数、对数函数、指数函数、三角函数、sigmoid函数、tanh函数、erf函数中的一种,但不作为限制。
在本申请实施例中,在对待处理浮点数进行预处理之前,还可以先判断待处理浮点数是否为规范浮点数,从而仅对规范浮点数进行预处理,然后得到需处理数据并输出至目标函数的初等函数电路。
示例性的,在本申请实施例中,可以判断待处理浮点数是否为非规范浮点数以及是否为非数值数。
若待处理浮点数不为非规范浮点数且也不为非数值数,则可以确定该待处理浮点数为规范浮点数,然后进行预处理。
若待处理浮点数为非规范浮点数,则可以将该待处理浮点数中除符号位外的其他部分全部置0,从而得到规范浮点数。此后,可以将得到的规范浮点数进行预处理后,输出给目标函数的初等函数电路。这样,在进行芯片设计时,就可以省去初等函数电路中为了支持非规范化浮点数而额外增加的硬件面积及功耗。
若待处理浮点数为非数值数,则可以不将其输出至目标函数的初等函数电路中进行运算,而是直接将该待处理浮点数作为最终的处理结果进行输出。这就避免了初等函数电路在分段逼近中对非数值数进行处理,减少了不必要的处理开销。
在本申请实施例中,可以通过以下方式实现对于非规范浮点数的判断:可以判断待处理浮点数的指数位是否为0,且尾数位是否不为0。如果待处理浮点数的指数位为0,且尾数位不为0,则确定待处理浮点数为非规范浮点数。
在本申请实施例中,可以通过以下方式实现对于非数值数的判断:可以判断待处理浮点数的指数位是否全为1,且尾数位是否不为0。若待处理浮点数的指数位全为1,且尾数位不为0,则待处理浮点数为非数值数。
当然,在本申请实施例中,若布设的初等函数电路支持非规范浮点数的运算,则在对待处理浮点数进行预处理之前,也可以仅先判断待处理浮点数是否为非数值数。在为非数值数时,则可以不将其输出至目标函数的初等函数电路中进行运算,而是直接将该待处理浮点数作为最终的处理结果进行输出。在待处理浮点数为数值数时,由于初等函数电路支持非规范浮点数的运算,因此可以对待处理浮点数进行预处理,然后得到需处理数据并输出至目标函数的初等函数电路。
参见图4所示,图4为本申请实施例中提供的一种函数实现电路,该函数实现电路中包括有不同初等函数对应的不同初等函数电路。
在本申请实施例中,各初等函数电路,用于对需处理数据进行分段逼近运算,以实现各初等函数电路所对应的初等函数的功能。
如前文所述,初等函数电路在进行分段逼近运算时,会根据需处理数据所在的分段区间,调用该分段区间所对应的插值系数进行插值运算。而分段区间的确定方式,可参见前文所述,在此不再赘述。
请参见图5所示,初等函数电路中还可以包括预处理单元。预处理单元用于对待处理浮点数进行预处理,得到需处理数据,并使需处理数据位于目标函数的逼近区间内。其中,目标函数为本次运算所需的初等函数电路所对应的初等函数。
示例性的,预处理单元具体可以用于:
判断目标函数所属的函数集合。若目标函数属于第一函数集合中的函数,则取待处理浮点数的尾数位,得到需处理数据。若目标函数属于第二函数集合中的函数,则确定待处理浮点数为需处理数据。若目标函数属于第三函数集合中的函数,则对浮点数进行定点化处理,得到需处理数据。
其中,针对第一函数集合、第二函数集合和第三函数集合的配置,可以参见前文描述,在此不再赘述。
应理解,在本申请实施例中,不同初等函数可以包括倒数函数、平方根函数、平方根倒数函数、对数函数、指数函数、三角函数、sigmoid函数、tanh函数、erf函数中的至少两种。也即,函数实现电路中可以布设有倒数函数、平方根函数、平方根倒数函数、对数函数、指数函数、三角函数、sigmoid函数、tanh函数、erf函数中的至少两种初等函数所对应的初等函数电路。
而当初等函数包括sigmoid函数和tanh函数时,也即函数实现电路中需要同时布设sigmoid函数的初等函数电路和tanh函数的初等函数电路时,可以在tanh函数对应的初等函数电路中,复用sigmoid函数的初等函数电路。这是由于对于tanh函数,有tanh (x)=2×sigmoid(2x)-1,因此在设计tanh函数的初等函数电路时,在tanh函数对应的初等函数电路中,复用sigmoid函数的初等函数电路,这就可以在保证硬件功能的情况下,减少重复硬件单元的设计,优化硬件单元的面积与功耗。
请参见图6所示,初等函数电路中还可以包括浮点异常值处理单元。浮点异常值处理单元用于:
判断待处理浮点数的类型。若待处理浮点数为规范浮点数,将待处理浮点数输出给预处理单元。若待处理浮点数为非规范浮点数,将待处理浮点数中除符号位外的其他部分全部置0,得到规范浮点数0,并将处理得到的该规范浮点数0输出给预处理单元。若待处理浮点数为非数值数,则直接将该待处理浮点数作为最终的输出结果进行输出,不再输出给预处理单元。
应理解,在本申请实施例中,预处理单元和浮点异常值处理单元都可以通过设计专门的硬件电路来实现。但是,预处理单元和浮点异常值处理单元也可以通过处理单元(如CPU(Central Processing Unit,中央处理器)、MCU(Micro Controller Unit,微控制单元))运行相关程序指令来实现。在本申请实施例中对于预处理单元和浮点异常值处理单元的实现方式不做限制。
在本申请实施例中,可以设置可被所有初等函数电路复用的乘法器和加法器,从而使得各初等函数电路在进行运算时,都可以通过该乘法器和加法器进行运算,从而有效减少重复硬件的设计,优化硬件的面积与功耗。
应理解,在本申请实施例中,初等函数电路可以被设置为二次插值函数的运算电路。此时,可以设置两组被复用的乘法器和加法器,从而实现二次插值函数的运算。
还应理解,在本申请实施例中,二次插值函数的运算电路,可以按照霍纳法则进行配置,从而通过霍纳法则计算二次插值多项式(即按照
Figure M_220607164902529_529797001
进行计算),从而相比于常规的二次插值多项式计算方法(按照
Figure M_220607164902594_594278002
进行计算),计算量从三次乘法与两次加法变为了两次乘法与两次加法,在保证结果准确性的情况下可以减少一次乘法器的调用,有效提升计算速度。
需要说明的是,在布设的初等函数电路包括有三角函数的初等函数电路时,针对三角函数,可以采用泰勒插值函数进行插值运算,也即三角函数的初等函数电路可以按照泰勒插值函数进行配置。这样,由于三角函数的二阶导数与原函数相等或者互为相反数,在采用泰勒插值函数进行插值运算时,插值系数中的常数项系数与二次项系数就是相等或者互为相反数的,因此在进行插值系数的存储时,就可以仅保存常数项系数与二次项系数中的一个,从而可以进一步减少保存的插值系数的数量,节约存储开销,提高函数实现电路的性能。
应理解,在本申请实施例中,除了可以采用二次插值函数进行运算外,也可以采用其他的多次插值函数进行运算,在本申请实施例中不做限制。
还需要说明的是,初等函数电路为了实现对于需处理数据的运算以及保证最终输出结果仍旧为浮点数,一般初等函数电路内会具有用于进行插值运算的函数分段逼近单元和用于进行浮点数格式还原的输出值规范化单元。
当然,整个函数实现电路中,也可以仅设置一个输出值规范化单元供各初等函数电路复用,这样就可以有效减少重复硬件的设计,优化硬件的面积与功耗。
在本申请实施例中,函数分段逼近单元具体可以用于,根据需处理数据确定该需处理数据所属的分段区间,进而从存储器中调用该分段区间的插值系数,然后进行插值运算,得到插值运算结果。
输出值规范化单元具体可以用于,按照需处理数据的符号位和指数位,结合插值运算结果,将插值运算结果恢复为浮点数并进行输出。
在本申请实施例中,为了提高函数分段逼近单元的计算效率,可以按照各分段区间内各二进制数值的相同比特部分作为索引进行插值系数的查询,并且仅针对剩余部分进行运算,从而减少运算量。
示例性的,假设针对区间[0,1)分为了2的6次方个分段区间,那么可以取需处理数据的前6 bit数据作为查询插值系数的索引。而针对需处理数据去除该前6 bit数据后的其他数据进行插值运算,在运算结果中加上该前6比特数据,即得到最终的插值运算结果。应理解,该前6比特数据也可以是预先在插值系数的常数项系数中加上了的,从而针对需处理数据去除该前6 bit数据后的其他数据进行插值运算,即可直接得到最终的插值运算结果,进一步减少运算量。
下面,为便于理解本申请的方案,以一个更具体的实施过程为例,对本申请做示例说明:
参见图7所示,函数实现电路包括浮点异常值处理单元,预处理单元,函数分段逼近单元(虽然图中仅示出一个,但实际应用中,不同初等函数各自对应有函数分段逼近单元)和输出值规范化单元。
在需要进行数据运算时:
浮点异常值处理单元接收输入的待处理浮点数。此时,首先判断该待处理浮点数是否是非规范浮点数。若为非规范浮点数,则保留该待处理浮点数的符号位数据,将其他部分的数据全部置0,得到转换为规范浮点数的待处理浮点数(数值为0),输出给预处理单元。
在判断出该待处理浮点数不是非规范浮点数时,判断该待处理浮点数是否为非数值数。若该待处理浮点数为非数值数,则可以直接通过输出值规范化单元输出该待处理浮点数。
若该待处理浮点数既不是非规范浮点数,又不是非数值数,则将该待处理浮点数输出给预处理单元。
参见图8所示,预处理单元根据接收到的待处理浮点数,以及所需运算的初等函数类型,通过计算机浮点数表示原理进行数值缩小。
假设预处理前的待处理浮点数表示为
Figure M_220607164902641_641157001
Figure M_220607164902719_719244002
分别被称为符号位,指数位和尾数位),则缩小规则如下:
对于倒数函数,有
Figure M_220607164902751_751932001
,可以直接将待处理浮点数的尾数位传入函数分段逼近单元进行
Figure M_220607164902814_814985002
范围内的分段逼近,此时函数分段逼近单元的输入为I1F23形式(即1位整数位,23位分数位的定点数形式)。
对于指数函数,有
Figure M_220607164902846_846214001
,可以将待处理浮点数从浮点数形式转换为定点数形式I8F23(即8位整数位,23位分数位的定点数形式),将定点数中的fraction(分数)部分传入函数分段逼近单元进行
Figure M_220607164902893_893064002
范围内的分段逼近,此时函数分段逼近单元的输入为I0F23形式(即0位整数位,23位分数位的定点数形式)。
对于对数函数,有
Figure M_220607164902924_924322001
,可以直接将待处理浮点数的尾数位传入函数分段逼近单元进行
Figure M_220607164902972_972664002
范围内的分段逼近,此时函数分段逼近单元的输入为I1F23形式。
对于平方根函数,当待处理浮点数的指数位
Figure M_220607164902988_988281001
是偶数时有
Figure M_220607164903019_019576002
;当待处理浮点数的指数
Figure M_220607164903082_082043003
是奇数时有
Figure M_220607164903113_113305004
,这两种情况下都可以直接将待处理浮点数的尾数位传入函数分段逼近单元进行
Figure M_220607164903177_177771005
范围内的分段逼近,此时函数分段逼近单元的输入为I1F23形式。
对于倒数平方根函数,当待处理浮点数的指数位
Figure M_220607164903209_209006001
是偶数时有
Figure M_220607164903255_255857002
;当待处理浮点数的指数
Figure M_220607164903352_352511003
是奇数时有
Figure M_220607164903384_384290004
,这两种情况下都可以直接将待处理浮点数的尾数位传入函数分段逼近单元进行
Figure M_220607164903431_431149005
范围内的分段逼近,此时函数分段逼近单元的输入为I0F23形式。
对于三角函数,有
Figure M_220607164903446_446772001
,直接将已经限定在
Figure M_220607164903524_524914002
范围内的输入传入函数分段逼近单元,此时函数分段逼近单元的输入为标准的计算机浮点表示即S1E8M23形式(即浮点数形式,不做处理)。
对于erf函数,有
Figure M_220607164903559_559574001
并且
Figure M_220607164903590_590861002
,可以将
Figure M_220607164903637_637715003
范围内的输入传入函数分段逼近单元,此时函数分段逼近单元的输入为标准的计算机浮点表示即S1E8M23形式。
对于sigmoid函数,有
Figure M_220607164903668_668954001
并且
Figure M_220607164903700_700212002
,可以将
Figure M_220607164903750_750465003
范围内的输入进行定点化表示后传入函数分段逼近单元,此时函数分段逼近单元的输入为U4F24形式(浮点数的整数部分转换为4bit无符号整数,浮点数的小数部分转换为24位的分数位)。
对于tanh函数,有
Figure M_220607164903782_782245001
,可以直接共享sigmoid函数的初等函数电路。计算时,可以先对定点化后的需处理数据*2,然后交由sigmoid函数的初等函数电路进行处理,最后对sigmoid结果做相应变换,得到tanh函数的值。此外,计算时,也可以是先对待处理浮点数*2,然后进行定点化处理得到需处理数据,然后交由sigmoid函数的初等函数电路进行处理,最后对sigmoid结果做相应变换,得到tanh函数的值。
在本申请实施例中,针对倒数函数、平方根函数、倒数平方根函数、对数函数、sigmoid函数、tanh函数和指数函数,可以将预处理前的待处理浮点数中的符号位(sign位)和指数位(exp位)内容传输给输出值规范化单元,供后续还原为浮点数格式的结果时使用。
函数分段逼近单元接收到需处理数据后,首先根据需处理数据进行插值系数的查找:
对于在区间
Figure M_220607164903829_829115001
内的倒数函数,先判断需处理数据与1.5的大小关系,当需处理数据小于1.5时,取需处理数据前7 bit数据作为查询插值系数的index(索引),查找出对应的插值系数;当需处理数据大于等于1.5时,取当需处理数据前6 bit数据作为查询插值系数的index,查找出对应的插值系数。
对于在区间
Figure M_220607164903860_860382001
内的指数函数,取需处理数据前6 bit数据作为查询插值系数的index,查找出对应的插值系数。
对于在区间
Figure M_220607164903891_891610001
内的对数函数逼近,取需处理数据前6 bit数据作为查询插值系数的index,查找出对应的插值系数。
对于在区间
Figure M_220607164903922_922876001
内的平方根函数逼近,取需处理数据前5 bit数据作为查询插值系数的index,查找出对应的插值系数。
对于在区间
Figure M_220607164903955_955549001
内的倒数平方根函数逼近,取需处理数据前6 bit数据作为查询插值系数的index,查找出对应的插值系数。
对于在区间
Figure M_220607164904002_002492001
内的cos函数逼近(如果逼近目标是sin函数,需要对需处理数据做
Figure M_220607164904034_034206002
变换),判断需处理数据与1和1.5的大小关系,当需处理数据小于1时,取前6 bit作为查询插值系数的index,查找出对应的插值系数;在需处理数据在1到1.5之间时,取需处理数据前8 bit作为查询插值系数的index,查找出对应的插值系数;在需处理数据大于1.5时,取需处理数据前10 bit作为查询插值系数的index,查找出对应的插值系数。
对于在区间
Figure M_220607164904081_081088001
内的erf函数逼近,同三角函数的处理类似,根据计算机浮点表示的规则设置切分点
Figure M_220607164904112_112321002
,在这些区间分别取前
Figure M_220607164904247_247115003
bit作为查询插值系数的index,查找出对应的插值系数。
对于在区间
Figure M_220607164904309_309603001
内的sigmoid函数逼近,先判断需处理数据与4的大小关系,当需处理数据小于4时,取需处理数据的前8 bit作为查询差值系数的index,查找出对应的插值系数;需处理数据大于4时,取需处理数据的前7 bit作为查询差值系数的index,查找出对应的插值系数。
根据确定的index从插值系数表中取常数项系数、一次项系数、二次项系数。除三角函数外的初等函数的插值系数通过在该index对应的分段区间上选择切比雪夫点进行二次牛顿插值得到,对于非均匀分段的函数需要准备对应的多张分段插值系数表。对于三角函数的插值系数则可以选择在分段中点的泰勒插值得到,从而使得对于三角函数只需保存两种系数。
在得到常数项系数、一次项系数、二次项系数后,函数分段逼近单元即可根据需处理数据确定插值函数的输入,然后进行插值运算。
示例性的,计算时,插值函数的输入可以为需处理数据去除index所对应的各bit后保留的低位截断结果(即需处理数据中除index所对应的各bit后的剩余部分)。
然后,使用霍纳法则将原公式转化为
Figure M_220607164904358_358432001
,进行计算,得到最终的插值结果。
最后,函数分段逼近单元将插值函数的计算结果输出给输出值规范化单元。
应理解,对于不同的初等函数,有不同的输出形式。例如:
对于倒数函数、指数函数、平方根函数与sigmoid函数,输出形式为I1F24。对于对数函数、三角函数、倒数平方根函数与erf函数,输出形式为I1F26。
输出值规范化单元接收函数分段逼近单元的输出结果后,结合预处理单元传来的待处理浮点数的符号位、指数位数据,通过浮点数规范进行格式还原,得到最终输出的浮点结果。
示例性的,对于对数函数与三角函数,可以将函数分段逼近单元输出的I1F26结果结合指数位的数据,得到I7F26类型的定点形式数据,并转换为浮点数进行输出。而对于tanh函数,则可以直接将sigmoid函数的计算结果右移1位并去掉最高bit的1,即可得到最终输出的浮点结果进行输出。
应理解,在本申请实施例中,上述函数实现方法以及上述函数实现电路,可以应用于具有初等函数实现需求的芯片上,例如GPU芯片上。因此,在本申请实施例中,还提供了一种芯片,其内具有前述的函数实现电路。
此外,在本申请实施例中,还提供了一种电子设备,其内具有前述芯片。应理解,本申请实施例中所述的电子设备可以但不限于:移动终端(如手机、笔记本电脑等)、固定终端(如台式电脑等)、服务器等具有数据处理需求的设备。
可以理解,电子设备内除了具有前述芯片外,还可以具有其他的部件。例如图9所示,电子设备除了可以具有芯片901外,还可以具有I/O接口902、存储器903(如ROM(Read-Only Memory,只读存储器)、RAM(Random Access Memory,随机存储器)等)等部件,并可通过总线904连接。
应理解,图9所示的结构仅为示意,电子设备还可包括比图9中所示更多或者更少的组件,或者具有与图9所示不同的配置。
本实施例还提供了一种计算机可读存储介质,如软盘、光盘、硬盘、闪存、U盘、SD(Secure Digital Memory Card,安全数码卡)卡、MMC(Multimedia Card,多媒体卡)卡等,在该计算机可读存储介质中存储有一个或者多个程序,这一个或者多个程序可被一个或者多个处理单元(如CPU、MCU等)执行,以实现上述函数实现方法。在此不再赘述。
在本申请所提供的实施例中,应该理解到,所揭露电路和方法,可以通过其它的方式实现。以上所描述的实施例仅仅是示意性的。
在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。
在本文中,多个是指两个或两个以上。
以上所述仅为本申请的实施例而已,并不用于限制本申请的保护范围,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。

Claims (14)

1.一种函数实现方法,其特征在于,包括:
获取需处理数据;
将所述需处理数据发送至目标函数的初等函数电路中进行分段逼近运算,得到处理结果;
其中,所述初等函数电路在进行分段逼近运算时,根据所述需处理数据所在的分段区间,调用该分段区间所对应的插值系数进行插值运算;
所述分段区间为:根据所述目标函数的数值变化曲线的斜率变化率,对所述目标函数对应的逼近区间进行分段得到的各区间;其中,所述逼近区间内,位于同一预设变化率范围内所述斜率变化率对应的区间,按该预设变化率范围所对应的预设间隔进行分段得到;其中,不同预设变化率范围不重叠,且预设变化率范围的上限值越小,则所对应的预设间隔越大。
2.如权利要求1所述的函数实现方法,其特征在于,获取需处理数据包括:
获取待处理浮点数;
判断所述目标函数所属的函数集合;
若所述目标函数属于第一函数集合中的函数,则取所述待处理浮点数的尾数位,得到所述需处理数据;
若所述目标函数属于第二函数集合中的函数,则确定所述待处理浮点数为所述需处理数据;
若所述目标函数属于第三函数集合中的函数,则对所述待处理浮点数进行定点化处理,得到所述需处理数据。
3.如权利要求2所述的函数实现方法,其特征在于,在判断所述目标函数所属的函数集合之前,所述方法还包括:
确定所述待处理浮点数为规范浮点数。
4.如权利要求3所述的函数实现方法,其特征在于,所述方法还包括:
若所述待处理浮点数为非规范浮点数,则将所述待处理浮点数中除符号位外的其他部分全部置0,得到规范浮点数0;
若所述待处理浮点数为非数值数,输出所述待处理浮点数。
5.如权利要求1-4任一项所述的函数实现方法,其特征在于,所述目标函数为三角函数;所述目标函数的初等函数电路通过泰勒插值函数进行插值运算。
6.一种函数的逼近区间分段方法,其特征在于,包括:
获取目标函数在该目标函数对应的逼近区间内的数值变化曲线;
获取所述数值变化曲线上各采样位置对应的斜率;
根据所述数值变化曲线上各采样位置对应的斜率,确定所述数值变化曲线上各相邻采样位置形成的采样区间对应的斜率变化率;
将斜率变化率位于同一预设变化率范围内的连续多个采样区间构成的总区间,按该预设变化率范围所对应的预设间隔进行分段;其中,不同预设变化率范围不重叠,且预设变化率范围的上限值越小,则所对应的预设间隔越大。
7.一种函数实现电路,其特征在于,包括:
不同初等函数对应的不同初等函数电路;
所述初等函数电路用于对需处理数据进行分段逼近运算,以实现所对应的初等函数的功能;
其中,所述初等函数电路在进行分段逼近运算时,根据所述需处理数据所在的分段区间,调用该分段区间所对应的插值系数进行插值运算;
所述分段区间为:根据目标函数的数值变化曲线的斜率变化率,对所述目标函数对应的逼近区间进行分段得到的各区间;其中,所述目标函数为所述初等函数电路对应的初等函数;所述逼近区间内,位于同一预设变化率范围内所述斜率变化率对应的区间,按该预设变化率范围所对应的预设间隔进行分段得到;其中,不同预设变化率范围不重叠,且预设变化率范围的上限值越小,则所对应的预设间隔越大。
8.如权利要求7所述的函数实现电路,其特征在于,所述函数实现电路还包括:
预处理单元,用于
判断所述目标函数所属的函数集合;
若所述目标函数属于第一函数集合中的函数,则取待处理浮点数的尾数位,得到所述需处理数据;
若所述目标函数属于第二函数集合中的函数,则确定待处理浮点数为所述需处理数据;
若所述目标函数属于第三函数集合中的函数,则对待处理浮点数进行定点化处理,得到所述需处理数据。
9.如权利要求7所述的函数实现电路,其特征在于,所述不同初等函数包括sigmoid函数和tanh函数时,所述tanh函数对应的初等函数电路中,复用所述sigmoid函数的初等函数电路。
10.如权利要求8所述的函数实现电路,其特征在于,还包括:
浮点异常值处理单元,用于
判断所述待处理浮点数的类型;
若所述待处理浮点数为规范浮点数,将所述待处理浮点数输出给所述预处理单元;
若所述待处理浮点数为非规范浮点数,将所述待处理浮点数中除符号位外的其他部分全部置0,得到规范浮点数0,并将所述规范浮点数0输出给所述预处理单元;
若所述待处理浮点数为非数值数,直接输出所述待处理浮点数。
11.如权利要求7-10任一项所述的函数实现电路,其特征在于,所述不同初等函数电路复用乘法器和加法器。
12.一种芯片,其特征在于,包括:如权利要求7-11任一项所述的函数实现电路。
13.一种电子设备,其特征在于,包括:如权利要求12所述的芯片。
14.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理单元执行,以实现如权利要求1至5任一项所述的函数实现方法。
CN202210441226.XA 2022-04-26 2022-04-26 函数实现方法、逼近区间分段方法、芯片、设备及介质 Active CN114546330B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN202210441226.XA CN114546330B (zh) 2022-04-26 2022-04-26 函数实现方法、逼近区间分段方法、芯片、设备及介质
PCT/CN2022/107166 WO2023206832A1 (zh) 2022-04-26 2022-07-21 函数实现方法、逼近区间分段方法、芯片、设备及介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210441226.XA CN114546330B (zh) 2022-04-26 2022-04-26 函数实现方法、逼近区间分段方法、芯片、设备及介质

Publications (2)

Publication Number Publication Date
CN114546330A CN114546330A (zh) 2022-05-27
CN114546330B true CN114546330B (zh) 2022-07-12

Family

ID=81667527

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210441226.XA Active CN114546330B (zh) 2022-04-26 2022-04-26 函数实现方法、逼近区间分段方法、芯片、设备及介质

Country Status (2)

Country Link
CN (1) CN114546330B (zh)
WO (1) WO2023206832A1 (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114546330B (zh) * 2022-04-26 2022-07-12 成都登临科技有限公司 函数实现方法、逼近区间分段方法、芯片、设备及介质
CN115936965A (zh) * 2022-11-07 2023-04-07 格兰菲智能科技有限公司 应用于gpu的函数计算系统、方法和装置

Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4628181A (en) * 1984-07-05 1986-12-09 Jiluan Pan Method of controlling the output characteristic of a welding power source, apparatus for arc welding, and electrical circuit to be used for such apparatus
CN1479587A (zh) * 2001-11-13 2004-03-03 波形分段及分割段的表征方法
CN102530055A (zh) * 2010-12-22 2012-07-04 上海联盛汽车电子有限公司 具有双斜率平滑助力曲线的电动助力转向系统
CN104036356A (zh) * 2014-06-12 2014-09-10 国家电网公司 一种利用分形算法对电网未来运行状态进行预测的方法
CN106126834A (zh) * 2016-06-28 2016-11-16 西安交通大学 一种基于惯导角度量测的轨道平面最佳线形确定算法
CN110210612A (zh) * 2019-05-14 2019-09-06 北京中科汇成科技有限公司 一种基于自适应分段线性逼近曲线的集成电路加速方法及系统
CN110569020A (zh) * 2018-06-05 2019-12-13 德克萨斯仪器股份有限公司 超越函数求值
CN111046084A (zh) * 2019-12-18 2020-04-21 重庆大学 一种多元时间序列监测数据的关联规则挖掘方法
US10924131B1 (en) * 2018-10-03 2021-02-16 Honeywell Federal Manufacturing & Technologies, Llc Electronic device and method for compressing sampled data
CN113342881A (zh) * 2021-05-21 2021-09-03 中广核工程有限公司 核电厂仪控系统测试曲线构建方法、装置、设备、介质

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10447297B1 (en) * 2018-10-03 2019-10-15 Honeywell Federal Manufacturing & Technologies, Llc Electronic device and method for compressing sampled data
CN114610267A (zh) * 2022-03-22 2022-06-10 奥比中光科技集团股份有限公司 一种基于指数函数和softmax函数的优化方法、硬件系统及芯片
CN114546330B (zh) * 2022-04-26 2022-07-12 成都登临科技有限公司 函数实现方法、逼近区间分段方法、芯片、设备及介质

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4628181A (en) * 1984-07-05 1986-12-09 Jiluan Pan Method of controlling the output characteristic of a welding power source, apparatus for arc welding, and electrical circuit to be used for such apparatus
CN1479587A (zh) * 2001-11-13 2004-03-03 波形分段及分割段的表征方法
CN102530055A (zh) * 2010-12-22 2012-07-04 上海联盛汽车电子有限公司 具有双斜率平滑助力曲线的电动助力转向系统
CN104036356A (zh) * 2014-06-12 2014-09-10 国家电网公司 一种利用分形算法对电网未来运行状态进行预测的方法
CN106126834A (zh) * 2016-06-28 2016-11-16 西安交通大学 一种基于惯导角度量测的轨道平面最佳线形确定算法
CN110569020A (zh) * 2018-06-05 2019-12-13 德克萨斯仪器股份有限公司 超越函数求值
US10924131B1 (en) * 2018-10-03 2021-02-16 Honeywell Federal Manufacturing & Technologies, Llc Electronic device and method for compressing sampled data
CN110210612A (zh) * 2019-05-14 2019-09-06 北京中科汇成科技有限公司 一种基于自适应分段线性逼近曲线的集成电路加速方法及系统
CN111046084A (zh) * 2019-12-18 2020-04-21 重庆大学 一种多元时间序列监测数据的关联规则挖掘方法
CN113342881A (zh) * 2021-05-21 2021-09-03 中广核工程有限公司 核电厂仪控系统测试曲线构建方法、装置、设备、介质

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
Approximation Theory Applied to DEM Vertical Accuracy Assessment;XiaoHang Liu等;《Transactions in GIS》;20120528;397-410 *
初等函数运算器的设计研究;牛涛;《中国优秀硕士论文电子期刊网 信息科技辑》;20130715;I137-50 *
基于斜率提取边缘点的时间序列分段线性表示方法;詹艳艳 等;《计算机科学》;20061231;139-143 *

Also Published As

Publication number Publication date
CN114546330A (zh) 2022-05-27
WO2023206832A1 (zh) 2023-11-02

Similar Documents

Publication Publication Date Title
CN114546330B (zh) 函数实现方法、逼近区间分段方法、芯片、设备及介质
EP4080351A1 (en) Arithmetic logic unit, and floating-point number multiplication calculation method and device
CN106990937B (zh) 一种浮点数处理装置和处理方法
CA1041212A (en) Fast fourier transform stage using floating point numbers
JP7244186B2 (ja) 改良された低精度の2進浮動小数点形式設定
WO2022028134A1 (zh) 一种芯片、终端及浮点运算的控制方法和相关装置
KR101603471B1 (ko) 디지털 신호 프로세서들에서의 신호 처리를 위한 시스템 및 방법
KR20080055985A (ko) 선택가능 준정밀도를 가진 부동―소수점 프로세서
CN110888623B (zh) 数据转换方法、乘法器、加法器、终端设备及存储介质
CN112230882B (zh) 浮点数处理装置、浮点数加法装置及浮点数处理方法
CN110187866B (zh) 一种基于双曲cordic的对数乘法计算系统及方法
CN113625989A (zh) 数据运算装置、方法、电子设备及存储介质
CN113010148B (zh) 一种适用于混合精度神经网络的定点乘加运算单元及方法
CN110727412B (zh) 一种基于掩码的混合浮点乘法低功耗控制方法及装置
CN110069240B (zh) 定点与浮点数据计算方法及装置
CN115827555A (zh) 数据处理方法、计算机设备、存储介质和乘法器结构
CN115658008A (zh) 一种资源复用型超越函数运算实现方法
CN115268832A (zh) 浮点数取整的方法、装置以及电子设备
CN114860193A (zh) 一种用于计算Power函数的硬件运算电路及数据处理方法
CN114691082A (zh) 乘法器电路、芯片、电子设备及计算机可读存储介质
CN113377334B (zh) 一种浮点数据处理方法、装置及存储介质
CN117472325B (zh) 一种乘法处理器、运算处理方法、芯片及电子设备
CN111313905B (zh) 一种浮点数转换方法及装置
US20240118868A1 (en) Multiplier block for block floating point and floating point values
CN113625990A (zh) 浮点转定点装置、方法、电子设备及存储介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant