用于向量内积的计算装置、方法和集成电路芯片制造方法及图纸

技术编号:28216750 阅读:15 留言:0更新日期:2021-04-28 09:29
本发明专利技术涉及一种用于向量内积的计算装置、方法和集成电路芯片,其中该计算装置可以包括在组合处理装置中,该组合处理装置还可以包括通用互联接口和其他处理装置。所述计算装置与其他处理装置进行交互,共同完成用户指定的计算操作。组合处理装置还可以包括存储装置,该存储装置分别与计算装置和其他处理装置连接,用于该计算装置和其他处理装置的数据存储。用于该计算装置和其他处理装置的数据存储。用于该计算装置和其他处理装置的数据存储。

【技术实现步骤摘要】
用于向量内积的计算装置、方法和集成电路芯片


[0001]本披露一般地涉及浮点数向量内积运算领域。更具体地,本披露涉及用于浮点数向量内积运算的计算装置、方法、集成电路芯片和集成电路装置。

技术介绍

[0002]向量内积运算在计算机领域的应用十分普遍。以目前的热门应用领域人工智能中的主流算法机器学习算法为例,常见算法都使用了大量的向量内积运算。这类运算涉及到大量的乘加操作,而这些乘加装置或方法的安排直接影响了演算的速度。尽管现有的技术在执行效率方面获得了显著的提高,但在处理浮点数的内积上,还存在提升的空间。因此,如何获得一种高效率和低成本的模块来执行浮点数向量内积成为现有技术中需要解决的问题。

技术实现思路

[0003]为了至少部分地解决
技术介绍
中提到的技术问题,本披露的方案提供了一种用于进行浮点数向量内积的方法、集成电路芯片和装置。
[0004]在一个方面中,本披露提供一种用于执行向量内积运算的计算装置,包括乘法单元及加法模块。乘法单元包括一个或多个浮点乘法器,该浮点乘法器配置用于对接收到的第一向量和第二向量执行对应向量元素的乘法操作,以获得每一对的对应向量元素的乘积结果,其中所述第一向量和第二向量各自包括一个或多个所述向量元素。加法模块配置用于对所述第一向量和第二向量的对应向量元素的乘积结果执行加法操作,以获得求和结果。
[0005]前述的计算装置进一步包括更新模块,其配置用于响应于所述求和结果是所述内积运算的中间结果,执行针对产生的多个所述中间结果的多次加法操作,以输出所述内积运算的最终结果。
[0006]前述更新模块包括第二加法器和寄存器,所述第二加法器配置用于重复地执行以下操作,直至完成对全部所述多个中间结果的加法操作:接收来自于所述加法模块的中间结果和来自于所述寄存器的、前次加法操作的前次求和结果;将所述中间结果和所述前次求和结果进行相加,以获得本次加法操作的求和结果;以及利用本次加法操作的结果来更新所述寄存器中存储的前次求和结果。
[0007]在另一方面中,本披露提供一种使用前述计算装置来执行向量内积运算的方法,步骤包括:利用所述浮点乘法器来执行针对所述第一向量和第二向量对应向量元素的乘法操作,以获得每一对的对应向量元素的乘积结果;以及对所述第一向量和第二向量的所述对应向量元素的乘积结果执行加法操作,以获得求和结果。
[0008]在又一方面中,本披露提供一种集成电路芯片或集成电路装置,包括前述的计算装置。在一个或多个实施例中,本披露的计算装置可以构成一个独立的集成电路芯片或布置在一块集成电路芯片、装置或板卡上,实现对多种不同数据格式的浮点数向量内积运算。
[0009]利用本披露的计算装置、相应的运算方法、集成电路芯片和集成电路装置,可以更有效率地执行浮点数向量内积运算而无需扩充过多的硬件,由此也减小了集成电路的布置面积。
附图说明
[0010]通过参考附图阅读下文的详细描述,本披露示例性实施方式的上述以及其他目的、特征和优点将变得易于理解。在附图中,以示例性而非限制性的方式示出了本披露的若干实施方式,并且相同或对应的标号表示相同或对应的部分,其中:
[0011]图1是示出根据本披露实施例的浮点数据格式的示意图;
[0012]图2是示出根据本披露实施例的计算装置的示意性结构框图;
[0013]图3是示出根据本披露实施例的浮点乘法器的示意性结构框图;
[0014]图4是示出根据本披露实施例的浮点乘法器更多细节的示意性结构框图;
[0015]图5是示出根据本披露实施例的部分积运算单元和部分积求和单元的示意性框图;
[0016]图6是示出根据本披露实施例的部分积操作的示意图;
[0017]图7是示出根据本披露实施例的华莱士树压缩器的操作流程和示意框图;
[0018]图8是示出根据本披露实施例的浮点乘法器的整体示意框图;
[0019]图9是示出根据本披露实施例的使用浮点乘法器执行浮点数乘法运算的方法的流程图;
[0020]图10是示出根据本披露另一实施例的计算装置的示意性结构框图;
[0021]图11是示出根据本披露实施例的加法模块的示意性结构框图;
[0022]图12是示出根据本披露另一实施例的加法模块的示意性结构框图;
[0023]图13是示出根据本披露实施例的更新模块的运行流程图;
[0024]图14是示出根据本披露实施例的计算装置进行向量内积运算时的流程图;
[0025]图15是示出根据本披露实施例的组合处理装置的示意性结构框图;以及
[0026]图16是示出根据本披露实施例的板卡的示意性结构框图。
具体实施方式
[0027]本披露的技术方案在整体上提供一种用于浮点数向量内积运算的方法、集成电路芯片和装置。不同于现有技术的向量内积方式,本披露提供了一种高效的计算方案,能有效缩小硬件面积,并且有效地支持不同宽度的数据,适用更多向量内积计算的使用场景。
[0028]本披露所指的向量,可以是一维的向量数据,也可以是高维数据存储格式中的其中一维数据,例如是矩阵的其中一行或一列、多维张量的其中一维数据,也可以是呈向量形式的标量数据。
[0029]下面将结合附图对本披露的技术方案及其多个实施例进行详细的描述。应当理解的是,将关于向量内积阐述许多具体细节以便提供对本披露所述多个实施例的透彻理解。然而,本领域普通技术人员在本披露公开内容的教导下,可以在没有这些具体细节的情况下实践本披露描述的多个实施例。在其他情况下,本披露公开的内容并没有详细描述公知的方法、过程和组件,以避免不必要地模糊本披露描述的实施例。另外,该描述也不应被视
为限制本披露的多个实施例的范围。
[0030]图1是示出根据本披露实施例的浮点数据格式100的示意图。如图1中所示,可以应用本披露技术方案的浮点数可以包括三个部分,例如符号(或符号位)102、指数(或指数位)104和尾数(或尾数位)106,其中对于无符号的浮点数则可以不存在符号或符号位102。在一些实施例中,适用于本披露计算装置的浮点数可以包括半精度浮点数、单精度浮点数、脑浮点数、双精度浮点数、自定义浮点数中的至少一种。具体来说,在一些实施例中,可以应用本披露技术方案的浮点数格式可以是符合IEEE754标准的浮点格式,例如双精度浮点数(float64,简写为“FP64”)、单精度浮点数(float32,简写“FP32”)或半精度浮点数(float16,简写“FP16”)。在另外一些实施例中,浮点数格式也可以是现有的16位脑浮点数(bfloat16,简写“BF16”),也可以是自定义的浮点数格式,例如8位脑浮点数(bfloat8,简写“BF8”)、无符号半精度浮点数(unsigned float16,简写“UFP16”)、无符号16位脑浮点数(unsigned bfloat16,简写“UBF16”)。为了便于理解,下面的表1示出上述的部分数据格式,其中的符号位宽、指数位宽和尾数位宽本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种用于执行向量内积运算的计算装置,包括:乘法单元,其包括一个或多个浮点乘法器,该浮点乘法器配置用于对接收到的第一向量和第二向量执行对应向量元素的乘法操作,以获得每一对的对应向量元素的乘积结果,其中所述第一向量和第二向量各自包括一个或多个所述向量元素;以及加法模块,其配置用于对所述第一向量和第二向量的所述对应向量元素的乘积结果执行加法操作,以获得求和结果。2.根据权利要求1所述的计算装置,进一步包括:更新模块,其配置用于响应于所述求和结果是所述内积运算的中间结果,执行针对产生的多个所述中间结果的多次加法操作,以输出所述内积运算的最终结果。3.根据权利要求2所述的计算装置,其中所述更新模块包括第二加法器和寄存器,所述第二加法器配置用于重复地执行以下操作,直至完成对全部所述多个中间结果的加法操作:接收来自于所述加法模块的中间结果和来自于所述寄存器的、前次加法操作的前次求和结果;将所述中间结果和所述前次求和结果进行相加,以获得本次加法操作的求和结果;以及利用本次加法操作的结果来更新所述寄存器中存储的前次求和结果。4.根据权利要求1所述的计算装置,其中:所述乘法单元输出所述乘积结果后,便接收下一对的对应向量元素进行乘法操作;所述加法模块输出所述求和结果后,便接收下一个来自所述乘法单元的乘积结果进行加法操作。5.根据权利要求1所述的计算装置,进一步包括:第一类型转换单元,其配置用于对所述乘积结果进行数据类型的转换,以便所述加法模块执行所述加法操作。6.根据权利要求5所述的计算装置,其中所述加法模块包括以多层级树状结构方式排列的多级加法器组,每级加法器组包括一个或多个第一加法器。7.根据权利要求6所述的计算装置,进一步包括布置在所述多级加法器组中的一个或多个第二类型转换单元,其配置用于将一级加法器组输出的数据转换成另一类型的数据,以用于后一级加法器组的加法操作。8.根据权利要求1-7的任意一项所述的计算装置,其中所述浮点乘法器用于根据运算模式进行浮点数乘法运算,其中所述第一向量和第二向量的所述对应向量元素至少包括指数和尾数,所述浮点乘法器包括:指数处理单元,用于根据所述运算模式、所述第一向量和第二向量的所述对应向量元素的指数来获得所述乘法运算后的指数;以及尾数处理单元,用于根据所述运算模式、所述第一向量和第二向量的所述对应向量元素来获得所述乘法运算后的尾数;其中,所述运算模式用于指示所述第一向量和第二向量的所述对应向量元素的数据格式。9.根据权利要求8所述的计算装置,其中所述运算模式还用于指示所述乘法运算后的数据格式。
10.根据权利要求8所述的计算装置,其中所述数据格式包括半精度浮点数、单精度浮点数、脑浮点数、双精度浮点数、自定义浮点数中的至少一种。11.根据权利要求8所述的计算装置,其中所述第一向量和第二向量的所述对应向量元素还包括符号,所述浮点乘法器进一步包括:符号处理单元,用于根据所述第一向量和第二向量的所述对应向量元素的符号获得乘法运算后的符号。12.根据权利要求11所述的计算装置,其中所述符号处理单元包括异或逻辑电路,所述异或逻辑电路用于根据所述第一向量和第二向量的所述对应向量元素的符号进行异或运算,获得所述乘法运算后的符号。13.根据权利要求8所述的计算装置,进一步包括:规格化处理单元,用于当所述第一向量和第二向量的所述对应向量元素为非规格化的非零浮点数时,根据所述运算模式,对所述第一向量和第二向量的所述对应向量元素进行规格化处理,以获得对应的指数和尾数。14.根据权利要求7所述的计算装置,其中所述尾数处理单元包括部分积运算单元和部分积求和单元,其中所述部分积运算单元用...

【专利技术属性】
技术研发人员:ꢀ七四专利代理机构
申请(专利权)人:安徽寒武纪信息科技有限公司
类型:发明
国别省市:

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

1