CN111340207B - 浮点数转换方法及装置 - Google Patents
浮点数转换方法及装置 Download PDFInfo
- Publication number
- CN111340207B CN111340207B CN202010138180.5A CN202010138180A CN111340207B CN 111340207 B CN111340207 B CN 111340207B CN 202010138180 A CN202010138180 A CN 202010138180A CN 111340207 B CN111340207 B CN 111340207B
- Authority
- CN
- China
- Prior art keywords
- segment
- value
- section
- bit width
- binary code
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 35
- 238000006243 chemical reaction Methods 0.000 title claims abstract description 18
- 230000008520 organization Effects 0.000 claims abstract description 67
- 230000001502 supplementing effect Effects 0.000 claims description 6
- 238000013528 artificial neural network Methods 0.000 description 11
- 230000008569 process Effects 0.000 description 11
- 238000010586 diagram Methods 0.000 description 6
- 230000001105 regulatory effect Effects 0.000 description 3
- 230000009466 transformation Effects 0.000 description 3
- 238000004458 analytical method Methods 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 238000004590 computer program Methods 0.000 description 2
- 238000013500 data storage Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 210000004556 brain Anatomy 0.000 description 1
- 230000000295 complement effect Effects 0.000 description 1
- 239000004174 erythrosine Substances 0.000 description 1
- 230000010365 information processing Effects 0.000 description 1
- 238000003062 neural network model Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/06—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
- G06N3/063—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M7/00—Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
- H03M7/14—Conversion to or from non-weighted codes
- H03M7/24—Conversion to or from floating-point codes
-
- Y—GENERAL 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
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE 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/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Health & Medical Sciences (AREA)
- Life Sciences & Earth Sciences (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Evolutionary Computation (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Artificial Intelligence (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Neurology (AREA)
- Complex Calculations (AREA)
Abstract
本申请提供了一种浮点数的转换方法及装置。所述方法包括:对第一浮点数进行分析,确定第一浮点数中第一符号段的值、组织段的值、第一指数段的值和第一尾数段的值,据此分别确定第二符号段的值、第二指数段的值和第二尾数段的值,再将第二符号段的值、第二指数段的值和第二尾数段的值,以二进制码的形式组合成IEEE 754数据格式的第二浮点数。如此,能够实现将posit数据格式的浮点数转换为IEEE 754数据格式的浮点数。
Description
技术领域
本申请涉及数据处理技术领域,特别涉及一种浮点数转换方法及装置。
背景技术
随着大数据时代的到来,人工神经网络技术得到飞速发展。人工神经网络是由大量处理单元互联组成的非线性、自适应信息处理系统,试图通过模拟大脑神经网络处理、记忆信息的方式进行信息处理。
人工神经网络包括数据处理和数据存储两大部分。数据处理是指对浮点数进行运算、分析,从而建立神经网络模型;数据存储是指对浮点数进行存储。浮点数的数据格式有多种,比如IEEE 754规范的规格化单精度浮点数格式(简称为IEEE 754数据格式)和posit数据格式等。
由于IEEE 754数据格式在精度上能够满足人工神经网络的训练要求,因此,通常采用IEEE 754数据格式的浮点数执行数据处理的过程。但是,IEEE 754数据格式的浮点数占用的位宽较大,进而需要占用较多的存储资源和读写资源。而posit数据格式的浮点数占用的位宽较少,如果能够将浮点数以posit数据格式进行存储,就可以大大减少存储资源和读写资源的占用。为了实现将浮点数以posit数据格式进行存储,并以IEEE 754数据格式进行处理,一个必须要解决的问题就是将posit数据格式的浮点数转换为IEEE 754数据格式的浮点数。
申请内容
本申请提供了一种浮点数的转换方法及装置,可用于实现将posit数据格式的浮点数转换为IEEE 754数据格式的浮点数。
第一方面,本申请实施例提供一种浮点数转换方法,所述方法包括:
获取posit数据格式的第一浮点数;
对所述第一浮点数进行分析,确定所述第一浮点数中第一符号段的值、组织段的值、第一指数段的值和第一尾数段的值;
根据所述第一符号段的值,确定第二符号段的值;
根据所述组织段的值、所述第一指数段的值和预设指数段位宽,确定第二指数段的值;
根据所述第一尾数段的值,确定第二尾数段的值;
将所述第二符号段的值、所述第二指数段的值和所述第二尾数段的值,以二进制码的形式组合成IEEE 754数据格式的第二浮点数。
结合第一方面,在第一方面的一种可实现方式中,对所述第一浮点数进行分析,确定所述第一浮点数中第一符号段的值、组织段的值、第一指数段的值和第一尾数段的值,包括:
对所述第一浮点数进行分析,确定所述第一浮点数中第一符号段的二进制码、组织段的二进制码、第一指数段的二进制码和第一尾数段的二进制码;
根据所述第一符号段的二进制码,确定所述第一符号段的值;
根据所述组织段的二进制码,确定所述组织段的值;
根据所述第一指数段的二进制码,确定所述第一指数段的值;
根据所述第一尾数段的二进制码,确定所述第一尾数段的值。
结合第一方面,在第一方面的一种可实现方式中,根据所述组织段的二进制码,确定所述组织段的值,包括:
如果所述组织段的二进制码由a个1和1个0组成,则所述组织段的值为a-1;
如果所述组织段的二进制码由a个0和1个1组成,则所述组织段的值为-a。
结合第一方面,在第一方面的一种可实现方式中,对所述第一浮点数进行分析,确定所述第一浮点数中第一指数段的二进制码,包括:
如果预设总位宽减去第一符号段的位宽和组织段的位宽后,剩余的第一位宽大于或者等于所述预设指数段位宽,则从所述第一浮点数中截取所述预设指数段位宽,得到所述第一指数段的二进制码;
如果预设总位宽减去第一符号段的位宽和组织段的位宽后,剩余的第一位宽小于所述预设指数段位宽,则对所述第一位宽采用补0的方式得到所述第一指数段的二进制码。
结合第一方面,在第一方面的一种可实现方式中,对所述第一浮点数进行分析,确定所述第一浮点数中第一尾数段的二进制码,包括:
如果预设总位宽减去第一符号段的位宽、组织段的位宽和所述预设指数段位宽后,剩余第二位宽,则根据所述第二位宽确定第一尾数段的二进制码;
如果预设总位宽减去第一符号段的位宽、组织段的位宽和所述预设指数段位宽后,未剩余第二位宽,则确定第一尾数段的二进制码为0。
结合第一方面,在第一方面的一种可实现方式中,所述第二指数段的值按照下述公式确定:
E=k×2es+e+127
其中,E是所述第二指数段的值;k是所述组织段的值;es是所述预设指数段位宽;e是所述第一指数段的值。
结合第一方面,在第一方面的一种可实现方式中,将所述第二符号段的值、所述第二指数段的值和所述第二尾数段的值,以二进制码的形式组合成IEEE 754数据格式的第二浮点数,包括:
根据所述第二符号段的值,确定所述第二符号段的值对应的二进制码;
根据所述第二指数段的值,确定所述第二指数段的值对应的二进制码;
根据所述第二尾数段的值,确定所述第二尾数段的值对应的二进制码;
将所述第二符号段的值对应的二进制码、所述第二指数段的值对应的二进制码和所述第二尾数段的值对应的二进制码,按照从头到尾的顺序进行拼接,得到所述第二浮点数。
第二方面,本申请实施例提供一种浮点数转换装置,所述装置包括:
获取单元,用于获取posit数据格式的第一浮点数;
处理单元,用于对所述第一浮点数进行分析,确定所述第一浮点数中第一符号段的值、组织段的值、第一指数段的值和第一尾数段的值;以及,根据所述第一符号段的值,确定第二符号段的值;以及,根据所述组织段的值、所述第一指数段的值和预设指数段位宽,确定第二指数段的值;以及,根据所述第一尾数段的值,确定第二尾数段的值;
组合单元,用于将所述第二符号段的值、所述第二指数段的值和所述第二尾数段的值,以二进制码的形式组合成IEEE 754数据格式的第二浮点数。
结合第二方面,在第二方面的一种可实现方式中,所述处理单元具体用于:
对所述第一浮点数进行分析,确定所述第一浮点数中第一符号段的二进制码、组织段的二进制码、第一指数段的二进制码和第一尾数段的二进制码;以及,根据所述第一符号段的二进制码,确定所述第一符号段的值;以及,根据所述组织段的二进制码,确定所述组织段的值;以及,根据所述第一指数段的二进制码,确定所述第一指数段的值;以及,根据所述第一尾数段的二进制码,确定所述第一尾数段的值。
结合第二方面,在第二方面的一种可实现方式中,所述处理单元具体用于:
如果所述组织段的二进制码由a个1和1个0组成,则所述组织段的值为a-1;如果所述组织段的二进制码由a个0和1个1组成,则所述组织段的值为-a。
结合第二方面,在第二方面的一种可实现方式中,所述处理单元具体用于:
如果预设总位宽减去第一符号段的位宽和组织段的位宽后,剩余的第一位宽大于或者等于所述预设指数段位宽,则从所述第一浮点数中截取所述预设指数段位宽,得到所述第一指数段的二进制码;如果预设总位宽减去第一符号段的位宽和组织段的位宽后,剩余的第一位宽小于所述预设指数段位宽,则对所述第一位宽采用补0的方式得到所述第一指数段的二进制码。
结合第二方面,在第二方面的一种可实现方式中,所述处理单元具体用于:
如果预设总位宽减去第一符号段的位宽、组织段的位宽和所述预设指数段位宽后,剩余第二位宽,则根据所述第二位宽确定第一尾数段的二进制码;如果预设总位宽减去第一符号段的位宽、组织段的位宽和所述预设指数段位宽后,未剩余第二位宽,则确定第一尾数段的二进制码为0。
结合第二方面,在第二方面的一种可实现方式中,所述第二指数段的值按照下述公式确定:
E=k×2es+e+127
其中,E是所述第二指数段的值;k是所述组织段的值;es是所述预设指数段位宽;e是所述第一指数段的值。
结合第二方面,在第二方面的一种可实现方式中,所述组合单元具体用于:
根据所述第二符号段的值,确定所述第二符号段的值对应的二进制码;以及,根据所述第二指数段的值,确定所述第二指数段的值对应的二进制码;以及,根据所述第二尾数段的值,确定所述第二尾数段的值对应的二进制码;以及,将所述第二符号段的值对应的二进制码、所述第二指数段的值对应的二进制码和所述第二尾数段的值对应的二进制码,按照从头到尾的顺序进行拼接,得到所述第二浮点数。
由以上技术方案可知,本申请公开了一种浮点数转换方法及装置,能够将posit数据格式的浮点数转换为IEEE 754数据格式的浮点数。在很多神经网络的训练过程中,其运算数据近似服从正态分布,可通过变换使数据集中在0附近,本申请中posit数据格式的浮点数的预设总位宽是可以调控的,可以很大程度的减少数据位宽,进而减少存储所需要的资源以及读写过程所消耗的资源,提高神经网络训练的效率。
附图说明
图1a是本申请提供的Posit数据格式的浮点数具体的数据表示形式的示意图;
图1b是本申请提供的IEEE 754数据格式浮点数具体的数据表示形式的示意图;
图2是本申请实施例提供的一种浮点数的转换方法所对应的流程示意图;
图3是posit数据格式的浮点数的一种示例;
图4是本申请实施例提供的一种第一浮点数的分析方法所对应的流程示意图;
图5是本申请实施例提供的一种第二浮点数的确定方法所对应的流程示意图;
图6是本申请实施例提供的一种浮点数转换装置的结构示意图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。
本申请技术方案中的Posit数据格式的参数包括N和es,其中N为整个数据表示的总位宽,es为指数段的位宽,两个参数都是在表示数据前需要确定的。N可以取任意正整数值。本实施例中以N表示预设总位宽,以es表示预设指数段位宽,预设指数段位宽是根据对Posit数据格式的浮点数的实际需求选择的,预设指数段位宽所取的值小于预设总位宽所取的值。
图1a为本申请提供的Posit数据格式的浮点数具体的数据表示形式的示意图,图1b为本申请提供的IEEE 754数据格式浮点数具体的数据表示形式的示意图。如图1a和图1b示,Posit数据格式的浮点数与IEEE 754数据格式的浮点数之间区别在于,在进行具体的数据表示时,IEEE 754数据格式的浮点数包括符号段S,指数段E和尾数段F三个部分,其构成是32位,共包括1位符号段,8位指数段,23位尾数段,在确认尾数段时,一般需要补0。而Posit数据格式的浮点数包括符号段s,组织段r、指数段e和尾数段f四个部分。
对于一个Posit数据格式的浮点数来说,该浮点数与其真值A的关系为:
其中,s表示Posit数据格式中符号段的值,只有一位,由最高位表示,当A为正数时,s的值为0,当A为负数时,s的值为1。k表示Posit数据格式中组织段的值;e表示Posit数据格式中指数段的值,f表示Posit数据格式中尾数段的值,是将整数部分表示为1后,小数点后的所有尾数。
对于一个IEEE 754数据格式的浮点数来说,该浮点数与其真值A的关系为:
A=(-1)S×2E-127×1.F
其中,S表示IEEE 754数据格式中符号段的值,只有一位,由最高位表示,当A为正数时,S的值为0,当A为负数时,S的值为1。E表示IEEE 754数据格式中指数段的值,F表示IEEE 754数据格式中尾数段的值,是将整数部分表示为1后,小数点后的所有尾数。
具体请参考图2,其示例性示出了本申请实施例提供的一种浮点数的转换方法所对应的流程示意图,具体包括如下步骤:
步骤201,获取posit数据格式的第一浮点数。
步骤202,对第一浮点数进行分析,确定第一浮点数中第一符号段的值、组织段的值、第一指数段的值和第一尾数段的值。
步骤203,根据第一符号段的值,确定第二符号段的值。
步骤204,根据组织段的值、第一指数段的值和预设指数段位宽,确定第二指数段的值。
步骤205,根据第一尾数段的值,确定第二尾数段的值。
步骤206,将第二符号段的值、第二指数段的值和第二尾数段的值,以二进制码的形式组合成IEEE 754数据格式的第二浮点数。
本申请实施例中,能够将posit数据格式的浮点数转换为IEEE 754数据格式的浮点数。在很多神经网络的训练过程中,其运算数据近似服从正态分布,可通过变换使数据集中在0附近,本申请中posit数据格式的浮点数的预设总位宽是可以调控的,可以很大程度的减少数据位宽,进而减少存储所需要的资源以及读写过程所消耗的资源,提高神经网络训练的效率。
具体来说,步骤201中,第一浮点数是posit数据格式的浮点数。posit数据格式的浮点数的预设总位宽是N位,N的具体数值可以是预先设置的,其中,预设总位宽可以是指第一浮点数所占的位宽。
如图3所示,为posit数据格式的浮点数的一种示例。该浮点数是“000000001000000000110001”,该浮点数的预设总位宽N=24。
步骤202中,对第一浮点数进行分析时,可以参考图4,其示例性示出了本申请实施例提供的一种第一浮点数的分析方法所对应的流程示意图,具体包括如下步骤:
步骤401,对第一浮点数进行分析,确定第一浮点数中第一符号段的二进制码、组织段的二进制码、第一指数段的二进制码和第一尾数段的二进制码。
仍然以图3示出的浮点数为例,从图3中可以看出,posit数据格式的浮点数可以包括第一符号段、组织段、第一指数段和第一尾数段四部分二进制码。
其中,第一符号段占1位,通常是首位。第一符号段的二进制码如果是“0”,则表示该浮点数的真值是正数;第一符号段的二进制码如果是“1”,则表示该浮点数的真值是负数。
组织段位于第一符号段之后,其所占的位宽是不确定的,以图3示出的浮点数为例,该浮点数中组织段所占的位宽是8位。组织段的二进制码可以是连续的0以及后续的一个1,而连续的0的个数是不确定的,例如图3中示出的“00000001”,其中连续的0的个数是7;组织段的二进制码也可以是连续的1以及后续的一个0,而连续的1的个数也是不确定的。
第一指数段位于组织段之后,预设指数段位宽是es位,es的具体数值可以是预先设置的,其中,预设指数段位宽可以是指第一指数段所占的位宽。
第一浮点数中第一指数段的二进制码是根据预设指数段位宽、第一符号段的二进制码及组织段的二进制码确定的。
具体地,根据第一符号段的二进制码,确定第一符号段的位宽;以及,根据组织段的二进制码,确定组织段的位宽。
如果预设总位宽减去第一符号段的位宽和组织段的位宽后,剩余的第一位宽大于或者等于预设指数段位宽,则从第一浮点数中截取预设指数段位宽,得到第一指数段的二进制码。
如果预设总位宽减去第一符号段的位宽和组织段的位宽后,剩余的第一位宽小于预设指数段位宽,则对第一位宽采用补0的方式得到第一指数段的二进制码。
具体实施过程中,从第一浮点数舍去第一符号段和组织段分别对应的二进制码,从剩余的二进制码中按从头到尾的顺序,截取es位的二进制码,所截取到的二进制码就是第一指数段对应的二进制码。
假设es=11,以图3示出的posit数据个数的浮点数为例,该浮点数中,舍去第一符号段的二进制码“0”,以及舍去组织段的二进制码“00000001”后,剩余的二进制码是“000000000110001”,然后,从剩余的二进制码中截取es位(es=11)的二进制码,作为第一指数段的二进制码,即第一指数段的二进制码是“00000000011”,其所占的位宽是11。
需要说明的是,在可能的情形中,从第一浮点数舍去第一符号段和组织段分别对应的二进制码后,剩余的二进制码的位宽小于es位,此时,可以通过补0的方式,在剩余的二进制码之后补0,使得第一指数段所占的位宽是es位。举个例子,假设es=11,剩余的二进制码是“0000000001”,剩余的二进制码的位宽是10位,小于es(es=11)位,此时,可以在剩余的二进制码之后补0,即第一指数段的二进制码是“00000000010”,使其所占的位宽满足es位(即满足11位的位宽)。
第一尾数段位于第一指数段之后,是指小数点后的所有尾数。在第一浮点数中,第一尾数段可能存在也可能不存在,在不存在的情况下,第一尾数段的二进制码是0。
具体地,根据第一符号段的二进制码,确定第一符号段的位宽;以及,根据组织段的二进制码,确定组织段对应的位宽。
如果预设总位宽减去第一符号段的位宽、组织段的位宽和预设指数段位宽后,剩余第二位宽,则根据第二位宽确定第一尾数段的二进制码。
如果预设总位宽减去第一符号段的位宽、组织段的位宽和预设指数段位宽后,未剩余第二位宽,则确定第一尾数段的二进制码为0。
以图3示出的浮点数为例,该浮点数中第一尾数段对应的二进制码是“0001”。
需要说明的是,上文描述的第一尾数段不存在的情况是指,从第一浮点数舍去第一符号段、组织段和第一指数段分别对应的二进制码后,没有剩余的二进制码,此时,第一尾数段不存在,也即第一尾数段的二进制码是0。
步骤402,根据第一符号段的二进制码,确定第一符号段的值。
第一符号段所占的位宽是1位,第一符号段的二进制码是“0”时,第一符号段的值为正;第一符号段的二进制码是“1”时,第一符号段的值为负。
步骤403,根据组织段的二进制码,确定组织段的值。
针对第一浮点数中组织段的二进制码,如果该二进制码的首位是1,则表示第一浮点数中组织段的值是正数或0;如果该二进制码的首位是0,则表示第一浮点数中组织段的值是负数。
如果组织段的二进制码由a个1和1个0组成,则组织段的值为a-1;如果组织段的二进制码由a个0和1个1组成,则组织段的值为-a。
以图3示出的posit数据格式的浮点数为例,该浮点数中组织段的二进制码是“00000001”,该浮点数中组织段的值是-7。
再举个例子,假设第一浮点数的真值是0.125,N=8,es=2,其Posit数据格式是00101000,对于该浮点数,要找他的组织段,那么就是先不看符号段0,剩下7位0101000,其组织段就是第一次变化的地方(0变1或者1变0),那么就是01,然后根据es=2,得到指数段01,最后尾数段000。如果是00010100,那么找到的组织段就是001,指数段01,尾数段00。还有一种特殊情况,假设N=5,es=2,Posit数据格式是10000,这时候组织段就是0000,表示的值为-4,也就是说前面括号里提及的第一次变化的0或者1是可以省略掉的,但也只能省去组织段的最后一位数。
步骤404,根据第一指数段的二进制码,确定第一指数段的值。
第一浮点数(即posit数据格式的浮点数)是0和1组合成的二进制数。将第一浮点数中第一指数段的二进制码由二进制转换成十进制,所得到的值可以确定为第一浮点数中第一指数段的值。
步骤405,根据第一尾数段的二进制码,确定第一尾数段的值。
可以将第一尾数段的二进制码由二进制转换成十进制,所得到的值可以确定为作为第一尾数段的值。
步骤203中,第二浮点数是IEEE 754数据格式的浮点数。IEEE 754数据格式的第二浮点数可以包括第二符号段、第二指数段和第二尾数段分别对应的二进制码。
在posit数据格式的第一浮点数中的第一符号段,与在IEEE 754数据格式的第二浮点数中的第二符号段,都是用于表示正负号的。因此,可以将第一符号段的值确定为第二符号段的值。
以图3示出的posit数据格式的浮点数为例,第一浮点数的第一符号段的二进制码是“0”(其值也是0),那么,第二浮点数中第二符号段的值也是0。
需要说明的是,在posit数据格式的浮点数转变为IEEE 754数据格式的浮点数时,对于负数,需要先对于其除了符号位的部分先取补码,再进行操作;对于正数,无需执行上述取补码的操作。
举个例子,0.125的posit数据格式是00101,那最开始得到的就是00101,可以直接按照算法转化。而-0.125的posit格式是11011,那么就要把除了符号位1剩下的部分1011,取一次补码,就是先取反变成0100,再加1,变成0101,再进行后续操作。
步骤204中,组织段在posit数据格式的第一浮点数中才会存在,而在IEEE 754数据格式的第二浮点数中是不存在的,在确定IEEE 754数据格式的第二浮点数中的第二指数段的值时,可以根据posit数据格式的第一浮点数中组织段的值、第一指数段的值和预设指数段位宽来确定。
第二指数段的值可以根据公式(1)确定:
E=k×2es+e+127 公式(1)
公式(1)中,E是第二指数段的值;k是组织段的值;es是预设指数段位宽;e是第一指数段的值。
步骤205中,第一尾数段的值指的是尾数段的表现形式,类似地,第二尾数段的值指的也是尾数段的表现形式。
在posit数据格式的第一浮点数中的第一尾数段的表现形式,与在IEEE 754数据格式的第二浮点数中的第二尾数段是一致的的表现形式。比如,第一尾数段的表现形式是“0001”,那么,第二尾数段的表现形式也是“0001”。步骤206中,在确定第二浮点数时,可以参考图5,其示例性示出了本申请实施例提供的一种第二浮点数的确定方法所对应的流程示意图,具体包括如下步骤:
步骤501,根据第二符号段的值,确定第二符号段的值对应的二进制码。
第二符号段的值为正时,第二符号段的二进制码是“0”;第二符号段的值为负时,第二符号段的二进制码是“1”。
步骤502,根据第二指数段的值,确定第二指数段的值对应的二进制码。
可以将第二指数段的值由十进制转换成二进制,作为第二指数段的二进制码。
步骤503,根据第二尾数段的值,确定第二尾数段的值对应的二进制码。
由于在IEEE 754数据格式的第二浮点数中,第二尾数段的位宽是23位,那么,可以在末端补0,直至补0后的位宽达到23位,就可以得到第二尾数段对应的二进制码。
举个例子,假设第一尾数段的表现形式是0001,那么第二尾数段的表现形式是0001,由于第二尾数段的位宽是23位,通过在末端补0,可以得到第二尾数段对应的二进制码是“00010000000000000000000”。
步骤504,将第二符号段的值对应的二进制码、第二指数段的值对应的二进制码和第二尾数段的值对应的二进制码,按照从头到尾的顺序进行拼接,得到第二浮点数。
需要说明的是,上述步骤503和步骤504中的第二尾数段的值对应的二进制码,是指二进制码的原码。
下述为本申请装置实施例,可以用于执行本申请方法实施例。对于本申请装置实施例中未披露的细节,请参照本申请方法实施例。
图6示例性示出了本申请实施例提供的一种浮点数转换装置的结构示意图。如图6所示,该装置具有实现上述浮点数转换方法的功能,所述功能可以由硬件实现,也可以由硬件执行相应的软件实现。该装置可以包括:获取单元601、处理单元602和组合单元603。
获取单元601,用于获取posit数据格式的第一浮点数;
处理单元602,用于对所述第一浮点数进行分析,确定所述第一浮点数中第一符号段的值、组织段的值、第一指数段的值和第一尾数段的值;以及,根据所述第一符号段的值,确定第二符号段的值;以及,根据所述组织段的值、所述第一指数段的值和预设指数段位宽,确定第二指数段的值;以及,根据所述第一尾数段的值,确定第二尾数段的值;
组合单元603,用于将所述第二符号段的值、所述第二指数段的值和所述第二尾数段的值,以二进制码的形式组合成IEEE 754数据格式的第二浮点数。
可选地,所述处理单元602具体用于:
对所述第一浮点数进行分析,确定所述第一浮点数中第一符号段的二进制码、组织段的二进制码、第一指数段的二进制码和第一尾数段的二进制码;以及,根据所述第一符号段的二进制码,确定所述第一符号段的值;以及,根据所述组织段的二进制码,确定所述组织段的值;以及,根据所述第一指数段的二进制码,确定所述第一指数段的值;以及,根据所述第一尾数段的二进制码,确定所述第一尾数段的值。
可选地,所述处理单元602具体用于:
如果所述组织段的二进制码由a个1和1个0组成,则所述组织段的值为a-1;如果所述组织段的二进制码由a个0和1个1组成,则所述组织段的值为-a。
可选地,所述处理单元602具体用于:
如果预设总位宽减去第一符号段的位宽和组织段的位宽后,剩余的第一位宽大于或者等于所述预设指数段位宽,则从所述第一浮点数中截取所述预设指数段位宽,得到所述第一指数段的二进制码;如果预设总位宽减去第一符号段的位宽和组织段的位宽后,剩余的第一位宽小于所述预设指数段位宽,则对所述第一位宽采用补0的方式得到所述第一指数段的二进制码。
可选地,所述处理单元602具体用于:
如果预设总位宽减去第一符号段的位宽、组织段的位宽和所述预设指数段位宽后,剩余第二位宽,则根据所述第二位宽确定第一尾数段的二进制码;如果预设总位宽减去第一符号段的位宽、组织段的位宽和所述预设指数段位宽后,未剩余第二位宽,则确定第一尾数段的二进制码为0。
可选地,所述第二指数段的值按照下述公式确定:
E=k×2es+e+127
其中,E是所述第二指数段的值;k是所述组织段的值;es是所述预设指数段位宽;e是所述第一指数段的值。
可选地,所述组合单元603具体用于:
根据所述第二符号段的值,确定所述第二符号段的值对应的二进制码;以及,根据所述第二指数段的值,确定所述第二指数段的值对应的二进制码;以及,根据所述第二尾数段的值,确定所述第二尾数段的值对应的二进制码;以及,将所述第二符号段的值对应的二进制码、所述第二指数段的值对应的二进制码和所述第二尾数段的值对应的二进制码,按照从头到尾的顺序进行拼接,得到所述第二浮点数。
本申请实施例中,能够将posit数据格式的浮点数转换为IEEE 754数据格式的浮点数。在很多神经网络的训练过程中,其运算数据近似服从正态分布,可通过变换使数据集中在0附近,本申请中posit数据格式的浮点数的预设总位宽是可以调控的,可以很大程度的减少数据位宽,进而减少存储所需要的资源以及读写过程所消耗的资源,提高神经网络训练的效率。
本申请实施例还提供了一种存储介质,所述存储介质中存储有计算机程序,当浮点数转换装置的至少一个处理器执行所述计算机程序时,浮点数转换装置执行上述实施例所述的浮点数转换方法。
所述的存储介质可为磁碟、光盘、只读存储记忆体(英文:read-only memory,简称:ROM)或随机存储记忆体(英文:random access memory,简称:RAM)等。
本领域的技术人员可以清楚地了解到本申请实施例中的技术可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本申请实施例中的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例或者实施例的某些部分所述的方法。
本说明书中各个实施例之间相同相似的部分互相参见即可。尤其,对于服务构建装置和服务加载装置实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例中的说明即可。
以上所述的本申请实施方式并不构成对本申请保护范围的限定。
Claims (4)
1.一种浮点数转换方法,其特征在于,所述方法包括:
获取posit数据格式的第一浮点数;
对所述第一浮点数进行分析,确定所述第一浮点数中第一符号段的值、组织段的值、第一指数段的值和第一尾数段的值;
根据所述第一符号段的值,确定第二符号段的值;
根据所述组织段的值、所述第一指数段的值和预设指数段位宽,确定第二指数段的值;
根据所述第一尾数段的值,确定第二尾数段的值;
将所述第二符号段的值、所述第二指数段的值和所述第二尾数段的值,以二进制码的形式组合成IEEE754数据格式的第二浮点数;
对所述第一浮点数进行分析,确定所述第一浮点数中第一符号段的值、组织段的值、第一指数段的值和第一尾数段的值,包括:
对所述第一浮点数进行分析,确定所述第一浮点数中第一符号段的二进制码、组织段的二进制码、第一指数段的二进制码和第一尾数段的二进制码;
根据所述第一符号段的二进制码,确定所述第一符号段的值;
根据所述组织段的二进制码,确定所述组织段的值;
根据所述第一指数段的二进制码,确定所述第一指数段的值;
根据所述第一尾数段的二进制码,确定所述第一尾数段的值;
根据所述组织段的二进制码,确定所述组织段的值,包括:
如果所述组织段的二进制码由a个1和1个0组成,则所述组织段的值为a-1;
如果所述组织段的二进制码由a个0和1个1组成,则所述组织段的值为-a;
对所述第一浮点数进行分析,确定所述第一浮点数中第一指数段的二进制码,包括:
如果预设总位宽减去第一符号段的位宽和组织段的位宽后,剩余的第一位宽大于或者等于所述预设指数段位宽,则从所述第一浮点数中截取所述预设指数段位宽,得到所述第一指数段的二进制码;
如果预设总位宽减去第一符号段的位宽和组织段的位宽后,剩余的第一位宽小于所述预设指数段位宽,则对所述第一位宽采用补0的方式得到所述第一指数段的二进制码;
对所述第一浮点数进行分析,确定所述第一浮点数中第一尾数段的二进制码,包括:
如果预设总位宽减去第一符号段的位宽、组织段的位宽和所述预设指数段位宽后,剩余第二位宽,则根据所述第二位宽确定第一尾数段的二进制码;
如果预设总位宽减去第一符号段的位宽、组织段的位宽和所述预设指数段位宽后,未剩余第二位宽,则确定第一尾数段的二进制码为0;
所述第二指数段的值按照下述公式确定:
E=k×2es+e+127
其中,E是所述第二指数段的值;k是所述组织段的值;es是所述预设指数段位宽;e是所述第一指数段的值。
2.根据权利要求1所述的方法,其特征在于,将所述第二符号段的值、所述第二指数段的值和所述第二尾数段的值,以二进制码的形式组合成IEEE754数据格式的第二浮点数,包括:
根据所述第二符号段的值,确定所述第二符号段的值对应的二进制码;
根据所述第二指数段的值,确定所述第二指数段的值对应的二进制码;
根据所述第二尾数段的值,确定所述第二尾数段的值对应的二进制码;
将所述第二符号段的值对应的二进制码、所述第二指数段的值对应的二进制码和所述第二尾数段的值对应的二进制码,按照从头到尾的顺序进行拼接,得到所述第二浮点数。
3.一种浮点数转换装置,其特征在于,所述装置包括:
获取单元,用于获取posit数据格式的第一浮点数;
处理单元,用于对所述第一浮点数进行分析,确定所述第一浮点数中第一符号段的值、组织段的值、第一指数段的值和第一尾数段的值;以及,根据所述第一符号段的值,确定第二符号段的值;以及,根据所述组织段的值、所述第一指数段的值和预设指数段位宽,确定第二指数段的值;以及,根据所述第一尾数段的值,确定第二尾数段的值;
组合单元,用于将所述第二符号段的值、所述第二指数段的值和所述第二尾数段的值,以二进制码的形式组合成IEEE754数据格式的第二浮点数;
所述处理单元具体用于:
对所述第一浮点数进行分析,确定所述第一浮点数中第一符号段的二进制码、组织段的二进制码、第一指数段的二进制码和第一尾数段的二进制码;以及,根据所述第一符号段的二进制码,确定所述第一符号段的值;以及,根据所述组织段的二进制码,确定所述组织段的值;以及,根据所述第一指数段的二进制码,确定所述第一指数段的值;以及,根据所述第一尾数段的二进制码,确定所述第一尾数段的值;
所述处理单元具体用于:
如果所述组织段的二进制码由a个1和1个0组成,则所述组织段的值为a-1;如果所述组织段的二进制码由a个0和1个1组成,则所述组织段的值为-a;
所述处理单元具体用于:
如果预设总位宽减去第一符号段的位宽和组织段的位宽后,剩余的第一位宽大于或者等于所述预设指数段位宽,则从所述第一浮点数中截取所述预设指数段位宽,得到所述第一指数段的二进制码;如果预设总位宽减去第一符号段的位宽和组织段的位宽后,剩余的第一位宽小于所述预设指数段位宽,则对所述第一位宽采用补0的方式得到所述第一指数段的二进制码;
所述处理单元具体用于:
如果预设总位宽减去第一符号段的位宽、组织段的位宽和所述预设指数段位宽后,剩余第二位宽,则根据所述第二位宽确定第一尾数段的二进制码;如果预设总位宽减去第一符号段的位宽、组织段的位宽和所述预设指数段位宽后,未剩余第二位宽,则确定第一尾数段的二进制码为0;
所述第二指数段的值按照下述公式确定:
E=k×2es+e+127
其中,E是所述第二指数段的值;k是所述组织段的值;es是所述预设指数段位宽;e是所述第一指数段的值。
4.根据权利要求3所述的装置,其特征在于,所述组合单元具体用于:
根据所述第二符号段的值,确定所述第二符号段的值对应的二进制码;以及,根据所述第二指数段的值,确定所述第二指数段的值对应的二进制码;以及,根据所述第二尾数段的值,确定所述第二尾数段的值对应的二进制码;以及,将所述第二符号段的值对应的二进制码、所述第二指数段的值对应的二进制码和所述第二尾数段的值对应的二进制码,按照从头到尾的顺序进行拼接,得到所述第二浮点数。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010138180.5A CN111340207B (zh) | 2020-03-03 | 2020-03-03 | 浮点数转换方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010138180.5A CN111340207B (zh) | 2020-03-03 | 2020-03-03 | 浮点数转换方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111340207A CN111340207A (zh) | 2020-06-26 |
CN111340207B true CN111340207B (zh) | 2023-12-15 |
Family
ID=71184248
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010138180.5A Active CN111340207B (zh) | 2020-03-03 | 2020-03-03 | 浮点数转换方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111340207B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113377334B (zh) * | 2021-08-16 | 2021-11-02 | 北京微核芯科技有限公司 | 一种浮点数据处理方法、装置及存储介质 |
CN113791756B (zh) * | 2021-09-18 | 2022-12-23 | 中科寒武纪科技股份有限公司 | 转数方法、存储介质、装置及板卡 |
CN117908827A (zh) * | 2022-10-19 | 2024-04-19 | 华为技术有限公司 | 浮点数据精度转换方法和装置 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106990937A (zh) * | 2016-01-20 | 2017-07-28 | 南京艾溪信息科技有限公司 | 一种浮点数处理装置 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8898214B2 (en) * | 2012-04-23 | 2014-11-25 | Lsi Corporation | Method and apparatus to perform floating point operations |
-
2020
- 2020-03-03 CN CN202010138180.5A patent/CN111340207B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106990937A (zh) * | 2016-01-20 | 2017-07-28 | 南京艾溪信息科技有限公司 | 一种浮点数处理装置 |
Non-Patent Citations (2)
Title |
---|
Hongbing Pan,GH CORDIC-Based Architecture for Computing N th Root of Single-Precision Floating-Point Number.《IEEE Transactions on Very Large Scale Integration (VLSI) Systems》.2020,第 864 - 875 页. * |
Yuxuan Wang ; Yuanyong Luo ; Zhongfeng Wang.Qinghong Shen * |
Also Published As
Publication number | Publication date |
---|---|
CN111340207A (zh) | 2020-06-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111340207B (zh) | 浮点数转换方法及装置 | |
WO2020224219A1 (zh) | 中文分词方法、装置、电子设备及可读存储介质 | |
CN111695352A (zh) | 基于语义分析的评分方法、装置、终端设备及存储介质 | |
CN111832449A (zh) | 工程图纸的显示方法及相关装置 | |
CN112951233A (zh) | 语音问答方法、装置、电子设备及可读存储介质 | |
CN113435499A (zh) | 标签分类方法、装置、电子设备和存储介质 | |
CN113626576A (zh) | 远程监督中关系特征抽取方法、装置、终端及存储介质 | |
CN116127925B (zh) | 基于对文本进行破坏处理的文本数据增强方法及装置 | |
CN111985491A (zh) | 基于深度学习的相似信息合并方法、装置、设备及介质 | |
CN115291813B (zh) | 一种数据存储方法及装置、数据读取方法及装置、设备 | |
CN111313906B (zh) | 一种浮点数的转换电路 | |
CN111310909B (zh) | 一种浮点数转换电路 | |
CN111783787B (zh) | 一种识别图像字符的方法、装置和电子设备 | |
CN112071331B (zh) | 语音文件修复方法、装置、计算机设备及存储介质 | |
CN112819622B (zh) | 一种信息的实体关系联合抽取方法、装置及终端设备 | |
CN111367497B (zh) | 基于posit数据格式的浮点数乘法运算方法及装置 | |
CN115238673A (zh) | 文案的生成方法、装置、电子设备及存储介质 | |
CN112926314A (zh) | 文档的重复性识别方法、装置、电子设备以及存储介质 | |
CN112464872A (zh) | 一种基于nlp自然语言的自动提取方法及装置 | |
CN112712797A (zh) | 语音识别方法、装置、电子设备及可读存储介质 | |
CN111313905B (zh) | 一种浮点数转换方法及装置 | |
CN114547285B (zh) | 表格数据含义推断方法、装置、计算机设备和存储介质 | |
CN117113351B (zh) | 一种基于多重多级预训练的软件分类方法及设备 | |
CN112699874B (zh) | 一种面向任意旋转方向图像的文字识别方法及系统 | |
CN115035322A (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 |