作业处理的方法、装置、计算机设备及可读存储介质与流程

文档序号:26003783发布日期:2021-07-23 21:21阅读:61来源:国知局
作业处理的方法、装置、计算机设备及可读存储介质与流程

本申请涉及计算机技术领域,特别是涉及一种作业处理的方法、装置、计算机设备及可读存储介质。



背景技术:

目前,在面向人工智能应用的芯片设计中普遍采用numa(nonuniformmemoryaccessarchitecture,非均匀存取结构)架构。基于numa架构的芯片通常包含具有多个运算单元的处理器和多个存储单元。其中,多个运算单元通常划分为多个运算单元组,每个运算单元组分配有至少一个存储单元,一个运算单元组及其对应的存储单元构成一个节点。这样,一个节点中的运算单元所需要数据的读写都可以通过本节点中的存储单元实现。

在芯片运行过程中,需要将待执行的任务分配到某一节点中执行,具体的分配过程为:先确定执行该任务所需的内存大小,然后根据各节点对应的内存单元,确定内存剩余空间满足该内存大小的目标节点。例如,可以将内存剩余空间最大的节点作为目标节点,或者,可以在内存剩余空间大于该内存大小的节点中,随机选择一个节点作为目标节点。然后,基于亲和性绑定原则,将该任务分配至目标节点进行执行。

然而,上述分配过程中由于亲和性绑定原则的因素,往往会导致作业需要长时间的等待,进而严重影响作业的执行效率。



技术实现要素:

基于此,有必要针对上述技术问题,提供一种作业处理的方法、装置、计算机设备及可读存储介质。

第一方面,提供了一种作业处理的方法,所述方法包括:

当满足预设处理条件时,根据目标任务包含的目标作业的作业属性,在各节点中确定与所述目标作业相匹配的第一节点,所述作业属性包括执行所述目标作业所需的运算单元的目标数目;

通过所述第一节点和执行所述目标任务的运算单元所在的第二节点,执行所述目标任务包含的目标作业。

作为一种可选的实施方式,所述根据目标任务包含的目标作业的作业属性,在各节点中确定与所述目标作业相匹配的第一节点,包括:

针对所述各节点中的每个节点,如果该节点中空闲的运算单元的数目大于或等于所述目标数目,则将该节点确定为第一节点。

作为一种可选的实施方式,所述方法还包括:

获取所述各节点中空闲的运算单元的空闲时长;

如果可拆分任务列表中存在等待执行的包含多个作业的任务、且各空闲的运算单元的空闲时长中存在大于或等于预设时长阈值的空闲时长,则确定满足预设处理条件。

作为一种可选的实施方式,所述当满足预设处理条件时,根据目标任务包含的目标作业的作业属性,在各节点中确定与所述目标作业相匹配的第一节点之前,所述方法还包括:

获取待执行的目标任务,并确定所述目标任务的各维度信息和执行所述目标任务所需的运算单元的目标数目;

如果所述各维度信息的乘积与所述目标数目的比值大于1,则将所述目标任务添加至可拆分任务列表中;

根据预设的亲和性掩码修改规则,修改所述目标任务的亲和性掩码。

作为一种可选的实施方式,所述通过所述第一节点和执行所述目标任务的运算单元所在的第二节点,执行所述目标任务包含的目标作业之前,所述方法还包括:

在所述目标任务的使用掩码中,将所述第一节点对应的位置为1。

作为一种可选的实施方式,所述通过所述第一节点和执行所述目标任务的运算单元所在的第二节点,执行所述目标任务包含的目标作业之前,所述方法还包括:

如果所述目标作业的亲和性掩码和使用掩码中,所述第一节点和所述第二节点对应的位均为1,则执行所述通过所述第一节点和执行所述目标任务的运算单元所在的第二节点,执行所述目标任务包含的目标作业的步骤。

作为一种可选的实施方式,所述目标作业的亲和性掩码与所述目标任务的亲和性掩码相同,所述目标作业的的使用掩码与所述目标任务的使用掩码相同。

第二方面,提供了一种作业处理的装置,所述装置包括:

第一确定模块,用于当满足预设处理条件时,根据目标任务包含的目标作业的作业属性,在各节点中确定与所述目标作业相匹配的第一节点,所述作业属性包括执行所述目标作业所需的运算单元的目标数目;

执行模块,用于通过所述第一节点和执行所述目标任务的运算单元所在的第二节点,执行所述目标任务包含的目标作业。

第三方面,提供了一种计算机设备,包括存储器及处理器,所述存储器上存储有可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现第一方面中任一项所述方法的步骤。

第四方面,提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现第一方面中任一项所述的方法的步骤。

本申请实施例提供了一种作业处理的方法、装置、计算机设备及可读存储介质。当满足预设处理条件时,cpu根据目标任务包含的目标作业的作业属性,在各节点中确定与目标作业相匹配的第一节点。其中,作业属性包括执行目标作业所需的运算单元的目标数目。然后,cpu通过第一节点和执行目标任务的运算单元所在的第二节点,执行目标任务包含的目标作业。这样,当目标作业需要等待较长时间才可以被该目标作业所等待执行的运算单元执行时,cpu可以通过第一节点和第二节点共同执行该目标作业,从而减少该目标作业的等待时长,提高该目标作业的执行效率。

附图说明

图1为本申请实施例提供的一种智能处理器的示意图;

图2为本申请实施例提供的一种作业拆分及亲和性掩码修改的方法的流程示意图;

图3为本申请实施例提供的一种作业处理的方法的流程示意图;

图4为本申请实施例提供的一种处理条件的判断方法的流程示意图;

图5为本申请实施例提供的一种作业处理的装置的结构示意图;

图6为本申请实施例提供的一种计算机设备的结构示意图。

具体实施方式

下面将结合本披露实施例中的附图,对本披露实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本披露一部分实施例,而不是全部的实施例。基于本披露中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本披露保护的范围。

应当理解,本披露的权利要求、说明书及附图中的术语“第一”、“第二”、“第三”和“第四”等是用于区别不同对象,而不是用于描述特定顺序。本披露的说明书和权利要求书中使用的术语“包括”和“包含”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。

还应当理解,在此本披露说明书中所使用的术语仅仅是出于描述特定实施例的目的,而并不意在限定本披露。如在本披露说明书和权利要求书中所使用的那样,除非上下文清楚地指明其它情况,否则单数形式的“一”、“一个”及“该”意在包括复数形式。还应当进一步理解,在本披露说明书和权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。

如在本说明书和权利要求书中所使用的那样,术语“如果”可以依据上下文被解释为“当...时”或“一旦”或“响应于确定”或“响应于检测到”。类似地,短语“如果确定”或“如果检测到[所描述条件或事件]”可以依据上下文被解释为意指“一旦确定”或“响应于确定”或“一旦检测到[所描述条件或事件]”或“响应于检测到[所描述条件或事件]”。

本申请实施例提供了一种作业处理方法,该方法可以应用于一芯片中,该芯片可以包含采用numa架构的智能处理器和通用处理器,该通用处理器可以是cpu(centralprocessingunit,中央处理器)等。该采用numa架构的智能处理器可以为加速处理器,或者ipu(intelligentprocessingunit,智能处理单元)处理器,或者gpu(graphicsprocessingunit,图形处理单元)处理器,也可以为其他类型的处理器,本申请实施例不作限定。具体地,该方法可以应用于上述的芯片中,上述芯片中的通用处理器(cpu)可以执行上述的作业处理方法,以将多个作业分发至智能处理器中的至少一个运算单元执行。本申请的作业处理方法的具体执行过程可参见后文的描述。

可选地,该numa架构的智能处理器包含具有多个运算单元的处理器和多个存储单元。多个运算单元通常划分为多个运算单元组,每个运算单元组分配有至少一个存储单元,一个运算单元组及其对应的存储单元构成一个节点。一个节点中的运算单元所需要数据的读写都可以通过本节点中的存储单元实现,不同节点之间通过通信接口实现数据的读写。图1为本申请实施例提供的一种numa架构的智能处理器的示意图。如图1所示,该智能处理器包含具有16个运算单元和4个存储单元,该智能处理器中划分出4个节点,每个节点包含4个运算单元和1个存储单元。

图1仅以示意的方式提供了一种智能处理器的示意图,在其他可能实现的方式中,各个节点还可以包含四个以上的运算单元和1个存储单元,该存储单元可以包括多个子存储单元。例如,各个节点可以包括四个子节点,即每个节点可以包括16个运算单元。每个子节点包含四个运算单元和1个子存储单元,四个子节点的排布方式可以按照四个节点的方式排布。进一步地,上述作业处理方法可以在单个节点的各个子节点之间执行,其执行过程具体可参见下文关于作业处理方法的描述。

当某一任务被调度至软件队列后,处理器可以根据执行该任务所需的运算单元的数目,在存储该任务的任务数据的存储单元所属的节点中,为该任务分配该任务所期望的运算单元,并将该任务所期望的各运算单元的等待引用计数(即clu_wait_ref)加1。例如,如图1所示,该任务所需的运算单元的数目为2,存储该任务的任务数据的存储单元为存储单元1,则处理器可以在节点1中将运算单元1和运算单元2确定为该任务所期望的运算单元,并将运算单元1和运算单元2的等待引用计数加1。

当处理器确定执行该任务的运算单元后,该任务被调度至硬件队列,并将执行该任务的各运算单元的真正引用计数(即clu_real_ref)加1。例如,如图1所示,处理器确定执行该任务的运算单元为运算单元1和运算单元2后,处理器可以将运算单元1和运算单元2的真正引用计数加1。

当该任务执行完成时,该任务所期望的各运算单元的等待引用计数减1,同时,执行该任务的各运算单元的真正引用计数减1。例如,运算单元1和运算单元2执行完该任务后,处理器可以将运算单元1和运算单元2的等待引用计数和真正引用计数减1。如果该任务所期望的运算单元发生迁移时,该任务所期望的各源运算单元的等待引用计数减1,该任务所期望的各目的运算单元的等待引用计数加1。例如,如图1所示,该任务所期待的运算单元由运算单元1和运算单元2迁移至运算单元3和运算单元4,则处理器将运算单元1和运算单元2的等待引用计数减1,并将运算单元3和运算单元4的等待引用计数加1。

本申请实施例首先对作业的划分及亲和性掩码的修改进行介绍,如图2所示,具体处理过程如下:

步骤201,获取待执行的目标任务,并确定目标任务的各维度信息和执行目标任务所需的运算单元的目标数目。

在实施中,当某一任务(即目标任务)被调度至软件队列后,处理器可以确定该目标任务的各维度信息(即dimx、dimy和dimz)和执行该目标任务所需的运算单元的目标数目(即kernel_class)。然后,处理器可以计算各维度信息的乘积(即dimx*dimy*dimz)与目标数目的比值,并判断该比值是否大于1。如果该比值大于1,则说明该目标任务可以被拆分为多个作业,处理器执行步骤202。如果该比值小于或等于1,则说明该目标任务无法被拆分为多个作业。

步骤202,如果各维度信息的乘积与目标数目的比值大于1,则将目标任务添加至可拆分任务列表中。

在实施中,如果比值大于1,则说明该目标任务可以被拆分为多个作业。相应的,处理器可以将该目标任务添加至可拆分任务列表中。其中,该可拆分任务列表用于存储可以拆分为多个作业的任务;该可拆分任务列表可以为链表,也可以为其他类型的列表,本申请实施例不作限定。另外,当可拆分任务列表中的某一任务包含的所有作业执行完毕后,处理器可以将该任务从该可拆分任务列表中删除。

可选地,当确定该目标任务可以被拆分为多个作业时,可以将该目标任务发送至调度器,调度器可以根据该目标任务的各维度信息和该目标任务所需的运算单元的目标数目等任务属性,将该目标任务拆分为多个作业。进一步可选地,该调度器可以是置于芯片上的硬件调度器,该硬件调度器可以包括任务拆分单元等多个电路模块。当然,该调度器也可以是软件调度器,此处不做具体限定。

步骤203,根据预设的亲和性掩码修改规则,修改目标任务的亲和性掩码。

在实施中,处理器将目标任务拆分为多个目标作业后,处理器可以根据预设的亲和性掩码修改规则,修改该目标任务的亲和性掩码。其中,该目标任务的亲和性掩码(affinity)用于表示各节点中可执行该目标任务的节点,亲和性掩码中包括该智能处理器包含的节点的总数目个位,每个位唯一对应一个节点,如果某一位为1,则表示该位对应的节点可以执行该目标任务,如果某一位为0,则表示该位对应的节点不可以执行该目标任务。亲和性掩码修改规则可以由技术人员根据作业处理的节点范围进行设置。例如,亲和性掩码修改规则为任务以迁移至所有的节点,该目标任务的原亲和性掩码为0001,则处理器可以根据亲和性掩码修改规则,将该目标任务的亲和性掩码修改为1111。又如,亲和性掩码修改规则为任务可以迁移至节点3和节点4,该目标任务的原亲和性掩码为0001,则处理器可以根据亲和性掩码修改规则,将该目标任务的亲和性掩码修改为1101。上述步骤202和步骤203不区分先后顺序。

需要说明的是,由于目标作业是由目标任务进行拆分得到的,因此,目标作业的亲和性掩码与目标任务的亲和性掩码相同。

下面将结合具体的实施例对本申请提供的一种作业处理的方法进行介绍,如图3所示,具体处理过程如下。

步骤301,当满足预设处理条件时,根据目标任务包含的目标作业的作业属性,在各节点中确定与目标作业相匹配的第一节点。其中,作业属性包括执行目标作业所需的运算单元的目标数目。

在实施中,当处理器将某一任务(即目标任务)调度至软件队列后,处理器可以判断该目标任务是否可以拆分为多个目标作业(job)。如果该目标任务可以拆分为多个目标作业,则可以确定该目标任务是可以放松亲和性的任务,之后处理器可以进一步判断是否满足预设处理条件。其中,处理器判断是否满足预设处理条件的处理过程,后续会进行详细介绍。当满足预设处理条件时,处理器可以根据目标作业的作业属性,在各节点中确定与目标作业相匹配的第一节点。其中,该目标作业的作业属性包括执行该目标作业所需的运算单元的目标数目。

可选的,处理器根据目标作业的作业属性,在各节点中确定与目标作业相匹配的第一节点的处理过程为:针对各节点中的每个节点,如果该节点中空闲的运算单元的数目大于或等于目标数目,则将该节点确定为第一节点。

在实施中,当满足预设处理条件时,针对每个节点,处理器可以获取该节点中空闲的运算单元(即真正引用计数等于0)的数目。然后,处理器可以判断该节点中空闲的运算单元的数目是否大于或等于目标数目。如果该节点中空闲的运算单元的数目大于或等于目标数目,则说明该节点可以执行该目标任务包含的目标作业。相应的,处理器可以将该节点确认为第一节点。如果该节点中空闲的运算单元的数目小于目标数目,则说明该节点无法执行该目标任务包含的目标作业。相应的,该节点不是第一节点。

作为一种可选的实施方式,如图4所示,处理器确定是否满足预设处理条件的处理过程如下:

步骤401,获取各节点中空闲的运算单元的空闲时长。

在实施中,针对各节点中的每个节点,处理器可以获取该节点中空闲的运算单元(即真正引用计数等于0)的空闲时长。

步骤402,如果可拆分任务列表中存在等待执行的包含多个作业的任务、且各空闲的运算单元的空闲时长中存在大于或等于预设时长阈值的空闲时长,则确定满足预设处理条件。

在实施中,处理器得到各空闲的运算单元的空闲时长后,可以进一步判断可拆分任务列表中是否存在等待执行的包含多个作业的任务,并判断各空闲的运算单元的空闲时长中,是否存在大于或等于预设时长阈值的空闲时长。其中,该预设时长阈值可以由技术人员根据经验进行设置。如果可拆分任务列表中存在等待执行的包含多个作业的任务、且各空闲的运算单元的空闲时长中存在大于或等于预设时长阈值的空闲时长,则说明处理器可以将可拆分任务列表中待执行的任务分配至各节点中的空闲的运算单元进行执行。相应的,该处理器可以确定满足预设处理条件。如果可拆分任务列表中不存在等待执行的任务,或者各空闲的运算单元的空闲时长中不存在大于或等于预设时长阈值的空闲时长,则说明处理器无法将可拆分任务列表中待执行的任务分配至各节点中的空闲的运算单元上进行执行。相应的,该处理器可以确定不满足预设处理条件。

步骤302,通过第一节点和执行目标任务的运算单元所在的第二节点,执行目标任务包含的目标作业。

在实施中,处理器确定出第一节点后,可以通过第一节点和执行目标任务的运算单元所在的第二节点,执行目标任务包含的目标作业。这样,当目标作业需要等待较长时间才可以被该目标作业所等待执行的运算单元执行时,处理器可以通过第一节点和第二节点共同执行该目标作业,从而减少该目标作业的等待时长,提高该目标作业的执行效率。

作为一种可选的实施方式,处理器通过第一节点和第二节点,执行目标任务包含的目标作业之前,处理器还可以根据确定出的第一节点修改目标作业的使用掩码,具体处理过程为:在目标任务的使用掩码中,将第一节点对应的位置为1。

在实施中,目标任务的使用掩码(usage_mask)用于表示各节点中确定执行该目标任务的节点,使用掩码中包括该智能处理器包含的节点的总数目个位,每个位唯一对应一个节点,如果某一位为1,则表示该位对应的节点确定执行该目标任务,如果某一位为0,则表示该位对应的节点不执行该目标任务。当处理器确定出该目标作业的第一节点后,在处理器将目标作业调度至硬件队列之前,可以在该目标任务的使用掩码中,将第一节点对应的位置为1。例如,该目标任务的原使用掩码为0001。假设第一节点为节点2、节点4,则该目标任务的修改后的使用掩码为1011。

需要说明的是,由于目标作业是由目标任务进行拆分得到的,因此,目标作业的使用掩码与目标任务的使用掩码相同。

作为一种可选的实施方式,处理器通过第一节点和第二节点,执行目标任务包含的目标作业之前,处理器还可以根据该目标作业的亲和性掩码和使用掩码确定该第一节点和第二节点是否可以执行该目标作业,具体的处理过程为:如果目标作业的亲和性掩码和使用掩码中,第一节点和第二节点对应的位均为1,则执行通过第一节点和执行目标任务的运算单元所在的第二节点,执行目标任务包含的目标作业的步骤。

在实施中,处理器得到该目标作业的亲和性掩码和使用掩码后,针对每个第一节点,该处理器可以在目标作业的亲和性掩码和使用掩码中,判断该第一节点对应的位是否均为1。如果该第一节点对应的位均为1,则说明该第一节点可以执行该目标作业。同理,针对执行目标任务的运算单元所在的第二节点,该处理器可以在目标作业的亲和性掩码和使用掩码中,判断该第二节点对应的位是否也均为1。如果该第二节点对应的位均为1,则说明该第二节点可以执行该目标作业。相应的,处理器可以通过第一节点和第二节点,执行目标任务包含的目标作业。如果该第一节点对应的位中存在0,则说明该第一节点无法执行该目标作业,则处理器将仅通过第二节点执行该目标作业。例如,目标作业的亲和性掩码为1101,使用掩码为1001,第一节点为节点2和节点4,第二节点为节点1,则节点1对应的位均为1,节点4对应的位均为1,节点2在亲和性掩码中的位为0,该处理器可以通过节点1和节点4执行目标作业。

本申请实施例提供了一种作业处理的方法。当满足预设处理条件时,处理器根据目标任务包含的目标作业的作业属性,在各节点中确定与目标作业相匹配的第一节点。其中,作业属性包括执行目标作业所需的运算单元的目标数目。然后,处理器通过第一节点和执行目标任务的运算单元所在的第二节点,执行目标任务包含的目标作业。这样,当目标作业需要等待较长时间才可以被该目标作业所等待执行的运算单元执行时,处理器可以通过第一节点和第二节点共同执行该目标作业,从而减少该目标作业的等待时长,提高该目标作业的执行效率。

本申请实施例还提供了一种作业处理的装置,如图5所示,该装置包括:

第一确定模块510,用于当满足预设处理条件时,根据目标任务包含的目标作业的作业属性,在各节点中确定与目标作业相匹配的第一节点,作业属性包括执行目标作业所需的运算单元的目标数目;

执行模块520,用于通过第一节点和执行目标任务的运算单元所在的第二节点,执行目标任务包含的目标作业。

作为一种可选的实施方式,第一确定模块510,具体用于:

针对各节点中的每个节点,如果该节点中空闲的运算单元的数目大于或等于目标数目,则将该节点确定为第一节点。

作为一种可选的实施方式,该装置还包括:

获取模块,用于获取各节点中空闲的运算单元的空闲时长;

第二确定模块,用于如果可拆分任务列表中存在等待执行的包含多个作业的任务、且各空闲的运算单元的空闲时长中存在大于或等于预设时长阈值的空闲时长,则确定满足预设处理条件。

作为一种可选的实施方式,该装置还包括:

第三确定模块,用于获取待执行的目标任务,并确定目标任务的各维度信息和执行目标任务所需的运算单元的目标数目;

添加模块,用于如果各维度信息的乘积与目标数目的比值大于1,则将目标任务添加至可拆分任务列表中;

修改模块,用于根据预设的亲和性掩码修改规则,修改目标任务的亲和性掩码。

作为一种可选的实施方式,该装置还包括:

设置模块,用于在目标任务的使用掩码中,将第一节点对应的位置为1。

作为一种可选的实施方式,该装置还包括:

第四确定模块,用于如果目标作业的亲和性掩码和使用掩码中,第一节点和第二节点对应的位均为1,则触发执行模块520执行通过第一节点和执行目标任务的运算单元所在的第二节点,执行目标任务包含的目标作业的步骤。

作为一种可选的实施方式,目标作业的亲和性掩码与目标任务的亲和性掩码相同,目标作业的的使用掩码与目标任务的使用掩码相同。

本申请实施例提供了一种作业处理的装置。当满足预设处理条件时,cpu根据目标任务包含的目标作业的作业属性,在各节点中确定与目标作业相匹配的第一节点。其中,作业属性包括执行目标作业所需的运算单元的目标数目。然后,cpu通过第一节点和执行目标任务的运算单元所在的第二节点,执行目标任务包含的目标作业。这样,当目标作业需要等待较长时间才可以被该目标作业所等待执行的运算单元执行时,cpu可以通过第一节点和第二节点共同执行该目标作业,从而减少该目标作业的等待时长,提高该目标作业的执行效率。

在一个实施例中,提供了一种计算机设备,如图6所示,包括存储器及处理器,所述存储器上存储有可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述作业处理的方法步骤。

在一个实施例中,一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述作业处理的方法的步骤。

需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本披露并不受所描述的动作顺序的限制,因为依据本披露,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于可选实施例,所涉及的动作和模块并不一定是本披露所必须的。

进一步需要说明的是,虽然图2-4的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图2-4中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。

应该理解,上述的装置实施例仅是示意性的,本披露的装置还可通过其它的方式实现。例如,上述实施例中所述单元/模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。例如,多个单元、模块或组件可以结合,或者可以集成到另一个系统,或一些特征可以忽略或不执行。

另外,若无特别说明,在本披露各个实施例中的各功能单元/模块可以集成在一个单元/模块中,也可以是各个单元/模块单独物理存在,也可以两个或两个以上单元/模块集成在一起。上述集成的单元/模块既可以采用硬件的形式实现,也可以采用软件程序模块的形式实现。

所述集成的单元/模块如果以硬件的形式实现时,该硬件可以是数字电路,模拟电路等等。硬件结构的物理实现包括但不局限于晶体管,忆阻器等等。若无特别说明,所述人工智能处理器可以是任何适当的硬件处理器,比如cpu、gpu、fpga、dsp和asic等等。若无特别说明,所述存储单元可以是任何适当的磁存储介质或者磁光存储介质,比如,阻变式存储器rram(resistiverandomaccessmemory)、动态随机存取存储器dram(dynamicrandomaccessmemory)、静态随机存取存储器sram(staticrandom-accessmemory)、增强动态随机存取存储器edram(enhanceddynamicrandomaccessmemory)、高带宽内存hbm(high-bandwidthmemory)、混合存储立方hmc(hybridmemorycube)等等。

所述集成的单元/模块如果以软件程序模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储器中。基于这样的理解,本披露的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储器中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本披露各个实施例所述方法的全部或部分步骤。而前述的存储器包括:u盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。

在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。上述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。

依据以下条款可更好地理解前述内容:

条款a1,对应权1;条款a2,对应权2;条款a3,对应权3;条款a4,对应权4;条款a5,对应权5;条款a6,对应权6;条款a7,对应权7;条款a8,对应权8;条款a9,对应权9。

例如,条款a1、一种作业处理的方法,所述方法包括:

当满足预设处理条件时,根据目标任务包含的目标作业的作业属性,在各节点中确定与所述目标作业相匹配的第一节点,所述作业属性包括执行所述目标作业所需的运算单元的目标数目;

通过所述第一节点和执行所述目标任务的运算单元所在的第二节点,执行所述目标任务包含的目标作业。

条款a2、根据条款a1所述的方法,所述根据目标任务包含的目标作业的作业属性,在各节点中确定与所述目标作业相匹配的第一节点,包括:

针对所述各节点中的每个节点,如果该节点中空闲的运算单元的数目大于或等于所述目标数目,则将该节点确定为第一节点。

条款a3、根据条款a1所述的方法,所述方法还包括:

获取所述各节点中空闲的运算单元的最大空闲时长;

如果可拆分任务列表中存在等待执行的包含多个作业的任务、且各空闲的运算单元的空闲时长中存在大于或等于预设时长阈值的空闲时长,则确定满足预设处理条件。

条款a4、根据条款a1所述的方法,所述当满足预设处理条件时,根据目标任务包含的目标作业的作业属性,在各节点中确定与所述目标作业相匹配的第一节点之前,所述方法还包括:

获取待执行的目标任务,并确定所述目标任务的各维度信息和执行所述目标任务所需的运算单元的目标数目;

如果所述各维度信息的乘积与所述目标数目的比值大于1,则将所述目标任务添加至可拆分任务列表中;

根据预设的亲和性掩码修改规则,修改所述目标任务的亲和性掩码。

条款a5、根据条款a1所述的方法,所述通过所述第一节点和执行所述目标任务的运算单元所在的第二节点,执行所述目标任务包含的目标作业之前,所述方法还包括:

在所述目标任务的使用掩码中,将所述第一节点对应的位置为1。

条款a6、根据条款a1所述的方法,所述通过所述第一节点和执行所述目标任务的运算单元所在的第二节点,执行所述目标任务包含的目标作业之前,所述方法还包括:

如果所述目标作业的亲和性掩码和使用掩码中,所述第一节点和所述第二节点对应的位均为1,则执行所述通过所述第一节点和执行所述目标任务的运算单元所在的第二节点,执行所述目标任务包含的目标作业的步骤。

条款a7、根据条款a6所述的方法,所述目标作业的亲和性掩码与所述目标任务的亲和性掩码相同,所述目标作业的的使用掩码与所述目标任务的使用掩码相同。

条款a8、一种作业处理的装置,所述装置包括:

第一确定模块,用于当满足预设处理条件时,根据目标任务包含的目标作业的作业属性,在各节点中确定与所述目标作业相匹配的第一节点,所述作业属性包括执行所述目标作业所需的运算单元的目标数目;

执行模块,用于通过所述第一节点和执行所述目标任务的运算单元所在的第二节点,执行所述目标任务包含的目标作业。

条款a9、一种计算机设备,包括存储器及处理器,所述存储器上存储有可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现条款a1至条款a7中任一项所述方法的步骤。

条款a10、一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现条款a1至条款a7中任一项所述的方法的步骤。

以上对本披露实施例进行了详细介绍,本文中应用了具体个例对本披露的原理及实施方式进行了阐述,以上实施例的说明仅用于帮助理解本披露的方法及其核心思想。同时,本领域技术人员依据本披露的思想,基于本披露的具体实施方式及应用范围上做出的改变或变形之处,都属于本披露保护的范围。综上所述,本说明书内容不应理解为对本披露的限制。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1