CN109271134B - 超越函数运算方法及装置、存储介质及电子设备 - Google Patents

超越函数运算方法及装置、存储介质及电子设备 Download PDF

Info

Publication number
CN109271134B
CN109271134B CN201811551771.4A CN201811551771A CN109271134B CN 109271134 B CN109271134 B CN 109271134B CN 201811551771 A CN201811551771 A CN 201811551771A CN 109271134 B CN109271134 B CN 109271134B
Authority
CN
China
Prior art keywords
transcendental function
operator unit
parameter
operator
transcendental
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
CN201811551771.4A
Other languages
English (en)
Other versions
CN109271134A (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 Suiyuan Technology Co.,Ltd.
Original Assignee
Shanghai Enflame 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 Enflame Technology Co ltd filed Critical Shanghai Enflame Technology Co ltd
Publication of CN109271134A publication Critical patent/CN109271134A/zh
Application granted granted Critical
Publication of CN109271134B publication Critical patent/CN109271134B/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/544Methods 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 for evaluating functions by calculation

Abstract

本发明提供了一种超越函数运算方法,包括:当接收到运算指令时,将待运算的超越函数,分别发送至每个算子单元,并确定每个算子单元对应的运算参数,所述运算参数为所述算子单元在运算所述超越函数时所需的参数;依据各个所述运算参数,确定运算所述超越函数的迭代参数;触发每个所述算子单元,依据所述迭代参数,及其对应的运算参数,对所述超越函数进行迭代运算,获得所述超越函数的运算结果。应用本发明提供的超越函数运算方法,可以实现处理器对于高密度的超越函数的向量运算,满足人工智能领域在建模和训练模型样本时,对高密度的超越函数的向量运算需求。

Description

超越函数运算方法及装置、存储介质及电子设备
本申请要求于2018年12月13日提交中国专利局、申请号为201811522375.9、发明名称为“超越函数运算方法及装置、存储介质及电子设备”的中国专利申请的优先权,其全部内容通过引用结合在本申请中。
技术领域
本发明涉及计算机运算领域,特别是涉及一种超越函数运算方法及装置、存储介质及电子设备。
背景技术
随着计算机技术的发展,特别是人工智能领域的发展。在人工智能领域中,计算机处理器需要在建模和训练模型样本等各方面对大量的复杂数据进行运算,例如对高密度的超越函数的向量运算,这对计算机处理器的数据处理性能提出了更高的要求。通常,无论是通用处理器还是人工智能领域中的神经元专用处理器中所采用的数据运算方法,都无法支持高密度的超越函数的向量运算,无法满足人工智能领域在建模和训练模型样本时,对超越函数的运算需求。
因此,通过发明人的研究发现,亟需一种应用于处理器中的超越函数运算方法,实现处理器对于高密度的超越函数的向量运算,满足人工智能领域在建模和训练模型样本时,对高密度的超越函数的向量运算需求。
发明内容
本发明所要解决的技术问题是提供一种超越函数运算方法,实现对于高密度的超越函数的向量运算,满足在建模和训练模型样本时,对超越函数的运算需求。
本发明还提供了一种超越函数运算装置,用以保证上述方法在实际中的实现及应用。
一种超越函数运算方法,所述方法应用于算子运算器,所述算子运算器中包含多个独立运行的算子单元,所述方法包括:
当接收到运算指令时,将待运算的超越函数分别发送至每个算子单元,并确定每个算子单元对应的运算参数,所述运算参数为所述算子单元在运算所述超越函数时所需的参数;
依据各个所述运算参数,确定运算所述超越函数的迭代参数;
触发每个所述算子单元依据所述迭代参数及其对应的运算参数,对所述超越函数进行迭代运算,获得所述超越函数的运算结果。
上述的方法,可选的,所述确定每个算子单元对应的运算参数,包括:
确定每个算子单元在运算所述超越函数时,所述超越函数自变量的取值;每个算子单元所对应超越函数自变量可独立取值;
对所述超越函数自变量的取值进行规则化,获得每个所述算子单元对应的运算参数。
上述的方法,可选的,所述依据所述各个所述运算参数,确定运算所述超越函数的迭代参数,包括:
确定每个所述运算参数的取值;
计算每个算子单元在依据其对应的运算参数的取值,对所述超越函数进行运算时所需的迭代次数;
将每个算子单元所需进行的迭代次数中数值最大的迭代次数,作为各个所述算子单元运算所述超越函数的迭代参数。
上述的方法,可选的,所述触发每个所述算子单元依据所述迭代参数及其对应的运算参数,对所述超越函数进行迭代运算,包括:
触发每个所述算子单元依据其对应的运算参数,将所述超越函数转换为包含乘法、加法及移位运算的多项式,并依据所述迭代参数对所述多项式进行迭代运算。
上述的方法,可选的,所述获得所述超越函数的运算结果,包括:
在所述多项式进行迭代运算的过程中,运算过程达到所述迭代次数时,输出运算结果。
一种超越函数运算装置,所述装置应用于算子运算器,所述算子运算器中包含多个独立运行的算子单元,所述装置包括:
发送单元,用于当接收到运算指令时,将待运算的超越函数分别发送至每个算子单元,并确定每个算子单元对应的运算参数,所述运算参数为所述算子单元在运算所述超越函数时所需的参数;
确定单元,用于依据各个所述运算参数,确定运算所述超越函数的迭代参数;
运算单元,用于触发每个所述算子单元依据所述迭代参数及其对应的运算参数,对所述超越函数进行迭代运算,获得所述超越函数的运算结果。
一种算子运算器,所述算子运算器包括:
多个独立运行的算子单元;
所述算子单元中设置有:
寄存器及多项式单元;
所述寄存器,用于在所述算子单元接收到运算指令时,获取待运算的超越函数,并确定运算所述超越函数所需的运算参数及迭代参数;
所述多项式单元,用于依据所述运算参数及迭代参数,对所述超越函数进行迭代运算,并输出运算结果。
上述的运算器,可选的,所述多项式单元包括:
转换器,用于将所述超越函数转换为包含乘法、加法及移位运算的多项式。
一种存储介质,所述存储介质包括存储的指令,其中,在所述指令运行时控制所述存储介质所在的设备执行上述的超越函数运算方法。
一种电子设备,包括存储器,以及一个或者一个以上的指令,其中一个或者一个以上指令存储于存储器中,且经配置以由一个或者一个以上处理器执行上述的超越函数运算方法。
与现有技术相比,本发明包括以下优点:
本发明实施例提供了一种超越函数运算方法,包括:当接收到运算指令时,将待运算的超越函数,分别发送至每个算子单元,并确定每个算子单元对应的运算参数,所述运算参数为所述算子单元在运算所述超越函数时所需的参数;依据各个所述运算参数,确定运算所述超越函数的迭代参数;触发每个所述算子单元,依据所述迭代参数,及其对应的运算参数,对所述超越函数进行迭代运算,获得所述超越函数的运算结果。应用本发明提供的超越函数运算方法,可以实现处理器对于高密度的超越函数的向量运算,满足人工智能领域在建模和训练模型样本时,对高密度的超越函数的向量运算需求。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本发明提供的一种超越函数运算方法的方法流程图;
图2为本发明提供的一种超越函数运算方法的又一方法流程图;
图3为本发明提供的一种超越函数运算装置的结构示意图;
图4为本发明提供的一种算子运算器的结构示意图;
图5为本发明提供的一种电子设备的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
在本申请中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本发明可用于众多通用或专用网络设备环境或配置中。例如:个人计算机、服务器计算机、互联网设备、智能门锁、智能空调、包括以上任何装置或智能的电子产品等等。
本发明实施例提供了一种超越函数运算方法,该方法用于对高密度的超越函数进行向量运算,该方法可以应用于计算机或各种移动设备,其执行主体可以为上述设备中的处理器。所述方法的方法流程图如图1所示,具体步骤包括:
S101:当接收到运算指令时,将待运算的超越函数分别发送至每个算子单元,并确定每个算子单元对应的运算参数,所述运算参数为所述算子单元在运算所述超越函数时所需的参数;
本发明实施例提供的方法中,当接收到用户发送的超越函数的运算指令时,将该超越函数运算指令对应的待运算的超越函数,分别发送至每个算子单元中,并确定每个算子单元对应的该超越函数的运算参数,所述运算参数为所述算子单元在对所述超越函数进行运算时所需要的参数。
本发明实施例提供的方法中,每一个算子单元接收到的超越函数是相同的。
本发明实施例提供的方法中,超越函数具体可以是正反三角函数、指数函数、对数函数等超越函数。
本发明实施例提供的方法中,运算参数为算子单元在对超越函数进行运算时所需要的参数,具体可以为超越函数自变量的取值,本发明实施例中,运算参数可以为对超越函数自变量进行规则化后的取值,所述超越函数自变量的规则化过程,根据预先设定的输出精度及已选择的逼近算法进行。本发明实施例中,每个所述算子单元在对超越函数进行运算时,运算的超越函数的自变量取值各不相同,各个算子单元同时启动进行运算,每个所述算子单元优选的设定相同的输出精度,也可以预先设定不同的输出精度。
S102:依据各个所述运算参数,确定运算所述超越函数的迭代参数;
本发明实施例提供的方法中,每个算子单元依据其运算的超越函数对应的取值范围和预先设定的输出精度,确定运算所述超越函数所需的迭代次数。
本发明实施例提供的方法中,运算超越函数的迭代次数由超越函数的逼近算法和输出精度确定。本发明实施例中,在对超越函数进行运算的开始阶段,需要对超越函数的自变量数值进行规则化,将超越函数的自变量取值放缩到逼近算法取值适应的范围内,然后将规则化后的数值输入至算子单元进行迭代运算,此时迭代次数由输出精度、逼近算法及经过规则化的超越函数的自变量取值确定。
S103:触发每个所述算子单元,依据所述迭代参数,及其对应的运算参数,对所述超越函数进行迭代运算,获得所述超越函数的运算结果。
本发明实施例提供的方法中,一个运算指令同时触发算子运算器中的所有算子单元进行运算,所述每个算子单元根据已确定的迭代次数,以及其运算的超越函数的取值和预先设定的输出精度,对所述超越函数进行迭代运算,获得所述超越函数的运算结果。
本发明实施例提供的方法中,迭代结束后,输出结果经过相应的去规则化,还原得到最终的输出结果。
本发明实施例提供的超越函数运算方法,可以应用在多个领域,特别是需要对高密度的超越函数进行向量运算的人工智能领域。用户根据具体需求,将一条超越函数指令发送至算子运算器,并确定每个算子单元对应的运算参数,所述运算参数为所述算子单元在运算所述超越函数时所需的参数,每一个所述算子单元接收到的超越函数都是相同的,需要的超越函数具体可以是正反三角函数、指数函数、对数函数等等其中一种超越函数,运算参数可以包括超越函数自变量进行规则化后的取值,可选的,还可以包括预先设定的输出精度,以及选取的逼近算法的算法参数。每个所述算子单元接收到的超越函数的自变量取值是不同的,每个所述算子单元中可以预先设定相同的输出精度,也可以预先设定不同的输出精度。然后每个算子单元依据其运算的超越函数对应的规则化后取值范围和预先设定的输出精度,确定所述超越函数的迭代运算次数;最后,一个运算指令同时触发算子运算器中的所有算子单元进行运算,所述每个算子单元根据已确定的迭代次数,以及其运算的超越函数的取值和预先设定的输出精度,对所述超越函数进行迭代运算,获得所述超越函数的运算结果。应用本发明提供的超越函数运算方法,可以实现处理器对于高密度的超越函数的向量运算,满足人工智能领域在建模和训练模型样本时,对高密度的超越函数的向量运算需求。
本发明实施例提供的超越函数运算方法中,确定每个算子单元对应的运算参数,具体步骤包括:
确定每个算子单元在运算所述超越函数时,所述超越函数自变量的取值;每个算子单元所对应超越函数自变量可独立取值;
对所述超越函数自变量的取值进行规则化,获得每个所述算子单元对应的运算参数。
本发明实施例提供的方法中,每个算子单元可以独立的取值,即每个算子单元可以分别取不同的值,也可以某几个算子单元取值相同。
本发明实施例提供一个实例对上述方案进行详细描述:
当算子运算器中的10个算子单元接收到取值范围为(0,
Figure 585613DEST_PATH_IMAGE001
)的超越函数lnx 时,每个算子单元在所述超越函数lnx的取值范围内独立取10个数值:1.0、2.0、3.0、4.0、 5.0、6.0、7.0、8.0、9.0、10.0,作为所述10个算子单元在运算时超越函数的自变量取值,对 上述数值进行规则化,获得每个算子单元在运算时所需的运算参数,每个算子单元根据其 对应的lnx的取值,对lnx进行迭代运算。通过本发明实施例提供的方法,可以实现对于同一 函数的高密度的向量运算,线性的提高计算机处理器的运算性能,从而满足人工智能领域 在建模和训练模型样本时,有多组数据以供参考,提高训练建模和训练样本的精度。
因为所述超越函数是不能通过有限次运算获得运算结果的,因此需要通过待运算的超越函数对应的运算参数中包含的该超越函数的取值范围,确定一定的迭代次数,对所述超越函数进行对应于该迭代次数的迭代运算,使其运算结果满足预先设定的目标精度。
本发明实施例提供的超越函数运算方法中,依据所述各个所述运算参数,确定运算所述超越函数的迭代参数,具体步骤包括:
S201:确定每个所述运算参数的取值;
S202 :计算每个算子单元,在依据其对应的运算参数的取值,对所述超越函数进行运算时,所需的迭代次数;
S203:将每个算子单元所需进行的迭代次数中,数值最大的迭代次数,作为各个所述算子单元运算所述超越函数的迭代参数。
本发明实施例提供的方法中,需要先确定每个算子单元接收到的超越函数自变量的取值,确定每个算子单元在依据其对应的超越函数自变量的取值,对所述超越函数进行运算时,所需的迭代次数,将每个算子单元所需进行的迭代次数中,数值最大的迭代次数,作为各个所述算子单元运算所述超越函数的迭代参数。
本发明实施例提供的方法中,指规则化后算子的取值范围中的最坏情况来确定迭代次数。例如实施例中,计算e^(x)的函数中,规则化后的u在[-ln2, 0) 取值范围时,对于取值范围内所有取值,经过5次迭代就可以得到符合单精度的e^(-u)的输出结果。该结果再通过逆规则化,即可得最终符合精度需求的函数结果。需要说明的是,规则化和逆规则化操作,在本实施例中均是通过本发明的通用算子实现的。
在确定了每个所述算子单元的迭代参数以后,需要运算指令触发每个所述算子单元依据所述迭代参数,以及每个算子单元对应的超越函数自变量取值,对所述超越函数进行迭代运算,并获得所述超越函数的运算结果。
本发明实施例提供的超越函数运算方法中,所述触发每个所述算子单元,依据所述迭代参数,及其对应的运算参数,对所述超越函数进行迭代运算,并获得所述超越函数的运算结果,具体步骤包括:
触发每个所述算子单元,依据其对应的运算参数,将所述超越函数,转换为包含乘法、加法及移位运算的多项式,并依据所述迭代参数,对所述多项式进行迭代运算。
在所述多项式进行迭代运算的过程中,运算过程达到所述迭代次数时,输出运算结果。
本发明实施例提供的方法中,运算指令触发每个所述算子单元,依据其对应的超越函数自变量取值和预先设定的多项式逼近算法,以及所述迭代参数,将所述超越函数转换为包含了乘法、加法及移位运算的多项式,根据所述迭代参数,对所述多项式进行运算,并输出符合所述预先设定的运算精度的超越函数运算结果。
本发明实施例提供一个实例对上述方案进行详细描述:
算子运算器中的5个运算单元同时接收到超越函数
Figure 581382DEST_PATH_IMAGE002
的运算指令时,
令D=B+G=1/ln2*X;
其中G为D的取整数部分,B=D-G;
Figure 626699DEST_PATH_IMAGE003
;
令u=(1-B)ln2则函数
Figure 553066DEST_PATH_IMAGE005
Figure 446067DEST_PATH_IMAGE007
2的整数次幂可以通过指数加减运算(浮点)或移位实现(定点)。
算子单元根据预先设定的多项式逼近算法实现
Figure 2951DEST_PATH_IMAGE008
Figure 269984DEST_PATH_IMAGE010
p(u)的迭代算法如下:
Figure 531201DEST_PATH_IMAGE012
Figure 200080DEST_PATH_IMAGE014
Figure 6493DEST_PATH_IMAGE016
Figure 760822DEST_PATH_IMAGE018
因为
Figure 497834DEST_PATH_IMAGE019
,所以u的取值范围为
Figure 83536DEST_PATH_IMAGE020
Figure 513380DEST_PATH_IMAGE021
的取值范围为
Figure 755006DEST_PATH_IMAGE022
;取合适的多项式序列
Figure 843179DEST_PATH_IMAGE023
,多次迭代后可得到
Figure 548967DEST_PATH_IMAGE024
Figure 697182DEST_PATH_IMAGE021
的绝对 误差满足预先设定的精度需求;例如当迭代参数为5时,经过5次迭代后可得到得到
Figure 98208DEST_PATH_IMAGE024
Figure 177022DEST_PATH_IMAGE021
的绝对误差
Figure 675000DEST_PATH_IMAGE025
,将所述绝对误差
Figure 508963DEST_PATH_IMAGE025
与预先设定的单精度浮点FP32 所表达的最小值进行匹配,匹配结果为所述绝对误差小于所述预先设定的单精度浮点FP32 所表达的最小值,说明运算结果符合精度需求。
获得最终的运算结果:
Figure 459602DEST_PATH_IMAGE027
本发明实施例提供的方法中,上述D、G、B字母仅为代数符号,无特别意义,可以用 A/B/C,X/Y/Z替换;这一段提供了一种对指数函数的输入X规则化的方法;这里通过数学变 换,将趋势范围为
Figure DEST_PATH_IMAGE028
的X,规则化成取值范围为
Figure 420736DEST_PATH_IMAGE029
的u,并对取值范围为
Figure DEST_PATH_IMAGE030
的函数
Figure 377147DEST_PATH_IMAGE021
的多项式逼近。这样可以得到一个快速逼近的多项式(5次即可达到 单精度浮点FP32能表达的最小精度)。
最后再将
Figure 382012DEST_PATH_IMAGE021
的结果通过逆规则化运算,还原成最终的
Figure 819947DEST_PATH_IMAGE002
的结 果。需要说明的是,规则化和逆规则化操作,在本实施例中均是通过本发明的通用算子实现 的。
本发明实施例提供的方法中,需要说明的是,每个所述算子单元中预先设定的精度也可以是不同的。运算指令触发每个所述算子单元,选择预先设定的多项式逼近算法,以及所述迭代参数,规则化对应的超越函数自变量取值到预设范围,将所述超越函数转换为包含了乘法、加法及移位运算的多项式。根据所述迭代参数,对所述多项式进行运算,并输出符合预先设定的运算精度的运算结果。
与图1所述的方法相对应,本发明实施例还提供了一种超越函数运算装置,用于对图1中方法的具体实现,本发明实施例提供的超越函数运算装置可以应用与各种电子设备中,其结构示意图如图3所示,具体包括:
发送单元301:用于当接收到运算指令时,将待运算的超越函数,分别发送至每个算子单元,并确定每个算子单元对应的运算参数,所述运算参数为所述算子单元在运算所述超越函数时所需的参数;
确定单元302:用于依据各个所述运算参数,确定运算所述超越函数的迭代参数;
运算单元303:用于触发每个所述算子单元,依据所述迭代次数,及其对应的运算参数,对所述超越函数进行迭代运算,获得所述超越函数的运算结果。
在本发明的一个实施例中,基于前述方案,发送单元301配置为:
确定每个算子单元在运算所述超越函数时,所述超越函数自变量的取值;每个算子单元所对应超越函数自变量可独立取值;对所述超越函数自变量的取值进行规则化,获得每个所述算子单元对应的运算参数。
在本发明的一个实施例中,基于前述方案,确定单元302配置为:
确定每个所述运算参数的取值;计算每个算子单元在依据其对应的运算参数的取值,对所述超越函数进行运算时所需的迭代次数;将每个算子单元所需进行的迭代次数中数值最大的迭代次数,作为各个所述算子单元运算所述超越函数的迭代参数。
在本发明的一个实施例中,基于前述方案,运算单元303配置为:
触发每个所述算子单元依据其对应的运算参数,将所述超越函数转换为包含乘法、加法及移位运算的多项式,并依据所述迭代参数对所述多项式进行迭代运算。
在本发明的一个实施例中,基于前述方案,运算单元303配置为:
在所述多项式进行迭代运算的过程中,运算过程达到所述迭代次数时,输出运算结果。
本发明实施例提供了一种如图4所示的算子运算器,包括:
多个独立运行的算子单元401;
所述算子单元中设置有:
寄存器402及多项式单元403;
所述寄存器402,用于在所述算子单元接收到运算指令时,获取待运算的超越函数、运算所述超越函数所需的运算参数及迭代参数;
所述多项式单元403,用于依据所述运算参数及迭代参数,对所述超越函数进行迭代运算,并将最终的运算结果反馈给寄存器,以便于寄存器输出最终运算结果。
可选的,所述多项式单元包括:
转换器,用于将所述超越函数转换为包含乘法、加法及移位运算的多项式。
所述转换器可以为加法、乘法和移位器,具备将所述超越函数转换为包含乘法、加法及移位运算的多项式的功能。
本发明提供的超越函数运算装置,当接收到运算指令时,将待运算的超越函数,分别发送至每个算子单元,并确定每个算子单元对应的运算参数,所述运算参数为所述算子单元在运算所述超越函数时所需的参数;依据各个所述运算参数,确定运算所述超越函数的迭代参数;触发每个所述算子单元,依据所述迭代参数,及其对应的运算参数,对所述超越函数进行迭代运算,获得所述超越函数的运算结果。应用本发明提供的超越函数运算方法,可以实现处理器对于高密度的超越函数的向量运算,满足人工智能领域在建模和训练模型样本时,对高密度的超越函数的向量运算需求。
本发明实施例还提供了一种存储介质,所述存储介质包括存储的指令,其中,在所述指令运行时控制所述存储介质所在的设备执行上述超越函数运算方法。
本发明实施例还提供了一种电子设备,其结构示意图如图5所示,具体包括存储器501,以及一个或者一个以上的指令502,其中一个或者一个以上指令502存储于存储器501中,且经配置以由一个或者一个以上处理器503执行所述一个或者一个以上指令502进行以下操作:
当接收到运算指令时,将待运算的超越函数,分别发送至每个算子单元,并确定每个算子单元对应的运算参数,所述运算参数为所述算子单元在运算所述超越函数时所需的参数;
依据各个所述运算参数,确定运算所述超越函数的迭代参数;
触发每个所述算子单元,依据所述迭代参数,及其对应的运算参数,对所述超越函数进行迭代运算,获得所述超越函数的运算结果。
需要说明的是,本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分相互参见即可。对于装置类型而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统或系统实施例而言,由于其基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。以上所描述的系统及系统实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

Claims (6)

1.一种超越函数运算方法,其特征在于,所述方法应用于算子运算器,所述算子运算器中包含多个独立运行的算子单元,所述方法包括:
当接收到一个运算指令时,将待运算的超越函数分别发送至每个算子单元,并确定每个算子单元对应的运算参数,所述运算参数为所述算子单元在运算所述超越函数时所需的参数;每一个算子单元接收到的超越函数是相同的;
依据各个所述运算参数,确定运算所述超越函数的迭代参数;
触发每个所述算子单元依据所述迭代参数及其对应的运算参数,对所述超越函数进行迭代运算,获得所述超越函数的运算结果,将所述运算结果经过相应的去规则化,还原得到所述超越函数的最终运算结果,实现对于同一函数的高密度的向量运算;
所述依据所述各个所述运算参数,确定运算所述超越函数的迭代参数,包括:
确定每个所述运算参数的取值;
计算每个算子单元在依据其对应的运算参数的取值,对所述超越函数进行运算时所需的迭代次数;
将每个算子单元所需进行的迭代次数中数值最大的迭代次数,作为各个所述算子单元运算所述超越函数的迭代参数;
其中,所述确定每个算子单元对应的运算参数,包括:
确定每个算子单元在运算所述超越函数时,所述超越函数自变量的取值;每个算子单元所对应超越函数自变量可独立取值;
对所述超越函数自变量的取值进行规则化,将超越函数的自变量取值放缩到逼近算法取值适应的范围内,获得每个所述算子单元对应的运算参数;
其中,所述触发每个所述算子单元依据所述迭代参数及其对应的运算参数,对所述超越函数进行迭代运算,包括:
触发每个所述算子单元依据其对应的运算参数,将所述超越函数转换为包含乘法、加法及移位运算的多项式,并依据所述迭代参数对所述多项式进行迭代运算。
2.根据权利要求1所述的方法,其特征在于,所述获得所述超越函数的运算结果,包括:
在所述多项式进行迭代运算的过程中,运算过程达到所述迭代次数时,输出运算结果。
3.一种超越函数运算装置,其特征在于,所述装置应用于算子运算器,所述算子运算器中包含多个独立运行的算子单元,所述装置包括:
发送单元,用于当接收到一个运算指令时,将待运算的超越函数分别发送至每个算子单元,并确定每个算子单元对应的运算参数,所述运算参数为所述算子单元在运算所述超越函数时所需的参数;每一个算子单元接收到的超越函数是相同的;
确定单元,用于依据各个所述运算参数,确定运算所述超越函数的迭代参数;
运算单元,用于触发每个所述算子单元依据所述迭代参数及其对应的运算参数,对所述超越函数进行迭代运算,获得所述超越函数的运算结果,将所述运算结果经过相应的去规则化,还原得到所述超越函数的最终运算结果,实现对于同一函数的高密度的向量运算;
其中,所述依据所述各个所述运算参数,确定运算所述超越函数的迭代参数,包括:
确定每个所述运算参数的取值;
计算每个算子单元在依据其对应的运算参数的取值,对所述超越函数进行运算时所需的迭代次数;
将每个算子单元所需进行的迭代次数中数值最大的迭代次数,作为各个所述算子单元运算所述超越函数的迭代参数;
其中,所述确定每个算子单元对应的运算参数,包括:
确定每个算子单元在运算所述超越函数时,所述超越函数自变量的取值;每个算子单元所对应超越函数自变量可独立取值;
对所述超越函数自变量的取值进行规则化,将超越函数的自变量取值放缩到逼近算法取值适应的范围内,获得每个所述算子单元对应的运算参数;
其中,所述触发每个所述算子单元依据所述迭代参数及其对应的运算参数,对所述超越函数进行迭代运算,包括:
触发每个所述算子单元依据其对应的运算参数,将所述超越函数转换为包含乘法、加法及移位运算的多项式,并依据所述迭代参数对所述多项式进行迭代运算。
4.一种算子运算器,其特征在于,所述算子运算器执行如权利要求1所述的超越函数运算方法,所述算子运算器包括:
多个独立运行的算子单元;
所述算子单元中设置有:
寄存器及多项式单元;
所述寄存器,用于在所述算子单元接收到运算指令时,获取待运算的超越函数,并确定运算所述超越函数所需的运算参数及迭代参数;
所述多项式单元,用于依据所述运算参数及迭代参数,对所述超越函数进行迭代运算,并输出运算结果;
其中,所述多项式单元包括:
转换器,用于将所述超越函数转换为包含乘法、加法及移位运算的多项式。
5.一种存储介质,其特征在于,所述存储介质包括存储的指令,其中,在所述指令运行时控制所述存储介质所在的设备执行如权利要求1或2所述的超越函数运算方法。
6.一种电子设备,其特征在于,包括存储器,以及一个或者一个以上的指令,其中一个或者一个以上指令存储于存储器中,且经配置以由一个或者一个以上处理器执行如权利要求1或2所述的超越函数运算方法。
CN201811551771.4A 2018-12-13 2018-12-19 超越函数运算方法及装置、存储介质及电子设备 Active CN109271134B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN2018115223759 2018-12-13
CN201811522375 2018-12-13

Publications (2)

Publication Number Publication Date
CN109271134A CN109271134A (zh) 2019-01-25
CN109271134B true CN109271134B (zh) 2020-08-25

Family

ID=65186968

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811551771.4A Active CN109271134B (zh) 2018-12-13 2018-12-19 超越函数运算方法及装置、存储介质及电子设备

Country Status (1)

Country Link
CN (1) CN109271134B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112464157B (zh) * 2021-02-01 2021-04-27 上海燧原科技有限公司 向量排序方法与排序系统
CN116126526B (zh) * 2022-12-29 2024-04-19 苏州华太电子技术股份有限公司 计算超越函数的方法、装置、电子设备和存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2002052401A2 (en) * 2000-12-27 2002-07-04 Sun Microsystems, Inc. Method of obtaining correctly rounded results in ieee double precision format of transcendental functions
CN102722469A (zh) * 2012-05-28 2012-10-10 西安交通大学 基于浮点运算单元的基本超越函数运算方法及其协处理器
CN103677738A (zh) * 2013-09-26 2014-03-26 中国人民解放军国防科学技术大学 基于混合模式cordic算法的低延时基本超越函数实现方法及装置
CN107329732A (zh) * 2016-04-29 2017-11-07 北京中科寒武纪科技有限公司 一种用于执行多种超越函数运算的装置和方法

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101630243B (zh) * 2009-08-14 2011-01-05 西北工业大学 超越函数装置以及用该装置实现超越函数的方法
CN103959192B (zh) * 2011-12-21 2017-11-21 英特尔公司 用于估算超越函数的数学电路
CN105740208B (zh) * 2016-01-26 2019-05-14 南京信息工程大学 一种基于admm算法的数据处理方法
CN111651200B (zh) * 2016-04-26 2023-09-26 中科寒武纪科技股份有限公司 一种用于执行向量超越函数运算的装置和方法
CN108228135B (zh) * 2016-12-15 2021-09-07 上海寒武纪信息科技有限公司 一种运算多种超越函数的装置

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2002052401A2 (en) * 2000-12-27 2002-07-04 Sun Microsystems, Inc. Method of obtaining correctly rounded results in ieee double precision format of transcendental functions
CN102722469A (zh) * 2012-05-28 2012-10-10 西安交通大学 基于浮点运算单元的基本超越函数运算方法及其协处理器
CN103677738A (zh) * 2013-09-26 2014-03-26 中国人民解放军国防科学技术大学 基于混合模式cordic算法的低延时基本超越函数实现方法及装置
CN107329732A (zh) * 2016-04-29 2017-11-07 北京中科寒武纪科技有限公司 一种用于执行多种超越函数运算的装置和方法

Also Published As

Publication number Publication date
CN109271134A (zh) 2019-01-25

Similar Documents

Publication Publication Date Title
CN111758106B (zh) 用于大规模并行神经推理计算元件的方法和系统
US20240020518A1 (en) Deep neural network architecture using piecewise linear approximation
CN110084361B (zh) 一种运算装置和方法
Gao et al. Design and implementation of an approximate softmax layer for deep neural networks
US11561799B2 (en) Execution unit
CN109271134B (zh) 超越函数运算方法及装置、存储介质及电子设备
CN111353578A (zh) 信息处理装置、神经网络程序和用于神经网络的处理方法
Dawid et al. CORDIC algorithms and architectures
Nedjah et al. Compact yet efficient hardware implementation of artificial neural networks with customized topology
US11119733B2 (en) Execution unit configured to evaluate functions using at least one multiplier circuit
US11847428B2 (en) Execution unit for evaluating functions using Newton Raphson iterations
US5195052A (en) Circuit and method for performing integer power operations
JP5229314B2 (ja) Cordic演算回路及び方法
Jain et al. Binary division algorithm and high speed deconvolution algorithm (Based on Ancient Indian Vedic Mathematics)
US20210350221A1 (en) Neural Network Inference and Training Using A Universal Coordinate Rotation Digital Computer
CN111126557A (zh) 神经网络量化、应用方法、装置和计算设备
JP2822399B2 (ja) 対数関数演算装置
JP2508784B2 (ja) 指数関数演算装置
CN111445016A (zh) 加速非线性数学计算的系统及方法
CN111930674B (zh) 乘累加运算装置及方法、异构智能处理器及电子设备
US9612800B2 (en) Implementing a square root operation in a computer system
Nguyen et al. A parallel pipeline CORDIC based on adaptive angle selection
CN108229668B (zh) 基于深度学习的运算实现方法、装置和电子设备
CN111930670A (zh) 异构智能处理量化装置、量化方法、电子设备及存储介质
EP3451152B1 (en) Device and method for performing multiple transcendental function operations

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
CP03 Change of name, title or address

Address after: 200120 room a-522, 188 Yesheng Road, Lingang xinpian District, China (Shanghai) pilot Free Trade Zone, Pudong New Area, Shanghai

Patentee after: Shanghai Suiyuan Technology Co.,Ltd.

Address before: 201203 Room 302, building 2, zhangrun building, Lane 61, shengxia Road, Pudong New Area, Shanghai

Patentee before: SHANGHAI ENFLAME TECHNOLOGY Co.,Ltd.

CP03 Change of name, title or address