CN111367497B - 基于posit数据格式的浮点数乘法运算方法及装置 - Google Patents

基于posit数据格式的浮点数乘法运算方法及装置 Download PDF

Info

Publication number
CN111367497B
CN111367497B CN202010138192.8A CN202010138192A CN111367497B CN 111367497 B CN111367497 B CN 111367497B CN 202010138192 A CN202010138192 A CN 202010138192A CN 111367497 B CN111367497 B CN 111367497B
Authority
CN
China
Prior art keywords
value
segment
target
section
scientific representation
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
CN202010138192.8A
Other languages
English (en)
Other versions
CN111367497A (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.)
Nanjing University
Original Assignee
Nanjing University
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 Nanjing University filed Critical Nanjing University
Priority to CN202010138192.8A priority Critical patent/CN111367497B/zh
Publication of CN111367497A publication Critical patent/CN111367497A/zh
Application granted granted Critical
Publication of CN111367497B publication Critical patent/CN111367497B/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
    • G06F7/487Multiplying; Dividing
    • G06F7/4876Multiplying
    • 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
    • G06F7/485Adding; Subtracting
    • 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
    • G06F7/575Basic arithmetic logic units, i.e. devices selectable to perform either addition, subtraction or one of several logical operations, using, at least partially, the same circuitry
    • 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)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Nonlinear Science (AREA)
  • Complex Calculations (AREA)

Abstract

本申请提供了一种基于posit数据格式的浮点数乘法运算方法及装置。所述方法包括:获取第一浮点数和第二浮点数之后,分别对第一浮点数和第二浮点数进行分析,根据分析后得到的值,确定目标浮点数。采用posit数据格式进行乘法运算,则可以在0附近保证精度的同时,又可以很大程度的减少数据位宽,从而减少神经网络的训练时间,也降低了对于存储,位宽等资源的需求。

Description

基于posit数据格式的浮点数乘法运算方法及装置
技术领域
本申请涉及数据处理技术领域,特别涉及一种基于posit数据格式的浮点数乘法运算方法及装置。
背景技术
随着大数据时代的到来,人工神经网络技术得到飞速发展。人工神经网络是由大量处理单元互联组成的非线性、自适应信息处理系统,试图通过模拟大脑神经网络处理、记忆信息的方式进行信息处理。
人工神经网络的重点在于数据处理,即对浮点数进行运算、分析,从而建立神经网络模型。目前通常采用IEEE 754规范的规格化单精度浮点数格式(简称为IEEE 754数据格式)的浮点数执行数据处理的过程。这种数据格式的浮点数可以表示一个很大范围的数值,同时也能满足神经网络训练的要求。虽然上述IEEE 754数据格式的浮点数在精度上能够满足神经网络训练的要求,但是由于其位宽较长,在处理这种数据时需要耗费一定的时间并且消耗一定的资源,进而影响神经网络的训练速度,使神经网络训练的效率降低。
如果能够将posit数据格式的浮点数直接用于执行人工神经网络的数据处理过程,将大大缩短所需的时间。但是,目前还没有基于posit数据格式的浮点数的乘法运算方法。
发明内容
本申请提供了一种基于posit数据格式的浮点数乘法运算方法及装置,可用于实现基于posit数据格式的浮点数乘法运算。
第一方面,本申请实施例提供一种基于posit数据格式的浮点数乘法运算方法,所述方法包括:
获取posit数据格式的第一浮点数和posit数据格式的第二浮点数;
对所述第一浮点数进行分析,确定所述第一浮点数中第一符号段的值、第一组织段的值、第一指数段的值和第一尾数段的值;
对所述第二浮点数进行分析,确定所述第二浮点数中第二符号段的值、第二组织段的值、第二指数段的值和第二尾数段的值;
根据所述第一符号段的值和所述第二符号段的值,确定目标符号段的值;
根据所述第一尾数段的值和所述第二尾数段的值,确定目标尾数段的值和目标指数段的进位;
根据所述第一组织段的值、所述第一指数段的值、所述第二组织段的值、所述第二指数段的值和所述目标指数段的进位,确定目标组织段的值和目标指数段的值;
将所述目标符号段的值、所述目标组织段的值、所述目标指数段的值和所述目标尾数段的值以二进制码的形式按照预设总位宽组成目标浮点数。
结合第一方面,在第一方面的一种可实现方式中,根据所述第一符号段的值和所述第二符号段的值,确定目标符号段的值,包括:
按照预设的转换关系,将所述第一符号段的值转换成第一符号段的科学表示值;
按照预设的转换关系,将所述第二符号段的值转换成第二符号段的科学表示值;
根据所述第一符号段的科学表示值和所述第二符号段的科学表示值,确定目标符号段的科学表示值;
按照预设的转换关系,将所述目标符号段的科学表示值转换成所述目标符号段的值。
结合第一方面,在第一方面的一种可实现方式中,所述第一符号段的科学表示值按照下述公式确定:
SA=sA
其中,SA是所述第一符号段的科学表示值;sA是所述第一符号段的值;
所述第二符号段的科学表示值按照下述公式确定:
SB=sB
其中,SB是所述第二符号段的科学表示值;sB是所述第二符号段的值。
结合第一方面,在第一方面的一种可实现方式中,所述目标符号段的科学表示值按照下述公式确定:
S=SA⊕SB
其中,S是所述目标符号段的科学表示值;SA是所述第一符号段的科学表示值;SB是所述第二符号段的科学表示值。
结合第一方面,在第一方面的一种可实现方式中,所述目标符号段的值按照下述公式确定:
s=S
其中,s是所述目标符号段的值;S是所述目标符号段的科学表示值。
结合第一方面,在第一方面的一种可实现方式中,根据所述第一尾数段的值和所述第二尾数段的值,确定目标尾数段的值和目标指数段的进位,包括:
按照预设的转换关系,将所述第一尾数段的值转换成第一尾数段的科学表示值;
按照预设的转换关系,将所述第二尾数段的值转换成第二尾数段的科学表示值;
根据所述第一尾数段的科学表示值与所述第二尾数段的科学表示值的乘积,确定所述目标尾数段的科学表示值和所述目标指数段的进位;
按照预设的转换关系,将所述目标尾数段的科学表示值转换成所述目标尾数段的值。
结合第一方面,在第一方面的一种可实现方式中,所述第一尾数段的科学表示值按照下述公式确定:
FA=fA
其中,FA是所述第一尾数段的科学表示值;fA是所述第一尾数段的值;
所述第二尾数段的科学表示值按照下述公式确定:
FB=fB
其中,FB是所述第二尾数段的科学表示值;fB是所述第二尾数段的值。
结合第一方面,在第一方面的一种可实现方式中,所述目标尾数段的科学表示值和所述目标指数段的进位按照下述步骤确定:
计算下述公式中的X、Y和Z:
1.FA*1.FB=XY.Z
其中,FA是所述第一尾数段的科学表示值;FB是所述第二尾数段的科学表示值;X表示所述目标指数段的进位,取值为0或1;Y表示乘法结果的次高位,取值为0或1;Z表示乘法结果小数点后的所有尾数;
如果X=0,所述目标尾数段的科学表示值根据下述公式确定:
F=Z
如果X=1,所述目标尾数段的科学表示值根据下述公式确定:
F=YZ
其中,F是所述目标尾数段的科学表示值。
结合第一方面,在第一方面的一种可实现方式中,所述目标尾数段的值按照下述公式确定:
f=F
其中,f是所述目标尾数段的值;F是所述目标尾数段的科学表示值。
结合第一方面,在第一方面的一种可实现方式中,根据所述第一组织段的值、所述第一指数段的值、所述第二组织段的值、所述第二指数段的值和所述目标指数段的进位,确定目标组织段的值和目标指数段的值,包括:
按照预设的转换关系,根据所述第一组织段的值、所述第一指数段的值和预设指数段位宽,确定第一指数段的科学表示值;
按照预设的转换关系,根据所述第二组织段的值、所述第二指数段的值和预设指数段位宽,确定第二指数段的科学表示值;
根据所述第一指数段的科学表示值、所述第二指数段的科学表示值和所述目标指数段的进位,确定目标指数段的科学表示值;
按照预设的转换关系,将所述目标指数段的科学表示值转换成所述目标组织段的值和所述目标指数段的值。
结合第一方面,在第一方面的一种可实现方式中,所述第一指数段的科学表示值按照下述步骤确定:
EA=rA×2es+eA
其中,EA是所述第一指数段的科学表示值;rA是所述第一组织段的值;eA是所述第一指数段的值;es是所述预设指数段位宽;
所述第二指数段的科学表示值按照下述步骤确定:
EB=rB×2es+eB
其中,EB是所述第二指数段的科学表示值;rB是所述第二组织段的值;eB是所述第二指数段的值;es是所述预设指数段位宽。
结合第一方面,在第一方面的一种可实现方式中,所述目标指数段的科学表示值按照下述步骤确定:
计算下述公式中的E0
E0=EA+EB
其中,EA是所述第一指数段的科学表示值;EB是第二指数段的科学表示值。
如果X=0,所述目标指数段的科学表示值根据下述公式确定:
E=E0
如果X=1,所述目标指数段的科学表示值根据下述公式确定:
E=E0+1
其中,E是所述目标指数段的科学表示值。
结合第一方面,在第一方面的一种可实现方式中,所述目标组织段的值按照下述公式确定:
Figure BDA0002398079370000031
其中,r是所述目标组织段的值,并且,当r为非整数时,r值向下取整;E是所述目标指数段的科学表示值,es是所述预设指数段位宽。
结合第一方面,在第一方面的一种可实现方式中,所述目标指数段的值按照下述公式确定:
e=E-2es*r
其中,e是所述目标指数段的值;E是所述目标指数段的科学表示值,es是所述预设指数段位宽;r是所述目标组织段的值。
结合第一方面,在第一方面的一种可实现方式中,将所述目标符号段的值、所述目标组织段的值、所述目标指数段的值和所述目标尾数段的值以二进制码的形式按照预设总位宽组成目标浮点数,包括:
按先后顺序将所述目标符号段的值对应的二进制码、所述目标组织段的值对应的二进制码、所述目标指数段的值对应的二进制码和所述目标尾数段的值对应的二进制码进行拼接;
判断拼接后的二进制码的位宽是否大于预设总位宽,如果拼接后的二进制码的位宽大于预设总位宽,则从尾部舍去大于预设总位宽的位数,得到所述目标浮点数;否则,将拼接后的二进制码作为所述目标浮点数。
第二方面,本申请实施例提供一种基于posit数据格式的浮点数乘法运算装置,所述装置包括:
获取单元,用于获取posit数据格式的第一浮点数和posit数据格式的第二浮点数;
分析单元,用于对所述第一浮点数进行分析,确定所述第一浮点数中第一符号段的值、第一组织段的值、第一指数段的值和第一尾数段的值;以及,对所述第二浮点数进行分析,确定所述第二浮点数中第二符号段的值、第二组织段的值、第二指数段的值和第二尾数段的值;
处理单元,用于根据所述第一符号段的值和所述第二符号段的值,确定目标符号段的值;以及,根据所述第一尾数段的值和所述第二尾数段的值,确定目标尾数段的值和目标指数段的进位;以及,根据所述第一组织段的值、所述第一指数段的值、所述第二组织段的值、所述第二指数段的值和所述目标指数段的进位,确定目标组织段的值和目标指数段的值;
组成单元,用于将所述目标符号段的值、所述目标组织段的值、所述目标指数段的值和所述目标尾数段的值以二进制码的形式按照预设总位宽组成目标浮点数。
结合第二方面,在第二方面的一种可实现方式中,所述处理单元具体用于:
按照预设的转换关系,将所述第一符号段的值转换成第一符号段的科学表示值;
按照预设的转换关系,将所述第二符号段的值转换成第二符号段的科学表示值;
根据所述第一符号段的科学表示值和所述第二符号段的科学表示值,确定目标符号段的科学表示值;
按照预设的转换关系,将所述目标符号段的科学表示值转换成所述目标符号段的值。
结合第二方面,在第二方面的一种可实现方式中,所述第一符号段的科学表示值按照下述公式确定:
SA=sA
其中,SA是所述第一符号段的科学表示值;sA是所述第一符号段的值;
所述第二符号段的科学表示值按照下述公式确定:
SB=sB
其中,SB是所述第二符号段的科学表示值;sB是所述第二符号段的值。
结合第二方面,在第二方面的一种可实现方式中,所述目标符号段的科学表示值按照下述公式确定:
S=SA⊕SB
其中,S是所述目标符号段的科学表示值;SA是所述第一符号段的科学表示值;SB是所述第二符号段的科学表示值。
结合第二方面,在第二方面的一种可实现方式中,所述目标符号段的值按照下述公式确定:
s=S
其中,s是所述目标符号段的值;S是所述目标符号段的科学表示值。
结合第二方面,在第二方面的一种可实现方式中,所述处理单元具体用于:
按照预设的转换关系,将所述第一尾数段的值转换成第一尾数段的科学表示值;
按照预设的转换关系,将所述第二尾数段的值转换成第二尾数段的科学表示值;
根据所述第一尾数段的科学表示值与所述第二尾数段的科学表示值的乘积,确定所述目标尾数段的科学表示值和所述目标指数段的进位;
按照预设的转换关系,将所述目标尾数段的科学表示值转换成所述目标尾数段的值。
结合第二方面,在第二方面的一种可实现方式中,所述第一尾数段的科学表示值按照下述公式确定:
FA=fA
其中,FA是所述第一尾数段的科学表示值;fA是所述第一尾数段的值;
所述第二尾数段的科学表示值按照下述公式确定:
FB=fB
其中,FB是所述第二尾数段的科学表示值;fB是所述第二尾数段的值。
结合第二方面,在第二方面的一种可实现方式中,所述目标尾数段的科学表示值和所述目标指数段的进位按照下述步骤确定:
计算下述公式中的X、Y和Z:
1.FA*1.FB=XY.Z
其中,FA是所述第一尾数段的科学表示值;FB是所述第二尾数段的科学表示值;X表示所述目标指数段的进位,取值为0或1;Y表示乘法结果的次高位,取值为0或1;Z表示乘法结果小数点后的所有尾数;
如果X=0,所述目标尾数段的科学表示值根据下述公式确定:
F=Z
如果X=1,所述目标尾数段的科学表示值根据下述公式确定:
F=YZ
其中,F是所述目标尾数段的科学表示值。
结合第二方面,在第二方面的一种可实现方式中,所述目标尾数段的值按照下述公式确定:
f=F
其中,f是所述目标尾数段的值;F是所述目标尾数段的科学表示值。
结合第二方面,在第二方面的一种可实现方式中,所述处理单元具体用于:
按照预设的转换关系,根据所述第一组织段的值、所述第一指数段的值和预设指数段位宽,确定第一指数段的科学表示值;
按照预设的转换关系,根据所述第二组织段的值、所述第二指数段的值和预设指数段位宽,确定第二指数段的科学表示值;
根据所述第一指数段的科学表示值、所述第二指数段的科学表示值和所述目标指数段的进位,确定目标指数段的科学表示值;
按照预设的转换关系,将所述目标指数段的科学表示值转换成所述目标组织段的值和所述目标指数段的值。
结合第二方面,在第二方面的一种可实现方式中,所述第一指数段的科学表示值按照下述步骤确定:
EA=rA×2es+eA
其中,EA是所述第一指数段的科学表示值;rA是所述第一组织段的值;eA是所述第一指数段的值;es是所述预设指数段位宽;
所述第二指数段的科学表示值按照下述步骤确定:
EB=rB×2es+eB
其中,EB是所述第二指数段的科学表示值;rB是所述第二组织段的值;eB是所述第二指数段的值;es是所述预设指数段位宽。
结合第二方面,在第二方面的一种可实现方式中,所述目标指数段的科学表示值按照下述步骤确定:
计算下述公式中的E0
E0=EA+EB
其中,EA是所述第一指数段的科学表示值;EB是第二指数段的科学表示值。
如果X=0,所述目标指数段的科学表示值根据下述公式确定:
E=E0
如果X=1,所述目标指数段的科学表示值根据下述公式确定:
E=E0+1
其中,E是所述目标指数段的科学表示值。
结合第二方面,在第二方面的一种可实现方式中,所述目标组织段的值按照下述公式确定:
Figure BDA0002398079370000061
其中,r是所述目标组织段的值,并且,当r为非整数时,r值向下取整;E是所述目标指数段的科学表示值,es是所述预设指数段位宽。
结合第二方面,在第二方面的一种可实现方式中,所述目标指数段的值按照下述公式确定:
e=E-2es*r
其中,e是所述目标指数段的值;E是所述目标指数段的科学表示值,es是所述预设指数段位宽;r是所述目标组织段的值。
结合第二方面,在第二方面的一种可实现方式中,所述组成单元具体用于:
按先后顺序将所述目标符号段的值对应的二进制码、所述目标组织段的值对应的二进制码、所述目标指数段的值对应的二进制码和所述目标尾数段的值对应的二进制码进行拼接;
判断拼接后的二进制码的位宽是否大于预设总位宽,如果拼接后的二进制码的位宽大于预设总位宽,则从尾部舍去大于预设总位宽的位数,得到所述目标浮点数;否则,将拼接后的二进制码作为所述目标浮点数。
本申请实施例中,采用posit数据格式进行乘法运算,则可以在0附近保证精度的同时,又可以很大程度的减少数据位宽,从而减少神经网络的训练时间,也降低了对于存储,位宽等资源的需求。
附图说明
图1是本申请提供的Posit数据格式的浮点数具体的数据表示形式的示意图;
图2是本申请实施例提供的一种基于posit数据格式的浮点数乘法运算方法所对应的流程示意图;
图3是本申请实施例提供的一种第一浮点数的分析方法所对应的流程示意图;
图4是本申请实施例提供的一种基于posit数据格式的浮点数乘法运算装置的结构示意图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。
本申请技术方案中的Posit数据格式的参数包括N和es,其中N为整个数据表示的总位宽,es为指数段的位宽,两个参数都是在表示数据前需要确定的。N可以取任意正整数值。本实施例中以N表示预设总位宽,以es表示预设指数段位宽,预设指数段位宽是根据对Posit数据格式的浮点数的实际需求选择的,预设指数段位宽所取的值小于预设总位宽所取的值。
图1为本申请提供的Posit数据格式的浮点数具体的数据表示形式的示意图。如图1所示,Posit数据格式的浮点数包括符号段s,组织段r(图1中的r指的是组织段的二进制码)、指数段e和尾数段f四个部分。
对于一个Posit数据格式的浮点数来说,该浮点数与其真值A的关系为:
Figure BDA0002398079370000071
其中,s表示Posit数据格式中符号段的值,只有一位,由最高位表示,当A为正数时,s的值为0,当A为负数时,s的值为1。r表示Posit数据格式中组织段的值;e表示Posit数据格式中指数段的值,f表示Posit数据格式中尾数段的值,是将整数部分表示为1后,小数点后的所有尾数。
本申请实施例中,首先定义一种在算法过程中运用到的浮点数的科学表示形式,对于真值为A的浮点数,有:
A=(-1)s×2E×1.F
其中,S为符号段的科学表示值,当A为正数时,符号段S为0,当A为负数时,符号段S为1;E为指数段的科学表示值;F为尾数段的科学表示值,是将整数部分表示为1后,小数点后的所有尾数。
具体请参考图2,其示例性示出了本申请实施例提供的一种基于posit数据格式的浮点数乘法运算方法所对应的流程示意图,具体包括如下步骤:
步骤201,获取posit数据格式的第一浮点数和posit数据格式的第二浮点数。
步骤202,对第一浮点数进行分析,确定第一浮点数中第一符号段的值、第一组织段的值、第一指数段的值和第一尾数段的值。
步骤203,对第二浮点数进行分析,确定第二浮点数中第二符号段的值、第二组织段的值、第二指数段的值和第二尾数段的值。
步骤204,根据第一符号段的值和第二符号段的值,确定目标符号段的值。
步骤205,根据第一尾数段的值和第二尾数段的值,确定目标尾数段的值和目标指数段的进位。
步骤206,根据第一组织段的值、第一指数段的值、第二组织段的值、第二指数段的值和目标指数段的进位,确定目标组织段的值和目标指数段的值。
步骤207,将目标符号段的值、目标组织段的值、目标指数段的值和目标尾数段的值以二进制码的形式按照预设总位宽组成目标浮点数。
本申请实施例中,采用posit数据格式进行乘法运算,则可以在0附近保证精度的同时,又可以很大程度的减少数据位宽,从而减少神经网络的训练时间,也降低了对于存储,位宽等资源的需求。
具体来说,步骤201中,第一浮点数和第二浮点数都是posit数据格式的浮点数。posit数据格式的浮点数的预设总位宽是N位,N的具体数值可以是预先设置的,其中,预设总位宽可以是指浮点数所占的位宽。
步骤202中,对第一浮点数进行分析时,可以参考图3,其示例性示出了本申请实施例提供的一种第一浮点数的分析方法所对应的流程示意图,具体包括如下步骤:
步骤301,对第一浮点数进行分析,确定第一浮点数中第一符号段的二进制码、第一组织段的二进制码、第一指数段的二进制码和第一尾数段的二进制码。
其中,第一符号段占1位,通常是首位。第一符号段的二进制码如果是“0”,则表示该浮点数的真值是正数;第一符号段的二进制码如果是“1”,则表示该浮点数的真值是负数。
第一组织段位于第一符号段之后,其所占的位宽是不确定的,以图3示出的浮点数为例,该浮点数中组织段所占的位宽是8位。第一组织段的二进制码可以是连续的0以及后续的一个1,而连续的0的个数是不确定的;组织段的二进制码也可以是连续的1以及后续的一个0,而连续的1的个数也是不确定的。
第一指数段位于第一组织段之后,预设指数段位宽是es位,es的具体数值可以是预先设置的,其中,预设指数段位宽可以是指第一指数段所占的位宽。
第一浮点数中第一指数段的二进制码是根据预设指数段位宽、第一符号段的二进制码及第一组织段的二进制码确定的。
具体地,根据第一符号段的二进制码,确定第一符号段的位宽;以及,根据组织段的二进制码,确定组织段的位宽。
如果预设总位宽减去第一符号段的位宽和第一组织段的位宽后,剩余的第一位宽大于或者等于预设指数段位宽,则从第一浮点数中截取预设指数段位宽,得到第一指数段的二进制码。
如果预设总位宽减去第一符号段的位宽和第一组织段的位宽后,剩余的第一位宽小于预设指数段位宽,则对第一位宽采用补0的方式得到第一指数段的二进制码。
具体实施过程中,从第一浮点数舍去第一符号段和组织段分别对应的二进制码,从剩余的二进制码中按从头到尾的顺序,截取es位的二进制码,所截取到的二进制码就是第一指数段对应的二进制码。
需要说明的是,在可能的情形中,从第一浮点数舍去第一符号段和组织段分别对应的二进制码后,剩余的二进制码的位宽小于es位,此时,可以通过补0的方式,在剩余的二进制码之后补0,使得第一指数段所占的位宽是es位。举个例子,假设es=11,剩余的二进制码是“0000000001”,剩余的二进制码的位宽是10位,小于es(es=11)位,此时,可以在在剩余的二进制码之后补0,即第一指数段的二进制码是“00000000010”,使其所占的位宽满足es位(即满足11位的位宽)。
第一尾数段位于第一指数段之后,是指小数点后的所有尾数。在第一浮点数中,第一尾数段可能存在也可能不存在,在不存在的情况下,第一尾数段的二进制码是0。
具体地,根据第一符号段的二进制码,确定第一符号段的位宽;以及,根据组织段的二进制码,确定组织段对应的位宽。
如果预设总位宽减去第一符号段的位宽、第一组织段的位宽和预设指数段位宽后,剩余第二位宽,则根据第二位宽确定第一尾数段的二进制码。
如果预设总位宽减去第一符号段的位宽、第一组织段的位宽和预设指数段位宽后,未剩余第二位宽,则确定第一尾数段的二进制码为0。
需要说明的是,上文描述的第一尾数段不存在的情况是指,从第一浮点数舍去第一符号段、组织段和第一指数段分别对应的二进制码后,没有剩余的二进制码,此时,第一尾数段不存在,也即第一尾数段的二进制码是0。
步骤302,根据第一符号段的二进制码,确定第一符号段的值。
步骤303,根据第一组织段的二进制码,确定第一组织段的值。
针对第一浮点数中组织段的二进制码,如果该二进制码的首位是0,则表示第一浮点数中组织段的值是负数;如果该二进制码的首位是1,则表示第一浮点数中组织段的值是正数或0。
如果组织段的二进制码由a个1和1个0组成,则组织段的值为a-1;如果组织段的二进制码由a个0和1个1组成,则组织段的值为-a。
步骤304,根据第一指数段的二进制码,确定第一指数段的值。
第一浮点数(即posit数据格式的浮点数)是0和1组合成的二进制数。将第一浮点数中第一指数段的二进制码由二进制转换成十进制,所得到的值可以确定为第一浮点数中第一指数段的值。
步骤305,根据第一尾数段的二进制码,确定第一尾数段的值。
步骤203中,分析第二浮点数的方法可以参考步骤202所描述的内容,此处不再赘述。
步骤204中,目标符号段的值可以按照以下方法确定:
按照预设的转换关系,将第一符号段的值转换成第一符号段的科学表示值;以及,按照预设的转换关系,将第二符号段的值转换成第二符号段的科学表示值;以及,根据第一符号段的科学表示值和第二符号段的科学表示值,确定目标符号段的科学表示值;以及,按照预设的转换关系,将目标符号段的科学表示值转换成目标符号段的值。
具体地,第一符号段的科学表示值按照下述公式确定:
SA=sA
其中,SA是第一符号段的科学表示值;sA是第一符号段的值;
第二符号段的科学表示值按照下述公式确定:
SB=sB
其中,SB是第二符号段的科学表示值;sB是第二符号段的值。
进一步地,目标符号段的科学表示值按照下述公式确定:
S=SA⊕SB
其中,S是目标符号段的科学表示值;SA是第一符号段的科学表示值;SB是第二符号段的科学表示值。
进一步地,目标符号段的值按照下述公式确定:
s=S
其中,s是目标符号段的值;S是目标符号段的科学表示值。
步骤205中,目标尾数段的值和目标指数段的进位可以按照以下方法确定:
按照预设的转换关系,将第一尾数段的值转换成第一尾数段的科学表示值;以及,按照预设的转换关系,将第二尾数段的值转换成第二尾数段的科学表示值;以及,根据第一尾数段的科学表示值与第二尾数段的科学表示值的乘积,确定目标尾数段的科学表示值和目标指数段的进位;以及,按照预设的转换关系,将目标尾数段的科学表示值转换成目标尾数段的值。
具体地,第一尾数段的科学表示值按照下述公式确定:
FA=fA
其中,FA是第一尾数段的科学表示值;fA是第一尾数段的值;
第二尾数段的科学表示值按照下述公式确定:
FB=fB
其中,FB是第二尾数段的科学表示值;fB是第二尾数段的值。
进一步地,目标尾数段的科学表示值和目标指数段的进位按照下述步骤确定:
计算下述公式中的X、Y和Z:
1.FA*1.FB=XY.Z
其中,FA是第一尾数段的科学表示值;FB是第二尾数段的科学表示值;X表示所述目标指数段的进位,取值为0或1;Y表示乘法结果的次高位,取值为0或1;Z表示乘法结果小数点后的所有尾数;
如果X=0,目标尾数段的科学表示值根据下述公式确定:
F=Z
如果X=1,目标尾数段的科学表示值根据下述公式确定:
F=YZ
其中,F是目标尾数段的科学表示值。
目标尾数段的值按照下述公式确定:
f=F
其中,f是目标尾数段的值;F是目标尾数段的科学表示值。
步骤206中,目标组织段的值和目标指数段的值可以按照以下方法确定:
按照预设的转换关系,根据第一组织段的值、第一指数段的值和预设指数段位宽,确定第一指数段的科学表示值;以及,按照预设的转换关系,根据第二组织段的值、第二指数段的值和预设指数段位宽,确定第二指数段的科学表示值;以及,根据第一指数段的科学表示值、第二指数段的科学表示值和目标指数段的进位,确定目标指数段的科学表示值;以及,按照预设的转换关系,将目标指数段的科学表示值转换成目标组织段的值和目标指数段的值。
具体地,第一指数段的科学表示值按照下述步骤确定:
EA=rA×2es+eA
其中,EA是第一指数段的科学表示值;rA是第一组织段的值;eA是第一指数段的值;es是预设指数段位宽;
第二指数段的科学表示值按照下述步骤确定:
EB=rB×2es+eB
其中,EB是第二指数段的科学表示值;rB是第二组织段的值;eB是第二指数段的值;es是预设指数段位宽。
进一步地,目标指数段的科学表示值按照下述步骤确定:
计算下述公式中的E0
E0=EA+EB
其中,EA是第一指数段的科学表示值;EB是第二指数段的科学表示值。
如果X=0,目标指数段的科学表示值根据下述公式确定:
E=E0
如果X=1,目标指数段的科学表示值根据下述公式确定:
E=E0+1
其中,E是所述目标指数段的科学表示值。
进一步地,目标组织段的值按照下述公式确定:
Figure BDA0002398079370000111
其中,r是目标组织段的值,并且,当r为非整数时,r值向下取整;E是目标指数段的科学表示值,es预设指数段位宽。
目标指数段的值按照下述公式确定:
e=E-2es*r
其中,e是目标指数段的值;E是目标指数段的科学表示值,es是预设指数段位宽;r是目标组织段的值。
步骤207中,目标浮点数具体可以按照下述方法确定:
首先,按先后顺序将目标符号段的值对应的二进制码、目标组织段的值对应的二进制码、目标指数段的值对应的二进制码和目标尾数段的值对应的二进制码进行拼接。
其次,判断拼接后的二进制码的位宽是否大于预设总位宽,如果拼接后的二进制码的位宽大于预设总位宽,则从尾部舍去大于预设总位宽的位数,得到所述目标浮点数;否则,将拼接后的二进制码作为所述目标浮点数。
下述为本申请装置实施例,可以用于执行本申请方法实施例。对于本申请装置实施例中未披露的细节,请参照本申请方法实施例。
图4示例性示出了本申请实施例提供的一种基于posit数据格式的浮点数乘法运算装置的结构示意图。如图4所示,该装置具有实现上述浮点数乘法运算方法的功能,所述功能可以由硬件实现,也可以由硬件执行相应的软件实现。该装置可以包括:获取单元401、分析单元402、处理单元403和组成单元404。
获取单元401,用于获取posit数据格式的第一浮点数和posit数据格式的第二浮点数;
分析单元402,用于对所述第一浮点数进行分析,确定所述第一浮点数中第一符号段的值、第一组织段的值、第一指数段的值和第一尾数段的值;以及,对所述第二浮点数进行分析,确定所述第二浮点数中第二符号段的值、第二组织段的值、第二指数段的值和第二尾数段的值;
处理单元403,用于根据所述第一符号段的值和所述第二符号段的值,确定目标符号段的值;以及,根据所述第一尾数段的值和所述第二尾数数段的值,确定目标尾数段的值和目标指数段的进位;以及,根据所述第一组织段的值、所述第一指数段的值、所述第二组织段的值、所述第二指数段的值和所述目标指数段的进位,确定目标组织段的值和目标指数段的值;
组成单元404,用于将所述目标符号段的值、所述目标组织段的值、所述目标指数段的值和所述目标尾数段的值以二进制码的形式按照预设总位宽组成目标浮点数。
可选地,所述处理单元403具体用于:
按照预设的转换关系,将所述第一符号段的值转换成第一符号段的科学表示值;
按照预设的转换关系,将所述第二符号段的值转换成第二符号段的科学表示值;
根据所述第一符号段的科学表示值和所述第二符号段的科学表示值,确定目标符号段的科学表示值;
按照预设的转换关系,将所述目标符号段的科学表示值转换成所述目标符号段的值。
可选地,所述第一符号段的科学表示值按照下述公式确定:
SA=sA
其中,SA是所述第一符号段的科学表示值;sA是所述第一符号段的值;
所述第二符号段的科学表示值按照下述公式确定:
SB=sB
其中,SB是所述第二符号段的科学表示值;sB是所述第二符号段的值。
可选地,所述目标符号段的科学表示值按照下述公式确定:
S=SA⊕SB
其中,S是所述目标符号段的科学表示值;SA是所述第一符号段的科学表示值;SB是所述第二符号段的科学表示值。
可选地,所述目标符号段的值按照下述公式确定:
s=S
其中,s是所述目标符号段的值;S是所述目标符号段的科学表示值。
可选地,所述处理单元403具体用于:
按照预设的转换关系,将所述第一尾数段的值转换成第一尾数段的科学表示值;
按照预设的转换关系,将所述第二尾数段的值转换成第二尾数段的科学表示值;
根据所述第一尾数段的科学表示值与所述第二尾数段的科学表示值的乘积,确定所述目标尾数段的科学表示值和所述目标指数段的进位;
按照预设的转换关系,将所述目标尾数段的科学表示值转换成所述目标尾数段的值。
可选地,所述第一尾数段的科学表示值按照下述公式确定:
FA=fA
其中,FA是所述第一尾数段的科学表示值;fA是所述第一尾数段的值;
所述第二尾数段的科学表示值按照下述公式确定:
FB=fB
其中,FB是所述第二尾数段的科学表示值;fB是所述第二尾数段的值。
可选地,所述目标尾数段的科学表示值和所述目标指数段的进位按照下述步骤确定:
计算下述公式中的X、Y和Z:
1.FA*1.FB=XY.Z
其中,FA是所述第一尾数段的科学表示值;FB是所述第二尾数段的科学表示值;X表示所述目标指数段的进位,取值为0或1;Y表示乘法结果的次高位,取值为0或1;Z表示乘法结果小数点后的所有尾数;
如果X=0,所述目标尾数段的科学表示值根据下述公式确定:
F=Z
如果X=1,所述目标尾数段的科学表示值根据下述公式确定:
F=YZ
其中,F是所述目标尾数段的科学表示值。
可选地,所述目标尾数段的值按照下述公式确定:
f=F
其中,f是所述目标尾数段的值;F是所述目标尾数段的科学表示值。
可选地,所述处理单元403具体用于:
按照预设的转换关系,根据所述第一组织段的值、所述第一指数段的值和预设指数段位宽,确定第一指数段的科学表示值;
按照预设的转换关系,根据所述第二组织段的值、所述第二指数段的值和预设指数段位宽,确定第二指数段的科学表示值;
根据所述第一指数段的科学表示值、所述第二指数段的科学表示值和所述目标指数段的进位,确定目标指数段的科学表示值;
按照预设的转换关系,将所述目标指数段的科学表示值转换成所述目标组织段的值和所述目标指数段的值。
可选地,所述第一指数段的科学表示值按照下述步骤确定:
EA=rA×2es+eA
其中,EA是所述第一指数段的科学表示值;rA是所述第一组织段的值;eA是所述第一指数段的值;es是所述预设指数段位宽;
所述第二指数段的科学表示值按照下述步骤确定:
EB=rB×2es+eB
其中,EB是所述第二指数段的科学表示值;rB是所述第二组织段的值;eB是所述第二指数段的值;es是所述预设指数段位宽。
可选地,所述目标指数段的科学表示值按照下述步骤确定:
计算下述公式中的E0
E0=EA+EB
其中,EA是所述第一指数段的科学表示值;EB是第二指数段的科学表示值。
如果X=0,所述目标指数段的科学表示值根据下述公式确定:
E=E0
如果X=1,所述目标指数段的科学表示值根据下述公式确定:
E=E0+1
其中,E是所述目标指数段的科学表示值。
可选地,所述目标组织段的值按照下述公式确定:
Figure BDA0002398079370000131
其中,r是所述目标组织段的值,并且,当r为非整数时,r值向下取整;E是所述目标指数段的科学表示值,es是所述预设指数段位宽。
可选地,所述目标指数段的值按照下述公式确定:
e=E-2es*r
其中,e是所述目标指数段的值;E是所述目标指数段的科学表示值,es是所述预设指数段位宽;r是所述目标组织段的值。
可选地,所述组成单元304具体用于:
按先后顺序将所述目标符号段的值对应的二进制码、所述目标组织段的值对应的二进制码、所述目标指数段的值对应的二进制码和所述目标尾数段的值对应的二进制码进行拼接;
判断拼接后的二进制码的位宽是否大于预设总位宽,如果拼接后的二进制码的位宽大于预设总位宽,则从尾部舍去大于预设总位宽的位数,得到所述目标浮点数;否则,将拼接后的二进制码作为所述目标浮点数。
本申请实施例中提供的基于posit数据格式的乘法运算方法,能够运用于神经网络的训练过程中,其运算数据近似服从正态分布,可通过变换使数据集中在0附近,本申请中posit数据格式的浮点数的预设总位宽是可以调控的,可以很大程度的减少数据位宽,进而减少存储所需要的资源以及读写过程所消耗的资源,提高神经网络训练的效率。
本申请实施例还提供了一种存储介质,所述存储介质中存储有计算机程序,当浮点数乘法运算装置的至少一个处理器执行所述计算机程序时,浮点数乘法运算装置执行上述实施例所述的浮点数乘法运算方法。
所述的存储介质可为磁碟、光盘、只读存储记忆体(英文:read-only memory,简称:ROM)或随机存储记忆体(英文:random access memory,简称:RAM)等。
本领域的技术人员可以清楚地了解到本申请实施例中的技术可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本申请实施例中的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例或者实施例的某些部分所述的方法。
本说明书中各个实施例之间相同相似的部分互相参见即可。尤其,对于服务构建装置和服务加载装置实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例中的说明即可。
以上所述的本申请实施方式并不构成对本申请保护范围的限定。

Claims (30)

1.一种基于posit数据格式的浮点数乘法运算方法,其特征在于,所述方法包括:
获取posit数据格式的第一浮点数和posit数据格式的第二浮点数;
对所述第一浮点数进行分析,确定所述第一浮点数中第一符号段的值、第一组织段的值、第一指数段的值和第一尾数段的值;
对所述第二浮点数进行分析,确定所述第二浮点数中第二符号段的值、第二组织段的值、第二指数段的值和第二尾数段的值;
根据所述第一符号段的值和所述第二符号段的值,确定目标符号段的值;
根据所述第一尾数段的值和所述第二尾数段的值,确定目标尾数段的值和目标指数段的进位;
根据所述第一组织段的值、所述第一指数段的值、所述第二组织段的值、所述第二指数段的值和所述目标指数段的进位,确定目标组织段的值和目标指数段的值;
将所述目标符号段的值、所述目标组织段的值、所述目标指数段的值和所述目标尾数段的值以二进制码的形式按照预设总位宽组成目标浮点数。
2.根据权利要求1所述的方法,其特征在于,根据所述第一符号段的值和所述第二符号段的值,确定目标符号段的值,包括:
按照预设的转换关系,将所述第一符号段的值转换成第一符号段的科学表示值;
按照预设的转换关系,将所述第二符号段的值转换成第二符号段的科学表示值;
根据所述第一符号段的科学表示值和所述第二符号段的科学表示值,确定目标符号段的科学表示值;
按照预设的转换关系,将所述目标符号段的科学表示值转换成所述目标符号段的值。
3.根据权利要求2所述的方法,其特征在于,所述第一符号段的科学表示值按照下述公式确定:
SA=sA
其中,SA是所述第一符号段的科学表示值;sA是所述第一符号段的值;
所述第二符号段的科学表示值按照下述公式确定:
SB=sB
其中,SB是所述第二符号段的科学表示值;sB是所述第二符号段的值。
4.根据权利要求3所述的方法,其特征在于,所述目标符号段的科学表示值按照下述公式确定:
S=SA⊕SB
其中,S是所述目标符号段的科学表示值;SA是所述第一符号段的科学表示值;SB是所述第二符号段的科学表示值。
5.根据权利要求4所述的方法,其特征在于,所述目标符号段的值按照下述公式确定:
s=S
其中,s是所述目标符号段的值;S是所述目标符号段的科学表示值。
6.根据权利要求1所述的方法,其特征在于,根据所述第一尾数段的值和所述第二尾数段的值,确定目标尾数段的值和目标指数段的进位,包括:
按照预设的转换关系,将所述第一尾数段的值转换成第一尾数段的科学表示值;
按照预设的转换关系,将所述第二尾数段的值转换成第二尾数段的科学表示值;
根据所述第一尾数段的科学表示值与所述第二尾数段的科学表示值的乘积,确定所述目标尾数段的科学表示值和所述目标指数段的进位;
按照预设的转换关系,将所述目标尾数段的科学表示值转换成所述目标尾数段的值。
7.根据权利要求6所述的方法,其特征在于,所述第一尾数段的科学表示值按照下述公式确定:
FA=fA
其中,FA是所述第一尾数段的科学表示值;fA是所述第一尾数段的值;
所述第二尾数段的科学表示值按照下述公式确定:
FB=fB
其中,FB是所述第二尾数段的科学表示值;fB是所述第二尾数段的值。
8.根据权利要求7所述的方法,其特征在于,所述目标尾数段的科学表示值和所述目标指数段的进位按照下述步骤确定:
计算下述公式中的X、Y和Z:
1.FA*1.FB=XY.Z
其中,FA是所述第一尾数段的科学表示值;FB是所述第二尾数段的科学表示值;X表示所述目标指数段的进位,取值为0或1;Y表示乘法结果的次高位,取值为0或1;Z表示乘法结果小数点后的所有尾数;
如果X=0,所述目标尾数段的科学表示值根据下述公式确定:
F=Z
如果X=1,所述目标尾数段的科学表示值根据下述公式确定:
F=YZ
其中,F是所述目标尾数段的科学表示值。
9.根据权利要求8所述的方法,其特征在于,所述目标尾数段的值按照下述公式确定:
f=F
其中,f是所述目标尾数段的值;F是所述目标尾数段的科学表示值。
10.根据权利要求8所述的方法,其特征在于,根据所述第一组织段的值、所述第一指数段的值、所述第二组织段的值、所述第二指数段的值和所述目标指数段的进位,确定目标组织段的值和目标指数段的值,包括:
按照预设的转换关系,根据所述第一组织段的值、所述第一指数段的值和预设指数段位宽,确定第一指数段的科学表示值;
按照预设的转换关系,根据所述第二组织段的值、所述第二指数段的值和预设指数段位宽,确定第二指数段的科学表示值;
根据所述第一指数段的科学表示值、所述第二指数段的科学表示值和所述目标指数段的进位,确定目标指数段的科学表示值;
按照预设的转换关系,将所述目标指数段的科学表示值转换成所述目标组织段的值和所述目标指数段的值。
11.根据权利要求10所述的方法,其特征在于,所述第一指数段的科学表示值按照下述步骤确定:
EA=rA×2es+eA
其中,EA是所述第一指数段的科学表示值;rA是所述第一组织段的值;eA是所述第一指数段的值;es是所述预设指数段位宽;
所述第二指数段的科学表示值按照下述步骤确定:
EB=rB×2es+eB
其中,EB是所述第二指数段的科学表示值;rB是所述第二组织段的值;eB是所述第二指数段的值;es是所述预设指数段位宽。
12.根据权利要求11所述的方法,其特征在于,所述目标指数段的科学表示值按照下述步骤确定:
计算下述公式中的E0
E0=EA+EB
其中,EA是所述第一指数段的科学表示值;EB是所述第二指数段的科学表示值;
如果X=0,所述目标指数段的科学表示值根据下述公式确定:
E=E0
如果X=1,所述目标指数段的科学表示值根据下述公式确定:
E=E0+1
其中,E是所述目标指数段的科学表示值。
13.根据权利要求12所述的方法,其特征在于,所述目标组织段的值按照下述公式确定:
Figure FDA0002398079360000031
其中,r是所述目标组织段的值,并且,当r为非整数时,r值向下取整;E是所述目标指数段的科学表示值,es是所述预设指数段位宽。
14.根据权利要求13所述的方法,其特征在于,所述目标指数段的值按照下述公式确定:
e=E-2es*r
其中,e是所述目标指数段的值;E是所述目标指数段的科学表示值,es是所述预设指数段位宽;r是所述目标组织段的值。
15.根据权利要求1所述的方法,其特征在于,将所述目标符号段的值、所述目标组织段的值、所述目标指数段的值和所述目标尾数段的值以二进制码的形式按照预设总位宽组成目标浮点数,包括:
按先后顺序将所述目标符号段的值对应的二进制码、所述目标组织段的值对应的二进制码、所述目标指数段的值对应的二进制码和所述目标尾数段的值对应的二进制码进行拼接;
判断拼接后的二进制码的位宽是否大于预设总位宽,如果拼接后的二进制码的位宽大于预设总位宽,则从尾部舍去大于预设总位宽的位数,得到所述目标浮点数;否则,将拼接后的二进制码作为所述目标浮点数。
16.一种基于posit数据格式的浮点数乘法运算装置,其特征在于,所述装置包括:
获取单元,用于获取posit数据格式的第一浮点数和posit数据格式的第二浮点数;
分析单元,用于对所述第一浮点数进行分析,确定所述第一浮点数中第一符号段的值、第一组织段的值、第一指数段的值和第一尾数段的值;以及,对所述第二浮点数进行分析,确定所述第二浮点数中第二符号段的值、第二组织段的值、第二指数段的值和第二尾数段的值;
处理单元,用于根据所述第一符号段的值和所述第二符号段的值,确定目标符号段的值;以及,根据所述第一尾数段的值和所述第二尾数段的值,确定目标尾数段的值和目标指数段的进位;以及,根据所述第一组织段的值、所述第一指数段的值、所述第二组织段的值、所述第二指数段的值和所述目标指数段的进位,确定目标组织段的值和目标指数段的值;
组成单元,用于将所述目标符号段的值、所述目标组织段的值、所述目标指数段的值和所述目标尾数段的值以二进制码的形式按照预设总位宽组成目标浮点数。
17.根据权利要求16所述的装置,其特征在于,所述处理单元具体用于:
按照预设的转换关系,将所述第一符号段的值转换成第一符号段的科学表示值;
按照预设的转换关系,将所述第二符号段的值转换成第二符号段的科学表示值;
根据所述第一符号段的科学表示值和所述第二符号段的科学表示值,确定目标符号段的科学表示值;
按照预设的转换关系,将所述目标符号段的科学表示值转换成所述目标符号段的值。
18.根据权利要求17所述的装置,其特征在于,所述第一符号段的科学表示值按照下述公式确定:
SA=sA
其中,SA是所述第一符号段的科学表示值;sA是所述第一符号段的值;
所述第二符号段的科学表示值按照下述公式确定:
SB=sB
其中,SB是所述第二符号段的科学表示值;sB是所述第二符号段的值。
19.根据权利要求18所述的装置,其特征在于,所述目标符号段的科学表示值按照下述公式确定:
S=SA⊕SB
其中,S是所述目标符号段的科学表示值;SA是所述第一符号段的科学表示值;SB是所述第二符号段的科学表示值。
20.根据权利要求19所述的装置,其特征在于,所述目标符号段的值按照下述公式确定:
s=S
其中,s是所述目标符号段的值;S是所述目标符号段的科学表示值。
21.根据权利要求16所述的装置,其特征在于,所述处理单元具体用于:
按照预设的转换关系,将所述第一尾数段的值转换成第一尾数段的科学表示值;
按照预设的转换关系,将所述第二尾数段的值转换成第二尾数段的科学表示值;
根据所述第一尾数段的科学表示值与所述第二尾数段的科学表示值的乘积,确定所述目标尾数段的科学表示值和所述目标指数段的进位;
按照预设的转换关系,将所述目标尾数段的科学表示值转换成所述目标尾数段的值。
22.根据权利要求21所述的装置,其特征在于,所述第一尾数段的科学表示值按照下述公式确定:
FA=fA
其中,FA是所述第一尾数段的科学表示值;fA是所述第一尾数段的值;
所述第二尾数段的科学表示值按照下述公式确定:
FB=fB
其中,FB是所述第二尾数段的科学表示值;fB是所述第二尾数段的值。
23.根据权利要求22所述的装置,其特征在于,所述目标尾数段的科学表示值和所述目标指数段的进位按照下述步骤确定:
计算下述公式中的X、Y和Z:
1.FA*1.FB=XY.Z
其中,FA是所述第一尾数段的科学表示值;FB是所述第二尾数段的科学表示值;X表示所述目标指数段的进位,取值为0或1;Y表示乘法结果的次高位,取值为0或1;Z表示乘法结果小数点后的所有尾数;
如果X=0,所述目标尾数段的科学表示值根据下述公式确定:
F=Z
如果X=1,所述目标尾数段的科学表示值根据下述公式确定:
F=YZ
其中,F是所述目标尾数段的科学表示值。
24.根据权利要求23所述的装置,其特征在于,所述目标尾数段的值按照下述公式确定:
f=F
其中,f是所述目标尾数段的值;F是所述目标尾数段的科学表示值。
25.根据权利要求22所述的装置,其特征在于,所述处理单元具体用于:
按照预设的转换关系,根据所述第一组织段的值、所述第一指数段的值和预设指数段位宽,确定第一指数段的科学表示值;
按照预设的转换关系,根据所述第二组织段的值、所述第二指数段的值和预设指数段位宽,确定第二指数段的科学表示值;
根据所述第一指数段的科学表示值、所述第二指数段的科学表示值和所述目标指数段的进位,确定目标指数段的科学表示值;
按照预设的转换关系,将所述目标指数段的科学表示值转换成所述目标组织段的值和所述目标指数段的值。
26.根据权利要求25所述的装置,其特征在于,所述第一指数段的科学表示值按照下述步骤确定:
EA=rA×2es+eA
其中,EA是所述第一指数段的科学表示值;rA是所述第一组织段的值;eA是所述第一指数段的值;es是所述预设指数段位宽;
所述第二指数段的科学表示值按照下述步骤确定:
EB=rB×2es+eB
其中,EB是所述第二指数段的科学表示值;rB是所述第二组织段的值;eB是所述第二指数段的值;es是所述预设指数段位宽。
27.根据权利要求26所述的装置,其特征在于,所述目标指数段的科学表示值按照下述步骤确定:
计算下述公式中的E0
E0=EA+EB
其中,EA是所述第一指数段的科学表示值;EB是第二指数段的科学表示值;
如果X=0,所述目标指数段的科学表示值根据下述公式确定:
E=E0
如果X=1,所述目标指数段的科学表示值根据下述公式确定:
E=E0+1
其中,E是所述目标指数段的科学表示值。
28.根据权利要求27所述的装置,其特征在于,所述目标组织段的值按照下述公式确定:
Figure FDA0002398079360000061
其中,r是所述目标组织段的值,并且,当r为非整数时,r值向下取整;E是所述目标指数段的科学表示值,es是所述预设指数段位宽。
29.根据权利要求28所述的装置,其特征在于,所述目标指数段的值按照下述公式确定:
e=E-2es*r
其中,e是所述目标指数段的值;E是所述目标指数段的科学表示值,es是所述预设指数段位宽;r是所述目标组织段的值。
30.根据权利要求16所述的装置,其特征在于,所述组成单元具体用于:
按先后顺序将所述目标符号段的值对应的二进制码、所述目标组织段的值对应的二进制码、所述目标指数段的值对应的二进制码和所述目标尾数段的值对应的二进制码进行拼接;
判断拼接后的二进制码的位宽是否大于预设总位宽,如果拼接后的二进制码的位宽大于预设总位宽,则从尾部舍去大于预设总位宽的位数,得到所述目标浮点数;否则,将拼接后的二进制码作为所述目标浮点数。
CN202010138192.8A 2020-03-03 2020-03-03 基于posit数据格式的浮点数乘法运算方法及装置 Active CN111367497B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010138192.8A CN111367497B (zh) 2020-03-03 2020-03-03 基于posit数据格式的浮点数乘法运算方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010138192.8A CN111367497B (zh) 2020-03-03 2020-03-03 基于posit数据格式的浮点数乘法运算方法及装置

Publications (2)

Publication Number Publication Date
CN111367497A CN111367497A (zh) 2020-07-03
CN111367497B true CN111367497B (zh) 2023-03-14

Family

ID=71208343

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010138192.8A Active CN111367497B (zh) 2020-03-03 2020-03-03 基于posit数据格式的浮点数乘法运算方法及装置

Country Status (1)

Country Link
CN (1) CN111367497B (zh)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101685383A (zh) * 2008-09-28 2010-03-31 杨高祥 计算器、基于直接对阶的自由精度浮点数的运算电路
CN104375800A (zh) * 2014-12-09 2015-02-25 国网重庆市电力公司电力科学研究院 一种嵌入式系统的浮点除法运算方法、系统和嵌入式系统

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101685383A (zh) * 2008-09-28 2010-03-31 杨高祥 计算器、基于直接对阶的自由精度浮点数的运算电路
CN104375800A (zh) * 2014-12-09 2015-02-25 国网重庆市电力公司电力科学研究院 一种嵌入式系统的浮点除法运算方法、系统和嵌入式系统

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
《Deep Positron: A Deep Neural Network Using the Posit Number System》;Zachariah Carmichael 等;《2019 Design, Automation & Test in Europe Conference & Exhibition (DATE)》;全文 *
《Evaluating the Hardware Cost of the Posit Number System》;Yohann Uguen 等;《2019 29th International Conference on Field Programmable Logic and Applications (FPL)》;全文 *

Also Published As

Publication number Publication date
CN111367497A (zh) 2020-07-03

Similar Documents

Publication Publication Date Title
CN111340207B (zh) 浮点数转换方法及装置
US11915104B2 (en) Normalizing text attributes for machine learning models
CN111290732B (zh) 基于posit数据格式的浮点数乘法运算电路
CN111240640B (zh) 基于硬件环境的数据量化方法、装置及可读存储介质
CN111783974A (zh) 模型构建及图像处理方法、装置、硬件平台及存储介质
CN112596697A (zh) 使用分解的分量数字的浮点乘法硬件
US11704543B2 (en) Neural network hardware acceleration with stochastic adaptive resource allocation
CN114943673A (zh) 瑕疵图像生成方法、装置、电子设备及存储介质
EP4064036A1 (en) Floating-point number multiplication computation method and apparatus, and arithmetical logic unit
CN111967608A (zh) 数据处理方法、装置、设备及存储介质
CN112488297B (zh) 一种神经网络剪枝方法、模型生成方法及装置
CN113449854A (zh) 网络模型的混合精度量化方法、设备及计算机存储介质
CN107977504B (zh) 一种非对称堆芯燃料管理计算方法、装置及终端设备
CN111367497B (zh) 基于posit数据格式的浮点数乘法运算方法及装置
CN111310909B (zh) 一种浮点数转换电路
CN116137061B (zh) 数量统计模型的训练方法、装置、电子设备及存储介质
CN116795324A (zh) 混合精度浮点乘法装置和混合精度浮点数处理方法
CN111313905B (zh) 一种浮点数转换方法及装置
CN113625990B (zh) 浮点转定点装置、方法、电子设备及存储介质
CN111881916B (zh) 一种文字定位方法、装置及设备
CN112990466A (zh) 一种冗余规则检测方法、装置以及服务器
CN112699874B (zh) 一种面向任意旋转方向图像的文字识别方法及系统
EP4068080A1 (en) Information processing device, program, and information processing method
CN115906651B (zh) 二值神经网络的更新方法、装置及电子设备
CN111144066B (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