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

用于使用操作的混合精度分解的较高精度计算的计算机处理器制造技术

技术编号:23671832 阅读:31 留言:0更新日期:2020-04-04 17:27
本文中详述的实施例关于浮点值的算术操作。示例性处理器包括解码电路,该解码电路用于对指令解码,其中该指令指定多个操作数的位置,这些操作数的值按照浮点格式。示例性处理器进一步包括执行电路,该执行电路用于执行经解码的指令,其中执行包括:转换每个操作数的值,每个值被转换为多个较低精度的值,其中为每个操作数存储指数;在从多个操作数的值转换而来的较低精度的值之间执行算术操作;以及通过将来自算术操作的所得到的值转换为浮点格式来生成浮点值,并存储浮点值。

A computer processor for high-precision calculations using mixed precision decomposition of operations

【技术实现步骤摘要】
用于使用操作的混合精度分解的较高精度计算的计算机处理器
本专利技术的实施例关于计算机处理器架构领域,更具体地关于对用于计算机处理器架构内的算术操作的值的精度转换。
技术介绍
矩阵、向量和其他多维数据集在诸如机器学习和其他批量数据处理之类的许多计算任务中正日益重要。对这些多维数据集中的浮点数据元素执行算术操作可能是资源密集型的和/或在计算上耗时的。附图说明通过参考用于示出本专利技术的实施例的以下描述和所附附图,可最佳地理解本专利技术。在附图中:图1示出根据本专利技术的一个实施例的操作:将每个值从浮点值转换为多个整数以用于算术操作,并且将来自这些算术操作的所得到的值往回重构为浮点。图2A示出根据本专利技术的一个实施例的用于将FP32值转换为三个无符号8位整数的伪代码。图2B示出根据本专利技术的一个实施例的用于将FP32值转换为两个无符号16位整数的伪代码。图2C示出根据本专利技术的一个实施例的用于将FP32值转换为三个有符号8位整数的伪代码。图2D示出根据本专利技术的一个实施例的用于将FP32值转换为四个无符号8位整数的伪代码。图2E示出根据本专利技术的一个实施例的用于从四个有符号8位整数重构FP32值的伪代码。图3示出相比先前方式使用浮点到多个整数方式的本专利技术的实施例的数据准确性。图4示出根据本专利技术的一个实施例的操作:将每个值从值转换为多个较低精度的浮点以用于算术操作,并且将来自这些算术操作的所得到的值往回重构为浮点。图5A示出根据本专利技术的一个实施例的用于将FP32值转换为两个bfloat16值的伪代码。图5B示出根据本专利技术的一个实施例的用于从两个bfloat16值构造FP32值的伪代码。图6示出相比先前方式使用浮点到多个较低精度浮点方式的本专利技术的实施例的数据准确性。图7A是示出根据本专利技术的一个实施例的算术操作的流程图,该算术操作包括:将浮点值转换为多个较低精度的值,并且将所得到的值往回重构为浮点。图7B是示出根据本专利技术的一个实施例的从浮点值到多个较低精度的值的值转换的流程图。图8A是示出根据本专利技术的实施例的示例性有序流水线和示例性的寄存器重命名的乱序发布/执行流水线两者的框图。图8B是示出根据本专利技术的实施例的要包括在处理器中的有序架构核的示例性实施例和示例性的寄存器重命名的乱序发布/执行架构核两者的框图。图9是根据本专利技术的实施例的具有集成存储器控制器和图形器件的单核处理器和多核处理器的框图。图10示出根据本专利技术的一个实施例的系统的框图。图11示出根据本专利技术的实施例的第二系统的框图。图12示出根据本专利技术的实施例的第三系统的框图。图13示出根据本专利技术的实施例的芯片上系统(SoC)的框图。图14示出根据本专利技术的实施例的对照使用软件指令转换器将源指令集中的二进制指令转换成目标指令集中的二进制指令的框图。图15A和图15B是示出根据本专利技术的实施例的通用向量友好指令格式及其指令模板的框图。图16A-图16D是示出根据本专利技术的实施例的示例性专用向量友好指令格式的框图。图17是根据本专利技术的一个实施例的寄存器架构的框图。图18A是根据本专利技术的实施例的单个处理器核以及其到管芯上互连网络的连接以及它的第2级(L2)高速缓存的本地子集的框图;并且图18B是根据本专利技术的实施例的图18A中的处理器核的部分的展开图。图19图示经配置的片的实施例。图20图示矩阵存储的若干示例。图21图示利用矩阵(片)操作加速器的系统的实施例。图22和图23示出如何使用矩阵操作加速器来共享存储器的不同实施例。图24图示使用片的矩阵乘法累加操作(“TMMA”)的实施例。图25图示链式融合乘法累加指令的迭代的执行的子集的实施例。图26示出根据实施例的尺寸为2的幂的SIMD实现方式,其中,累加器使用比至乘法器的输入的尺寸大的尺寸。具体实施方式在以下描述中,阐述了众多特定细节。然而,应当理解,可在没有这些特定细节的情况下实践本专利技术的实施例。在其他实例中,未详细示出公知的电路、结构和技术,以免使对本说明书的理解含糊。带括号的文本和具有虚线边界(诸如,长划线、短划线、点划线和点线)的框可用于图示任选操作,这些任选操作将附加特征添加至本专利技术的实施例。然而,此类标注法不应当认为意指这些是仅有的选项或仅有的任选操作,和/或在本专利技术的一些实施例中具有实线边界的框不是任选的。说明书中对“一个实施例”、“实施例”、“示例实施例”等等的引用表明所描述的实施例可包括特定的特征、结构或特性,但是每个实施例不一定都包括该特定的特征、结构或特性。此外,此类短语不一定是指同一个实施例。此外,当结合实施例描述特定的特征、结构或特性时,认为结合无论是否被明确描述的其他实施例而影响此类特征、结构或特性是在本领域技术人员的知识范围之内的。以下描述和权利要求书可使用术语“耦合的”和“连接的”及其衍生词。这些术语不旨在互为同义词。“耦合的”用于指示彼此可以或可以不直接物理接触或电气接触的两个或更多个元件彼此协作或相互作用。“连接的”用于指示彼此耦合的两个或更多个元件之间的通信的建立。如本文中所使用,“集合”是指包括一个项的任何正整数个项。值的精度在计算中,值经常以整数格式或浮点格式来表示。值占据计算机存储器中的多个位。取决于计算中使用的值的范围,可分配不同数量的位。例如,整数可占用8个位,如果其是有符号整数则具有-128至127的范围(-27至27-1),并且如果其是无符号整数则具有0至255的范围(0至28-1)。该8位的整数格式常简写为int8,例如,针对有符号整数的int8以及针对无符号整数的unit8。除了专门被称为无符号或有符号的示例之外,每当我们写下“int”时,它也可用“uint”来替换。在计算中使用多种整数格式,并且表1示出示例性整数格式的列表。表1.示例性整数格式整数格式的范围对于有符号整数为-2(n-1)至2(n-1)-1,并且对于无符号整数为0至2n-1。整数格式能以精确的精度表示整数,但是对于除整数之外的实数(其是不包括整数的无理数或有理数),以整数格式存储的值是这些值的逼近。要使用相同数量的位表示相同范围内的值,以整数格式对实数进行逼近经常不如以浮点格式对实数进行逼近那么精确。浮点(FP)格式将实数的公式化表示用作逼近以支持范围与精度之间的权衡。值可以逼近地被表示为固定数量的有效数位(有效数字,其也可称为“尾数”,并且这两个术语可互换地使用),并且使用以某个固定底数的指数来缩放(注意,指数也可称为比例或指数比例,并且这些术语可互换地使用);用于缩放的底数可以是2、10或16(或另一整数)。值能以以下形式来表示:有效数字×底数指数,其中,有效数字可以是整数值或浮点值,底数是大于或等于2的整数,并且指数是整数。利用固定数量的数位,浮点系统可用于在计算中表示不同数量级的值本文档来自技高网...

【技术保护点】
1.一种处理器,包括:/n解码电路,用于对指令解码,其中,所述指令指定多个操作数的位置,所述多个操作数的值为浮点格式;以及/n执行电路,用于执行经解码的指令,所述执行包括用于:/n转换每个操作数的值,每个值被转换为多个较低精度的值,其中,将为每个操作数存储指数;/n在从所述多个操作数的值转换而来的较低精度的值之间执行算术操作;以及/n通过将来自所述算术操作的所得到的值转换为所述浮点格式来生成浮点值,并存储所述浮点值。/n

【技术特征摘要】
20180927 US 16/144,9641.一种处理器,包括:
解码电路,用于对指令解码,其中,所述指令指定多个操作数的位置,所述多个操作数的值为浮点格式;以及
执行电路,用于执行经解码的指令,所述执行包括用于:
转换每个操作数的值,每个值被转换为多个较低精度的值,其中,将为每个操作数存储指数;
在从所述多个操作数的值转换而来的较低精度的值之间执行算术操作;以及
通过将来自所述算术操作的所得到的值转换为所述浮点格式来生成浮点值,并存储所述浮点值。


2.如权利要求1所述的处理器,其中,转换操作数的值用于:
使用多个位来表示被转换为所述多个较低精度的值的每个值,所述多个位至少包括第一多个位和第二多个位;
标识所述多个位中的用于第一较低精度的值的所述第一多个位以对所述每个值进行逼近;以及
标识不与所述第一多个位重叠的用于第二较低精度的值的所述第二多个位以表示所述第一较低精度的值的所述逼近的其余部分,
其中,所述第一较低精度的值和所述第二较低精度的值用于与来自一个或多个其他操作数的较低精度的值执行所述算术操作。


3.如权利要求1或2所述的处理器,其中,转换操作数的值进一步用于:
基于值的值范围和所述多个较低精度的值来确定用于所述操作数的指数,所述多个较低精度的值各自都是整数值;以及
基于所述值范围将所述每个值量子化为整数值。


4.如权利要求3所述的处理器,其中,所述值范围基于检查所述操作数的所有值而被确定。


5.如权利要求2所述的处理器,其中,所述第一较低精度的值和所述第二较低精度的值中的每一个是较低精度的浮点值。


6.如权利要求1或2所述的处理器,其中,所述执行电路包括一个或多个专用乘法器-累加器MAC电路,并且所述一个或多个专用MAC电路用于执行整数乘法-累加操作。


7.如权利要求6所述的处理器,其中,每个MAC电路是融合乘加FMA电路。


8.如权利要求1或2所述的处理器,其中,每个操作数指定矩阵、向量、或多维张量或标量。


9.如权利要求1或2所述的处理器,其中,所述多个较低精度的值基于由所述指令指定的服务质量QoS来确定。


10.如权利要求1或2所述的处理器,其中,要执行的所述算术操作的数量基于由所述指令指定的服务质量QoS要求。


11.一种方法,包括:
对指令解码,其中,所述指令指定多个操作数的位置,所述多个操作数的值为浮点格式;以及<...

【专利技术属性】
技术研发人员:G·亨利A·海内克
申请(专利权)人:英特尔公司
类型:发明
国别省市:美国;US

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

1