CN112181360B - 浮点数的乘法运算方法及计算机可读存储介质 - Google Patents

浮点数的乘法运算方法及计算机可读存储介质 Download PDF

Info

Publication number
CN112181360B
CN112181360B CN201910598772.2A CN201910598772A CN112181360B CN 112181360 B CN112181360 B CN 112181360B CN 201910598772 A CN201910598772 A CN 201910598772A CN 112181360 B CN112181360 B CN 112181360B
Authority
CN
China
Prior art keywords
floating point
integer
point numbers
power value
integers
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
CN201910598772.2A
Other languages
English (en)
Other versions
CN112181360A (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.)
Fujian Tianquan Educational Technology Ltd
Original Assignee
Fujian Tianquan Educational Technology 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 Fujian Tianquan Educational Technology Ltd filed Critical Fujian Tianquan Educational Technology Ltd
Priority to CN201910598772.2A priority Critical patent/CN112181360B/zh
Publication of CN112181360A publication Critical patent/CN112181360A/zh
Application granted granted Critical
Publication of CN112181360B publication Critical patent/CN112181360B/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/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
    • 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/52Multiplying; Dividing
    • G06F7/523Multiplying only
    • 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
    • G06F7/552Powers or roots, e.g. Pythagorean sums

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Pure & Applied Mathematics (AREA)
  • Mathematical Optimization (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

本发明公开了一种浮点数的乘法运算方法及计算机可读存储介质,方法包括:建立第一量化查找表和第二量化查找表,第一量化查找表用于记录浮点数与其对应的整数集的关联关系,第二量化查找表用于记录整数与其对应的浮点数的关联关系;获取待相乘的两个浮点数;根据第一量化查找表,分别获取两个浮点数对应的整数集,得到第一整数集和第二整数集;分别将第一整数集中的各整数与第二整数集中的各整数进行相加,得到第三整数集;根据第二量化查找表,分别获取第三整数集中各整数对应的浮点数;对各整数对应的浮点数进行相加,得到待相乘的两个浮点数的乘法运算结果。本发明在加速卷积操作的同时,大幅度减少量化带来的精度损失。

Description

浮点数的乘法运算方法及计算机可读存储介质
技术领域
本发明涉及卷积神经网络技术领域,尤其涉及一种浮点数的乘法运算方法及计算机可读存储介质。
背景技术
卷积神经网络是当前计算机视觉领域的主流技术,可广泛应用于目标检测、识别、超分辨率、三维重建等领域。由于卷积神经网络模型通常具有参数量大、浮点运算量多等特点,当前的方法大多需要高性能的计算平台来实现卷积的并行操作。为此,研究人员已经逐渐开始关注卷积操作的加速,以及量化操作。例如,基于二值量化的卷积网络,或稀疏表示的网络等。然而二值量化方法精度损失较大,稀疏表示网络则难以并行处理,难以部署到类似手机等移动终端的应用。随着移动设备中图像与视频的推广普及,急需高性能、可部署在廉价计算平台的目标检测与识别方法,以满足不同应用场景的需求,但目前缺乏针对移动设备的特点给出的有效的卷积加速方案。
发明内容
本发明所要解决的技术问题是:提供一种浮点数的乘法运算方法及计算机可读存储介质,可提高卷积计算中的浮点乘法运算的速度。
为了解决上述技术问题,本发明采用的技术方案为:一种浮点数的乘法运算方法,包括:
建立第一量化查找表和第二量化查找表,所述第一量化查找表用于记录浮点数与其对应的整数集的关联关系,所述第二量化查找表用于记录整数与其对应的浮点数的关联关系;
获取待相乘的两个浮点数;
根据第一量化查找表,分别获取所述两个浮点数对应的整数集,得到第一整数集和第二整数集;
分别将第一整数集中的各整数与第二整数集中的各整数进行相加,得到第三整数集;
根据第二量化查找表,分别获取所述第三整数集中各整数对应的浮点数;
对所述各整数对应的浮点数进行相加,得到所述待相乘的两个浮点数的乘法运算结果。
本发明还涉及一种计算机可读存储介质,其上存储有计算机程序,所述程序被处理器执行时实现如下步骤:
建立第一量化查找表和第二量化查找表,所述第一量化查找表用于记录浮点数与其对应的整数集的关联关系,所述第二量化查找表用于记录整数与其对应的浮点数的关联关系;
获取待相乘的两个浮点数;
根据第一量化查找表,分别获取所述两个浮点数对应的整数集,得到第一整数集和第二整数集;
分别将第一整数集中的各整数与第二整数集中的各整数进行相加,得到第三整数集;
根据第二量化查找表,分别获取所述第三整数集中各整数对应的浮点数;
对所述各整数对应的浮点数进行相加,得到所述待相乘的两个浮点数的乘法运算结果。
本发明的有益效果在于:根据第一量化查找表,将待相乘的两个浮点数转化为对应的整数集,然后对整数集进行相加操作,接着根据第二量化查找表,将相加得到的整数转化为对应的浮点数,最后将这些浮点数进行相加,即可得到两个浮点数的乘法运算结果。本发明将浮点乘法的操作,通过指数量化的原则转化成指数加法操作,在加速卷积操作的同时,大幅度减少量化带来的精度损失。
附图说明
图1为本发明实施例一的一种浮点数的乘法运算方法的流程图;
图2为本发明实施例一的步骤S1的方法流程图。
具体实施方式
为详细说明本发明的技术内容、所实现目的及效果,以下结合实施方式并配合附图详予说明。
本发明最关键的构思在于:将浮点乘法运算替换成对应的指数加法运算。
请参阅图1,一种浮点数的乘法运算方法,包括:
建立第一量化查找表和第二量化查找表,所述第一量化查找表用于记录浮点数与其对应的整数集的关联关系,所述第二量化查找表用于记录整数与其对应的浮点数的关联关系;
获取待相乘的两个浮点数;
根据第一量化查找表,分别获取所述两个浮点数对应的整数集,得到第一整数集和第二整数集;
分别将第一整数集中的各整数与第二整数集中的各整数进行相加,得到第三整数集;
根据第二量化查找表,分别获取所述第三整数集中各整数对应的浮点数;
对所述各整数对应的浮点数进行相加,得到所述待相乘的两个浮点数的乘法运算结果。
从上述描述可知,本发明的有益效果在于:在加速卷积操作的同时,大幅度减少量化带来的精度损失。
进一步地,建立第一量化查找表的步骤具体为:
将预设的待量化区间平均分成预设个数的离散区间;
预设底数,并根据预设的指数序列,计算所述底数的幂值序列,所述指数序列中的指数为整数;
分别获取各离散区间中的浮点数;
在所述幂值序列中获取与所述浮点数最接近且小于所述浮点数的一幂值,得到第一幂值,并将所述第一幂值的指数加入所述浮点数对应的指数组合;
判断所述指数组合中的指数个数是否达到预设的指数项个数;
若达到,则将所述指数组合作为所述浮点数对应的整数集;
若未达到,则计算所述指数组合中各指数对应的幂值的总和,并计算所述浮点数与所述总和的差值;
在所述幂值序列中获取与所述差值最接近且小于所述差值的一幂值,得到第二幂值,并将所述第二幂值的指数加入所述浮点数对应的指数组合;
继续执行所述判断所述指数组合中的指数个数是否达到预设的指数项个数的步骤。
由上述描述可知,采用贪心算法原则,将浮点数转化为对应的指数组合。
进一步地,建立第二量化查找表的步骤具体为:
将整数作为指数,计算所述预设底数的幂值,并将所述幂值的浮点值作为所述整数对应的浮点数。
由上述描述可知,采用与建立第一量化查找表时的底数,计算以整数为指数的幂值,并获取该幂值的浮点值,以将整数转化为对应的浮点数。
进一步地,所述获取待相乘的两个浮点数具体为:
根据预设的数据库,对预设的卷积神经网络模型进行训练,得到卷积参数和全连接参数,所述卷积参数和全连接参数为浮点数;
从所述卷积参数或全连接参数中获取待相乘的两个浮点数。
进一步地,所述分别将第一整数集中的各整数与第二整数集中的各整数进行相加,得到第三整数集具体为:
依次从所述第一整数集中取出一整数;
将所述一整数分别与所述第二整数集中的各整数进行相加,并将相加得到的整数加入第三整数集合。
本发明还提出一种计算机可读存储介质,其上存储有计算机程序,所述程序被处理器执行时实现如上所述的步骤。
实施例一
请参照图1-2,本发明的实施例一为:一种浮点数的乘法运算方法,可应用于卷积神经网络中的浮点乘法运算,可在加速卷积操作的同时,大幅度减少量化带来的精度损失。如图1所示,包括如下步骤:
S1:建立第一量化查找表和第二量化查找表。所述第一量化查找表Float2Exp用于记录浮点数与其对应的整数集的关联关系,即用于根据浮点数查找对应的整数集;所述第二量化查找表Exp2Float用于记录整数与其对应的浮点数的关联关系,即用于根据整数查找对应的浮点数。
本实施例中,采用贪心算法建立第一量化查找表。具体地,如图2所示,建立第一量化查找表包括如下步骤:
S101:将预设的待量化区间平均分成M个离散区间,所述M为预设的区间个数。
S102:预设底数,并根据预设的指数序列,计算所述底数的幂值序列,所述指数序列中的指数为依次递增的正整数;例如,预设底数a,预设指数上限为n,则指数序列为1,2,…,n,a的幂值序列即为a1,a2,...,an
S103:分别获取各离散区间中的浮点数;可依序遍历各离散区间,然后获取当前离散区间的浮点数。
S104:在所述幂值序列中获取与所述浮点数最接近且小于所述浮点数的一幂值,得到第一幂值,并将所述第一幂值的指数加入所述浮点数对应的指数组合。
S105:判断所述指数组合中的指数个数是否达到预设的指数项个数,若是,则执行步骤S106,若否,则执行步骤S107。
S106:将所述指数组合作为所述浮点数对应的整数集。
S107:计算所述指数组合中各指数对应的幂值的总和,并计算所述浮点数与所述总和的差值;
S108:在所述幂值序列中获取与所述差值最接近且小于所述差值的一幂值,得到第二幂值,并将所述第二幂值的指数加入所述浮点数对应的指数组合;继续执行步骤S105。
例如,假设当前为第i个离散区间,第i个离散区间的浮点数为xi,在所述幂值序列中查找与xi最接近且小于xi的一幂值,假设为aj1,则将j1加入xi对应的指数组合。
假设指数项个数K=1,则浮点数xi对应的整数集为(j1)。
假设指数项个数K=2,则继续计算xi与aj1的差值,即差值r1=xi-aj1,然后在所述幂值序列中查找与所述差值r1最接近且小于所述差值r1的一幂值,假设为aj2,则将j2加入xi对应的指数组合。此时,指数组合中指数个数为两个,达到了指数项个数K=2的要求,因此,浮点数xi对应的整数集为(j1,j2)。
假设指数项个数K=3,则继续计算xi与(aj1+aj2)的差值,即差值r2=xi-aj1-aj2,然后在所述幂值序列中查找与所述差值r2最接近且小于所述差值r2的一幂值,假设为aj3,则将j3加入xi对应的指数组合。此时,指数组合中指数个数为三个,达到了指数项个数K=3的要求,因此,浮点数xi对应的整数集为(j1,j2,j3)。
以此类推。
其中,待量化区间根据卷积网络设置,一般为[-1,1]。底数a的取值范围为[1,2],当a的取值为[1.1,1.2]时,卷积量化的模型可以达到精度和速度上的平衡。优选地,M=128。指数上限n与实际运用中的分类精度相关,例如对于图像分类问题,n的优选取值为128。指数项个数K一般取值为1或者2;其中,当K=1时,可以达到最快加速效果;当K=2时,网络运行效果可以达到精度与速度的平衡。
本实施例中,通过设定适当的参数,使得处于同一个离散区间中的所有浮点数对应的整数集相同。在步骤S103中获取离散区间中的浮点数时,一个离散区间只需获取一个浮点数来计算对应的整数集,即可获取处于该离散区间的所有浮点数对应的整数集,第一量化查找表也只需记录每个离散区间中的一个浮点数对应的整数集。因此,离散区间的个数M与第一量化查找表的长度等价。优选地,对于第i个离散区间的浮点数xi,令xi=i/M,i=0,1,…,M-1。
对于第二量化查找表,根据输入的整数N,计算aN的浮点值,并将该浮点值存储为整数N对应的浮点数。
S2:从卷积神经网络的卷积层或全连接层中获取待相乘的两个浮点数。
具体地,先根据预设的数据集,对预设的卷积神经网络模型进行训练,得到卷积参数和全连接参数,所述卷积参数和全连接参数为浮点数;即对于给定的卷积神经网络模型,根据具体数据库(如ImageNet)进行训练,得到用浮点数存储的卷积参数和全连接参数。然后从所述卷积参数或全连接参数中获取待相乘的两个浮点数。
S3:根据第一量化查找表,分别获取所述两个浮点数对应的整数集,得到第一整数集和第二整数集。
S4:分别将第一整数集中的各整数与第二整数集中的各整数进行相加,得到第三整数集;其中,第三整数集中的整数个数为第一整数集中的整数个数与第二整数集合中的整数个数的乘积。
具体地,依次从所述第一整数集中取出一整数;将所述一整数分别与所述第二整数集中的各整数进行相加,并将相加得到的整数加入第三整数集合。
例如,假设第一整数集为(i1),第二整数集为(j1),则第三整数集为(i1+j1)。假设第一整数集为(i1,i2),第二整数集为(j1,j2),则第三整数集为(i1+j1,i1+j2,i2+j1,i2+j2)。
S5:根据第二量化查找表,分别获取所述第三整数集中各整数对应的浮点数。
S6:对所述各整数对应的浮点数进行相加,得到所述待相乘的两个浮点数的乘法运算结果。
例如,假设待相乘的两个浮点数分别为x1和x2
当指数项个数K=1时,假设浮点数x1对应的第一整数集为(i1),浮点数x2对应的第二整数集为(j1),也即x1≈ai1,x2≈aj1,则x1和x2之间的乘法运算可以转化为指数的加法运算,即x1×x2≈ai1+j1。因此,将第一整数集中的各整数与第二整数集中的各整数进行相加,得到第三整数集(i1+j1),然后在第二量化查找表中查找(i1+j1)对应的浮点数ai1+j1,将ai1 +j1作为浮点数x1和x2的乘法运算结果,即令x1×x2=ai1+j1
当指数项个数K=2时,假设浮点数x1对应的整数集为(i1,i2),浮点数x2对应的整数集为(j1,j2),也即x1≈ai1+ai2,x2≈aj1+aj2,则x1和x2之间的乘法运算可以转化为整数集之间的加法运算,即x1×x2≈ai1+j1+ai1+j2+ai2+j1+ai2+j2。因此,将第一整数集中的各整数与第二整数集中的各整数进行相加,得到第三整数集(i1+j1,i1+j2,i2+j1,i2+j2),然后在第二量化查找表中分别查找(i1+j1),(i1+j2),(i2+j1),(i2+j2)对应的浮点数,将这四个浮点数进行相加,然后将相加的结果作为浮点数x1和x2的乘法运算结果,即令x1×x2=ai1+j1+ai1 +j2+ai2+j1+ai2+j2
以此类推。
本实施例通过建立第一量化查找表,可快速获取待相乘的两个浮点数所对应的整数集,该整数集为与浮点数最接近的幂值的指数组合;通过建立第二量化查找表,可快速获取各整数对应的浮点数;根据幂运算中,同底数幂相乘,底数不变,指数相加的原理,将浮点数的乘法运算替换成指数加法运算,即转化成浮点数对应的整数集之间的加法运算,降低了计算复杂度。
本实施例提高了卷积神经网络中浮点乘法运算的运算速度,且可大幅度减少量化带来的精度损失,同时,可部署到移动终端,便于推广。
实施例二
本实施例是对应上述实施例的一种计算机可读存储介质,其上存储有计算机程序,所述程序被处理器执行时实现如下步骤:
建立第一量化查找表和第二量化查找表,所述第一量化查找表用于记录浮点数与其对应的整数集的关联关系,所述第二量化查找表用于记录整数与其对应的浮点数的关联关系;
获取待相乘的两个浮点数;
根据第一量化查找表,分别获取所述两个浮点数对应的整数集,得到第一整数集和第二整数集;
分别将第一整数集中的各整数与第二整数集中的各整数进行相加,得到第三整数集;
根据第二量化查找表,分别获取所述第三整数集中各整数对应的浮点数;
对所述各整数对应的浮点数进行相加,得到所述待相乘的两个浮点数的乘法运算结果。
进一步地,建立第一量化查找表的步骤具体为:
将预设的待量化区间平均分成预设个数的离散区间;
预设底数,并根据预设的指数序列,计算所述底数的幂值序列,所述指数序列中的指数为整数;
分别获取各离散区间中的浮点数;
在所述幂值序列中获取与所述浮点数最接近且小于所述浮点数的一幂值,得到第一幂值,并将所述第一幂值的指数加入所述浮点数对应的指数组合;
判断所述指数组合中的指数个数是否达到预设的指数项个数;
若达到,则将所述指数组合作为所述浮点数对应的整数集;
若未达到,则计算所述指数组合中各指数对应的幂值的总和,并计算所述浮点数与所述总和的差值;
在所述幂值序列中获取与所述差值最接近且小于所述差值的一幂值,得到第二幂值,并将所述第二幂值的指数加入所述浮点数对应的指数组合;
继续执行所述判断所述指数组合中的指数个数是否达到预设的指数项个数的步骤。
进一步地,建立第二量化查找表的步骤具体为:
将整数作为指数,计算所述预设底数的幂值,并将所述幂值的浮点值作为所述整数对应的浮点数。
进一步地,所述获取待相乘的两个浮点数具体为:
根据预设的数据库,对预设的卷积神经网络模型进行训练,得到卷积参数和全连接参数,所述卷积参数和全连接参数为浮点数;
从所述卷积参数或全连接参数中获取待相乘的两个浮点数。
进一步地,所述分别将第一整数集中的各整数与第二整数集中的各整数进行相加,得到第三整数集具体为:
依次从所述第一整数集中取出一整数;
将所述一整数分别与所述第二整数集中的各整数进行相加,并将相加得到的整数加入第三整数集合。
综上所述,本发明提供的一种浮点数的乘法运算方法及计算机可读存储介质,通过建立第一量化查找表,可快速获取待相乘的两个浮点数所对应的整数集,该整数集为与浮点数最接近的幂值的指数组合;通过建立第二量化查找表,可快速获取各整数对应的浮点数;根据幂运算中,同底数幂相乘,底数不变,指数相加的原理,将浮点数的乘法运算替换成指数加法运算,即转化成浮点数对应的整数集之间的加法运算,降低了计算复杂度。本发明提高了卷积神经网络中浮点乘法运算的运算速度,且可大幅度减少量化带来的精度损失,同时,可部署到移动终端,便于推广。
以上所述仅为本发明的实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等同变换,或直接或间接运用在相关的技术领域,均同理包括在本发明的专利保护范围内。

Claims (8)

1.一种浮点数的乘法运算方法,应用于移动设备,其特征在于,包括:
建立第一量化查找表和第二量化查找表,所述第一量化查找表用于记录浮点数与其对应的整数集的关联关系,所述第二量化查找表用于记录整数与其对应的浮点数的关联关系;
获取待相乘的两个浮点数;
根据第一量化查找表,分别获取所述两个浮点数对应的整数集,得到第一整数集和第二整数集;
分别将第一整数集中的各整数与第二整数集中的各整数进行相加,得到第三整数集;
根据第二量化查找表,分别获取所述第三整数集中各整数对应的浮点数;
对所述各整数对应的浮点数进行相加,得到所述待相乘的两个浮点数的乘法运算结果;
建立第一量化查找表的步骤具体为:
将预设的待量化区间平均分成预设个数的离散区间;
预设底数,并根据预设的指数序列,计算所述底数的幂值序列,所述指数序列中的指数为整数;
分别获取各离散区间中的浮点数;
在所述幂值序列中获取与所述浮点数最接近且小于所述浮点数的一幂值,得到第一幂值,并将所述第一幂值的指数加入所述浮点数对应的指数组合;
判断所述指数组合中的指数个数是否达到预设的指数项个数;
若达到,则将所述指数组合作为所述浮点数对应的整数集;
若未达到,则计算所述指数组合中各指数对应的幂值的总和,并计算所述浮点数与所述总和的差值;
在所述幂值序列中获取与所述差值最接近且小于所述差值的一幂值,得到第二幂值,并将所述第二幂值的指数加入所述浮点数对应的指数组合;
继续执行所述判断所述指数组合中的指数个数是否达到预设的指数项个数的步骤。
2.根据权利要求1所述的浮点数的乘法运算方法,其特征在于,建立第二量化查找表的步骤具体为:
将整数作为指数,计算所述预设底数的幂值,并将所述幂值的浮点值作为所述整数对应的浮点数。
3.根据权利要求1所述的浮点数的乘法运算方法,其特征在于,所述获取待相乘的两个浮点数具体为:
根据预设的数据库,对预设的卷积神经网络模型进行训练,得到卷积参数和全连接参数,所述卷积参数和全连接参数为浮点数;
从所述卷积参数或全连接参数中获取待相乘的两个浮点数。
4.根据权利要求1所述的浮点数的乘法运算方法,其特征在于,所述分别将第一整数集中的各整数与第二整数集中的各整数进行相加,得到第三整数集具体为:
依次从所述第一整数集中取出一整数;
将所述一整数分别与所述第二整数集中的各整数进行相加,并将相加得到的整数加入第三整数集合。
5.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述程序被处理器执行时实现如下步骤:
建立第一量化查找表和第二量化查找表,所述第一量化查找表用于记录浮点数与其对应的整数集的关联关系,所述第二量化查找表用于记录整数与其对应的浮点数的关联关系;
获取待相乘的两个浮点数;
根据第一量化查找表,分别获取所述两个浮点数对应的整数集,得到第一整数集和第二整数集;
分别将第一整数集中的各整数与第二整数集中的各整数进行相加,得到第三整数集;
根据第二量化查找表,分别获取所述第三整数集中各整数对应的浮点数;
对所述各整数对应的浮点数进行相加,得到所述待相乘的两个浮点数的乘法运算结果;
建立第一量化查找表的步骤具体为:
将预设的待量化区间平均分成预设个数的离散区间;
预设底数,并根据预设的指数序列,计算所述底数的幂值序列,所述指数序列中的指数为整数;
分别获取各离散区间中的浮点数;
在所述幂值序列中获取与所述浮点数最接近且小于所述浮点数的一幂值,得到第一幂值,并将所述第一幂值的指数加入所述浮点数对应的指数组合;
判断所述指数组合中的指数个数是否达到预设的指数项个数;
若达到,则将所述指数组合作为所述浮点数对应的整数集;
若未达到,则计算所述指数组合中各指数对应的幂值的总和,并计算所述浮点数与所述总和的差值;
在所述幂值序列中获取与所述差值最接近且小于所述差值的一幂值,得到第二幂值,并将所述第二幂值的指数加入所述浮点数对应的指数组合;
继续执行所述判断所述指数组合中的指数个数是否达到预设的指数项个数的步骤。
6.根据权利要求5所述的计算机可读存储介质,其特征在于,建立第二量化查找表的步骤具体为:
将整数作为指数,计算所述预设底数的幂值,并将所述幂值的浮点值作为所述整数对应的浮点数。
7.根据权利要求5所述的计算机可读存储介质,其特征在于,所述获取待相乘的两个浮点数具体为:
根据预设的数据库,对预设的卷积神经网络模型进行训练,得到卷积参数和全连接参数,所述卷积参数和全连接参数为浮点数;
从所述卷积参数或全连接参数中获取待相乘的两个浮点数。
8.根据权利要求5所述的计算机可读存储介质,其特征在于,所述分别将第一整数集中的各整数与第二整数集中的各整数进行相加,得到第三整数集具体为:
依次从所述第一整数集中取出一整数;
将所述一整数分别与所述第二整数集中的各整数进行相加,并将相加得到的整数加入第三整数集合。
CN201910598772.2A 2019-07-04 2019-07-04 浮点数的乘法运算方法及计算机可读存储介质 Active CN112181360B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910598772.2A CN112181360B (zh) 2019-07-04 2019-07-04 浮点数的乘法运算方法及计算机可读存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910598772.2A CN112181360B (zh) 2019-07-04 2019-07-04 浮点数的乘法运算方法及计算机可读存储介质

Publications (2)

Publication Number Publication Date
CN112181360A CN112181360A (zh) 2021-01-05
CN112181360B true CN112181360B (zh) 2023-06-16

Family

ID=73914556

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910598772.2A Active CN112181360B (zh) 2019-07-04 2019-07-04 浮点数的乘法运算方法及计算机可读存储介质

Country Status (1)

Country Link
CN (1) CN112181360B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113608718B (zh) * 2021-07-12 2024-06-25 中国科学院信息工程研究所 一种实现素数域大整数模乘计算加速的方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1857007A (zh) * 2003-06-10 2006-11-01 简-奥洛夫·斯特龙伯格 压缩数据的方法
CN1862483A (zh) * 2005-05-12 2006-11-15 国际商业机器公司 具有有效的函数估计指令的处理器
CN101685383A (zh) * 2008-09-28 2010-03-31 杨高祥 计算器、基于直接对阶的自由精度浮点数的运算电路
CN109901814A (zh) * 2019-02-14 2019-06-18 上海交通大学 自定义浮点数及其计算方法和硬件结构

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20180121168A1 (en) * 2016-10-27 2018-05-03 Altera Corporation Denormalization in multi-precision floating-point arithmetic circuitry

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1857007A (zh) * 2003-06-10 2006-11-01 简-奥洛夫·斯特龙伯格 压缩数据的方法
CN1862483A (zh) * 2005-05-12 2006-11-15 国际商业机器公司 具有有效的函数估计指令的处理器
CN101685383A (zh) * 2008-09-28 2010-03-31 杨高祥 计算器、基于直接对阶的自由精度浮点数的运算电路
CN109901814A (zh) * 2019-02-14 2019-06-18 上海交通大学 自定义浮点数及其计算方法和硬件结构

Also Published As

Publication number Publication date
CN112181360A (zh) 2021-01-05

Similar Documents

Publication Publication Date Title
KR102647858B1 (ko) 컨볼루션 신경망 계산을 위한 저전력 하드웨어 가속 방법 및 시스템
CN108701250B (zh) 数据定点化方法和装置
US20200401873A1 (en) Hardware architecture and processing method for neural network activation function
CN110852434B (zh) 基于低精度浮点数的cnn量化方法、前向计算方法及硬件装置
CN110852416A (zh) 基于低精度浮点数数据表现形式的cnn加速计算方法及系统
CN112200295B (zh) 稀疏化卷积神经网络的排序方法、运算方法、装置及设备
CN111105017B (zh) 神经网络量化方法、装置及电子设备
CN116701692B (zh) 一种图像生成方法、装置、设备及介质
CN112181360B (zh) 浮点数的乘法运算方法及计算机可读存储介质
CN110337636A (zh) 数据转换方法和装置
Wu et al. Efficient dynamic fixed-point quantization of CNN inference accelerators for edge devices
CN111383157B (zh) 图像处理方法、装置、车载运算平台、电子设备及系统
CN112200299B (zh) 神经网络计算装置、数据处理方法及装置
CN110210611A (zh) 一种用于卷积神经网络计算的动态自适应数据截断方法
CN112686365A (zh) 运行神经网络模型的方法、装置和计算机设备
EP4024198A1 (en) Information processing device, information processing system, and information processing method
CN112199072B (zh) 一种基于神经网络层的数据处理方法、装置及设备
CN112119407B (zh) 由补偿指令使能的低精度深度神经网络
WO2023165290A1 (zh) 数据处理方法及装置、电子设备和存储介质
CN114565760B (zh) 图像分割方法、模型的训练方法、装置、电子设备及介质
WO2021036412A1 (zh) 数据处理方法、装置、计算机设备和存储介质
CN115761250B (zh) 一种化合物逆合成方法及装置
WO2023004799A1 (zh) 电子设备及神经网络量化方法
CN116188875B (zh) 图像分类方法、装置、电子设备、介质和产品
TWI846454B (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