CN107273090A - 面向神经网络处理器的近似浮点乘法器及浮点数乘法 - Google Patents

面向神经网络处理器的近似浮点乘法器及浮点数乘法 Download PDF

Info

Publication number
CN107273090A
CN107273090A CN201710311756.1A CN201710311756A CN107273090A CN 107273090 A CN107273090 A CN 107273090A CN 201710311756 A CN201710311756 A CN 201710311756A CN 107273090 A CN107273090 A CN 107273090A
Authority
CN
China
Prior art keywords
mantissa
approximate
operand
floating
product
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.)
Granted
Application number
CN201710311756.1A
Other languages
English (en)
Other versions
CN107273090B (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.)
Institute of Computing Technology of CAS
Original Assignee
Institute of Computing Technology of CAS
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 Institute of Computing Technology of CAS filed Critical Institute of Computing Technology of CAS
Priority to CN201710311756.1A priority Critical patent/CN107273090B/zh
Publication of CN107273090A publication Critical patent/CN107273090A/zh
Application granted granted Critical
Publication of CN107273090B publication Critical patent/CN107273090B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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/57Arithmetic logic units [ALU], i.e. arrangements or devices for performing two or more of the operations covered by groups G06F7/483 – G06F7/556 or for performing logical operations
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/06Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
    • G06N3/063Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means

Abstract

本发明公开了用于神经网络处理器的近似浮点乘法器及浮点数乘法。该近似浮点乘法器在执行操作数的尾数乘法操作时根据指定的精度从各操作数尾数高位开始截取部分位并在所截取的部分位前后补1得到两个新的尾数,对这两个新的尾数进行乘法运算,以得到乘积的近似尾数,以及在经规格化后的近似尾数的低位补零使其位数与操作数的尾数位数一致从而得到所述乘积的尾数。该近似浮点乘法器采用近似计算的方式,根据精度需求截取尾数的不同位数进行相应乘法操作,降低了乘法操作的能量损耗,提高了乘法运算速度,进而使得神经网络处理系统性能更加高效。

Description

面向神经网络处理器的近似浮点乘法器及浮点数乘法
技术领域
本发明涉及神经网络处理器,尤其涉及神经网络处理器内的乘法运算。
背景技术
目前神经网络处理器通常采用已训练好的权重数据作为输入信号进行神经网络模型的运算操作。乘法和加法操作是神经网络运算操作中的重要环节,大部分专用硬件加速器为了降低设计复杂度并提高运算效率,通常运用定点乘法器进行乘法操作,而训练得到的权重数据大多在以浮点计算环境下得到,训练环境与硬件加速环境之间数据存储及计算形式的不匹配导致在硬件加速处理结果与训练结果产生较大差异。然而,如果在硬件加速器中采用传统浮点乘法器,又会造成加速效率降低、硬件开销大和运行功耗提高等问题,严重阻碍了神经网络处理器在嵌入式设备的应用,同于也无法满足在未来超低功耗物联网端节点中采用神经网络处理器实时分析处理数据的需求
发明内容
因此,本发明的目的在于克服上述现有技术的缺陷,提供一种新的用于神经网络处理器的近似浮点乘法器及浮点数乘法。
本发明的目的是通过以下技术方案实现的:
一方面,本发明提供了一种近似浮点乘法器,包括:
符号位运算单元,其对输入的两个操作数的符号位进行异或运算以得到这两个操作数的乘积的符号位;
阶码运算单元,其对输入的两个操作数的阶码进行加法运算,以得到所述乘积的阶码;
尾数运算单元,其根据指定的精度从各操作数尾数高位开始截取部分位并在所截取的部分位前后补1得到两个新的尾数,对这两个新的尾数进行乘法运算,以得到乘积的近似尾数,其中所述精度指示操作数的尾数中需要参与乘法运算的位数;
规格化单元,其对所述近似尾数和所述乘积的阶码进行规格化处理;
移位单元,其在经规格化后的近似尾数的低位补零使其位数与操作数的尾数位数一致,以得到所述乘积的尾数。
在上述近似浮点乘法器中,还可包括特殊值判断单元,其判断输入的两个操作数中是否存在特殊值并向阶码运算单元和尾数运算单元发出指示所述判断的结果的特殊值指示信号,以及当判断这两个操作数中存在特殊值时,直接输出预先设定的与所检测的特殊值对应的结果作为这两个操作数的乘积。
在上述近似浮点乘法器中,所述阶码运算单元和所述尾数运算单元可以在收到来自特殊值判断单元指示操作数中存在特殊值的特殊值指示信号时,不再继续进行相关运算。
在上述近似浮点乘法器中,所述尾数计算单元可包括第一编码器、第二编码器和定位乘法器,其中第一编码器和第二编码器根据收到的精度指示信号分别从各操作数尾数高位开始截取部分位并在所截取的部分位前后补1;定位乘法器对第一和第二编码器的输入数据进行乘法运算并输出运算结果。
在上述近似浮点乘法器中,所述精度的最大值为操作数尾数的位数,最小值为零。
又一方面,本发明提供了一种浮点数乘法,包括:
步骤a1,将待相乘的两个操作数的符号位进行异或运算,得到这两个操作数的乘积的符号位;
步骤a2,将这两个操作数的阶码进行加法运算,以得到所述乘积的阶码;
步骤a3,根据指定的精度从各操作数尾数高位开始截取部分位并在所截取的部分位前后补1得到两个新的尾数,其中所述精度指示操作数的尾数中需要参与乘法运算的位数;
步骤a4,对这两个新的尾数进行乘法运算,以得到乘积的近似尾数;
步骤a5,对所述近似尾数和所述乘积的阶码进行规格化处理;
步骤a6,在经规格化处理的近似尾数的低位补零使其位数与操作数的尾数位数一致,以得到所述乘积的尾数。
在上述浮点数乘法的步骤a1-a6之前还可包括步骤a0,判断待相乘的两个操作数中是否存在特殊值,若有特殊值,则直接输出预先设定的与所述特殊值对应的结果值作为这两个操作数的乘积,否则继续至步骤a1。
在上述浮点数乘法的步骤a0中:
如果这两个操作数中存在零值,则直接输出零值;
如果这两个操作数相同且均为浮点表示范围内的最大值或最小值,则直接输出最大值;
如果这两个操作数中一个为最大值且另一个为最小值,则直接输出最小值;
如果这两个操作数中仅存在一个最大值或最小值,则直接输出该最大值或最小值。
在上述浮点数乘法中,还可包括动态调整或设置所述精度的步骤。
在上述浮点数乘法中,所述精度的最大值为操作数尾数的位数,最小值为零。
与现有技术相比,本发明的优点在于:
根据需求选择不同计算精度,在不同精度下截取以浮点形式表示的乘法操作数中的部分位进行乘法运算,在不牺牲较大计算精度的情况提高了乘法操作的工作能效,也使得神经网络处理系统性能更加高效。
附图说明
以下参照附图对本发明实施例作进一步说明,其中:
图1为根据本发明一个实施例的近似浮点乘法器的结构示意图;
图2为根据本发明一个实施例的尾数运算单元的结构示意图;
图3为根据本发明一个实施例的用于尾数运算单元中的乘法器的结构示意图;
图4为根据本发明又一个实施例的近似浮点乘法器的结构示意图;
图5为根据本发明一个实施例的近似浮点乘法器工作流程示例;
图6为根据本发明一个实施例的浮点数乘法的流程示意图。
具体实施方式
为了使本发明的目的,技术方案及优点更加清楚明白,以下结合附图通过具体实施例对本发明进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。
图1为根据本发明的一个实施例的近似浮点乘法器的结构示意图。该近似浮点乘法器包括符号位运算单元、阶码运算单元、尾数运算单元、规格化单元和移位单元。如图1所示,该浮点乘法器接收两个要进行相乘的操作数A和B,并输出其乘积(可记为C)。其中操作数A和B及其乘积均为浮点数,在机器中每个浮点数以“符号位+阶码+尾数”的形式来存储和表示。例如,可采用IEEE标准754格式,其中符号位为1位,当其0时表示正数,当其为1时表示负数;阶码用整数形式表示,指明小数点在数据中的位置,其决定浮点数的表示范围;尾数以定位小数表示,其给出的有效数字的位数决定了浮点数的表示精度。例如对于32位的浮点数,符号位S为1位,S=0时为整数,S=1时为负数;尾数M共23位,用小数表示,小数点放在尾数域的最前面;阶码E为8位,阶符采用隐含方式,即采用移码方式来表示正负指数。在采用这种方式时,浮点数的指数真值e要变成阶码E时,应将该指数e加上一个固定的偏移量,例如当E为8位时,该偏移量为28-1=127(01111111),即E=e+127。为提高数据的表示精度,需要采用修改阶码同时左右移小数点的办法,使尾数域(包含隐藏位1)变成最高有效位为1的表示形式。这也称为浮点数的规格化表示,这一过程也称为规格化处理。在IEEE 754标准中,一个规格化的32位浮点数x的真值可表示为:x=(-1)s×(1.M)×2e,e=E-127。应理解,上文仅是对浮点数进行举例说明而非进行任何限制,也可根据神经网络运算过程的实际需求采用不同的浮点数格式,也可取决于所涉及的操作数的精度及数值范围。
参考图1,当该近似浮点乘法器收到操作数A和B时,通过符号位运算单元得到A与B的乘积C的符号位,通过阶码运算单元计算乘积C的阶码,通过尾数运算单元计算乘积C的尾数。其中,符号位运算单元对A的符号位与B的符号位进行异或运算,得到乘积C的符号位。该符号位运算单元例如可以通过常见的异或门电路来实现。阶码运算单元将A的阶码与B的阶码进行相加,以得到A与B的乘积C的阶码。该阶码运算单元例如可以采用加法器来实现。尾数运算单元通常可以通过将A的尾数与B的尾数直接相乘来得到乘积C的尾数,但这样的乘法操作计算量大且效率不高。在本发明的实施例中,尾数运算单元采用近似计算的方式,根据不同的精度需求,选择操作数尾数中的部分位来进行乘法运算,以得到乘积的尾数。其中精度(记为p)指示操作数的尾数部分需要参与计算的位数,可以根据p的值选取操作数尾数中的部分位来进行乘法运算。精度p可以是预先确定的,也可以是根据系统需求动态可调整的,精度值越大,计算量也越大,精度p的值最大为操作数的尾数的位数,最小为0。当尾数运算单元收到用户选择或系统设置的精度p时,首先对于每个操作数,从操作数的尾数截取高p位,在所截取的p位前后均补上1,从而得到编码后的操作数尾数(共p+2位)以用于后续的乘法操作,接着将编码后的操作数尾数进行乘法运算并将运算结果输出至规格化单元。
图2为根据本发明一个实施例的尾数运算单元的结构示意图。该尾数运算单元包括编码器A、编码器B、定点乘法器。其中编码器A和编码器B分别对于操作数A和B的尾数进行编码,即根据收到的精度选择信号指示的精度p,从操作数A和B的尾数选取高p位,在截取的这p个位前后补上1,从而得到编码后的操作数尾数并将其传送至定点乘法器进行乘法运算。定点乘法器在对收到的编码后操作数尾数进行乘法运算之后,将运算结果输出至规格化单元。通常编码器例如可由移位器来实现。
图3为根据本发明一个实施例的尾数运算单元中定点乘法器的结构示意图。如图3所示,该定点乘法器单元可以由多个两比特乘法器单元级联而成。该定点乘法器的最小计算位数为2,同时可以满足4位定点数乘法和8位定点数乘法。两比特乘法器级联为4比特乘法器,4比特乘法器级联为8比特乘法器,每个两比特乘法器均有选通信号。该定点乘法器可以根据精度选择信号p选通需要参与运算的乘法单元,被选通的乘法单元参与乘法运算,其余单元处于电源关断状态。应理解以上定点乘法器结构仅是以8位乘法器进行举例说明而非进行任何限制,也可以根据实际需求选择16位乘法器、32位乘法器等等。
继续参考图1,该近似浮点乘法器还包括规格化单元和移位单元。其中规格化单元按照浮点数规格化规则对来自尾数运算单元和阶码运算单元的结果进行规格化处理。例如,如上述提到的,需要采用修改阶码同时左右移小数点的办法,使尾数域(包含隐藏位1)变成最高有效位为1的表示形式。。规格化单元输出经规格化后的阶码作为乘积C的阶码,并将经规格化后的尾数提供至移位单元。该移位单元对来自规格化单元的尾数进行低位补零,使其位数等于操作数A和B的尾数的位数,然后输出经补位后的尾数作为乘积C的阶码。通常移位单元可以通过移位器来实现,例如桶形移位器。
图4为根据本发明的又一个实施例的近似浮点乘法器的结构示意图。该近似浮点乘法器包括符号位运算单元、阶码运算单元、尾数运算单元、规格化单元、移位单元、特殊值判断单元和选择器。如结合图1所介绍的相类似,当该近似浮点乘法器收到操作数A和B时,可以通过符号位运算单元得到A与B的乘积C的符号位,通过阶码运算单元计算乘积C的阶码,通过尾数运算单元计算乘积C的尾数,通过规格化单元和移位单元对于阶码运算单元和尾数运算单元的输出进行修正。图4的近似浮点乘法器与图1所示的近似浮点乘法器的主要不同在于图4的近似浮点乘法器还包括了特殊值判断单元。在进行阶码运算和尾数运算之前,可以通过特殊值判断单元判断操作数A和操作数B中是否存在特殊值,例如零值,浮点表示范围中最大值或最小值等。如果特殊值判断单元确定收到的操作数中存在特殊值,则可以跳过阶码运算和尾数运算,直接进行特殊值处理,输出预先设定的与特殊值对应的乘积。这是考虑到神经网络模型中的数据具有稀疏性,即存在大量数值为零的操作数,由此本实施例通过判断操作数是否为诸如零、浮点表示范围内的最大值(通常为正数)或最小值(通常为负数)之类的特殊值来直接得到乘积,从而提高计算速度,尽量降低功耗。例如,如果参与乘法运算的是数值为零的操作数,可直接将乘积C赋值为零值;如果是对浮点表示范围中最大值或最小值的数值进行乘法操作,也可以直接输出相应的结果作为乘积C。表1给出了操作数中存在特殊值时输出的相应乘积的示例说明:
表1
应指出,表1中设置的上述与各特殊值情况对应的乘积仅是举例而非进行任何限制。如图4所示,特殊值判断单元与阶码运算单元、尾数运算单元及选择器相连,其会向阶码运算单元、尾数运算单元及选择器输出特殊值指示信号以指示操作数中是否存在特殊值,并将相应的特殊值处理结果(如表1所示)输出至选择器。例如当操作数存在特殊值时,该特殊值指示信号为高电平,如果操作数中不存在特殊值,则该特殊值指示信号为低电平。当特殊值判断单元检测到该近似浮点乘法器收到的两个操作数中存在特殊值时,阶码运算单元和尾数运算单元根据相应的特殊值指示信号停止相关计算,选择器根据相应的特殊值指示信号,选择来自特殊值判断单元的输出作为最终的乘积C。当特殊值判断单元没有检测到该近似浮点乘法器收到的两个操作数中存在特殊值时,阶码运算单元和尾数运算单元根据相应的特殊值指示信号进行相关计算,选择器根据相应的特殊值指示信号,选择来自符号位运算单元、规格化运算单元、移位单元的输出作为最终的乘积C。特殊值判断单元例如可以通过比较器或编码器等电路来实现。
继续参考图4,阶码运算单元和尾数运算单元在收到来自特殊值判断单元指示操作数中存在特殊值的特殊值指示信号时,不再继续进行相关运算。当阶码运算单元收到指示操作数中不存在特殊值的特殊值指示信号时,将操作数A的阶码与操作数B的阶码进行相加,以得到A与B的乘积C的阶码。当尾数运算单元收到来自特殊值判断单元的指示操作数中不存在特殊值的特殊值指示信号时执行如上文参考图1介绍类似的操作。
以图5为例,举例说明根据本发明实施例提供的近似浮点乘法器的工作流程。两操作数OpeA(1100101010110000)和OpeB(0100011101000000)分别具有1位符号位,5位阶码,10位尾数。该近似浮点乘法器通过符号位运算单元对两操作数的符号位进行异或操作,得到乘积的符号位。通过阶码运算单元对两操作数阶码OpeA和OpeB相加得到乘积的阶码10100。尾码运算单元根据指定的精度(例如p为2)分别从操作数OpeA和OpeB的尾数截取高两位,即10和11,并在所截取的尾数首位补1,末位补1,从而得到1101和1111以供后续的乘法运算,将编码后得到的“1101”与“1111”相乘后的运算结果为11000011,然后规格化单元依据浮点数规格化规则进行规格化处理,将最高位去除后剩余值右移一位并且阶码值加1,则经规格化后的输出的阶码为10101,经规格化后输出的尾数为1000011,接着通过移位单元在规格化单元输出的数的低位补0使其到达10个位,从而得到乘积的尾数。最终的乘积为1101011000011000。这两个操作数OpeA和OpeB进行乘法操作后的精确运算结果转换为十进制数为-96.96875,而采用本发明提出的近似浮点乘法器进行近似计算得到的运算结果为-99,计算误差为2.09%。
可以看出,相比神经网络处理器中传统浮点乘法器存在的设计复杂度高、运算速度差、能量效率低等问题,在根据本发明实施例的近似浮点乘法器中,采用近似计算的方式,根据精度需求截取尾数的不同位数进行相应乘法操作,降低了乘法操作的能量损耗,提高了乘法运算速度,进而使得神经网络处理系统性能更加高效。
图6为根据本发明一个实施例的浮点数乘法的流程示意图。该方法主要包括下列步骤:
步骤S1,对两个操作数的符号位进行异或运算,得到这两个操作数的乘积的符号位;
步骤S2,对两个操作数的阶码进行加法运算,以得到这两个操作数的乘积的阶码;
步骤S3,根据指定的精度p,从每个操作数的尾数截取高p位,并在所截取的p位前后均补上1,从而得到两个新的尾数(其长度为p+2位),
步骤S4,对于所得到的两个新的尾数进行乘法运算以得到近似尾数;
步骤S5,依据浮点数规格化规则对步骤S4得到的近似尾数和自步骤S2得到的乘积的阶码进行规格化处理;
步骤S6,在经规格化后的近似尾数末尾补0,使其位数与操作数的尾数位数相一致,从而得到乘积的尾数,最后输出由上述乘积的符号位、经规格化后的乘积阶码和乘积的尾数构成的乘积。
在优选的实施例中,该浮点数乘法还包括在步骤S1-S6之前执行下列步骤:判断接收到的待相乘的两个操作数中是否存在特殊值,若有特殊值,则直接进行上文结合图4介绍的特殊值处理(如表1所示);若没有特殊值,则继续至步骤S1-S6。在又一个实施例中,还可以包括调整或设置操作数的尾数中要参与乘法运算的位数(即精度p)的步骤。
虽然本发明已经通过优选实施例进行了描述,然而本发明并非局限于这里所描述的实施例,在不脱离本发明范围的情况下还包括所做出的各种改变以及变化。

Claims (10)

1.一种近似浮点乘法器,包括:
符号位运算单元,其对输入的两个操作数的符号位进行异或运算以得到这两个操作数的乘积的符号位;
阶码运算单元,其对输入的两个操作数的阶码进行加法运算,以得到所述乘积的阶码;
尾数运算单元,其根据指定的精度从各操作数尾数高位开始截取部分位并在所截取的部分位前后补1得到两个新的尾数,对这两个新的尾数进行乘法运算,以得到乘积的近似尾数,其中所述精度指示操作数的尾数中需要参与乘法运算的位数;
规格化单元,其对所述近似尾数和所述乘积的阶码进行规格化处理;
移位单元,其在经规格化后的近似尾数的低位补零使其位数与操作数的尾数位数一致,以得到所述乘积的尾数。
2.根据权利要求1所述的近似浮点乘法器,还包括特殊值判断单元,其判断输入的两个操作数中是否存在特殊值并向阶码运算单元和尾数运算单元发出指示所述判断的结果的特殊值指示信号,以及当判断这两个操作数中存在特殊值时,直接输出预先设定的与所检测的特殊值对应的结果作为这两个操作数的乘积。
3.根据权利要求2所述的近似浮点乘法器,其中所述阶码运算单元和所述尾数运算单元在收到来自特殊值判断单元指示操作数中存在特殊值的特殊值指示信号时,不再继续进行相关运算。
4.根据权利要求1或2所述的近似浮点乘法器,其中所述尾数计算单元包括第一编码器、第二编码器和定位乘法器,其中第一编码器和第二编码器根据收到的精度指示信号分别从各操作数尾数高位开始截取部分位并在所截取的部分位前后补1;定位乘法器对第一和第二编码器的输入数据进行乘法运算并输出运算结果。
5.根据权利要求1-4中任一项所述的近似浮点乘法器,其中所述精度的最大值为操作数尾数的位数,最小值为零。
6.一种浮点数乘法,包括:
步骤a1,将待相乘的两个操作数的符号位进行异或运算,得到这两个操作数的乘积的符号位;
步骤a2,将这两个操作数的阶码进行加法运算,以得到所述乘积的阶码;
步骤a3,根据指定的精度从各操作数尾数高位开始截取部分位并在所截取的部分位前后补1得到两个新的尾数,其中所述精度指示操作数的尾数中需要参与乘法运算的位数;
步骤a4,对这两个新的尾数进行乘法运算,以得到乘积的近似尾数;
步骤a5,对所述近似尾数和所述乘积的阶码进行规格化处理;
步骤a6,在经规格化处理的近似尾数的低位补零使其位数与操作数的尾数位数一致,以得到所述乘积的尾数。
7.根据权利要求6所述的浮点数乘法,在步骤a1-a6之前还包括步骤a0,判断待相乘的两个操作数中是否存在特殊值,若有特殊值,则直接输出预先设定的与所述特殊值对应的结果值作为这两个操作数的乘积,否则继续至步骤a1。
8.根据权利要求7所述的浮点数乘法,在步骤a0中:
如果这两个操作数中存在零值,则直接输出零值;
如果这两个操作数相同且均为浮点表示范围内的最大值或最小值,则直接输出最大值;
如果这两个操作数中一个为最大值且另一个为最小值,则直接输出最小值;
如果这两个操作数中仅存在一个最大值或最小值,则直接输出该最大值或最小值。
9.根据权利要求6-8中任一项所述的浮点数乘法,还包括动态调整或设置所述精度的步骤。
10.根据权利要求6-8中任一项所述的浮点数乘法,其中所述精度的最大值为操作数尾数的位数,最小值为零。
CN201710311756.1A 2017-05-05 2017-05-05 面向神经网络处理器的近似浮点乘法器及浮点数乘法 Active CN107273090B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710311756.1A CN107273090B (zh) 2017-05-05 2017-05-05 面向神经网络处理器的近似浮点乘法器及浮点数乘法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710311756.1A CN107273090B (zh) 2017-05-05 2017-05-05 面向神经网络处理器的近似浮点乘法器及浮点数乘法

Publications (2)

Publication Number Publication Date
CN107273090A true CN107273090A (zh) 2017-10-20
CN107273090B CN107273090B (zh) 2020-07-31

Family

ID=60073715

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710311756.1A Active CN107273090B (zh) 2017-05-05 2017-05-05 面向神经网络处理器的近似浮点乘法器及浮点数乘法

Country Status (1)

Country Link
CN (1) CN107273090B (zh)

Cited By (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109325590A (zh) * 2018-09-14 2019-02-12 中国科学院计算技术研究所 用于实现计算精度可变的神经网络处理器的装置
CN109783055A (zh) * 2017-11-10 2019-05-21 瑞昱半导体股份有限公司 浮点数运算电路及方法
CN110032708A (zh) * 2018-01-09 2019-07-19 三星电子株式会社 计算乘积的方法及系统和计算点积及计算卷积的方法
CN110390389A (zh) * 2018-04-17 2019-10-29 快图有限公司 神经网络引擎
CN110457068A (zh) * 2018-05-07 2019-11-15 国际商业机器公司 用于深度学习加速的非常低精度浮点表示
CN110688090A (zh) * 2019-09-11 2020-01-14 北京探境科技有限公司 一种用于ai计算的浮点乘法计算方法、电路、设备
CN110780844A (zh) * 2018-07-24 2020-02-11 爱思开海力士有限公司 神经网络加速装置及其操作方法
CN110888623A (zh) * 2019-11-25 2020-03-17 集美大学 数据转换方法、乘法器、加法器、终端设备及存储介质
CN111313905A (zh) * 2020-02-24 2020-06-19 南京大学 一种浮点数转换方法及装置
CN111401532A (zh) * 2020-04-28 2020-07-10 南京宁麒智能计算芯片研究院有限公司 一种卷积神经网络推理加速器及加速方法
CN112163185A (zh) * 2020-09-30 2021-01-01 中国科学院计算技术研究所 Fft/ifft运算装置及基于该装置的fft/ifft运算方法
CN112230882A (zh) * 2020-10-28 2021-01-15 海光信息技术股份有限公司 浮点数处理装置、浮点数加法装置及浮点数处理方法
CN112527240A (zh) * 2020-12-22 2021-03-19 中国电子科技集团公司第四十七研究所 一种配合80c186cpu进行的浮点运算装置
CN112558918A (zh) * 2020-12-11 2021-03-26 北京百度网讯科技有限公司 用于神经网络的乘加运算方法和装置
CN112906863A (zh) * 2021-02-19 2021-06-04 山东英信计算机技术有限公司 一种神经元加速处理方法、装置、设备及可读存储介质
CN113515259A (zh) * 2021-05-24 2021-10-19 西安电子科技大学 一种适用于浮点格式的复数的近似取模实现电路及方法
CN113590195A (zh) * 2021-07-22 2021-11-02 中国人民解放军国防科技大学 支持浮点格式乘加的存算一体化dram计算部件设计
WO2022170809A1 (zh) * 2021-02-09 2022-08-18 南方科技大学 一种适用于多精度计算的可重构浮点乘加运算单元及方法
US11620105B2 (en) 2019-02-06 2023-04-04 International Business Machines Corporation Hybrid floating point representation for deep learning acceleration
CN116594589A (zh) * 2019-12-31 2023-08-15 华为技术有限公司 浮点数乘法计算的方法、装置和算术逻辑单元
CN117492693A (zh) * 2024-01-03 2024-02-02 沐曦集成电路(上海)有限公司 一种用于滤波器的浮点数据处理系统

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1831753A (zh) * 2005-03-08 2006-09-13 中国科学院计算技术研究所 一种浮点乘法器及其兼容双精度和双单精度计算的方法
US20130282783A1 (en) * 2012-04-24 2013-10-24 Futurewei Technologies, Inc. Systems and Methods for a Floating-Point Multiplication and Accumulation Unit Using a Partial-Product Multiplier in Digital Signal Processors
CN104991757A (zh) * 2015-06-26 2015-10-21 浪潮(北京)电子信息产业有限公司 一种浮点处理方法及浮点处理器
CN105389157A (zh) * 2015-10-29 2016-03-09 中国人民解放军国防科学技术大学 基于Goldschmidt算法的浮点除法器

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1831753A (zh) * 2005-03-08 2006-09-13 中国科学院计算技术研究所 一种浮点乘法器及其兼容双精度和双单精度计算的方法
US20130282783A1 (en) * 2012-04-24 2013-10-24 Futurewei Technologies, Inc. Systems and Methods for a Floating-Point Multiplication and Accumulation Unit Using a Partial-Product Multiplier in Digital Signal Processors
CN104991757A (zh) * 2015-06-26 2015-10-21 浪潮(北京)电子信息产业有限公司 一种浮点处理方法及浮点处理器
CN105389157A (zh) * 2015-10-29 2016-03-09 中国人民解放军国防科学技术大学 基于Goldschmidt算法的浮点除法器

Cited By (31)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109783055A (zh) * 2017-11-10 2019-05-21 瑞昱半导体股份有限公司 浮点数运算电路及方法
CN110032708A (zh) * 2018-01-09 2019-07-19 三星电子株式会社 计算乘积的方法及系统和计算点积及计算卷积的方法
CN110390389A (zh) * 2018-04-17 2019-10-29 快图有限公司 神经网络引擎
CN110457068A (zh) * 2018-05-07 2019-11-15 国际商业机器公司 用于深度学习加速的非常低精度浮点表示
CN110457068B (zh) * 2018-05-07 2023-03-14 国际商业机器公司 用于深度学习加速的非常低精度浮点表示
CN110780844A (zh) * 2018-07-24 2020-02-11 爱思开海力士有限公司 神经网络加速装置及其操作方法
CN109325590B (zh) * 2018-09-14 2020-11-03 中国科学院计算技术研究所 用于实现计算精度可变的神经网络处理器的装置
CN109325590A (zh) * 2018-09-14 2019-02-12 中国科学院计算技术研究所 用于实现计算精度可变的神经网络处理器的装置
US11620105B2 (en) 2019-02-06 2023-04-04 International Business Machines Corporation Hybrid floating point representation for deep learning acceleration
CN110688090A (zh) * 2019-09-11 2020-01-14 北京探境科技有限公司 一种用于ai计算的浮点乘法计算方法、电路、设备
CN110888623A (zh) * 2019-11-25 2020-03-17 集美大学 数据转换方法、乘法器、加法器、终端设备及存储介质
CN110888623B (zh) * 2019-11-25 2021-11-23 集美大学 数据转换方法、乘法器、加法器、终端设备及存储介质
CN116594589B (zh) * 2019-12-31 2024-03-26 华为技术有限公司 浮点数乘法计算的方法、装置和算术逻辑单元
CN116594589A (zh) * 2019-12-31 2023-08-15 华为技术有限公司 浮点数乘法计算的方法、装置和算术逻辑单元
CN111313905B (zh) * 2020-02-24 2023-10-13 南京大学 一种浮点数转换方法及装置
CN111313905A (zh) * 2020-02-24 2020-06-19 南京大学 一种浮点数转换方法及装置
CN111401532A (zh) * 2020-04-28 2020-07-10 南京宁麒智能计算芯片研究院有限公司 一种卷积神经网络推理加速器及加速方法
CN112163185B (zh) * 2020-09-30 2023-11-28 中国科学院计算技术研究所 Fft/ifft运算装置及基于该装置的fft/ifft运算方法
CN112163185A (zh) * 2020-09-30 2021-01-01 中国科学院计算技术研究所 Fft/ifft运算装置及基于该装置的fft/ifft运算方法
CN112230882A (zh) * 2020-10-28 2021-01-15 海光信息技术股份有限公司 浮点数处理装置、浮点数加法装置及浮点数处理方法
CN112558918A (zh) * 2020-12-11 2021-03-26 北京百度网讯科技有限公司 用于神经网络的乘加运算方法和装置
CN112527240B (zh) * 2020-12-22 2023-11-14 中国电子科技集团公司第四十七研究所 一种配合80c186cpu进行的浮点运算装置
CN112527240A (zh) * 2020-12-22 2021-03-19 中国电子科技集团公司第四十七研究所 一种配合80c186cpu进行的浮点运算装置
WO2022170809A1 (zh) * 2021-02-09 2022-08-18 南方科技大学 一种适用于多精度计算的可重构浮点乘加运算单元及方法
CN112906863A (zh) * 2021-02-19 2021-06-04 山东英信计算机技术有限公司 一种神经元加速处理方法、装置、设备及可读存储介质
CN113515259B (zh) * 2021-05-24 2022-09-09 西安电子科技大学 一种适用于浮点格式的复数的近似取模实现电路及方法
CN113515259A (zh) * 2021-05-24 2021-10-19 西安电子科技大学 一种适用于浮点格式的复数的近似取模实现电路及方法
CN113590195A (zh) * 2021-07-22 2021-11-02 中国人民解放军国防科技大学 支持浮点格式乘加的存算一体化dram计算部件设计
CN113590195B (zh) * 2021-07-22 2023-11-07 中国人民解放军国防科技大学 支持浮点格式乘加的存算一体化dram计算部件
CN117492693A (zh) * 2024-01-03 2024-02-02 沐曦集成电路(上海)有限公司 一种用于滤波器的浮点数据处理系统
CN117492693B (zh) * 2024-01-03 2024-03-22 沐曦集成电路(上海)有限公司 一种用于滤波器的浮点数据处理系统

Also Published As

Publication number Publication date
CN107273090B (zh) 2020-07-31

Similar Documents

Publication Publication Date Title
CN107273090A (zh) 面向神经网络处理器的近似浮点乘法器及浮点数乘法
CN107291419A (zh) 用于神经网络处理器的浮点乘法器及浮点数乘法
CN100570552C (zh) 一种并行浮点乘加单元
CN101133389B (zh) 多用途乘法-加法功能单元
CN101174200A (zh) 一种浮点乘加融合单元的五级流水线结构
CN106155627B (zh) 基于t_cordic算法的低开销迭代三角函数装置
CN104899004A (zh) 一种用于将浮点操作数相乘的数据处理装置和方法
WO2022170809A1 (zh) 一种适用于多精度计算的可重构浮点乘加运算单元及方法
CA2327924A1 (en) Processor design for extended-precision arithmetic
WO2013109532A1 (en) Algebraic processor
CN112463113B (zh) 浮点加法单元
CN101371221A (zh) 预饱和固定点乘法器
KR102481418B1 (ko) 단일 곱셈-누산 방법 및 장치
US7752250B2 (en) Rounding floating point division results
CN110210611A (zh) 一种用于卷积神经网络计算的动态自适应数据截断方法
TW200532552A (en) Methods and apparatus for performing mathematical operations using scaled integers
Gustafsson et al. Approximate floating-point operations with integer units by processing in the logarithmic domain
JPH04291418A (ja) 除算回路の前処理装置
US9569175B2 (en) FMA unit, in particular for utilization in a model computation unit for purely hardware-based computing of function models
CN100476718C (zh) 一种64比特浮点乘加器及其流水节拍划分方法
EP0738959A1 (en) Method and apparatus for finding arctangents
US7689642B1 (en) Efficient accuracy check for Newton-Raphson divide and square-root operations
EP0166999A2 (en) Time saving method for computing square roots on a computer having a "one bit at a time" division instruction
US5646876A (en) Method and apparatus for reducing rounding error when evaluating binary floating point polynomials
KR940008610B1 (ko) 고속 수렴 인자 결정 방법 및 프로세서

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