计算设备、计算设备的操作方法、电子设备和存储介质技术

技术编号:37321011 阅读:14 留言:0更新日期:2023-04-21 23:01
本公开提供了一种计算设备、计算设备的操作方法、电子设备和计算机可读存储介质。该计算设备包括:计算簇,所述计算簇包括第一计算核和不同于所述第一计算核的多个第二计算核,其中所述多个第二计算核被划分为N个子计算簇,N为大于1的整数;以及调度器,其被配置为每次向所述计算簇调度N个计算任务,其中所述计算簇被配置为将所述N个计算任务分别分配给所述N个子计算簇。述N个子计算簇。述N个子计算簇。

【技术实现步骤摘要】
计算设备、计算设备的操作方法、电子设备和存储介质


[0001]本公开概括而言涉及处理器领域,更具体地,涉及一种计算设备、计算设备的操作方法、电子设备和计算机可读存储介质。

技术介绍

[0002]在诸如人工智能(AI)、机器学习(ML)之类的应用中,由于需要执行大量矢量运算、标量运算、卷积运算等多种类型的运算,通常采用包含多个不同计算核的计算设备来执行不同的运算以协同完成一个或多个工作任务。在构造这样的计算设备时,通常使用某种编程模型对这些计算核进行配置和调度以协同执行这些工作任务。
[0003]然而,编程模型通常只适用于某种特定架构的计算设备,在计算设备的架构改变后,同一编程模型通常不再适用,需要耗费大量的工作来重新设计新的编程模型。即使仅仅是计算设备中包含的多种计算核中的某种计算核的数量或算力发生变化,也需要重新设计新的编程模型。

技术实现思路

[0004]针对上述问题,本公开提供了一种在计算设备中的某种计算核的数量或算力发生变化时,无需改变计算设备的编程模型,而是通过将计算簇划分为多个子计算簇并且使得一次为每个子计算簇而不是为整个计算簇调度一个计算任务来完成该计算簇的计算负载的方案。
[0005]根据本公开的一个方面,提供了一种计算设备。该计算设备包括:计算簇,所述计算簇包括第一计算核和不同于所述第一计算核的多个第二计算核,其中所述多个第二计算核被划分为N个子计算簇,N为大于1的整数;以及调度器,其被配置为每次向所述计算簇调度N个计算任务,其中所述计算簇被配置为将所述N个计算任务分别分配给所述N个子计算簇。
[0006]在一些实现中,所述第一计算核的计算能力大于所述第二计算核。
[0007]在一些实现中,所述第一计算核包括用于执行卷积运算或者矩阵乘法的张量计算核,所述第二计算核包括用于执行标量和/或矢量运算的计算单元。
[0008]在一些实现中,所述N个子计算簇中的每个子计算簇被配置为:在确定分配给所述子计算簇的计算任务中存在需要所述第一计算核执行的部分计算任务时,向所述部分计算任务添加与所述子计算簇对应的子簇标识符,并将所述部分计算任务和所述子簇标识符一起发送给所述第一计算核;并且所述第一计算核被配置为对所述部分计算任务进行处理并且将所述部分计算任务的处理结果返回给与所述子簇标识符对应的子计算簇。
[0009]在一些实现中,所述第一计算核包括N个累加器,每个累加器对应于所述N个子计算簇中的一个子计算簇,并且所述累加器被配置为在所述第一计算核处理来自所述子计算簇的部分计算任务时,存放所产生的累加结果。
[0010]在一些实现中,所述多个第二计算核被划分为2个子计算簇。
[0011]根据本公开的另一个方面,提供了一种计算设备的操作方法。所述计算设备包括计算簇和调度器,所述计算簇包括第一计算核和不同于所述第一计算核的多个第二计算核。所述方法包括:将所述多个第二计算核划分为N个子计算簇,N为大于1的整数;每次向所述计算簇调度N个计算任务以使得所述计算簇将所述N个计算任务分别分配给所述N个子计算簇。
[0012]在一些实现中,所述第一计算核的计算能力大于所述第二计算核。
[0013]在一些实现中,所述第一计算核包括用于执行卷积运算或者矩阵乘法的张量计算核,所述第二计算核包括用于执行标量和/或矢量运算的计算单元。
[0014]在一些实现中,所述方法还包括:在所述N个子计算簇中的每个子计算簇确定分配给所述子计算簇的计算任务中存在需要所述第一计算核执行的部分计算任务时,由所述子计算簇向所述部分计算任务添加与所述子计算簇对应的子簇标识符,并将所述部分计算任务和所述子簇标识符一起发送给所述第一计算核;并且由所述第一计算核对所述部分计算任务进行处理并且将所述部分计算任务的处理结果返回给与所述子簇标识符对应的子计算簇。
[0015]在一些实现中,所述第一计算核包括N个累加器,每个累加器对应于所述N个子计算簇中的一个子计算簇,并且所述方法还包括:在所述第一计算核处理来自所述子计算簇的部分计算任务时,由所述累加器存放所产生的累加结果。
[0016]在一些实现中,所述多个第二计算核被划分为2个子计算簇。
[0017]根据本公开的又一个方面,提供了一种电子设备,包括:存储器,非瞬时性地存储有计算机可执行指令;处理器,配置为运行所述计算机可执行指令;其中,所述计算机可执行指令被所述处理器运行时实现如上所述的方法。
[0018]根据本公开的再一个方面,提供了一种计算机可读存储介质,其上存储有计算机程序代码,该计算机程序代码在被运行时执行如上所述的方法。
附图说明
[0019]通过参考下列附图所给出的本公开的具体实施方式的描述,将更好地理解本公开,并且本公开的其他目的、细节、特点和优点将变得更加显而易见。
[0020]图1示出了一种计算设备的示例性结构示意图。
[0021]图2示出了根据本公开一些实施方式的计算设备的示例性结构示意图。
[0022]图3示出了根据本公开实施例的计算设备的操作方法的示意性流程图。
具体实施方式
[0023]下面将参照附图更详细地描述本公开的优选实施例。虽然附图中显示了本公开的优选实施例,然而应该理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了使本公开更加透彻和完整,并且能够将本公开的范围完整地传达给本领域的技术人员。
[0024]在本文中使用的术语“包括”及其变形表示开放性包括,即“包括但不限于”。除非特别申明,术语“或”表示“和/或”。术语“基于”表示“至少部分地基于”。术语“一个实施例”和“一些实施例”表示“至少一个示例实施例”。术语“另一实施例”表示“至少一个另外的实
施例”。术语“第一”、“第二”等等可以指代不同的或相同的对象。
[0025]图1示出了一种计算设备10的示例性结构示意图。如图1中所示,计算设备10可以包括一个或多个计算簇100(图1中仅示例性地示出了一个计算簇100),每个计算簇100可以包括一个或多个第一计算核110和一个或多个第二计算核120。
[0026]第一计算核110和第二计算核120可以具有不同的计算能力(即算力),这里假设第一计算核110的计算能力大于第二计算核120,因此一个计算核110可以服务于多个第二计算核120。在本文中,以每个计算簇100包含一个第一计算核110和多个第二计算核120为例进行描述,例如图1中示例性地示出了4个第二计算核120。在一些实施例中,例如在用于神经网络计算的场景中,计算设备10可以是一个单独的图形处理单元(Graphics Processing Unit,GPU),第一计算核110可以包括用于执行卷积运算或者矩阵乘法的张量计算核(Tensor Core,TC),其可以用作AI加速器,第二计算核120可以包括用于执行标量和/或矢量运算的计算单元(Compute Unit,CU)。每个第二计算核120例如可以包含一个或多个标本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种计算设备,包括:计算簇,所述计算簇包括第一计算核和不同于所述第一计算核的多个第二计算核,其中所述多个第二计算核被划分为N个子计算簇,N为大于1的整数;以及调度器,其被配置为每次向所述计算簇调度N个计算任务,其中所述计算簇被配置为将所述N个计算任务分别分配给所述N个子计算簇。2.如权利要求1所述的计算设备,其中所述第一计算核的计算能力大于所述第二计算核。3.如权利要求1所述的计算设备,其中所述第一计算核包括用于执行卷积运算或者矩阵乘法的张量计算核,所述第二计算核包括用于执行标量和/或矢量运算的计算单元。4.如权利要求1所述的计算设备,其中所述N个子计算簇中的每个子计算簇被配置为:在确定分配给所述子计算簇的计算任务中存在需要所述第一计算核执行的部分计算任务时,向所述部分计算任务添加与所述子计算簇对应的子簇标识符,并将所述部分计算任务和所述子簇标识符一起发送给所述第一计算核;并且所述第一计算核被配置为对所述部分计算任务进行处理并且将所述部分计算任务的处理结果返回给与所述子簇标识符对应的子计算簇。5.如权利要求4所述的计算设备,其中所述第一计算核包括N个累加器,每个累加器对应于所述N个子计算簇中的一个子计算簇,并且所述累加器被配置为在所述第一计算核处理来自所述子计算簇的部分计算任务时,存放所产生的累加结果。6.如权利要求1所述的计算设备,其中所述多个第二计算核被划分为2个子计算簇。7.一种计算设备的操作方法,所述计算设备包括计算簇和调度器,所述计算簇包括第一计算核和不同于所述第一计算核的多个第二计算核,所述方法包括:将所述多个第二计算核划分为N个子计算簇,N为大于1的...

【专利技术属性】
技术研发人员:请求不公布姓名
申请(专利权)人:上海壁仞智能科技有限公司
类型:发明
国别省市:

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

1