当前位置: 首页 > 专利查询>英特尔公司专利>正文

利用弹性浮点数的系统、方法和设备技术方案

技术编号:22564566 阅读:46 留言:0更新日期:2019-11-16 11:46
本申请公开了利用弹性浮点数的系统、方法和设备。描述了利用弹性浮点编码格式的系统、设备和方法。具体地,指令的至少一个操作数是以弹性浮点编码格式将要存储或存储了数据。在一些实施方式中,浮点编码格式包括符号位、自标识字段、尾数以及非重叠指数范围。

System, method and equipment using elastic floating point number

The application discloses a system, a method and a device for using an elastic floating-point number. This paper describes the system, equipment and method of using elastic floating-point encoding format. Specifically, at least one operand of the instruction will store or store data in an elastic floating-point encoding format. In some embodiments, the floating-point encoding format includes symbol bits, self identifying fields, mantissa, and non overlapping index ranges.

【技术实现步骤摘要】
利用弹性浮点数的系统、方法和设备
本专利技术的领域总体上涉及计算机处理器架构,并且更具体地,涉及使用浮点数,这些浮点数因为精度可以根据所使用的编码而变化所以是弹性的。
技术介绍
当要在严格的功率预算内进行密集计算时,由于占用空间较小,因此经常使用降低精度的算术操作数。一个示例是深度学习,在其中,有时通过电气和电子工程师协会(IEEE)标准754/2008浮点(诸如FP16)算术指令或通过整数算术指令来进行训练和推断。附图说明本专利技术是通过示例说明的,并且不局限于各个附图的图示,在附图中,相同的参考标号指示类似的元件并且其中:图1(A)和图1(B)展示了与IEEEFP16类似的16位EFP编码(EFP16)的实施例;图2(A)和图2(B)展示了与IEEEFP16类似的16位EFP编码(EFP16)的实施例;图3展示了用于处理诸如使用基于EFP的操作数的指令等指令的硬件的实施例;图4展示了利用EFP数据来处理指令的执行电路系统的实施例;图5展示了用于处理具有两个EFP源数据操作数(A和B)的乘法指令的详细执行电路系统的实施例;图6展示了由处理器执行以用于使用EFP格式的数据来处理指令的方法的实施例;图7展示了用于解码EFP值的方法的实施例;图8A和图8B是框图,展示了根据本专利技术的实施例的通用向量友好指令格式及其指令模板;图9A是框图,展示了根据本专利技术的实施例的示例性专用向量友好指令格式;图9B是框图,展示了根据本专利技术的一个实施例的专用向量友好指令格式的构成完整操作码字段的字段;图9C是框图,展示了根据本专利技术的一个实施例的专用向量友好指令格式的构成寄存器索引字段的字段;图9D是框图,展示了根据本专利技术的一个实施例的专用向量友好指令格式900的构成扩充操作字段的字段;图10是根据本专利技术一个实施例的寄存器架构的框图;图11(A)是框图,展示了根据本专利技术的实施例的示例性有序流水线和示例性寄存器重命名、乱序发布/执行流水线两者;图11(B)是框图,展示了将被包括在根据本专利技术的实施例的处理器中的有序架构核的示例性实施例和示例性寄存器重命名、乱序发布/执行架构核;图12A至图12B展示更具体的示例性有序核架构的框图,所述核将是芯片中的若干逻辑块(包括相同类型和/或不同类型的其他核)中的一个逻辑块;图13是根据本专利技术的实施例的可具有多于一个的核、可具有集成存储器控制器、以及可具有集成图形器件的处理器的框图;图14至图17是示例性计算机架构的框图;以及图18是对照根据本专利技术的实施例的用于将源指令集中的二进制指令转换为目标指令集中的二进制指令的软件指令转换器的使用的框图。具体实施方式在以下描述中,阐述了众多具体细节。然而,应当理解,可以在没有这些具体细节的情况下实践本专利技术的实施例。在其他实例中,没有详细示出众所周知的电路、结构和技术,以避免模糊对本说明书的理解。在说明书中提到“一个实施例”、“实施例”、“示例实施例”等指示所描述的实施例可以包括特定特征、结构、或特性,但每一个实施例可能不一定包括所述特定特征、结构、或特性。而且,此类短语不必指相同的实施例。另外,当结合实施例来描述特定特征、结构或特性时,应理解,无论是否予以显式地描述,结合其他实施例来实现此特征、结构或特性在本领域的技术人员的知识范围内。为了经由窄数值数据节省功耗并提高计算速度,当前的解决方案主要依赖于短精度浮点指令,最特别的是FP16或16位整数指令。在应用中使用FP16是非常简单的。人们通常将任何应用的数值数据类型从通常的格式(在这种情况下很可能是FP32)改变为FP16。然后对应用进行重新编译并准备好供使用。使用FP16的缺点是其数值范围有限。可表示的数字的量级在2^(-14)与2^15之间。虽然这个范围似乎对于使用现有神经网络的大多数推断任务来说足够了,但是据报道FP16中的训练偶尔会与范围限制相冲突。更重要的是,由于深度学习正在迅速发展,FP16的范围限制阻碍了它的使用。整数算术的使用给为了在执行期间预先或动态地缩放数字数据的开发人员带来了巨大的负担。然而,从浮点类型切换到整数(固定点)更复杂。开发人员必须决定隐含地伴随每个整数值的比例因子。上面描述的使用FP16或整数算术指令的方法在一些使用情况下具有一些缺点。本文详述的是弹性浮点(EFP)编码,当由指令使用时,其可以在相同位宽度的数据上容纳比基于IEEE754的指令更大的动态范围。另外,作为浮点指令,应该消除静态或动态地缩放数据的负担。因此,EFP是对计算机本身的改进。本文详述的实施例涉及算术指令,对于相同存储器占用空间的数据,这些算术指令消耗并产生比IEEE754算术指令更宽的数值范围的数值。具体地,浮点值被编码,使得对范围(指数)和精度(尾数)字段的位分配可以改变,并且算术指令在此编码中消耗并产生浮点值。在一些实施例中,执行EFP算术指令以进行基本算术操作,诸如在EFP编码值上进行、并返回EFP编码值的加法、减法、乘法和除法。在一些实施例中,支持诸如平方根或融合乘加等更高级操作。与标准IEEE754浮点编码不同,EFP数字的精度可能会根据数字的量级而变化。因此,对于相同的数据宽度,EFP数字可以覆盖比相应的IEEE浮点数更大的实数数值范围。EFP编码允许经由(逐渐)降低精度来扩大数值范围。具体地,EFP编码支持三件事来实现这种扩大/精度权衡:自标识、范围分区以及算术闭包。用于指数和尾数的EFP编码内的宽度变化。因此,任何EFP编码都在其中具有对任何特定EFP对象有效的精确分配方案的标识(换言之,它自标识)。因为EFP编码允许针对指数和尾数的子位字段进行不同分配,所以期望的是由这些不同分配中的每一种表示的数值范围是非重叠的(换言之,使用范围分区)。这确保了对编码容量的最大使用以及在任何算术操作的最后部分时的打包(编码)操作的唯一编码选择。最后,通过编码(算术闭包)在所表示的值的集合中关闭EFP算术操作。具体地,至少两种编码位模式被保留用于+/-无穷或+/-饱和值,并且一种编码位模式被保留用于非数字(NaN)的等效物。图1(A)和图1(B)展示了与IEEEFP16类似的16位EFP编码(EFP16)的实施例。在这些说明中,最高有效位位置在左侧。在EFP编码中,存在符号位、自标识字段、用于表示指数范围的一个或多个位、以及用于指示尾数的一个或多个位。注意,在一些实施例中,自标识字段可以被认为是指数的一部分,仅具有用于定义范围的指数位的适当子集。如图所示,每个编码值包括此最高有效位位置中的符号位。在其他实施例中,最高有效位位置被翻转(使得所述符号位于位位置0)。符号位之后的前一位或两位被认为是指数宽度的一部分(不是所述指数值)。如101中所示,在这些实施例中,当符号位之后的位是0(自标识字段)时,则之后的3位用于表示[-3,4]的指数范围。这是指数本文档来自技高网...

【技术保护点】
1.一种设备,包括:/n解码器电路系统,用于:/n对指令进行解码,所述指令用于包括定义至少一个待进行的操作的操作码以及用于标识第一操作数和第二操作数的至少两个字段,其中,所述操作数用于以浮点编码格式来存储数据,所述浮点编码格式用于包括用于符号位、自标识字段、尾数和非重叠指数范围的字段,并且/n将经标识的第一操作数和第二操作数解码成至少两个实数值,每个实数值具有标准指数和尾数字段;/n执行电路系统,用于使用所述经标识的第一操作数和第二操作数的所述至少两个实数值、根据所定义的至少一个待进行的操作来执行经解码的指令。/n

【技术特征摘要】
20180508 US 15/973,8161.一种设备,包括:
解码器电路系统,用于:
对指令进行解码,所述指令用于包括定义至少一个待进行的操作的操作码以及用于标识第一操作数和第二操作数的至少两个字段,其中,所述操作数用于以浮点编码格式来存储数据,所述浮点编码格式用于包括用于符号位、自标识字段、尾数和非重叠指数范围的字段,并且
将经标识的第一操作数和第二操作数解码成至少两个实数值,每个实数值具有标准指数和尾数字段;
执行电路系统,用于使用所述经标识的第一操作数和第二操作数的所述至少两个实数值、根据所定义的至少一个待进行的操作来执行经解码的指令。


2.如权利要求1所述的设备,其特征在于,经编码的浮点格式用于包括用于标识无限数的位模式。


3.如权利要求1所述的设备,其特征在于,所述经编码的浮点格式用于包括用于标识非归一化浮点数的位模式。


4.如权利要求1所述的设备,其特征在于,所述经编码的浮点格式用于包括用于非零尾数的位模式。


5.如权利要求1至4中任一项所述的设备,其特征在于,所述指数范围至少为3位并且尾数宽度至少为7位。


6.如权利要求1至5中任一项所述的设备,其特征在于,所述浮点编码格式的尺寸为16位、32位、64位、128位和256位之一。


7.如权利要求1至6中任一项所述的设备,其特征在于,所述浮点编码格式的最高有效位是所述符号位。


8.如权利要求1至7中任一项所述的设备,其特征在于,所述操作码用于指示使用用于对尾数宽度和非重叠指数范围进行自标识的所述浮点编码格式。


9.如权利要求1至8中任一项所述的设备,其特征在于,所述第一操作数和所述第二操作数的标识符用于指示使用用于对尾数宽度和非重叠指数范围进行自标识的所述浮点编码格式。
...

【专利技术属性】
技术研发人员:P·T·唐
申请(专利权)人:英特尔公司
类型:发明
国别省市:美国;US

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1
相关领域技术
  • 暂无相关专利