一种任务处理方法及处理装置、计算机系统制造方法及图纸

技术编号:22641072 阅读:29 留言:0更新日期:2019-11-26 16:01
本申请涉及计算机技术领域,公开了一种任务处理方法及处理装置、计算机系统,方法的实现包括:第一处理装置生成多个任务,并确定所述多个任务的任务描述信息,所述多个任务的任务描述信息用于指示所述多个任务之间的依赖关系,其中,存在依赖关系的任意两个任务中,其中一个任务的处理需要等待另一个任务的处理结果;所述第一处理装置向第二处理装置发送指令,所述指令中包括所述多个任务和所述多个任务的任务描述信息;所述第二处理装置接收所述指令,并根据所述多个任务之间的依赖关系对所述多个任务进行处理。如此,本申请实施例中的方案能够有效降低等待时延,充分发挥加速芯片的计算能力,提高任务处理效率。

A task processing method, processing device and computer system

The application relates to the field of computer technology, and discloses a task processing method, a processing device and a computer system. The realization of the method includes: the first processing device generates a plurality of tasks, and determines the task description information of the plurality of tasks, and the task description information of the plurality of tasks is used to indicate the dependency relationship between the plurality of tasks, wherein, any task with a dependency relationship exists Among the two tasks, the processing of one task needs to wait for the processing result of the other task; the first processing device sends an instruction to the second processing device, the instruction includes the task description information of the multiple tasks and the multiple tasks; the second processing device receives the instruction, and according to the dependency between the multiple tasks, the multiple tasks Deal with it. In this way, the scheme in the embodiment of the application can effectively reduce the waiting delay, give full play to the computing power of the acceleration chip, and improve the task processing efficiency.

【技术实现步骤摘要】
一种任务处理方法及处理装置、计算机系统
本申请涉及计算机
,尤其涉及一种任务处理方法及处理装置、计算机系统。
技术介绍
在信息产业高速发展的今天,计算需求日益丰富,计算机的计算性能不断提升,并由过去的同构计算发展到现在的异构计算。异构计算是指采用了中央处理器(centralprocessingunit,CPU)之外的处理器完成计算任务,不同的计算任务可能采用不同的处理器,比如:数字信号处理器(digitalsignalprocessing,DSP)、图形处理器(graphicsprocessingunit,GPU)、现场可编程门阵列(fieldprogrammablegatearray,FPGA),以及近年来出现的神经网络处理器(neuralnetworkprocessingunit,NPU)。NPU服务于人工智能(artificialintelligence,AI)计算,特长在于海量的矩阵乘法,可以高效地完成神经网络中的卷积计算。由于异构计算采用多核并行的处理架构,所需的计算时间极低,因此对任务的调度效率提出了更高的要求。当前主流的异构计算均采用主机-设备(Host-Device)模型,由Host向Device异步分发计算任务和相关(输入/输出)数据搬移任务,然后由Device完成计算和数据搬移。其中,Host在向Device分发任务时,需要保证该任务所依赖的前提条件都满足(比如,该任务所依赖的任务均已处理完成)后才分发该任务,而没有相互依赖关系的任务则可以随机发送。具体来说,Host根据应用程序的调用生成多个任务,并把多个任务放入不同的队列中,然后从队列中取任务发送给Device;Host需要在接收到Device返回的处理结果后,再发送下一个任务。然而,由于AI计算任务间的多层数据依赖特征,Device将当前任务处理完成后,需要通过高延迟的Host-Device线再次通知Host获取后继任务,从而增加了任务的等待时延,造成Device的计算停顿,不能充分发挥加速芯片的计算能力。
技术实现思路
本申请提供了一种任务处理方法及处理装置、计算机系统,用以解决任务的等待时延较大、不能充分发挥加速芯片的计算能力的问题。第一方面,本申请实施例提供一种任务处理方法,包括:第一处理装置生成多个任务,并确定所述多个任务的任务描述信息,所述多个任务的任务描述信息用于指示所述多个任务之间的依赖关系,其中,存在依赖关系的任意两个任务中,其中一个任务的处理需要等待另一个任务的处理结果;所述第一处理装置向第二处理装置发送指令,所述指令中包括所述多个任务和所述多个任务的任务描述信息。本申请实施例中,第一处理装置将多个任务以及多个任务的任务描述信息一并发送第二处理装置,如此,第二处理装置在处理完成一个任务后,可以直接根据多个任务之间的依赖关系获取下一个任务进行处理,相比于现有技术中,第二处理装置处理完成一个任务后需要通知给第一处理装置,并由第一处理装置下发下一个任务来说,本申请实施例中的方案能够有效降低等待时延,充分发挥加速芯片的计算能力,提高任务处理效率;且,能够降低第一处理装置的处理负载,满足未来第二处理装置计算能力扩展的场景下,第一处理装置与第二处理装置的负载平衡,并能够更好地满足芯片算力提升、高数据吞吐量、多层数据依赖特征的AI场景下,计算能力与数据搬移能力的平衡和整体性能提升。在一种可能的设计中,所述任务描述信息包括所述多个任务分别对应的任务流的标识;所述第一处理装置通过如下方式确定所述多个任务分别对应的任务流:所述第一处理装置若确定空闲的任务流的资源量大于等于第一阈值,则从所述空闲的任务流中为所述多个任务分配对应的任务流;或者,所述第一处理装置若确定空闲的任务流的资源量小于等于第二阈值,则从所述第二处理装置已有的任务流中为所述多个任务分配对应的任务流;或者,所述第一处理装置若确定空闲的任务流的资源量大于第二阈值且小于第一阈值,则从所述空闲的任务流中为所述多个任务中的部分任务分配对应的任务流,以及从所述第二处理装置已有的任务流中为所述多个任务中的其它部分任务分配对应的任务流。如此,第一处理装置在确定多个任务分别对应的任务流的标识时,会判断第二处理装置中空闲的任务流的标识是否够用,若不够用,则进行共享复用,从而能够有效提高资源利用效率。在一种可能的设计中,所述第一处理装置从所述第二处理装置已有的任务流中为所述多个任务分配对应的任务流,包括:所述第一处理装置根据第一任务需要放入的任务流的优先级,从所述第二处理装置已有的任务流中选择出与所述第一任务需要放入的任务流的优先级相同的任务流,并将选择出的任务流确定为所述第一任务对应的任务流;所述第一任务为所述多个任务中的任一任务。本申请实施例中,由于第二处理装置在对各个任务流中的任务进行处理时,会按照各个任务流的优先级依次进行轮询处理各个任务流的等待列表表头任务。如此,由于上述实现方式充分考虑了各个任务所需要放入的任务流的优先级,从而能够有效保证位于不同任务流中的任务的执行顺序。在一种可能的设计中,所述任务描述信息中还包括事件的标识,所述事件用于指示所述事件对应的任务之间的依赖关系,所述事件对应的任务为所述多个任务中位于不同的任务流且具有依赖关系的两个或两个以上的任务,所述两个或两个以上任务包括一个依赖任务以及一个或一个以上被依赖任务;所述依赖任务的处理依赖于所述各个被依赖任务的处理结果。在一种可能的设计中,所述方法还包括:所述第一处理装置接收所述第二处理装置发送的通知消息,所述通知消息用于指示所述被依赖任务或所述依赖任务处理完成;所述第一处理装置根据所述通知消息,对所述事件的状态进行更新;所述第一处理装置若确定所述事件更新后的状态符合预设条件,则释放所述事件的标识,以便于后续分配使用。第二方面,本申请实施例提供一种任务处理方法,所述方法包括:第二处理装置接收第一处理装置发送的指令,所述指令中包括多个任务和所述多个任务的任务描述信息,所述多个任务的任务描述信息用于指示所述多个任务之间的依赖关系,其中,存在依赖关系的任意两个任务中,其中一个任务的处理需要等待另一个任务的处理结果;所述第二处理装置根据所述多个任务之间的依赖关系对所述多个任务进行处理。由于指令中包括多个任务以及多个任务的任务描述信息,如此,第二处理装置在处理完成一个任务后,可以直接根据多个任务之间的依赖关系获取下一个任务进行处理,能够有效降低等待时延,充分发挥加速芯片的计算能力,提高任务处理效率。在一种可能的设计中,所述任务描述信息包括事件的标识,所述事件用于指示所述事件对应的任务之间的依赖关系,所述事件对应的任务为所述多个任务中位于不同的任务流且具有依赖关系的两个或两个以上的任务,所述两个或两个以上任务包括一个依赖任务以及一个或一个以上被依赖任务;所述依赖任务的处理依赖于所述各个被依赖任务的处理结果;所述第二处理装置根据所述多个任务之间的依赖关系对所述本文档来自技高网
...

【技术保护点】
1.一种任务处理方法,其特征在于,所述方法包括:/n第一处理装置生成多个任务,并确定所述多个任务的任务描述信息,所述多个任务的任务描述信息用于指示所述多个任务之间的依赖关系,其中,存在依赖关系的任意两个任务中,其中一个任务的处理需要等待另一个任务的处理结果;/n所述第一处理装置向第二处理装置发送指令,所述指令中包括所述多个任务和所述多个任务的任务描述信息。/n

【技术特征摘要】
1.一种任务处理方法,其特征在于,所述方法包括:
第一处理装置生成多个任务,并确定所述多个任务的任务描述信息,所述多个任务的任务描述信息用于指示所述多个任务之间的依赖关系,其中,存在依赖关系的任意两个任务中,其中一个任务的处理需要等待另一个任务的处理结果;
所述第一处理装置向第二处理装置发送指令,所述指令中包括所述多个任务和所述多个任务的任务描述信息。


2.根据权利要求1所述的方法,其特征在于,所述任务描述信息包括所述多个任务分别对应的任务流的标识;
所述第一处理装置通过如下方式确定所述多个任务分别对应的任务流:
所述第一处理装置若确定空闲的任务流的资源量大于等于第一阈值,则从所述空闲的任务流中为所述多个任务分配对应的任务流;或者,
所述第一处理装置若确定空闲的任务流的资源量小于等于第二阈值,则从所述第二处理装置已有的任务流中为所述多个任务分配对应的任务流;或者,
所述第一处理装置若确定空闲的任务流的资源量大于第二阈值且小于第一阈值,则从所述空闲的任务流中为所述多个任务中的部分任务分配对应的任务流,以及从所述第二处理装置已有的任务流中为所述多个任务中的其它部分任务分配对应的任务流。


3.根据权利要求2所述的方法,其特征在于,所述第一处理装置从所述第二处理装置已有的任务流中为所述多个任务分配对应的任务流,包括:
所述第一处理装置根据第一任务需要放入的任务流的优先级,从所述第二处理装置已有的任务流中选择出与所述第一任务需要放入的任务流的优先级相同的任务流,并将选择出的任务流确定为所述第一任务对应的任务流;所述第一任务为所述多个任务中的任一任务。


4.根据权利要求3所述的方法,其特征在于,所述任务描述信息中还包括事件的标识,所述事件用于指示所述事件对应的任务之间的依赖关系,所述事件对应的任务为所述多个任务中位于不同的任务流且具有依赖关系的两个或两个以上的任务,所述两个或两个以上任务包括一个依赖任务以及一个或一个以上被依赖任务;所述依赖任务的处理依赖于所述各个被依赖任务的处理结果。


5.根据权利要求4所述的方法,其特征在于,所述方法还包括:
所述第一处理装置接收所述第二处理装置发送的通知消息,所述通知消息用于指示所述被依赖任务或所述依赖任务处理完成;
所述第一处理装置根据所述通知消息,对所述事件的状态进行更新;
所述第一处理装置若确定所述事件更新后的状态符合预设条件,则释放所述事件的标识。


6.一种任务处理方法,其特征在于,所述方法包括:
第二处理装置接收第一处理装置发送的指令,所述指令中包括多个任务和所述多个任务的任务描述信息,所述多个任务的任务描述信息用于指示所述多个任务之间的依赖关系,其中,存在依赖关系的任意两个任务中,其中一个任务的处理需要等待另一个任务的处理结果;
所述第二处理装置根据所述多个任务之间的依赖关系对所述多个任务进行处理。


7.根据权利要求6所述的方法,其特征在于,所述任务描述信息包括事件的标识,所述事件用于指示所述事件对应的任务之间的依赖关系,所述事件对应的任务为所述多个任务中位于不同的任务流且具有依赖关系的两个或两个以上的任务,所述两个或两个以上任务包括一个依赖任务以及一个或一个以上被依赖任务;所述依赖任务的处理依赖于所述各个被依赖任务的处理结果;
所述第二处理装置根据所述多个任务之间的依赖关系对所述多个任务进行处理,包括:
所述第二处理装置确定所述各个被依赖任务均处理完成后,将所述事件的状态更新为就绪状态;
所述第二处理装置确定所述依赖任务为待处理任务后,若检测到所述事件的状态为就绪状态,则对所述依赖任务进行处理。


8.根据权利要求7所述的方法,其特征在于,所述方法还包括:
所述第二处理装置确定所述被依赖任务或所述依赖任务处理完成后,向所述第一处理装置返回通知消息,所述通知消息用于指示所述被依赖任务或所述依赖任务处理完成。


9.一种处理装置,其特征在于,所述处理装置包括:
处理单元,用于生成多个任务,并确定所述多个任务的任务描述信息,所述多个任务的任务描述信息用于指示所述多个任务之间的依赖关系,其中,存在依赖关系的任意两个任务中,其中一个任务的处理需要等待另一个任务的处理结果;
收发单元,用于向第二处理装置发送指令,所述指令中包括所述多个任务和所述多个任务的任务描述信息。


10.根据权利要求9所述的装置,其特征在于,所述任务描述信息包括所述多个任务分别对应的任务流的标识;
所述处理单元通过如下方式确定所述多个任务分别对应的任务流:
若确定空闲的任务流的资源量大于等于第一阈值,则从所述空闲的任务流中为所述多个任务分配对应的任务流;或者,
若确定空闲的任务流的资源量小于等于第二阈值,则从所述第二处理装置已有的任务流中为所述多个任务分配对应的任务流;或者,
若确定空闲的任务流的资源量大于第二阈值且小于第一阈值,则从所述空闲的任务流中为所述多个任务中的部分任务分配对应的任务流,以及从所述第二处理装置已有的任务流中为所述多个任务中的其它部分任务分配对应的任务流。


11.根据权利要求10所述的装置,其特征在于,所述处理单元具体用于:

【专利技术属性】
技术研发人员:李维高雄林灏勋马涛
申请(专利权)人:华为技术有限公司
类型:发明
国别省市:广东;44

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

1