CN115237582A - 处理多个任务的方法、处理设备以及异构计算*** - Google Patents
处理多个任务的方法、处理设备以及异构计算*** Download PDFInfo
- Publication number
- CN115237582A CN115237582A CN202211156377.7A CN202211156377A CN115237582A CN 115237582 A CN115237582 A CN 115237582A CN 202211156377 A CN202211156377 A CN 202211156377A CN 115237582 A CN115237582 A CN 115237582A
- Authority
- CN
- China
- Prior art keywords
- task
- executed
- information
- tasks
- priority
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 52
- 230000001419 dependent effect Effects 0.000 claims abstract description 54
- 230000004044 response Effects 0.000 claims abstract description 42
- 230000008569 process Effects 0.000 claims description 12
- 230000008859 change Effects 0.000 claims description 7
- 238000013528 artificial neural network Methods 0.000 claims description 6
- 238000010586 diagram Methods 0.000 description 8
- 230000006870 function Effects 0.000 description 6
- 238000004364 calculation method Methods 0.000 description 3
- 238000007796 conventional method Methods 0.000 description 3
- 238000002360 preparation method Methods 0.000 description 3
- 101100167212 Chondromyces crocatus cmdD gene Proteins 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 238000003672 processing method Methods 0.000 description 2
- 101100326662 Aspergillus oryzae (strain ATCC 42149 / RIB 40) cmdA gene Proteins 0.000 description 1
- 101100322581 Caenorhabditis elegans add-1 gene Proteins 0.000 description 1
- 101100233116 Escherichia coli insC gene Proteins 0.000 description 1
- 101100126122 Escherichia coli insD gene Proteins 0.000 description 1
- 101150039072 INSA gene Proteins 0.000 description 1
- 102100029469 WD repeat and HMG-box DNA-binding protein 1 Human genes 0.000 description 1
- 101710097421 WD repeat and HMG-box DNA-binding protein 1 Proteins 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000009877 rendering Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/48—Indexing scheme relating to G06F9/48
- G06F2209/483—Multiproc
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/48—Indexing scheme relating to G06F9/48
- G06F2209/484—Precedence
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本申请涉及计算机技术领域,并公开了一种处理多个任务的方法、处理设备和异构计算***。该方法包括:获取任务的任务描述信息,任务描述信息包括依赖信息标识和被依赖信息标识,依赖信息标识指示与任务关联的第一类任务的数量,被依赖信息标识至少指示多个任务中是否存在与该任务关联的第二类任务;响应于该任务的执行结束而更新与该任务关联的第二类任务的依赖信息标识,以从与任务关联的第二类任务中确定出已不直接依赖于任何任务的待执行任务;将待执行任务加入待执行任务队列;以及执行待执行任务队列中的待执行任务。应用该方法处理多个任务可以提高异构计算***中设备的硬件资源的利用率,并提升总体的任务执行效率。
Description
技术领域
本申请涉及计算机技术领域,具体地,涉及一种处理多个任务的方法、以及用于处理多个任务的处理设备和异构计算***。
背景技术
随着半导体技术和信息技术的快速发展,目前已经涌现了各种形式的处理器以满足日益丰富的计算需求。除了传统通用计算能力较强的中央处理器(CPU)之外,包括数字信号处理器(DSP)、图形处理器(GPU)、现场可编程门阵列(FPGA),以及神经网络等处理器(NPU)在内的各种具有加强的专门计算能力的处理器也得到广泛的应用。相应地,计算机的计算性能得以不断的提升,并由同构计算发展到异构计算。这些处理器与中央处理器(CPU)配合实现异构计算。通常的异构计算采用的硬件***的模型为“主机-设备”,可采用中央处理器(CPU)作为主机,设备可包括前述的数字信号处理器、图形处理器、现场可编程门阵列)以及神经网络处理器等。由主机向设备分发任务和任务相关的数据,由设备完成具体的计算任务,并将执行任务获得的结果返回给主机。
发明内容
本申请的一个实施例提供了一种处理多个任务的方法,包括1.一种处理多个任务的方法,包括:获取所述多个任务中的每个任务的任务描述信息,所述任务描述信息包括依赖信息标识和被依赖信息标识,所述依赖信息标识指示所述多个任务中与所述任务关联的第一类任务的数量,所述被依赖信息标识至少指示所述多个任务中是否存在与所述任务关联的第二类任务,所述任务的执行直接依赖于所述第一类任务,所述第二类任务的执行直接依赖于所述任务;响应于所述任务的执行结束,基于所述任务的被依赖信息标识更新与所述任务关联的所述第二类任务的依赖信息标识,以基于更新的依赖信息标识从与所述任务关联的第二类任务中确定出已不直接依赖于任何任务的待执行任务;将所述待执行任务加入待执行任务队列;以及执行所述待执行任务队列中的待执行任务。
根据本申请的一些实施例,所述方法还包括:响应于所获取到的所述多个任务包括其依赖信息标识指示与其关联的第一类任务的数量为零的无依赖任务,将所述无依赖任务加入所述待执行任务队列。
根据本申请的一些实施例,响应于所述任务的执行结束,基于所述任务的被依赖信息标识更新与所述任务关联的所述第二类任务的依赖信息标识,以基于更新的依赖信息标识从与所述任务关联的第二类任务中确定出已不直接依赖于任何任务的待执行任务包括:响应于所述任务的执行结束对与所述任务关联的各第二类任务的依赖信息标识的值作出相同量的改变,从而获得与该任务关联的各第二类任务的更新依赖信息标识;以及 将所述更新依赖信息标识指示与其关联的第一类任务的数量为零的第二类任务确定为所述待执行任务。
根据本申请的一些实施例,将所述待执行任务加入待执行任务队列包括:将所述待执行任务的任务描述信息的起始地址信息存储至先进先出存储器。
根据本申请的一些实施例,将所述待执行任务加入待执行任务队列包括:将所述待执行任务的任务描述信息的起始地址信息和所述待执行任务的任务优先级标识存储至第一存储器。
根据本申请的一些实施例,多个任务中的每个任务还包括用于指示所述任务的具体操作内容的任务指令信息,所述任务描述信息还包括命令参数信息,所述命令参数信息表征启动和执行所述任务的任务指令信息所需的条件,其中所述执行所述待执行任务队列中的待执行任务包括:根据所述待执行任务的任务描述信息的起始地址信息获取所述待执行任务的任务描述信息中的命令参数信息;以及将所述待执行任务的命令参数信息存储至第二存储器,以对所述待执行任务的命令参数信息进行解析。
根据本申请的一些实施例,根据所述待执行任务的任务描述信息的起始地址信息获取所述待执行任务的任务描述信息中的命令参数信息包括:响应于所述第一存储器内存储有至少一个待执行任务的任务描述信息的起始地址信息、且所述第二存储器存在可用空间,根据所述至少一个待执行任务的任务描述信息的起始地址信息获取所述至少一个待执行任务的任务描述信息中的命令参数信息,将所述待执行任务的命令参数信息存储至第二存储器,以对所述待执行任务的命令参数信息进行解析包括:将所述至少一个待执行任务的命令参数信息存储至第二存储器,以对所述至少一个待执行任务的命令参数信息进行解析。
根据本申请的一些实施例,所述多个任务中的每个任务还包括用于指示所述任务的具体操作内容的任务指令信息,所述任务描述信息还包括命令参数信息,所述命令参数信息表征启动和执行所述任务的任务指令信息所需的条件,其中所述执行所述待执行任务队列中的待执行任务包括:基于所述待执行任务的优先级标识从所述待执行任务队列中确定具有最高优先级的高优先级待执行任务;基于所述高优先级待执行任务的任务描述信息的起始地址信息获取所述高优先级待执行任务的任务描述信息中的命令参数信息;以及将所述高优先级待执行任务的任务描述信息中的命令参数信息存储至第二存储器,以对所述高优先级待执行任务的任务描述信息中的命令参数信息进行解析。
根据本申请的一些实施例,所述多个任务中的每个任务还包括用于指示所述任务的具体操作内容的任务指令信息,所述任务描述信息还包括命令参数信息,所述命令参数信息表征启动和执行所述任务的任务指令信息所需的条件,其中所述执行所述待执行任务队列中的待执行任务包括:基于所述待执行任务的优先级标识从所述待执行任务队列中确定具有最高优先级的高优先级待执行任务;比较所述高优先级待执行任务的任务优先级标识和所述待执行任务队列之外的另外任务的任务优先级标识;响应于所述高优先级待执行任务的优先级高于所述另外任务的优先级,将所述高优先级待执行任务的任务描述信息中的命令参数信息存储至所述第二存储器,以对所述高优先级待执行任务的任务描述信息中的命令参数信息进行解析。
根据本申请的一些实施例,其中所述执行所述待执行任务队列中的待执行任务还包括:响应于所述高优先级待执行任务的优先级高于所述另外任务的优先级、且所述另外任务的任务描述信息中的依赖信息标识指示与该另外任务关联的第一类任务的数量为零,将该另外任务的任务描述信息的起始地址信息存储至所述第一存储器。
根据本申请的一些实施例,所述执行所述待执行任务队列中的待执行任务还包括:响应于所述高优先级待执行任务的优先级低于所述另外任务的优先级、且所述另外任务的任务描述信息中的依赖信息标识指示与该另外任务关联的第一类任务的数量为零,将该另外任务的任务描述信息的命令参数信息存储至所述第二存储器,以对所述另外任务的任务描述信息的命令参数信息进行解析。
根据本申请的一些实施例,执行所述待执行任务队列中的待执行任务包括:响应于用于运行所述方法的处理设备存在用于执行任务的可用计算资源,从所述待执行任务队列中获取至少一个待执行任务,并将该至少一个待执行任务分配给所述可用计算资源。
根据本申请的一些实施例,所述多个任务包括两个任务集合,所述两个任务集合中的一个任务集合中的各个任务存在依赖关系形成第一任务图,所述两个任务集合中的另一任务集合中的各个任务存在依赖关系形成第二任务图,所述第一任务图独立于所述第二任务图。
根据本申请的一些实施例,其中所述被依赖信息标识包括第一标识和第二标识,所述第一标识指示所述多个任务中是否存在与所述任务关联的第二类任务,所述第二标识指示与所述任务关联的所述第二类任务的任务描述信息的起始地址信息。
本申请的另一实施例提供了一种用于处理多个任务的处理设备,所述多个任务中的每个任务包括任务描述信息,所述任务描述信息包括依赖信息标识和被依赖信息标识,所述依赖信息标识指示所述多个任务中与所述任务关联的第一类任务的数量,所述被依赖信息标识至少指示所述多个任务中是否存在与所述任务关联的第二类任务,所述任务的执行直接依赖于所述第一类任务,所述第二类任务的执行直接依赖于所述任务,其中处理设备包括:待执行任务确定单元,其被配置成响应于所述多个任务中的每个任务的执行结束,基于所述任务的被依赖信息标识更新与所述任务关联的所述第二类任务的依赖信息标识,以基于更新的依赖信息标识从与所述任务关联的第二类任务中确定出已不直接依赖于任何任务的待执行任务;待执行任务队列存储单元,其被配置成存储待执行任务队列;以及
任务执行单元,其被配置成执行所述待执行任务队列中的待执行任务。
根据本申请的一些实施例,所述待执行任务确定单元包括加法器或减法器,所述加法器或减法器被配置成响应于所述任务的执行结束对与所述任务关联的各第二类任务的依赖信息标识的值作出相同量的改变,从而获得与该任务关联的各第二类任务的更新依赖信息标识,所述待执行任务确定单元将所述更新依赖信息标识指示与其关联的第一类任务的数量为零的第二类任务确定为所述待执行任务。
根据本申请的一些实施例,所述待执行任务队列存储单元包括先进先出存储器,所述待执行任务确定单元被配置成在确定所述待执行任务时将所述待执行任务的任务描述信息的起始地址信息发送至所述先进先出存储器。
根据本申请的一些实施例,所述任务描述信息还包括任务优先级标识,其中所述待执行任务队列存储单元包括第一存储单元,所述待执行任务确定单元被配置成在确定所述待执行任务时将所述待执行任务的任务描述信息的起始地址信息和所述待执行任务的任务优先级标识发送至所述第一存储单元。
根据本申请的一些实施例,其中所述多个任务中的每个任务还包括用于指示所述任务的具体操作内容的任务指令信息,每个任务的所述任务描述信息还包括命令参数信息,所述命令参数信息表征启动和执行所述任务的任务指令信息所需的条件,其中所述待执行任务队列存储单元还包括第二存储单元,所述第二存储单元被配置成存储所述待执行任务的命令参数信息,以对所述待执行任务的命令参数信息进行解析。
根据本申请的一些实施例,所述待执行任务队列存储单元还包括第一优先级判断单元,所述第一优先级判断单元基于所述待执行任务的优先级标识从所述待执行任务队列中确定具有最高优先级的高优先级待执行任务,其中所述第二存储单元被配置成响应于所述第一优先级判断单元确定出所述高优先级待执行任务而存储所述高优先级待执行任务的任务描述信息中的命令参数信息,以对所述高优先级待执行任务的任务描述信息中的命令参数信息进行解析。
根据本申请的一些实施例,所述处理设备包括第二优先级判断单元,所述第二优先级判断单元被配置成比较所述高优先级待执行任务的任务优先级标识和所述待执行任务队列之外的另外任务的任务优先级标识,其中所述第二存储单元被配置成响应于所述高优先级待执行任务的优先级高于所述另外任务的优先级,而存储所述高优先级待执行任务的任务描述信息中的命令参数信息,以对所述高优先级待执行任务的任务描述信息中的命令参数信息进行解析。
根据本申请的一些实施例,所述第一存储单元还被配置成响应于所述高优先级待执行任务的优先级高于所述另外任务的优先级、且所述另外任务的任务描述信息中的依赖信息标识指示与该另外任务关联的第一类任务的数量为零,而存储所述另外任务的任务描述信息的起始地址信息。
根据本申请的一些实施例,所述第二存储单元还被配置成响应于所述高优先级待执行任务的优先级低于所述另外任务的优先级、且所述另外任务的任务描述信息中的依赖信息标识指示与该另外任务关联的第一类任务的数量为零,而存储该另外任务的任务描述信息的命令参数信息,以对所述另外任务的任务描述信息的命令参数信息进行解析。
根据本申请的一些实施例,所述处理设备还包括第三存储单元,其用于存储与所述任务关联的所述第二类任务的任务描述信息。
本申请的又一实施例提供了一种异构计算***,包括第一处理设备和第二处理设备,所述第一处理设备和第二处理设备彼此配合以处理多个任务,所述多个任务中的每个任务包括任务描述信息,所述任务描述信息包括依赖信息标识和被依赖信息标识,所述依赖信息标识指示所述多个任务中与所述任务关联的第一类任务的数量,所述被依赖信息标识至少指示所述多个任务中是否存在与所述任务关联的第二类任务,所述任务的执行直接依赖于所述第一类任务,所述第二类任务的执行直接依赖于所述任务,其中所述第一处理设备被配置成向所述第二处理设备发送所述多个任务以使得所述第二处理设备执行所述多个任务,其中所述第二处理设备包括:待执行任务确定单元,其被配置成响应于所述多个任务中的每个任务的执行结束,基于所述任务的被依赖信息标识更新与所述任务关联的所述第二类任务的依赖信息标识,以基于更新的依赖信息标识从与所述任务关联的第二类任务中确定出已不直接依赖于任何任务的待执行任务;待执行任务队列存储单元,其被配置成存储待执行任务队列;以及任务执行单元,其被配置成执行所述待执行任务队列中的待执行任务。
根据本申请的一些实施例,其中所述第一处理设备包括中央处理器,所述第二处理设备包括数字信号处理器、图形处理器、现场可编程门阵列,以及神经网络等处理器中的至少一个。以上概述了本申请的一些实施例,基于一些实施例的组合以及不同实施例中特征的组合可以获得另外的不同实施例,这些不同实施例同样属于本申请的保护范围。
附图说明
现在将更详细并且参考附图来描述本申请的实施例。能够理解到的是,附图中示出的处理设备和异构计算***的仅示意性地表示处理设备和异构计算***中与本申请实施例所描述的技术方案相关的部分结构,并不代表实际的产品结构。
图1示意性地图示了异构计算***中的主机和设备之间的信息交互;
图2示意性地图示了根据本申请的一个实施例的单个任务的任务信息的一般内容;
图3示意性地图示了包括多个任务的任务图的示例;
图4图示了根据本申请的一个实施例提供的处理多个任务的方法的步骤;
图5图示了应用常规的任务处理方法执行图3中的任务A、任务C和任务D的时序的示例;
图6图示了应用本申请实施例提供的处理多个任务的方法执行图3中的任务A、任务C和任务D的时序的示例;
图7图示了采用本申请一个实施例提供的处理多个任务的方法中定义任务描述信息的方式来定义图3所示的任务后获得的任务描述信息图;
图8图示了基于图7所示的各个任务的任务描述信息来描述图3所示的任务图;
图9图示了根据本申请的一个实施例提供的处理设备的结构框图;
图10图示了根据本申请的一个实施例提供的异构计算***的示例。
具体实施方式
下面的描述提供了本申请的各种实施例的特定细节,以便本领域的技术人员能够充分理解和实施本申请的各种实施例。在某些情况下,本申请并没有示出或详细描述一些本领域熟知的结构或功能,以避免这些不必要的描述使对本申请的实施例的描述模糊不清。本申请的技术方案可以体现为许多不同的形式和目的,并且不应局限于本文所阐述的实施例。提供这些实施例是为了使得本申请的技术方案清楚完整,但所述实施例并不限定本专利申请的保护范围。
图1示意性地示出了异构计算***中主机和设备之间的交互。图1以主机为中央处理器CPU、设备为图形处理器GPU为例进行说明。主机CPU可以将任务信息存储在主机存储器M1中,随后将任务信息复制到设备GPU的设备存储器M2中。当设备GPU从主机CPU收到任务的启动命令时,设备GPU中具体的任务执行单元从设备存储器M2中获取任务相关的指令信息和数据,并将执行任务而获得的结果存储在设备存储器M2中,设备GPU可将存储设备存储器M2中的结果传送给主机CPU。
本文提到的“任务”指的是在包括主机和设备的异构计算***中由主机指派给设备完成的操作,这里并不限制任务的具体形式或种类,任务的示例包括但不限于任何形式的数据计算、图像渲染等。图2示意性地示出了单个任务的任务信息的一般内容。如图2所示,任务的任务信息可包括任务描述信息cmd和任务指令信息ins。如本领域技术人员所知晓的,任务描述信息cmd通常包括设备执行任务所需要的命令参数信息,该命令参数信息表征启动和执行任务的任务指令信息所需的条件。在设备执行从主机发送的任务的过程中,设备对命令参数信息进行解析,为执行任务的任务指令信息ins而作好必要的准备,例如,基于对命令参数信息的解析,可以获知执行指令信息ins所需要的计算资源,随后设备中相应的计算资源(硬件资源)可以执行任务指令信息ins所表示的具体操作内容。命令参数信息可包括设备执行该任务所需要的计算资源(例如,算术逻辑单元ALU)的地址。任务指令信息ins表示任务的具体操作内容,例如,任务指令信息ins包括针对相关数据的具体运算指令。
参照图1和图2,为了完成一个任务,主机CPU需要将任务信息存储在主机的主机存储器M1中。任务信息从主机存储器M1被复制或转移至设备GPU的设备存储器M2中。在任务被启动时,设备GPU对设备存储器M2中存储的任务信息中的任务描述信息cmd中的命令参数信息进行解析,并根据存储在设备存储器M2中的任务指令信息ins进行具体的操作。因此,主机CPU和设备GPU完成一个任务的时间包括将任务信息从主机的主机存储器M1传输至设备的设备存储器M2的时间和设备GPU执行任务指令信息ins的时间。如果将任务信息传输至设备存储器M2的时间标记为T0,设备GPU完成任务指令信息ins表示的操作的时间标记为T1,则完成一个任务所需要的时间至少包括上述时间T0与时间T1之和。在需要完成多个任务的情形中,完成每个任务所需要的时间都至少包括类似于前述的时间T0和时间T1这样的两段时间。也就是说,在一个任务结束时,开始后一任务的任务描述信息cmd和任务指令信息ins的传输,在完成对后一任务的任务描述信息cmd中的命令参数信息的解析后,接着执行后一任务的任务指令信息ins表示的操作。
本专利申请的发明人意识到,这种处理任务的方式会导致较低的任务完成效率,也降低异构计算***中设备的资源的利用率,该问题在完成彼此之间存在相互依赖关系的多个任务的情形中显得更为突出。
如果多个任务中的至少一部分任务彼此之间存在依赖关系,可以认为上述至少一部分任务构成一个任务图。图3示意性地示出了包括7个任务A~G的任务图。在该任务图中,任务A不依赖于其它任务,任务A可以首先被执行。而任务B、C、D和E的执行均需要任务A的执行结果,即,任务B、C、D和E直接依赖于任务A,而且任务B和任务E还分别需要任务C和任务D的执行结果,即,任务B直接依赖于任务A和任务C,任务E直接依赖于任务A和任务D。同样地,任务F直接依赖于任务C和任务E,任务G直接依赖于任务B、任务E和任务F。完成任务G之后,包括7个任务A~G的任务图对应的总体任务才执行结束,任务G的执行结果被传输至主机。本文提到的“直接依赖”用于描述两个任务在任务图中的关联,即,两个任务中的一个任务的执行需要等待另一任务的执行结果。在本文中,对于多个任务的某一任务,将该任务的执行需要直接依赖的任务称为与该任务关联的第一类任务,即,该任务的执行需要第一类任务的执行结果,而将需要该任务的执行结果才能执行的任务称为与该任务关联的第二类任务,即,第二类任务直接依赖于该任务。例如,对于图3中所示的任务B,任务B直接依赖于任务A和任务C,同时,只有获得了任务B的执行结果,才能执行任务G。因此,与任务B关联的第一类任务包括任务A和任务C,与任务B关联的第二类任务包括任务G。
根据图3所示的任务图,与任务A~G关联的第一类任务和第二类任务可如下面的表1所示。
任务 | 第一类任务 | 第二类任务 |
A | 无 | B、C、D、E |
B | A、C | G |
C | A | F |
D | A | E |
E | A、D | F、G |
F | C、E | G |
G | B、E、F | 无 |
表1。
如果采用常规的方法来处理如图3所示的多个任务,主机需要在不同的时间分别向设备传输与7个任务A~G相关的任务信息,而且,传输某个任务的任务信息还需要等待与该任务相关的第一类任务的执行结束。因此,总体的任务完成效率较低,而且设备中的大量硬件资源没有得到充分的利用。
本申请的实施例提供了一种处理多个任务的方法,以提高任务完成的总体效率和提升设备的资源利用率。图4示出了根据本申请实施例提供的处理多个任务的方法,如图4所示,该方法包括如下步骤:S410、获取所述多个任务中的每个任务的任务描述信息,所述任务描述信息包括依赖信息标识和被依赖信息标识,所述依赖信息标识指示所述多个任务中与所述任务关联的第一类任务的数量,所述被依赖信息标识至少指示所述多个任务中是否存在与所述任务关联的第二类任务,所述任务的执行直接依赖于所述第一类任务,所述第二类任务的执行直接依赖于所述任务;S420、 响应于所述任务的执行结束,基于所述任务的被依赖信息标识更新与所述任务关联的所述第二类任务的依赖信息标识,以基于更新的依赖信息标识从与所述任务关联的第二类任务中确定出已不直接依赖于任何任务的待执行任务;S430、将所述待执行任务加入待执行任务队列;以及S440、执行所述待执行任务队列中的待执行任务。
在步骤S410中,诸如GPU之类的设备可以获取或接收多个任务中的每个任务的任务描述信息。与常规的任务描述信息类似,任务描述信息可包括设备执行任务所需要的命令参数信息,该命令参数信息表征启动和执行任务的任务指令信息所需的条件。处理设备可以对命令参数信息进行解析,为执行任务的任务指令信息而作好必要的准备。可以在任务描述信息中设置命令参数信息解析开始标识、命令参数信息解析结束标识和命令参数信息加载标识。如前所述,通过解析命令参数信息,可以为执行任务的任务指令信息而作好必要的准备,例如,为完成任务指令信息所表示的操作所需要的计算资源(例如,GPU的算术逻辑单元ALU),还可以是为完成任务指令信息所表示的操作准备一些初始数据。但是,根据本申请的实施例,任务描述信息还包括依赖信息标识和被依赖信息标识。下面,通过示例的方式来说明本申请的实施例中提到的任务描述信息。对一个任务kernel,任务描述信息kernelcmd可包括如下所示的结构:
structure kernelcmd
{
int32_t lockcounter;
uint32_t startcmd;
uint32_t launchcmd
uint64_t haspendingkernel;
uint64_t pendingkernelCmdAddr;
uint32_t endcmd
}
上述的依赖信息标识被表示为lockcounter,其表示与当前任务关联的第一类任务的数量,依赖信息标识lockcounter可以为一个带符号的数值。例如,在一个示例中,lockcounter为负数表明存在与当前任务关联的第一类任务,而且,lockcounter的绝对值对应于与当前任务关联的第一类任务的数量,相应地,lockcounter越小,表明与当前任务关联的第一类任务的数量越多。当lockcounter为0时,表明不存在与当前任务关联的第一类任务,即,当前任务的执行不直接依赖于其它任务,可以启动与该任务相关的参数解析。在本申请的实施例中,依赖信息标识lockcounter不是一个恒定的值,而是随着其它任务的执行可变化的值。在其它示例中,可以将依赖信息标识lockcounter为正数值时理解为存在与当前任务关联的第一类任务,此时,lockcounter越大,表明与当前任务关联的第一类任务的数量越多,同样地,当lockcounter为0时,表明当前任务的执行不直接依赖于其它任务。任务描述信息中的被依赖信息标识至少指示所述多个任务中是否存在与所述任务关联的第二类任务,例如,被依赖信息标识可包含是否存在与当前任务关联的第二类任务的信息。在一个实施例中,在存在与当前任务关联的第二类任务的情况下,被依赖信息标识还可包括与当前任务关联的第二类任务的相关信息。例如,在上面的示例中,被依赖信息标识包括第一标识haspendingkernel和第二标识pendingkernelCmdAddr,所述第一标识haspendingkernel指示多个任务中是否存在与当前任务关联的第二类任务,第二标识pendingkernelCmdAddr指示与当前任务关联的第二类任务的任务描述信息的起始地址信息。与当前任务关联的第二类任务直接依赖于当前任务,只有当前任务执行结束的时候,才能开始执行与当前任务关联的第二类任务。在以上的示例中,任务描述信息kernelcmd的结构也包括命令参数信息解析开始标识startcmd、命令参数信息解析结束标识endcmd和命令参数信息加载标识launchcmd。运行命令参数信息加载标识launchcmd也就意味着为任务指令信息的执行作出具体的准备工作,例如,为任务指令信息的执行分配命令参数信息所指明的计算资源(例如ALU)、初始数据等。相应地,命令参数信息可包含为完成当前任务所需要的总的计算资源方面的信息。在一些实施例中,单个任务可以被拆分成多个任务包,每个任务包可以进一步被分解为多个线程任务,每个线程任务由设备中相应的单个的计算资源(例如,算术逻辑单元ALU)来执行,这样,可以实现多个线程任务的并行处理。在设备的计算资源充足的情况下,多个任务包也可以被并行处理。此时,命令参数信息可包括执行当前任务所需要的总的计算资源、以及执行各个任务包所需要的计算资源方面的信息。
在一些实施例中,上述的第二标识pendingkernelCmdAddr包括与当前任务关联的第二类任务(pendingkernel)的任务描述信息的起始地址信息。下面描述第二标识pendingkernelCmdAddr的结构的一个示例。
Structure PendingKernelsCmdAddr
{
uint32_t startpending;
uint64_t pendingkernels cmdaddr
uint32_t endpending
}
其中startpending和endpending分别表示识别第二类任务(pendingkernel)的任务描述信息的开始和结束,pendingkernels cmdaddr表示各个第二类任务的任务描述信息的起始地址。
在步骤S420中,响应于所述任务的执行结束,基于所述任务的被依赖信息标识更新与所述任务关联的所述第二类任务的依赖信息标识,以基于更新的依赖信息标识从与所述任务关联的第二类任务中确定出已不直接依赖于任何任务的待执行任务。也就是说,在当前任务执行结束时,根据任务图体现的不同任务之间的关联而对依赖信息标识的值作出更新,以便从与当前任务关联的第二类任务中确定出已不直接依赖于任何任务的待执行任务。即,从与当前任务关联的第二类任务中筛选出已经解除对其它任务的直接依赖的一些任务,并将这些任务确定为待执行任务。例如,对于图3中所示的任务A而言,与任务A关联的第二类任务包括任务B、任务C、任务D和任务E。任务B直接依赖于任务A和任务C,任务B的任务描述信息中的依赖信息标识的值为-2,任务C直接依赖于任务A,任务C的任务描述信息中的依赖信息标识的值为-1,任务D直接依赖于任务A,任务D的任务描述信息中的依赖信息标识的值为-1,任务E直接依赖于任务A和任务D,任务E的任务描述信息中的依赖信息标识的值为-2。当任务A执行结束时,对任务B、任务C、任务D和任务E的任务描述信息中的依赖信息标识的值进行更新,以实时反映任务B、C、D和E对其它任务的依赖关系的动态变化。例如,在任务A执行结束时,任务B和任务E的任务描述信息中的依赖信息标识的值均由-2变为-1,而任务C和任务D的任务描述信息中的依赖信息标识的值均由-1变为0。在该示例中,任务C和任务D的依赖信息标识的值为0意味着任务C和任务D在任务A执行结束时已不依赖于任何任务,因此,将任务C和任务D确定为待执行任务。
相应地,在步骤S430中,将待执行任务(例如,任务C和任务D)加入待执行任务队列。在步骤S440中,执行所述待执行任务队列中的待执行任务。例如,可以将待执行任务的任务描述信息的地址信息集中存储在第一存储器内,然后基于待执行任务的任务描述信息的地址信息获取待执行任务的命令参数信息。
如前所述,对于常规的处理任务的方法,设备完成一个任务的时间至少包括从主机存储器接收任务的任务信息的时间和执行任务指令信息表示的操作的时间。特别地,在设备要完成多个任务的情形中,任何一个任务的开始执行都需要等待另一任务的执行结束,即各个任务是以逐个的串行处理方式被完成的。例如,对于图3所示的任务图中的任务A、任务C和任务D,由于任务C和任务D依赖于任务A,所以在任务A执行结束时,可以执行任务C和D。任务C和任务D二者中的一个必须等待这二者中的另一任务的执行结束才能开始执行,即使任务C和任务D彼此之间无相互依赖关系。图5图示了应用常规的任务处理方法执行图3中的任务A、任务C和任务D的时序的示例。如图5所示,任务A包括任务描述信息cmdA和任务指令信息insA,任务C包括任务描述信息cmdC和任务指令信息insC,任务D包括任务描述信息cmdD和任务指令信息insD。在任务A执行结束时,任务C和任务D先后被执行,任务D需要等待任务C执行结束,即使执行任务C的结果不需要提供给任务D。异构计算***中的设备通常包括可进行并行运算的大量计算资源(例如,ALU),设备以逐个任务的串行处理方式来处理多个任务会造成设备的许多计算资源处于闲置状态,同时也导致任务的总体执行效率较低。
图6图示了应用本申请实施例提供的处理多个任务的方法来处理图3中的任务A、任务C和任务D的时序的示例。因为与任务C或任务D关联的第一类任务只包括任务A,所以,在任务A执行结束时,任务C和任务D被确定为待执行任务,任务C和任务D的任务描述信息的起始地址被添加至待执行任务队列。根据任务C和任务D的任务描述信息的起始地址,可以从设备存储器中获取任务C和任务D的任务描述信息,由此可以对任务C和任务D的任务描述信息中的命令参数信息进行解析。当任务A执行结束时,设备的计算资源执行任务C和任务D中的一个任务的任务指令信息所指明的具体操作。但是,设备的其它处于闲置状态的计算资源可以随即开始执行任务C和任务D中的另一个任务的任务指令信息所指明的具体操作。例如,在图6的示例中,当任务A执行结束时,设备的某一或某些计算资源随即执行任务C的任务指令信息所指明的具体操作,在设备中存在其它可用的计算资源的情况下,该其它可用的计算资源也开始执行任务D的任务指令信息所指明的具体操作,而不必等待任务C的执行结束。这样,可以实现任务C和任务D的并行处理,使得设备的计算资源得以高效地利用,并提升处理多个任务的速度和效率。
在利用本申请实施例提供的处理多个任务的方法处理多个任务的情形中,主机可以将其已经准备就绪的那些任务的任务信息及时发送至设备,一旦设备确定出待执行任务,就对待执行任务的任务描述信息中的命令参数信息进行解析,紧接着执行待执行任务的任务指令信息所指示的操作。对待执行任务的任务描述信息中的命令参数信息解析也可以在更早的时间进行,例如,在执行任务A的过程期间完成对待执行任务C和D的任务描述信息中的命令参数信息解析。也就是说,对待执行任务的任务描述信息中的命令参数信息的解析和该待执行任务的任务指令信息表示的具体操作的执行在时间上可以连续,或者,对待执行任务的任务描述信息中的命令参数信息的解析可以比执行该待执行任务的任务指令信息表示的具体操作更早地完成。因此,在图6的示例中,同时以虚线和实线示出了任务C和任务D的任务描述信息cmdC和cmdD的时序。
能够理解到的是,应用本申请实施例提供的处理多个任务的方法,在将任务C和任务D确定为待执行任务时,任务B和任务E没有被确定为待执行任务,因为此时任务B和任务E仍分别直接依赖于任务C和任务D,即,此时任务B的任务描述信息中的依赖信息标识还指示存在与任务B关联的第一类任务—任务C,任务E的任务描述信息中的依赖信息标识还指示存在与任务E关联的第一类任务—任务D。任务B和任务E的任务描述信息的起始地址可以分别在任务C和任务D结束时被添加至待执行任务队列。因此,可以节约设备中用于存储待执行任务队列的第一存储器的存储空间。
在一些实施例中,上述的步骤S420可包括:S420a、响应于所述任务的执行结束对与所述任务关联的各第二类任务的依赖信息标识的值作出相同量的改变,从而获得与该任务关联的各第二类任务的更新依赖信息标识;以及S420b、将所述更新依赖信息标识指示与其关联的第一类任务的数量为零的第二类任务确定为所述待执行任务。例如,对于图3所示的任务图,与任务A关联的第二类任务包括任务B、C、D和E。任务B、C、D和E的任务描述信息中的依赖信息标识的初始值分别为-2、-1、-1和-2。当任务A执行结束时,针对任务B、C、D和E的依赖信息标识的初始值分别执行加1操作,相应地,任务B、C、D和E的更新依赖信息标识的值分别为-1、0、0和-1。接着,可以将更新依赖信息标识指示与其关联的第一类任务的数量为零的第二类任务(即,任务C和任务D)确定为待执行任务。以上所述的任务B、C、D和E的任务描述信息中的依赖信息标识的初始值以及“加1操作”仅仅是示例性说明,可以根据任务B、C、D和E关联的第一类任务的具体情况设置任务B、C、D和E的依赖信息标识的其它初始值、并在任务A执行结束时针对任务B、C、D和E的依赖信息标识的初始值分别执行其他的操作,只要任务B、C、D和E的依赖信息标识的初始值和更新依赖信息标识的值能够正确反映任务B、C、D和E所关联的第一类任务的数量的变化即可。例如,任务B、C、D和E的任务描述信息中的依赖信息标识的初始值可以分别为正值,当任务A执行结束时,针对任务B、C、D和E的依赖信息标识的初始值分别进行减法操作。
根据本申请的一些实施例,上述的处理多个任务的方法还包括:响应于所获取到的所述多个任务包括其依赖信息标识指示与其关联的第一类任务的数量为零的无依赖任务,将所述无依赖任务加入所述待执行任务队列。这里提到的无依赖任务和前述的待执行任务的共同之处在于其依赖信息标识指示与其关联的第一类任务的数量为零,即,无依赖任务和待执行任务均不依赖于任何其他任务。但是,无依赖任务的任务描述信息中的依赖信息标识并没有经历过更新,而是在其被处理设备获取时即处于不依赖于其它任何任务的状态,此时,可以将该无依赖任务加入待执行任务队列。
在一些实施例中,上述的步骤S430—将所述待执行任务加入待执行任务队列包括:将所述待执行任务的任务描述信息的起始地址信息存储至先进先出存储器FIFO以形成所述待执行任务队列。在该情形中,可以根据待执行任务队列中各个待执行任务解除对其它任务的直接依赖的先后次序,从先进先出存储器输出待执行任务的任务描述信息的起始地址信息(即,先被添加至待执行任务队列的待执行任务将先从先进先出存储器输出),基于该起始地址信息,可以从设备存储器获取各个待执行任务的任务描述信息中的命令参数信息,之后完成对命令参数信息的解析和任务指令信息指明的具体操作。再次以图6为例,对于图6所示的时序的示例,也可以认为任务C先于任务D解除对其它任务的直接依赖。
根据本申请的另一实施例,各个任务的任务描述信息还包括任务优先级标识,上述的步骤S430—将所述待执行任务加入待执行任务队列包括:将所述待执行任务的任务描述信息的起始地址信息和所述待执行任务的任务优先级标识存储至第一存储器。在该情形中,第一存储器可以不是先进先出存储器的形式,而是常规的缓存器。此时,任务描述信息kernelcmd的示例性结构可如下所示。
structure kernelcmd
{
int32_t lockcounter;
uint32_t priority;
uint32_t startcmd;
uint32_t launchcmd
uint64_t haspendingkernel;
uint64_t pendingkernelCmdAddr;
uint32_t endcmd
}
任务优先级标识priority是一个无符号数值,表示当前任务在任务图的总体任务中的优先级。因此,不同数值的任务优先级标识priority意味着不同任务的不同优先级,对于均不涉及关联的第一类任务的两个任务,这两个任务中优先级高的任务将优先被执行。
基于上述示例性的任务描述信息,图3所示的任务图中的各个任务A~G的任务描述信息可以被示意性地表示为图7。例如,与任务A关联的第二类任务包括任务B、任务C、任务D和任务E,任务A的任务描述信息中的被依赖信息标识包括第一标识和第二标识,而第二标识包括任务B、任务C、任务D和任务E的任务描述信息的起始地址。在图3所示的任务图中,不存在与任务G关联的第二类任务,因此,图7中示出的任务G的任务描述信息不包含被依赖信息标识。相应地,基于图7所示的各个任务的任务描述信息的定义,如图3所示的包括任务A~G的任务图可以被图示为图8。在图7和图8中,各个任务的任务描述信息中的标识或信息包含了相应的任务的代码A~G以区分不同任务的任务描述信息。
如前所述,每个任务可包括用于指示所述任务的具体操作内容的任务指令信息,具体操作内容的示例包括但不限于计算公式、函数等,每个任务的任务描述信息还包括命令参数信息,所述命令参数信息表征启动和执行所述任务的任务指令信息所需的条件,在一些实施例中,上述的步骤S440—执行所述待执行任务队列中的待执行任务包括:S440a、根据所述待执行任务的任务描述信息的起始地址信息获取所述待执行任务的任务描述信息中的命令参数信息;以及S440b、将所述待执行任务的命令参数信息存储至第二存储器,以对所述待执行任务的命令参数信息进行解析。第二存储器可以基于待执行任务的任务描述信息的起始地址信息获取所述待执行任务的任务描述信息中的命令参数信息并存储待执行任务的命令参数信息。第二存储器内的命令参数信息可以由设备中的命令参数信息解析装置读取以进行命令参数信息的解析。
根据本申请的另外实施例,上述的步骤S440a—根据待执行任务的任务描述信息的起始地址信息获取所述待执行任务的任务描述信息中的命令参数信息包括:响应于所述第一存储器内存储有至少一个待执行任务的任务描述信息的起始地址信息、且所述第二存储器存在可用空间,根据所述至少一个待执行任务的任务描述信息的起始地址信息获取所述至少一个待执行任务的任务描述信息中的命令参数信息,上述的步骤S440b—将所述待执行任务的命令参数信息存储至第二存储器,以对所述待执行任务的命令参数信息进行解析包括:将所述至少一个待执行任务的命令参数信息存储至第二存储器,以对所述至少一个待执行任务的命令参数信息进行解析。在该实施例中,只要第一存储器内存储有待执行任务的任务描述信息的起始地址信息,第二存储器有可用空间,第二存储器就存储待执行任务的任务描述信息中的命令参数信息。因此,第二存储器可以存储多个待执行任务的任务描述信息中的命令参数信息。例如,再次参照图3和图6,在任务C和任务D被确定为待执行任务时,第二存储器可以同时存储任务C和任务D的任务描述信息中的命令参数信息,此时,设备的命令参数信息解析装置可以对这两个任务的任务描述信息中的命令参数信息进行解析,只要设备具有可用的计算资源,就可以并行地执行任务C和任务D的任务指令信息。而且,在各个任务的任务描述信息还包括任务优先级标识的情形中,当设备执行待执行任务队列中优先级较高的任务的任务指令信息表示的具体操作时,命令参数信息解析装置可以对待执行任务队列中优先级较低的任务的命令参数信息进行解析。因此,在该实施例中,可以更充分地利用设备的硬件资源,使得处理多个任务的速度和效率得以进一步提升。
根据本申请的另外的实施例,在任务的任务描述信息包括优先级标识的情形中,上述的步骤S440-执行所述待执行任务队列中的待执行任务包括:S440A、基于所述待执行任务的优先级标识从所述待执行任务队列中确定具有最高优先级的高优先级待执行任务;S440B、基于所述高优先级待执行任务的任务描述信息的起始地址信息获取所述高优先级待执行任务的任务描述信息的命令参数信息;以及S440C、将所述高优先级待执行任务的任务描述信息中的命令参数信息存储至第二存储器,以对所述高优先级待执行任务的任务描述信息的命令参数信息进行解析。如此,可以基于待执行任务队列中各待执行任务的优先级的高低来执行待执行任务队列中各待执行任务。
在另外的实施例中,上述的步骤S440—执行所述待执行任务队列中的待执行任务包括:S4401、基于所述待执行任务的优先级标识从所述待执行任务队列中确定具有最高优先级的高优先级待执行任务;S4402、比较所述高优先级待执行任务的任务优先级标识和所述待执行任务队列之外的另外任务的任务优先级标识;S4403、响应于所述高优先级待执行任务的优先级高于所述另外任务的优先级,将所述高优先级待执行任务的任务描述信息中的命令参数信息存储至所述第二存储器,以对所述高优先级待执行任务的任务描述信息中的命令参数信息进行解析。在一些情形中,设备可能不是同时接收到多个任务中的各个任务的任务描述信息,而是主机将所述多个任务分批发送给设备。上述的另外任务可以是主机分批发送的多个任务中较晚发送的任务,而且,上述的另外任务可以是某一任务图中的某一任务,也可以是独立于任务图的其它任务。在待执行任务队列中具有最高优先级的高优先级待执行任务的优先级高于上述的另外任务的情况下,先执行所述高优先级待执行任务。进一步地,上述的步骤S440—执行所述待执行任务队列中的待执行任务还包括:响应于所述高优先级待执行任务的优先级高于所述另外任务的优先级、且所述另外任务的任务描述信息中的依赖信息标识指示与该另外任务关联的第一类任务的数量为零,将该另外任务的任务描述信息的起始地址信息存储至所述第一存储器。也就是说,如果该另外任务已经不依赖于其它任务但是优先级较低,可将该另外任务加入待执行任务队列,由此可基于该另外任务和待执行任务队列中的已有待执行任务的优先级高低来执行该另外任务。
进一步地,在一些实施例中,上述的步骤S440—执行所述待执行任务队列中的待执行任务还可包括:S4404、响应于所述高优先级待执行任务的优先级低于所述另外任务的优先级、且所述另外任务的任务描述信息中的依赖信息标识指示与该另外任务关联的第一类任务的数量为零,将该另外任务的任务描述信息的命令参数信息存储至所述第二存储器,以对所述另外任务的任务描述信息的命令参数信息进行解析。也就是说,在所述另外任务的优先级高于上述的待执行任务队列中的高优先级待执行任务、且所述另外任务没有对其它任务的直接依赖的情况下,先执行所述另外任务。能够理解到的是,在上述另外任务的任务描述信息中的依赖信息标识指示与该另外任务关联的第一类任务的数量不为零的情况下,需要等待与该另外任务关联的第一类任务的执行,并且随着与该另外任务关联的第一类任务的执行结束而更新上述另外任务的任务描述信息中的依赖信息标识的值。
综上所述,在本申请另一实施例提供的处理多个任务的方法中,每个任务的任务描述信息包括依赖信息标识(指示与该任务关联的第一类任务的数量)、被依赖信息标识(指示与该任务关联的第二类任务)和任务优先级标识,而且,与当前任务关联的第二类任务的依赖信息标识会随着当前任务的执行结束而被更新,从而可以动态地从与当前任务关联的第二类任务中确定出已不直接依赖于任何任务的待执行任务。换言之,对于多个任务中的任何一个任务而言,在该任务执行结束时,可以判断与该任务关联的第二类任务中是否存在已完全脱离了对其它任务的直接依赖的那些任务,并将这些任务确定为待执行任务。对于这些待执行任务,可以基于各待执行任务的任务优先级标识执行,但不必像常规的处理任务的方法中那样要求其中一个任务的开始执行必须等待另一任务的执行结束。
因此,根据本申请的一个实施例,执行所述待执行任务队列中的待执行任务可包括:响应于用于运行所述方法的处理设备存在用于执行任务的可用计算资源,从所述待执行任务队列中获取至少一个待执行任务,并将该至少一个待执行任务分配至所述可用计算资源。
能够理解到的是,以上提到的多个任务可以属于同一任务图,即,多个任务中的各个任务存在直接或间接的依赖关系,例如,如图3所示的那样,多个任务中的最后任务需要依赖于先前任务的执行结果。替代性地,多个任务可以形成两个以上彼此独立的多个任务图。因此,在一些实施例中,所述多个任务包括两个任务集合,所述两个任务集合中的一个任务集合中的各个任务存在依赖关系形成第一任务图,所述两个任务集合中的另一任务集合中的各个任务存在依赖关系形成第二任务图,所述第一任务图独立于所述第二任务图,即,第一任务图中的任务和第二任务图中的任务之间没有关联。采用本申请的上述实施例提供的方法来处理该多个任务,可以实现对彼此无关联的多个任务图中的任务的并行处理,大大提高处理任务的效率。
本申请的另外实施例提供了一种用于处理多个任务的处理设备,该处理设备可以是数字信号处理器(DSP)、图形处理器(GPU)、现场可编程门阵列(FPGA),以及神经网络等处理器(NPU)中的任何一种。与前述的实施例类似,多个任务中的每个任务包括任务描述信息,所述任务描述信息包括依赖信息标识和被依赖信息标识,所述依赖信息标识指示所述多个任务中与所述任务关联的第一类任务的数量,所述被依赖信息标识至少指示所述多个任务中是否存在与所述任务关联的第二类任务,所述任务的执行直接依赖于所述第一类任务,所述第二类任务的执行直接依赖于所述任务。处理设备包括待执行任务确定单元和待执行任务队列存储单元,待执行任务确定单元被配置成响应于所述多个任务中的每个任务的执行结束,基于所述任务的被依赖信息标识更新与所述任务关联的所述第二类任务的依赖信息标识,以基于更新的依赖信息标识从与所述任务关联的第二类任务中确定出已不直接依赖于任何任务的待执行任务。待执行任务队列存储单元被配置成存储待执行任务队列。与常规的处理设备不同,本申请实施例提供的处理设备包括上述的待执行任务确定单元和待执行任务队列存储单元,待执行任务确定单元可以从与当前任务关联的第二类任务中确定出已不直接依赖于任何任务的待执行任务,将所确定的各个待执行任务的相关信息存储在待执行任务队列存储单元内,因此,取决于设备的计算资源的实际状况,设备可以对那些已经不直接依赖于任何任务的待执行任务队列中至少一部分甚至全部的待执行任务并行处理,减少设备中处于闲置状态的计算资源的量,使得设备的计算资源得以高效地利用,提升处理多个任务的速度和效率。
待执行任务确定单元可包括加法器或减法器,该加法器或减法器被配置成响应于所述任务的执行结束对与所述任务关联的各第二类任务的依赖信息标识的值作出相同量的改变,从而获得与该任务关联的各第二类任务的更新依赖信息标识,待执行任务确定单元将所述更新依赖信息标识指示与其关联的第一类任务的数量为零的第二类任务确定为所述待执行任务。
在一些实施例中,待执行任务队列存储单元包括先进先出存储器,所述待执行任务确定单元被配置成在确定所述待执行任务时将所述待执行任务的任务描述信息的起始地址信息发送至所述先进先出存储器。在另外的实施例中,任务的任务描述信息还包括任务优先级标识,待执行任务队列存储单元包括第一存储单元,所述待执行任务确定单元被配置成在确定所述待执行任务时将所述待执行任务的任务描述信息的起始地址信息和所述待执行任务的任务优先级标识发送至所述第一存储单元。第一存储单元可以是任何类型的缓存器。
如前所述,多个任务中的每个任务还可包括用于指示所述任务的具体操作内容的任务指令信息,每个任务的所述任务描述信息还包括命令参数信息,命令参数信息表征启动和执行所述任务的任务指令信息所需的条件,此时待执行任务队列存储单元还包括第二存储单元,所述第二存储单元被配置成存储所述待执行任务的命令参数信息,以对所述待执行任务的命令参数信息进行解析。
在任务的任务描述信息包括任务优先级标识的情况下,待执行任务队列存储单元还包括第一优先级判断单元,所述第一优先级判断单元基于所述待执行任务的优先级标识从所述待执行任务队列中确定具有最高优先级的高优先级待执行任务,此时第二存储单元被配置成响应于所述第一优先级判断单元确定出所述高优先级待执行任务而存储所述高优先级待执行任务的任务描述信息中的命令参数信息,以对所述高优先级待执行任务的任务描述信息中的命令参数信息进行解析。进一步地,在一些实施例中,处理设备包括第二优先级判断单元,第二优先级判断单元被配置成比较所述高优先级待执行任务的任务优先级标识和所述待执行任务队列之外的另外任务的任务优先级标识,所述第二存储单元被配置成响应于所述高优先级待执行任务的优先级高于所述另外任务的优先级,而存储所述高优先级待执行任务的任务描述信息中的命令参数信息,以对所述高优先级待执行任务的任务描述信息中的命令参数信息进行解析。
在一些实施例中,第一存储单元还被配置成响应于所述高优先级待执行任务的优先级高于所述另外任务的优先级、且所述另外任务的任务描述信息中的依赖信息标识指示与该另外任务关联的第一类任务的数量为零,而存储所述另外任务的任务描述信息的起始地址信息。第二存储单元还被配置成响应于所述高优先级待执行任务的优先级低于所述另外任务的优先级、且所述另外任务的任务描述信息中的依赖信息标识指示与该另外任务关联的第一类任务的数量为零,而存储该另外任务的任务描述信息的命令参数信息,以对所述另外任务的任务描述信息的命令参数信息进行解析。在一些实施例中,处理设备还包括第三存储单元,其用于存储与所述任务关联的所述第二类任务的任务描述信息。
图9图示了根据本申请一个实施例的处理设备的结构框图,如图9所示,处理设备包括待执行任务确定单元9130、任务执行单元930、设备存储器940、第一存储单元9210、第二存储单元9220、命令参数信息解析单元950、第一优先级判断单元920a、第二优先级判断单元940。设备存储器包括第三存储单元9420、任务描述信息存储单元9410和任务指令信息存储单元9430。图9中还示出了寻址单元9110和命令参数信息加载单元9120。处理设备执行各个任务的任务指令信息、以及解析命令参数信息是本领域技术人员所已知的,且不是本申请技术方案的重点,在此不再详述。
设备存储器940可以存储从主机获取或接收到的各个任务的任务描述信息、任务指令信息、完成任务指令信息所指示的操作所需要的数据、以及完成任务指令信息所指示的操作后获得的结果等。例如,那些在处理任务之前已经不依赖于任何其它任务的任务(例如,图3或图8中所示的任务A)的任务描述信息可以存储在任务描述信息存储单元9410中,任务指令信息和完成任务指令信息所指示的操作所需要的数据可以存储在任务指令信息存储单元9430中,那些依赖于其它任务的执行结果才能执行的任务的任务描述信息可以存储在第三存储单元9420中。下面以图9所示的处理设备执行如图8或图3所示的任务图来示例说明处理设备的工作过程。
在处理设备获取或接收到任务A时,由于任务A是任务图的起始任务且不依赖于任何其它的任务,第二优先级判断单元940判断任务A优先执行,命令参数信息解析单元950指令寻址单元9110和命令参数信息加载单元9120从任务描述信息存储单元9410获取任务A的命令参数信息,命令参数信息加载单元9120将任务A的命令参数信息发送至第二存储单元9220,命令参数信息解析单元950对存储在第二存储单元9220中的任务A的命令参数信息进行解析,基于命令参数信息解析单元950的解析结果,任务执行单元930利用处理设备的相应的计算资源(例如,ALU)完成任务指令信息存储单元9430中存储的任务A 的任务指令信息所指示的操作。在任务A被执行结束时,待执行任务确定单元9130可以从寻址单元9110获取与任务A关联的第二类任务B、C、D和E的地址信息,并更新存储在第三存储单元9420中的任务B、C、D和E依赖信息标识,例如,如之前针对图3的实施例所讨论的,任务B、C、D和E的任务描述信息中的依赖信息标识的初始值分别为-2、-1、-1、和-2,当任务A执行结束时,针对任务B、C、D和E的依赖信息标识的初始值分别进行加1操作,从而将任务C和任务D确定为已不直接依赖于任何任务的待执行任务。待执行任务确定单元9130可以从第三存储单元9420中获取待执行任务确定单元确定的待执行任务C和D的相关信息(例如,任务描述信息的起始地址和优先级标识)并将其存储至第一存储单元9210,此时,待执行任务队列包括待执行任务C和待执行任务D。第一优先级判断单元920基于任务C和任务D的优先级标识而从任务C和任务D中确定具有最高优先级的高优先级待执行任务(例如,任务 C)。在处理设备没有获取或接收到另外任务的情况下,高优先级待执行任务C的任务描述信息中的命令参数信息将由命令参数信息加载单元9120被加载至第二存储单元9220,以由命令参数信息解析单元950解析,进而由任务执行单元930完成高优先级待执行任务C任务指令信息所指示的操作。与常规的处理设备不同,在任务执行单元930完成高优先级待执行任务C的任务指令信息所指示的操作的过程中,只要任务执行单元930仍有可用的计算资源,命令参数信息解析单元950就可以完成对待执行任务C和待执行任务D中的另一任务D的命令参数的解析,为任务D分配另外的计算资源,从而可以并行执行任务C和任务D,而不必等待任务C的执行结束才执行任务D。因此,本申请实施例提供的处理设备可以对那些已经不直接依赖于任何任务的待执行任务队列中至少一部分甚至全部的待执行任务并行处理,减少设备中处于闲置状态的计算资源的量,使得设备的计算资源得以高效地利用,提升处理多个任务的速度和效率。
如图9所示,在一些情形中,如果处理设备在处理任务的过程中从主机获取到另外任务ncmd,那么第二优先级判断单元940将该另外任务ncmd的优先级与第一优先级判断单元920a输出的高优先级待执行任务进行比较。在高优先级待执行任务的优先级高于所述另外任务的优先级的情况下,处理设备优先执行第一优先级判断单元920a输出的高优先级待执行任务,即,第二存储单元9220存储高优先级待执行任务的任务描述信息中的命令参数信息,以对所述高优先级待执行任务的任务描述信息中的命令参数信息进行解析。在高优先级待执行任务的优先级高于所述另外任务的优先级、且另外任务的任务描述信息中的依赖信息标识指示与该另外任务关联的第一类任务的数量为零的情况下,可以将该另外任务加入待执行任务队列,第一存储单元9210例如可存储该另外任务的任务描述信息的起始地址信息和优先权标识。在高优先级待执行任务的优先级低于所述另外任务的优先级、且所述另外任务的任务描述信息中的依赖信息标识指示与该另外任务关联的第一类任务的数量为零的情况下,处理设备执行该另外任务ncmd,即第二存储单元9220存储该另外任务ncmd的任务描述信息的命令参数信息,以对所述另外任务ncmd的任务描述信息的命令参数信息进行解析。
如前所述,待执行任务确定单元910可包括加法器或减法器。这里提到的加法器或减法器包括能够实现加法或减法功能的运算电路。当然,能够理解到的是,在一些实施例中,也可以基于加法电路实现减法功能。例如,加法电路可以接收负数进行加法运算,而实际上实现减法功能。例如,如之前针对图3的实施例所讨论的,任务B、C、D和E的任务描述信息中的依赖信息标识的初始值可以均为正值,当任务A执行结束时,针对任务B、C、D和E的依赖信息标识的初始值分别进行与负数相加的加法操作,从而实现减法器的功能。
图9中所示的第一优先级判断单元920a和第二优先级判断单元940可分别包括比较电路,该比较电路基于不同任务的任务描述信息中的优先级标识的值而判断不同任务的优先级的高低。在图9中,第一优先级判断单元920a被示出为实施在第一存储单元9210内部,替代性地,第一优先级判断单元920a也可以被实施为在第一存储单元9210外部。在各个任务的任务描述信息不包括优先权标识的情况下,处理设备可不包括第一优先级判断单元920a和第二优先级判断单元940,此时,第一存储单元9210可被实施为先进先出存储器FIFO。
根据本申请的实施例,只要第二存储单元9220存在可用空间,就可以经由命令参数信息加载单元9210从设备存储器940获得由第一存储单元9210所指明的待执行任务队列中的待执行任务的命令参数信息,即,第二存储单元9220可以存储多个待执行任务的命令参数信息,命令参数信息解析单元950可以对多个待执行任务的命令参数信息进行解析,只要任务执行单元930具有可用的计算资源,就可以并行地执行多个待执行任务的任务指令信息。因此,处理设备的硬件资源得以高效地利用,使得处理多个任务的速度和效率得以进一步提升。
如之前所讨论的,以上提到的多个任务可以属于同一任务图,或者,多个任务可以形成两个以上彼此独立的多个任务图。因此,本申请实施例提供的处理设备也可以实现对彼此无关联的多个任务图中的任务的并行处理,大大提高处理任务的效率。
本申请的另外的实施例提供了一种异构计算***,该异构计算***包括第一处理设备和第二处理设备,第一处理设备和第二处理设备彼此配合以处理多个任务,所述多个任务中的每个任务包括任务描述信息,所述任务描述信息包括依赖信息标识和被依赖信息标识,所述依赖信息标识指示所述多个任务中与所述任务关联的第一类任务的数量,所述被依赖信息标识至少指示所述多个任务中是否存在与所述任务关联的第二类任务,所述任务的执行直接依赖于所述第一类任务,所述第二类任务的执行直接依赖于所述任务。第一处理设备被配置成向所述第二处理设备发送所述多个任务以使得所述第二处理设备执行所述多个任务。第二处理设备包括待执行任务确定单元、待执行任务队列存储单元和任务执行单元,待执行任务确定单元被配置成响应于所述多个任务中的每个任务的执行结束,基于所述任务的被依赖信息标识更新与所述任务关联的所述第二类任务的依赖信息标识,以基于更新的依赖信息标识从与所述任务关联的第二类任务中确定出已不直接依赖于任何任务的待执行任务,待执行任务队列存储单元被配置成存储待执行任务队列,任务执行单元被配置成执行所述待执行任务队列中的待执行任务。也就是说,该异构计算***中的第一处理设备可以向第二处理设备传输或发送多个任务的任务信息,而异构计算***中的第二处理设备执行如图4所示的理多个任务的方法中的步骤S410、步骤S420、步骤S430和步骤S440。
图10示意性地示出了异构计算***的示例,异构计算***中的第一处理设备1010包括中央处理器CPU,第二处理设备1020可以是如图9所示的处理设备。第二处理设备可包括数字信号处理器、图形处理器、现场可编程门阵列,以及神经网络等处理器中的至少一个。
以上已经结合一些实施例描述了本申请的技术方案,但是本申请的保护范围并不限于在本文中所阐述的实施例的特定形式,本申请的范围由所附权利要求来定义。
Claims (26)
1.一种处理多个任务的方法,其特征在于,所述方法包括:
获取所述多个任务中的每个任务的任务描述信息,所述任务描述信息包括依赖信息标识和被依赖信息标识,所述依赖信息标识指示所述多个任务中与所述任务关联的第一类任务的数量,所述被依赖信息标识至少指示所述多个任务中是否存在与所述任务关联的第二类任务,所述任务的执行直接依赖于所述第一类任务,所述第二类任务的执行直接依赖于所述任务;
响应于所述任务的执行结束,基于所述任务的被依赖信息标识更新与所述任务关联的所述第二类任务的依赖信息标识,以基于更新的依赖信息标识从与所述任务关联的第二类任务中确定出已不直接依赖于任何任务的待执行任务;
将所述待执行任务加入待执行任务队列;以及
执行所述待执行任务队列中的待执行任务。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:响应于获取到的所述多个任务包括其依赖信息标识指示与其关联的第一类任务的数量为零的无依赖任务,将所述无依赖任务加入所述待执行任务队列。
3.根据权利要求1所述的方法,其特征在于,所述响应于所述任务的执行结束,基于所述任务的被依赖信息标识更新与所述任务关联的所述第二类任务的依赖信息标识,以基于更新的依赖信息标识从与所述任务关联的第二类任务中确定出已不直接依赖于任何任务的待执行任务包括:
响应于所述任务的执行结束对与所述任务关联的各第二类任务的依赖信息标识的值作出相同量的改变,从而获得与该任务关联的各第二类任务的更新依赖信息标识;以及
将所述更新依赖信息标识指示与其关联的第一类任务的数量为零的第二类任务确定为所述待执行任务。
4.根据权利要求1所述的方法,其特征在于将所述待执行任务加入待执行任务队列包括:
将所述待执行任务的任务描述信息的起始地址信息存储至先进先出存储器以形成所述待执行任务队列。
5.根据权利要求1所述的方法,其特征在于,所述任务描述信息还包括任务优先级标识,其中将所述待执行任务加入待执行任务队列包括:
将所述待执行任务的任务描述信息的起始地址信息和所述待执行任务的任务优先级标识存储至第一存储器以形成所述待执行任务队列。
6.根据权利要求5所述的方法,其特征在于,其中所述多个任务中的每个任务还包括用于指示所述任务的具体操作内容的任务指令信息,所述任务描述信息还包括命令参数信息,所述命令参数信息表征启动和执行所述任务的任务指令信息所需的条件,其中执行所述待执行任务队列中的待执行任务包括:
根据所述待执行任务的任务描述信息的起始地址信息获取所述待执行任务的任务描述信息中的命令参数信息;以及
将所述待执行任务的命令参数信息存储至第二存储器,以对所述待执行任务的命令参数信息进行解析。
7.根据权利要求6所述的方法,其特征在于,其中根据所述待执行任务的任务描述信息的起始地址信息获取所述待执行任务的任务描述信息中的命令参数信息包括:
响应于所述第一存储器内存储有至少一个待执行任务的任务描述信息的起始地址信息、且所述第二存储器存在可用空间,根据所述至少一个待执行任务的任务描述信息的起始地址信息获取所述至少一个待执行任务的任务描述信息中的命令参数信息,
其中,将所述待执行任务的命令参数信息存储至第二存储器,以对所述待执行任务的命令参数信息进行解析包括:
将所述至少一个待执行任务的命令参数信息存储至第二存储器,以对所述至少一个待执行任务的命令参数信息进行解析。
8.根据权利要求5所述的方法,其特征在于,其中所述多个任务中的每个任务还包括用于指示所述任务的具体操作内容的任务指令信息,所述任务描述信息还包括命令参数信息,所述命令参数信息表征启动和执行所述任务的任务指令信息所需的条件,其中执行所述待执行任务队列中的待执行任务包括:
基于所述待执行任务的优先级标识从所述待执行任务队列中确定具有最高优先级的高优先级待执行任务;
基于所述高优先级待执行任务的任务描述信息的起始地址信息获取所述高优先级待执行任务的任务描述信息中的命令参数信息;以及
将所述高优先级待执行任务的任务描述信息中的命令参数信息存储至第二存储器,以对所述高优先级待执行任务的任务描述信息中的命令参数信息进行解析。
9.根据权利要求5所述的方法,其特征在于,其中所述多个任务中的每个任务还包括用于指示所述任务的具体操作内容的任务指令信息,所述任务描述信息还包括命令参数信息,所述命令参数信息表征启动和执行所述任务的任务指令信息所需的条件,其中执行所述待执行任务队列中的待执行任务包括:
基于所述待执行任务的优先级标识从所述待执行任务队列中确定具有最高优先级的高优先级待执行任务;
比较所述高优先级待执行任务的任务优先级标识和所述待执行任务队列之外的另外任务的任务优先级标识;
响应于所述高优先级待执行任务的优先级高于所述另外任务的优先级,将所述高优先级待执行任务的任务描述信息中的命令参数信息存储至第二存储器,以对所述高优先级待执行任务的任务描述信息中的命令参数信息进行解析。
10.根据权利要求9所述的方法,其特征在于,其中执行所述待执行任务队列中的待执行任务还包括:
响应于所述高优先级待执行任务的优先级高于所述另外任务的优先级、且所述另外任务的任务描述信息中的依赖信息标识指示与该另外任务关联的第一类任务的数量为零,将该另外任务的任务描述信息的起始地址信息存储至所述第一存储器。
11.根据权利要求9所述的方法,其特征在于,其中执行所述待执行任务队列中的待执行任务还包括:
响应于所述高优先级待执行任务的优先级低于所述另外任务的优先级、且所述另外任务的任务描述信息中的依赖信息标识指示与该另外任务关联的第一类任务的数量为零,将该另外任务的任务描述信息的命令参数信息存储至所述第二存储器,以对所述另外任务的任务描述信息的命令参数信息进行解析。
12.根据权利要求1所述的方法,其特征在于,其中所述方法由处理设备执行,执行所述待执行任务队列中的待执行任务包括:
响应于所述处理设备存在用于执行任务的可用计算资源,从所述待执行任务队列中获取至少一个待执行任务,并将该至少一个待执行任务分配至所述可用计算资源。
13.根据权利要求1所述的方法,其特征在于,其中所述多个任务包括两个任务集合,所述两个任务集合中的一个任务集合中的各个任务存在依赖关系形成第一任务图,所述两个任务集合中的另一任务集合中的各个任务存在依赖关系形成第二任务图,所述第一任务图独立于所述第二任务图。
14.根据权利要求1所述的方法,其特征在于,所述被依赖信息标识包括第一标识和第二标识,所述第一标识指示所述多个任务中是否存在与所述任务关联的第二类任务,所述第二标识指示与所述任务关联的所述第二类任务的任务描述信息的起始地址信息。
15.一种用于处理多个任务的处理设备,其特征在于,所述多个任务中的每个任务包括任务描述信息,所述任务描述信息包括依赖信息标识和被依赖信息标识,所述依赖信息标识指示所述多个任务中与所述任务关联的第一类任务的数量,所述被依赖信息标识至少指示所述多个任务中是否存在与所述任务关联的第二类任务,所述任务的执行直接依赖于所述第一类任务,所述第二类任务的执行直接依赖于所述任务,其中所述处理设备包括:
待执行任务确定单元,其被配置成响应于所述多个任务中的每个任务的执行结束,基于所述任务的被依赖信息标识更新与所述任务关联的所述第二类任务的依赖信息标识,以基于更新的依赖信息标识从与所述任务关联的第二类任务中确定出已不直接依赖于任何任务的待执行任务;
待执行任务队列存储单元,其被配置成存储待执行任务队列;以及
任务执行单元,其被配置成执行所述待执行任务队列中的待执行任务。
16.根据权利要求15所述的处理设备,其特征在于,所述待执行任务确定单元包括加法器或减法器,所述加法器或减法器被配置成响应于所述任务的执行结束对与所述任务关联的各第二类任务的依赖信息标识的值作出相同量的改变,从而获得与该任务关联的各第二类任务的更新依赖信息标识,
其中所述待执行任务确定单元将所述更新依赖信息标识指示与其关联的第一类任务的数量为零的第二类任务确定为所述待执行任务。
17.根据权利要求15所述的处理设备,其特征在于,所述待执行任务队列存储单元包括先进先出存储器,所述待执行任务确定单元被配置成在确定所述待执行任务时将所述待执行任务的任务描述信息的起始地址信息发送至所述先进先出存储器。
18.根据权利要求15所述的处理设备,其特征在于,所述任务描述信息还包括任务优先级标识,其中所述待执行任务队列存储单元包括第一存储单元,所述待执行任务确定单元被配置成在确定所述待执行任务时将所述待执行任务的任务描述信息的起始地址信息和所述待执行任务的任务优先级标识发送至所述第一存储单元。
19.根据权利要求18所述的处理设备,其特征在于,所述多个任务中的每个任务还包括用于指示所述任务的具体操作内容的任务指令信息,每个任务的所述任务描述信息还包括命令参数信息,所述命令参数信息表征启动和执行所述任务的任务指令信息所需的条件,
其中所述待执行任务队列存储单元还包括第二存储单元,所述第二存储单元被配置成存储所述待执行任务的命令参数信息,以对所述待执行任务的命令参数信息进行解析。
20.根据权利要求19所述的处理设备,其特征在于,所述待执行任务队列存储单元还包括第一优先级判断单元,所述第一优先级判断单元基于所述待执行任务的优先级标识从所述待执行任务队列中确定具有最高优先级的高优先级待执行任务,
其中所述第二存储单元被配置成响应于所述第一优先级判断单元确定出所述高优先级待执行任务而存储所述高优先级待执行任务的任务描述信息中的命令参数信息,以对所述高优先级待执行任务的任务描述信息中的命令参数信息进行解析。
21.根据权利要求20所述的处理设备,其特征在于,所述处理设备包括第二优先级判断单元,所述第二优先级判断单元被配置成比较所述高优先级待执行任务的任务优先级标识和所述待执行任务队列之外的另外任务的任务优先级标识,
其中所述第二存储单元被配置成响应于所述高优先级待执行任务的优先级高于所述另外任务的优先级,而存储所述高优先级待执行任务的任务描述信息中的命令参数信息,以对所述高优先级待执行任务的任务描述信息中的命令参数信息进行解析。
22.根据权利要求21所述的处理设备,其特征在于,所述第一存储单元还被配置成响应于所述高优先级待执行任务的优先级高于所述另外任务的优先级、且所述另外任务的任务描述信息中的依赖信息标识指示与该另外任务关联的第一类任务的数量为零,而存储所述另外任务的任务描述信息的起始地址信息。
23.根据权利要求21所述的处理设备,其特征在于,所述第二存储单元还被配置成响应于所述高优先级待执行任务的优先级低于所述另外任务的优先级、且所述另外任务的任务描述信息中的依赖信息标识指示与该另外任务关联的第一类任务的数量为零,而存储该另外任务的任务描述信息的命令参数信息,以对所述另外任务的任务描述信息的命令参数信息进行解析。
24.根据权利要求15所述的处理设备,其特征在于,所述处理设备还包括第三存储单元,其用于存储与所述任务关联的所述第二类任务的任务描述信息。
25.一种异构计算***,包括第一处理设备和第二处理设备,所述第一处理设备和第二处理设备彼此配合以处理多个任务,
其特征在于,所述多个任务中的每个任务包括任务描述信息,所述任务描述信息包括依赖信息标识和被依赖信息标识,所述依赖信息标识指示所述多个任务中与所述任务关联的第一类任务的数量,所述被依赖信息标识至少指示所述多个任务中是否存在与所述任务关联的第二类任务,所述任务的执行直接依赖于所述第一类任务,所述第二类任务的执行直接依赖于所述任务,
其中所述第一处理设备被配置成向所述第二处理设备发送所述多个任务以使得所述第二处理设备执行所述多个任务,其中所述第二处理设备包括:
待执行任务确定单元,其被配置成响应于所述多个任务中的每个任务的执行结束,基于所述任务的被依赖信息标识更新与所述任务关联的所述第二类任务的依赖信息标识,以基于更新的依赖信息标识从与所述任务关联的第二类任务中确定出已不直接依赖于任何任务的待执行任务;
待执行任务队列存储单元,其被配置成存储待执行任务队列;以及
任务执行单元,其被配置成执行所述待执行任务队列中的待执行任务。
26.根据权利要求25所述的异构计算***,其特征在于,所述第一处理设备包括中央处理器,所述第二处理设备包括数字信号处理器、图形处理器、现场可编程门阵列,以及神经网络等处理器中的至少一个。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211156377.7A CN115237582B (zh) | 2022-09-22 | 2022-09-22 | 处理多个任务的方法、处理设备以及异构计算*** |
PCT/CN2023/119199 WO2024061135A1 (zh) | 2022-09-22 | 2023-09-15 | 处理多个任务的方法、处理设备以及异构计算*** |
TW112136353A TWI831729B (zh) | 2022-09-22 | 2023-09-22 | 處理多個任務的方法、處理設備以及異構計算系統 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211156377.7A CN115237582B (zh) | 2022-09-22 | 2022-09-22 | 处理多个任务的方法、处理设备以及异构计算*** |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115237582A true CN115237582A (zh) | 2022-10-25 |
CN115237582B CN115237582B (zh) | 2022-12-09 |
Family
ID=83667049
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211156377.7A Active CN115237582B (zh) | 2022-09-22 | 2022-09-22 | 处理多个任务的方法、处理设备以及异构计算*** |
Country Status (3)
Country | Link |
---|---|
CN (1) | CN115237582B (zh) |
TW (1) | TWI831729B (zh) |
WO (1) | WO2024061135A1 (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116450324A (zh) * | 2023-06-20 | 2023-07-18 | 北京超星未来科技有限公司 | 任务处理方法、装置、设备及存储介质 |
CN116841739A (zh) * | 2023-06-30 | 2023-10-03 | 沐曦集成电路(杭州)有限公司 | 用于异构计算平台的数据包重用*** |
CN117519799A (zh) * | 2023-11-06 | 2024-02-06 | 摩尔线程智能科技(北京)有限责任公司 | 指令调度方法及装置、和电子设备 |
WO2024051270A1 (zh) * | 2023-05-08 | 2024-03-14 | 之江实验室 | 任务执行的方法、装置、存储介质及电子设备 |
WO2024061135A1 (zh) * | 2022-09-22 | 2024-03-28 | 摩尔线程智能科技(北京)有限责任公司 | 处理多个任务的方法、处理设备以及异构计算*** |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070283358A1 (en) * | 2006-06-06 | 2007-12-06 | Hironori Kasahara | Method for controlling heterogeneous multiprocessor and multigrain parallelizing compiler |
CN206489563U (zh) * | 2017-02-08 | 2017-09-12 | 无锡十月中宸科技有限公司 | 异构计算*** |
CN111026540A (zh) * | 2018-10-10 | 2020-04-17 | 上海寒武纪信息科技有限公司 | 任务处理方法、任务调度器和任务处理装置 |
CN112291293A (zh) * | 2019-07-27 | 2021-01-29 | 华为技术有限公司 | 任务处理方法、相关设备及计算机存储介质 |
CN112328380A (zh) * | 2020-11-10 | 2021-02-05 | 武汉理工大学 | 一种基于异构计算的任务调度方法及装置 |
CN112463709A (zh) * | 2019-09-09 | 2021-03-09 | 上海登临科技有限公司 | 可配置的异构人工智能处理器 |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9424201B2 (en) * | 2013-03-14 | 2016-08-23 | Nvidia Corporation | Migrating pages of different sizes between heterogeneous processors |
KR20150050135A (ko) * | 2013-10-31 | 2015-05-08 | 삼성전자주식회사 | 복수의 이종 코어들을 포함하는 전자 시스템 및 이의 동작 방법 |
US9836324B2 (en) * | 2014-02-07 | 2017-12-05 | International Business Machines Corporation | Interleave-scheduling of correlated tasks and backfill-scheduling of depender tasks into a slot of dependee tasks |
US20170262291A1 (en) * | 2016-03-09 | 2017-09-14 | Mediatek Inc. | Heterogeneous computing system with a shared computing unit and separate memory controls |
CN112711478B (zh) * | 2019-10-24 | 2024-05-28 | 珠海零边界集成电路有限公司 | 基于神经网络的任务处理方法、装置、服务器和存储介质 |
TW202236141A (zh) * | 2020-10-22 | 2022-09-16 | 美國亞利桑那州立大學亞利桑那州評議委員會 | 使用用於異質多核心系統之模仿學習之運行時間任務排程 |
CN112527474B (zh) * | 2020-12-10 | 2023-07-25 | 北京百度网讯科技有限公司 | 任务处理方法及装置、设备、可读介质、计算机程序产品 |
CN112764911A (zh) * | 2021-01-29 | 2021-05-07 | 建信金融科技有限责任公司 | 一种任务调度方法、装置、电子设备及可读存储介质 |
CN114153584A (zh) * | 2021-12-03 | 2022-03-08 | 完美世界互动(北京)科技有限公司 | 游戏帧循环的任务处理方法、设备及存储介质 |
CN114911589A (zh) * | 2022-03-31 | 2022-08-16 | 苏州浪潮智能科技有限公司 | 跨数据平台的融合计算方法、***、终端及存储介质 |
CN115237582B (zh) * | 2022-09-22 | 2022-12-09 | 摩尔线程智能科技(北京)有限责任公司 | 处理多个任务的方法、处理设备以及异构计算*** |
-
2022
- 2022-09-22 CN CN202211156377.7A patent/CN115237582B/zh active Active
-
2023
- 2023-09-15 WO PCT/CN2023/119199 patent/WO2024061135A1/zh unknown
- 2023-09-22 TW TW112136353A patent/TWI831729B/zh active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070283358A1 (en) * | 2006-06-06 | 2007-12-06 | Hironori Kasahara | Method for controlling heterogeneous multiprocessor and multigrain parallelizing compiler |
CN206489563U (zh) * | 2017-02-08 | 2017-09-12 | 无锡十月中宸科技有限公司 | 异构计算*** |
CN111026540A (zh) * | 2018-10-10 | 2020-04-17 | 上海寒武纪信息科技有限公司 | 任务处理方法、任务调度器和任务处理装置 |
CN112291293A (zh) * | 2019-07-27 | 2021-01-29 | 华为技术有限公司 | 任务处理方法、相关设备及计算机存储介质 |
CN112463709A (zh) * | 2019-09-09 | 2021-03-09 | 上海登临科技有限公司 | 可配置的异构人工智能处理器 |
CN112328380A (zh) * | 2020-11-10 | 2021-02-05 | 武汉理工大学 | 一种基于异构计算的任务调度方法及装置 |
Non-Patent Citations (1)
Title |
---|
JUAN FANG 等: "《Dynamic block size adjustment and workload balancing strategy based on CPU-GPU heterogeneous platform》", 《2019 IEEE INTL CONF ON PARALLEL & DISTRIBUTED PROCESSING WITH APPLICATIONS, BIG DATA & CLOUD COMPUTING, SUSTAINABLE COMPUTING & COMMUNICATIONS, SOCIAL COMPUTING & NETWORKING》 * |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2024061135A1 (zh) * | 2022-09-22 | 2024-03-28 | 摩尔线程智能科技(北京)有限责任公司 | 处理多个任务的方法、处理设备以及异构计算*** |
WO2024051270A1 (zh) * | 2023-05-08 | 2024-03-14 | 之江实验室 | 任务执行的方法、装置、存储介质及电子设备 |
CN116450324A (zh) * | 2023-06-20 | 2023-07-18 | 北京超星未来科技有限公司 | 任务处理方法、装置、设备及存储介质 |
CN116841739A (zh) * | 2023-06-30 | 2023-10-03 | 沐曦集成电路(杭州)有限公司 | 用于异构计算平台的数据包重用*** |
CN116841739B (zh) * | 2023-06-30 | 2024-04-19 | 沐曦集成电路(杭州)有限公司 | 用于异构计算平台的数据包重用*** |
CN117519799A (zh) * | 2023-11-06 | 2024-02-06 | 摩尔线程智能科技(北京)有限责任公司 | 指令调度方法及装置、和电子设备 |
Also Published As
Publication number | Publication date |
---|---|
TWI831729B (zh) | 2024-02-01 |
CN115237582B (zh) | 2022-12-09 |
WO2024061135A1 (zh) | 2024-03-28 |
TW202414198A (zh) | 2024-04-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN115237582B (zh) | 处理多个任务的方法、处理设备以及异构计算*** | |
EP3667496B1 (en) | Distributed computing system, data transmission method and device in distributed computing system | |
US7231638B2 (en) | Memory sharing in a distributed data processing system using modified address space to create extended address space for copying data | |
US8316220B2 (en) | Operating processors over a network | |
US20140181831A1 (en) | DEVICE AND METHOD FOR OPTIMIZATION OF DATA PROCESSING IN A MapReduce FRAMEWORK | |
US10402223B1 (en) | Scheduling hardware resources for offloading functions in a heterogeneous computing system | |
US9244737B2 (en) | Data transfer control method of parallel distributed processing system, parallel distributed processing system, and recording medium | |
CN112035238A (zh) | 任务调度处理方法、装置、集群***及可读存储介质 | |
JP4507791B2 (ja) | 複数のプロセッサにソフトウェアをロードするシステムおよび方法 | |
EP3805925A1 (en) | Method and apparatus for executing task by scheduling device | |
CN111124704A (zh) | 一种数据处理方法、处理器及终端设备 | |
US7586493B1 (en) | System and method for offloading application tasks in a multi-processor environment utilizing a driver | |
CN116382880B (zh) | 任务执行方法、装置、处理器、电子设备及存储介质 | |
US11900601B2 (en) | Loading deep learning network models for processing medical images | |
WO2022166480A1 (zh) | 任务调度方法、装置及*** | |
CN113051049B (zh) | 任务调度***、方法、电子设备及可读存储介质 | |
CN113721990A (zh) | 数据处理方法、数据处理设备、加速卡和存储介质 | |
CN110245027B (zh) | 一种进程间通信的方法和设备 | |
US20230244966A1 (en) | Machine learning deployment platform | |
CN116048756A (zh) | 一种队列调度方法、装置及相关设备 | |
CN114911525A (zh) | 二进制指令翻译执行方法及装置 | |
JP2022079764A (ja) | 同期制御システムおよび同期制御方法 | |
CN114371920A (zh) | 一种基于图形处理器加速优化的网络功能虚拟化*** | |
CN113885949A (zh) | 一种快速开机方法及*** | |
EP3791274B1 (en) | Method and node for managing a request for hardware acceleration by means of an accelerator device |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |