计算装置、计算设备以及用于线程组累加的方法制造方法及图纸

技术编号:28504569 阅读:16 留言:0更新日期:2021-05-19 22:55
本公开的实施例涉及计算装置、计算设备以及用于线程组累加的方法,涉及计算机领域。计算装置包括:存储单元;以及累加计算单元,与存储单元相耦接,被配置为:从与计算装置相耦接的向量处理单元接收第一线程组累加指令、与线程组通道数相对应的多个第一值和第一存储地址;响应于第一线程组累加指令,基于多个第一值生成当前累加结果;以及在存储单元中的第一存储地址中存储当前累加结果,以用于向量处理单元读取。由此,能够将线程组内的累加解耦到专用硬件进行处理,从而显著提升整体累加性能。能。能。

【技术实现步骤摘要】
计算装置、计算设备以及用于线程组累加的方法


[0001]本公开的实施例总体涉及计算机领域,具体涉及计算装置、计算设备以及用于线程组累加的方法。

技术介绍

[0002]向量处理单元中可以包括多个线程组(warp)。线程组内经常发生累加。例如,在循环神经网络(Recurrent Neural Network,RNN)中,存在大量的矩阵乘向量(MMV)和加操作。该操作能够在线程组的基础上保持累加结果。最后,需要在线程组内进行累加以生成最终结果。这能够通过以下方式实现:不断交换(shuffle)线程组通道(也称为线程)中的值以及随后对交换的值相加,或者通过使用共享存储单元来进行累加。
[0003]无论采用上述哪种方式,都会消耗大量指令来完成,呈现一种“长尾”效应。例如,给定累加维度中的1024个元素,通过16个MMV指令将结果累加到线程组内,随后需要15个指令用于线程组内累加。这造成了高达94%的巨大开销。

技术实现思路

[0004]提供了一种计算装置、计算设备以及用于线程组累加的方法,能够将线程组内的累加解耦到专用硬件进行处理,从而显著提升整体累加性能。
[0005]根据本公开的第一方面,提供了一种计算装置。该计算装置包括:存储单元;以及累加计算单元,与存储单元相耦接,被配置为:从与计算装置相耦接的向量处理单元接收第一线程组累加指令、与线程组通道数相对应的多个第一值和第一存储地址;响应于第一线程组累加指令,基于多个第一值生成当前累加结果;以及在存储单元中的第一存储地址中存储当前累加结果,以用于向量处理单元读取。
[0006]根据本公开的第二方面,提供了一种计算设备。该计算设备包括根据第一方面所述的计算装置;以及向量处理单元,与计算装置相耦接,被配置为:向计算装置中的累加计算单元发送第一线程组累加指令、与线程组通道数相对应的多个第一值和第一存储地址;以及从计算装置中的存储单元中的第一存储地址读取当前累加结果。
[0007]根据本公开的第三方面,提供了用于线程组累加的方法。该方法包括向量处理单元向累加计算单元发送第一线程组累加指令、与线程组通道数相对应的多个第一值和第一存储地址;累加计算单元响应于第一线程组累加指令,基于多个第一值生成当前累加结果;累加计算单元在与累加计算单元相耦接的存储单元中的第一存储地址中存储当前累加结果,以用于向量处理单元读取;以及向量处理单元从存储单元的第一存储地址读取当前累加结果。
[0008]应当理解,本部分所描述的内容并非旨在标识本公开的实施例的关键或重要特征,也不用于限制本公开的范围。本公开的其它特征将通过以下的说明书而变得容易理解。
附图说明
[0009]结合附图并参考以下详细说明,本公开各实施例的上述和其他特征、优点及方面将变得更加明显。在附图中,相同或相似的附图标注表示相同或相似的元素。
[0010]图1是根据本公开的实施例的计算设备100的示意图。
[0011]图2是根据本公开的实施例的累加计算单元200的示意框图。
[0012]图3是根据本公开的实施例的用于线程组累加的方法300的示意图。
[0013]图4示出了根据本公开的实施例的用于生成当前累加结果的方法400的示意图。
[0014]图5示出了根据本公开的另一实施例的用于生成当前累加结果的方法500的示意图。
具体实施方式
[0015]以下结合附图对本公开的示范性实施例做出说明,其中包括本公开实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本公开的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
[0016]在本文中使用的术语“包括”及其变形表示开放性包括,即“包括但不限于”。除非特别申明,术语“或”表示“和/或”。术语“基于”表示“至少部分地基于”。术语“一个示例实施例”和“一个实施例”表示“至少一个示例实施例”。术语“另一实施例”表示“至少一个另外的实施例”。术语“第一”、“第二”等等可以指代不同的或相同的对象。下文还可能包括其他明确的和隐含的定义。
[0017]如上所述,现有技术中线程组内累加需要大量的指令开销。
[0018]为了解决上述问题,本公开提供了一种计算装置、计算设备和用于线程组累加的方法,能够将线程组内的累加解耦到专用硬件进行处理,从而显著提升整体累加性能。
[0019]图1示出了根据本公开的实施例的计算设备100的示意框图。
[0020]如图1所示,计算设备100包括计算装置110和与计算装置110相耦接的向量处理单元120。
[0021]关于计算装置110,其例如可以包括但不限于加载存储单元(Load Store Unit,LSU)。应当理解,这只是举例说明,计算装置110也可以采用其他合适的电路来实现。计算装置110可以包括存储单元111和与存储单元111相耦接的累加计算单元112。
[0022]关于存储单元111,其可以被配置为存储累加计算单元112生成的累加结果。存储单元111可以包括随机存取存储器(RAM),例如包括但不限于静态随机存取存储器(SRAM)。应当理解,这只是举例说明,存储单元111也可以采用其他合适的存储器,本公开的范围在此不受限制。
[0023]关于累加计算单元112,其可以通过任何合适的电路来实现。累加计算单元112可以被配置为从向量处理单元120接收第一线程组累加指令、与线程组通道数相对应的多个第一值和第一存储地址。第一线程组累加指令、多个第一值和第一存储地址可以与向量处理单元120中的第一线程组相关联。例如,累加计算单元112中的第一线程组可以包括多个寄存器,用于存储多个第一值。第一线程组例如可以包括32个通道,多个第一值例如可以包括32个第一值。第一值例如为对应通道或者线程内部的累加结果。第一值例如包括但不限
于浮点数。
[0024]累加计算单元112还可以被配置为响应于第一线程组累加指令,基于多个第一值生成当前累加结果。例如,累加计算单元112可以被配置为响应于第一线程组累加指令,对多个第一值进行累加,以生成当前累加结果。
[0025]累加计算单元112还可以被配置为在存储单元111中的第一存储地址中存储当前累加结果,以用于向量处理单元120读取。
[0026]关于向量处理单元120(也称为向量处理引擎),其可以包括多个线程组,每个线程组内具有多个通道(lane),例如32通道。虽然图1中示出了一个向量处理单元120和一个累加计算单元112。但是应当理解,向量处理单元120可以为多个。相应地,累加计算单元112也可以为多个。累加计算单元112可以与向量处理单元120一一对应。
[0027]向量处理单元120可以被配置为向计算装置110中的累加计算单元112发送第一线程组累加指令、与线程组通道数相对应的多个第一值和第一存储地址。向量处理单元120还可以被配置为本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种计算装置,包括:存储单元;以及累加计算单元,与所述存储单元相耦接,被配置为:从与所述计算装置相耦接的向量处理单元接收第一线程组累加指令、与线程组通道数相对应的多个第一值和第一存储地址;响应于所述第一线程组累加指令,基于所述多个第一值生成当前累加结果;以及在所述存储单元中的所述第一存储地址中存储所述当前累加结果,以用于所述向量处理单元读取。2.根据权利要求1所述的计算装置,其中所述累加计算单元还被配置为:响应于所述第一线程组累加指令,从所述存储单元中的所述第一存储地址获取已存储的累加结果;以及基于所述已存储的累加结果和所述多个第一值,生成所述当前累加结果。3.根据权利要求1所述的计算装置,其中所述累加计算单元还被配置为:响应于所述第一线程组累加指令,依次对所述多个第一值中的预定数量的第一值进行累加,以生成多个中间累加结果;以及对所述多个中间累加结果进行累加,以生成所述当前累加结果。4.根据权利要求1所述的计算装置,其中所述累加计算单元还被配置为:从所述向量处理单元接收第二线程组累加指令、与所述线程组通道数相对应的多个第二值以及第二存储地址;响应于所述第二线程组累加指令,确定所述第二存储地址与所述第一存储地址是否相同;如果确定所述第二存储地址与所述第一存储地址不同,则在所述存储单元中的所述第一存储地址中存储所述当前累加结果,以用于所述向量处理单元读取;以及如果确定所述第二存储地址与所述第一存储地址相同,则基于所述多个第二值,更新所述当前累加结果。5.根据权利要求1所述的计算装置,所述计算装置包括加载存储单元。6.一种计算设备,包括:根据权利要求1

5任一项所述的计算装置;以及向量处理单元,与所述计算装置相耦接,被配置为:向所述计算装置中的累加计算单元发送第一线程组累加指令、与线程组通道数相对应的多个第一值和第...

【专利技术属性】
技术研发人员:ꢀ七四专利代理机构
申请(专利权)人:上海壁仞智能科技有限公司
类型:发明
国别省市:

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

1