CN116954954A - 一种多任务队列处理的方法、装置、存储介质及电子设备 - Google Patents

一种多任务队列处理的方法、装置、存储介质及电子设备 Download PDF

Info

Publication number
CN116954954A
CN116954954A CN202311220675.2A CN202311220675A CN116954954A CN 116954954 A CN116954954 A CN 116954954A CN 202311220675 A CN202311220675 A CN 202311220675A CN 116954954 A CN116954954 A CN 116954954A
Authority
CN
China
Prior art keywords
task
analyzed
queue
target
current
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.)
Pending
Application number
CN202311220675.2A
Other languages
English (en)
Inventor
请求不公布姓名
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Moore Threads Technology Co Ltd
Original Assignee
Moore Threads Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Moore Threads Technology Co Ltd filed Critical Moore Threads Technology Co Ltd
Priority to CN202311220675.2A priority Critical patent/CN116954954A/zh
Publication of CN116954954A publication Critical patent/CN116954954A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/546Message passing systems or structures, e.g. queues
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Abstract

本说明书公开了一种多任务队列处理的方法、装置、存储介质和电子设备,所述方法应用于图形处理器,所述图形处理器包括两个及以上的任务解析器,其中包括目标任务解析器,所述目标任务解析器获取至少两个任务队列,在各任务队列中,选择目标任务队列,在所述目标任务队列中确定当前待解析任务,响应于所述当前待解析任务所依赖的任务不存在,则解析所述当前待解析任务,响应于所述当前待解析任务所依赖的任务存在,则在各任务队列中重新选择目标任务队列。本方法通过多个任务解析器同时解析多个任务队列,提高任务队列的解析效率,若该任务解析器的待解析任务所依赖的任务未被解析,则直接解析另一个任务队列的任务,提高GPU的利用率。

Description

一种多任务队列处理的方法、装置、存储介质及电子设备
技术领域
本说明书涉及计算机领域,尤其涉及一种多任务队列处理的方法、装置、存储介质及电子设备。
背景技术
随着计算机技术的发展以及人们需求的增多,图形处理器(Graphics ProcessingUnit,GPU)需要处理任务也逐渐增多。通常情况下,有GPU无法做到多个任务队列的并行处理,因此,若GPU内存在多个待处理的任务队列,则GPU会将多个任务队列整合为一个任务队列。但由于多个任务队列中的任务之间可能存在依赖关系,因此,在将多个任务队列整合为一个任务队列时,有依赖关系的任务需要等待该任务依赖的任务解析完成后才能进行解析,导致GPU的利用率降低。
基于此,本说明书提供一种多任务队列处理的方法,用于处理多任务队列,提高GPU的利用率。
发明内容
本说明书提供一种多任务队列处理的方法、装置、存储介质及电子设备,以至少部分的解决现有技术存在的上述问题。
本说明书采用下述技术方案:
本说明书提供一种多任务队列处理的方法,所述方法应用于图形处理器,所述图形处理器包括两个及以上的任务解析器,其中包括目标任务解析器;包括:
所述目标任务解析器获取至少两个任务队列;
在各任务队列中,选择目标任务队列;
在所述目标任务队列中确定当前待解析任务;
响应于所述当前待解析任务所依赖的任务不存在,则解析所述当前待解析任务;
响应于所述当前待解析任务所依赖的任务存在,则在各任务队列中重新选择目标任务队列。
可选地,在所述目标任务队列中确定当前待解析任务,具体包括:
读取存储的所述目标任务队列中已被解析的任务的地址;
根据所述已被解析任务的地址,在所述目标任务队列中确定当前待解析任务。
可选地,响应于所述当前待解析任务所依赖的任务不存在,则解析所述当前待解析任务,具体包括:
所述目标任务解析器查询存储于内存中的所述当前待解析任务所依赖的任务的标识;
当所述标识为预设标识值时,确定所述当前待解析任务所依赖的任务不存在,则解析所述当前待解析任务。
可选地,所述当前待解析任务的类型为内核程序类型或工作组类型。
可选地,在各任务队列中重新选择目标任务队列之前,所述方法还包括:
若所述当前待解析任务的类型为内核程序类型,则存储所述目标任务队列中当前所有已被解析内核程序的地址;
若所述当前待解析任务的类型为工作组类型,则存储所述目标任务队列中当前所有已被解析工作组的地址、当前所有已被解析工作组所在的内核程序的描述信息及当前所有已被解析工作组的工作组标识。
可选地,所述方法还包括:
若所述当前待解析任务的类型为工作组类型,则在所述当前待解析工作组所在的内核程序包含的所有工作组均解析完成的情况下,在各任务队列中重新选择目标任务队列。
可选地,所述方法还包括:
当连续解析的任务对应于同一所述目标任务队列,且连续解析的任务的数量达到预设解析数量时,在各任务队列中重新选择目标任务队列。
本说明书提供了一种多任务队列处理的装置,所述装置应用于图形处理器,所述图形处理器包括两个及以上的任务解析器,其中包括目标任务解析器;所述装置包括:
任务队列获取模块,用于所述目标任务解析器获取至少两个任务队列;
目标任务队列选择模块,用于在各任务队列中,选择目标任务队列;
待解析任务确定模块,用于在所述目标任务队列中确定当前待解析任务;
解析模块,用于响应于所述当前待解析任务所依赖的任务不存在,则解析所述当前待解析任务;
第一重新选择模块,用于响应于所述当前待解析任务所依赖的任务存在,则在各任务队列中重新选择目标任务队列。
可选地,所述待解析任务确定模块具体用于,读取存储的所述目标任务队列中已被解析的任务的地址;根据所述已被解析任务的地址,在所述目标任务队列中确定当前待解析任务。
可选地,所述解析模块具体用于,所述目标任务解析器查询存储于内存中的所述当前待解析任务所依赖的任务的标识;当所述标识为预设标识值时,确定所述当前待解析任务所依赖的任务不存在,则解析所述当前待解析任务。
可选地,所述当前待解析任务的类型为内核程序类型或工作组类型。
可选地,所述装置还包括:
地址存储模块,用于在各任务队列中重新选择目标任务队列之前,若所述当前待解析任务的类型为内核程序类型,则存储所述目标任务队列中当前所有已被解析内核程序的地址;若所述当前待解析任务的类型为工作组类型,则存储所述目标任务队列中当前所有已被解析工作组的地址、当前所有已被解析工作组所在的内核程序的描述信息及当前所有已被解析工作组的工作组标识。
可选地,所述装置还包括:
第二重新选择模块,用于若所述当前待解析任务的类型为工作组类型,则在所述当前待解析工作组所在的内核程序包含的所有工作组均解析完成的情况下,在各任务队列中重新选择目标任务队列。
可选地,所述装置还包括:
第三重新选择模块,用于当连续解析的任务对应于同一所述目标任务队列,且连续解析的任务的数量达到预设解析数量时,在各任务队列中重新选择目标任务队列。
本说明书提供了一种计算机可读存储介质,所述存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述多任务队列处理的方法。
本说明书提供了一种图形处理器,所述图形处理器包括任务接收器、两个及以上的任务解析器,其中包括目标任务解析器;
所述任务接收器,用于接收任务队列,并将所述任务队列发送至所述目标任务解析器;
所述目标任务解析器用于获取至少两个任务队列;在各任务队列中,选择目标任务队列;在所述目标任务队列中确定当前待解析任务;响应于所述当前待解析任务所依赖的任务不存在,则解析所述当前待解析任务;响应于所述当前待解析任务所依赖的任务存在,则在各任务队列中重新选择目标任务队列。
可选地,所述图形处理器还包括仲裁器及若干个指令处理器;所述目标任务解析器,还用于将所述若干个已被解析任务发送至所述仲裁器;所述仲裁器,用于接收所述目标任务解析器发送的所述若干个已被解析任务,并将所述若干个已被解析任务发送至所述指令处理器;所述指令处理器,用于接收所述仲裁器发送的所述若干个已被解析任务,并处理所述若干个已被解析任务。
本说明书采用的上述至少一个技术方案能够达到以下有益效果:
在本说明书提供的多任务队列处理的方法中,该方法应用于图形处理器,该图形处理器包括两个及以上的任务解析器,其中包括目标任务解析器,所述目标任务解析器获取至少两个任务队列;在各任务队列中,选择目标任务队列;在所述目标任务队列中确定当前待解析任务;响应于所述当前待解析任务所依赖的任务不存在,则解析所述当前待解析任务;响应于所述当前待解析任务所依赖的任务存在,则在各任务队列中重新选择目标任务队列。
从上述方法中可以看出,本方法通过多个任务解析器同时解析多个任务队列,提高任务队列的解析效率,并且,对于一个任务解析器来说,该任务解析器的待解析任务所依赖的任务存在时,直接解析另一个任务队列的任务,提高GPU的利用率。
附图说明
此处所说明的附图用来提供对本说明书的进一步理解,构成本说明书的一部分,本说明书的示意性实施例及其说明用于解释本说明书,并不构成对本说明书的不当限定。在附图中:
图1为本说明书提供的一种多任务队列处理的方法的流程示意图;
图2为本说明书提供的多个任务队列依赖关系的示意图;
图3为本说明书提供的任务队列整合结果的示意图;
图4为本说明书提供的一种GPU的内部示意图;
图5为本说明书提供的一种多任务队列处理的装置示意图;
图6为本说明书提供的对应于图1的电子设备示意图。
具体实施方式
为使本说明书的目的、技术方案和优点更加清楚,下面将结合本说明书具体实施例及相应的附图对本说明书技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本说明书一部分实施例,而不是全部的实施例。基于本说明书中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
以下结合附图,详细说明本说明书各实施例提供的技术方案。
图1为本说明书提供的一种多任务队列处理的方法的流程示意图,具体包括以下步骤:
S100:所述目标任务解析器获取至少两个任务队列。
由于需求多少的不同,GPU需要处理的任务队列的数量可能也不太相同。但通常对于需求较多时,任务队列也较多,但由于目前GPU无法并行处理多个任务队列,因此,需要将多个任务队列整合为一个任务队列,再处理整合后的任务队列中的任务。
图2为本说明书提供的多个任务队列依赖关系的示意图。
由于多个队列中的任务之间可能存在依赖关系,如图2所示,任务队列0中的任务D需要等待任务队列1中的任务E及任务队列2中的任务G执行完成后才能执行,而任务队列1中的E需要等待任务队列0中的任务A执行完成后才能执行。也就是说,任务D依赖于任务E及任务G,任务E依赖于任务A,除此之外,三个任务队列之间不存在其他依赖关系。
图3为本说明书提供的任务队列整合结果的示意图。
由于将这三个任务队列整合为一个任务队列,如图3所示,整合后的任务队列中会出现任务队列0~2原本不存在的任务之间的依赖关系。例如,任务E依赖于任务C,任务F依赖于任务E,任务G依赖于任务F。由于依赖关系的增加,执行该整合后的任务队列的时间增多,导致执行任务的效率也降低了。因此本说明书提供一种多任务队列处理的方法。本说明书的执行主体可以是用于整合任务队列的GPU,也可以是其他可用于整合任务队列的处理器或电子设备。为了便于说明,下面仅以GPU为执行主体,对本说明书提供的一种多任务队列处理的方法进行说明。
图4为本说明书提供的一种GPU的内部示意图。
在本说明书一个或多个实施例中,如图4所示,为了能够同时解析多个任务队列,提高任务解析效率,可在GPU中部署两个及以上的任务解析器,其中包括目标任务解析器,该目标任务解析器是指获取到任务队列的任务解析器,且获取至少两个任务队列,以便后续进行队列切换,各任务解析器用于并行解析任务队列。为了便于说明,本说明书仅以GPU包括两个任务解析器为例。在任务解析器解析任务队列的任务之前,需要先获取各任务队列,即针对任一任务解析器,该任务解析器获取各任务队列。
具体的,GPU中包括任务接收器,用于接收任务队列,并将任务队列发送至目标任务解析器。如图4所示,该任务接收器接收到4个任务队列,分别为任务队列0~3,该任务接收器将各任务队列发送至任务解析器。由于GPU仅包含两个任务解析器,任务队列的数量为4,为了平衡每个任务解析器解析各任务队列的时间,该任务接收器可以将各任务队列按照数量平均分配给每个任务解析器。例如,将任务队列0及将任务队列1分配给第一个任务解析器,将任务队列2及将任务队列3分配给第二个任务解析器。如图4所示,也可以将任务队列0~3轮流分配给这两个任务解析器,那么,第一个任务解析器包括的任务队列有任务队列0及任务队列2,第二个任务解析器包括的任务队列有任务队列1及任务队列3。当然,也可以将各任务队列均发送给同一个任务解析器,或者按照其他数量分配任务队列,本说明书对此不做限制。
该任务接收器将各任务队列发送给目标任务解析器后,该目标任务解析器接收各任务队列,任务接收器发送任务队列,并解析任务队列,得到若干个已被解析任务,将若干个已被解析任务发送至该仲裁器。
S102:在各任务队列中,选择目标任务队列。
目标任务解析器获取到至少两个任务队列,需要选择在获取的至少两个任务队列中选择一个任务队列,作为目标任务队列,以进行任务解析。
S104:在所述目标任务队列中确定当前待解析任务。
针对一个目标任务解析器,该目标解析器仅可同时解析一个任务,目标任务队列中可能包括多个待解析任务,需要在目标任务队列中确定当前待解析任务,以便后续解析任务。
具体的,由于该目标任务解析器在解析目标任务队列的任务时,需要存储该任务的地址,因此,在该目标任务队列中确定当前待解析任务时,可以读取存储的该目标任务队列中已被解析的任务的地址,根据该已被解析任务的地址,在该目标任务队列中确定当前待解析任务。其中,存储该任务地址的存储空间由该目标任务解析器在状态信息内存中获取,该任务地址可以是该任务在目标任务队列中的虚拟地址,例如,目标任务队列0中包括4个任务,这4个任务的虚拟地址分别为01、02、03、04。
若存储任务地址的存储空间中不存在该目标任务队列中任一任务的地址,则表征该任务解析器为首次解析该目标任务队列,则当前待解析任务为该目标任务队列中的第一个任务。例如,如图2所示,假使该任务解析器仅包括任务队列0,那么,当该任务解析器首次解析该任务队列0时,该任务解析器的当前待解析任务为该任务队列0中的第一个任务,即任务A。
需要说明的是,经过一段时间对任务队列中的任务的解析,存储空间存储的地址也会逐渐增多,若该存储空间的剩余空间不足以存储当前待解析任务的地址,则可利用外部存储空间存储当前待解析任务的地址,并标记该当前待解析任务,该标记表征该当前待解析任务的地址存储于外部存储空间。
S106:响应于所述当前待解析任务所依赖的任务不存在,则解析所述当前待解析任务。
在本说明书一个或多个实施例中,由于任务之间可能存在依赖关系,因此,在解析该当前任务之前需要判断该当前待解析任务所依赖的任务是否已被解析,若该当前待解析任务所依赖的任务未被解析,则无法解析该当前待解析任务。
具体的,该任务解析器可将解析完成的任务的标识发送至所有任务解析器均可访问的公共空间中,当判断该当前待解析任务所依赖的任务是否已被解析时,可访问该公共空间,该公共空间可以是内存。也就是说,目标任务解析器查询存储于内存中的当前待解析任务所依赖的任务的标识,当该标识为预设标识值时,确定该当前待解析任务所依赖的任务不存在,则解析该当前待解析任务。预设标识值可根据需要设置,例如,当该标识值为true时,则当前待解析任务所依赖的任务已被解析。
S108:响应于所述当前待解析任务所依赖的任务存在,则在各任务队列中重新选择目标任务队列。
若当前待解析任务所依赖的任务的标识不为预设标识,则说明当前待解析任务所依赖的任务未被解析,那么,可在各任务队列中重新选择目标任务队列,而非仅等待当前待解析任务所依赖的任务被解析。
基于图1所示的多任务队列处理的方法,本方法通过多个任务解析器同时解析多个任务队列,提高任务队列的解析效率,并且,对于一个任务解析器来说,该任务解析器不需要等待当前待解析任务所依赖的任务被解析后,再解析当前待解析任务,而是直接解析另一个任务队列的任务,提高GPU的利用率。例如,如图4所示,任务队列0及任务队列2在同一个任务解析器中,且该任务解析器的目标任务队列为任务队列0,当解析任务队列0中的任务时,该任务所依赖的任务未被解析,则在等待任务队列0中的任务所依赖的任务被解析完成的同时,将任务队列2作为目标任务队列,并解析任务队列2中的任务。
在步骤S106中解析了该当前待解析任务之后,如图4所示,该任务解析器会将已解析的任务以工作组的形式发送至仲裁器,该仲裁器接收目标任务解析器发送的该若干个已被解析任务后,同一时刻选取一个已被解析任务,且该已被解析任务为工作组类型,并将选取的工作组发送给指令处理器进行处理。指令处理器接收该仲裁器发送的该若干个已被解析任务,并处理该若干个已被解析任务。
如图4所示,若任务队列0中的任务与任务队列1~3中的任务均无依赖关系,则该任务解析器可一直解析任务队列0中的任务,但是若在任务队列0中的任务均被解析完成,那么在解析任务队列2中的任务时,一旦该任务队列2中的当前待解析任务所依赖的任务未被解析,则该任务解析器只能等待该任务队列2中的当前待解析任务所依赖的任务被解析完成,才能解析该当前待解析任务。因此,为了进一步提高任务队列的解析效率,可预设解析数量,当连续解析的任务对应于同一该目标任务队列,且连续解析的任务的数量达到预设解析数量时,在各任务队列中重新选择目标任务队列。例如,假使预设解析数量为3,若该任务解析器已经连续解析了该目标任务队列中的3个任务,则该任务解析器在各任务队列中重新选择目标任务队列,并解析重新选择的目标任务队列的任务。当然,也可以不设置解析数量,直至该目标任务队列中的所有任务均已被解析,再各任务队列中重新选择该目标任务队列,本说明书对此不做限制。
在本说明书一个或多个实施例中,各任务队列中的任务的类型包括内核程序类型或工作组类型,且内核程序(kernel)类型由若干个工作组构成。以下分两种情况对本说明书提供的多任务队列处理的方法进行详细描述。
情况一、当前待解析任务的类型为内核程序类型,则:
在步骤S106中解析了该当前待解析任务之后,存储该目标任务队列中该当前待解析内核程序的地址。
情况二、当前待解析任务的类型为工作组,则:
在步骤S106中解析了该当前待解析任务之后,存储该目标任务队列中该当前待解析工作组的地址、该当前待解析工作组所在的内核程序的描述信息及该当前待解析工作组的工作组标识。
在执行步骤S104时,可读取当前待解析工作组的地址、该当前待解析工作组所在的内核程序的描述信息、该当前待解析工作组的工作组标识,以在该目标任务队列中确定当前待解析任务。
在对当前待解析任务进行解析之前,可根据已存储的工作组的地址、工作组所在的内核程序的描述信息、工作组的工作组标识,判断已解析的任务中是否存在该当前待解析任务的依赖任务。
由于内核程序由若干个工作组构成,若该当前待解析任务的类型为工作组类型,则在该当前待解析工作组所在的内核程序包含的所有工作组均解析完成的情况下,在各任务队列中重新选择目标任务队列。
以上为本说明书的一个或多个实施例提供的多任务队列处理的方法,基于同样的思路,本说明书还提供了相应的多任务队列处理的装置,如图5所示。
图5本说明书提供的一种多任务队列处理的装置示意图,所述装置应用于图形处理器,所述图形处理器包括两个及以上的任务解析器,其中包括目标任务解析器;所述装置包括:
任务队列获取模块500,用于所述目标任务解析器获取至少两个任务队列;
目标任务队列选择模块502,用于在各任务队列中,选择目标任务队列;
待解析任务确定模块504,用于在所述目标任务队列中确定当前待解析任务;
解析模块506,用于响应于所述当前待解析任务所依赖的任务不存在,则解析所述当前待解析任务;
第一重新选择模块508,用于响应于所述当前待解析任务所依赖的任务存在,则在各任务队列中重新选择目标任务队列。
可选地,所述待解析任务确定模块504具体用于,读取存储的所述目标任务队列中已被解析的任务的地址;根据所述已被解析任务的地址,在所述目标任务队列中确定当前待解析任务。
可选地,所述解析模块506具体用于,所述目标任务解析器查询存储于内存中的所述当前待解析任务所依赖的任务的标识;当所述标识为预设标识值时,确定所述当前待解析任务所依赖的任务不存在,则解析所述当前待解析任务。
可选地,所述当前待解析任务的类型为内核程序类型或工作组类型。
可选地,所述装置还包括:
地址存储模块,用于在各任务队列中重新选择目标任务队列之前,若所述当前待解析任务的类型为内核程序类型,则存储所述目标任务队列中当前所有已被解析内核程序的地址;若所述当前待解析任务的类型为工作组类型,则存储所述目标任务队列中当前所有已被解析工作组的地址、当前所有已被解析工作组所在的内核程序的描述信息及当前所有已被解析工作组的工作组标识。
可选地,所述装置还包括:
第二重新选择模块,用于若所述当前待解析任务的类型为工作组类型,则在所述当前待解析工作组所在的内核程序包含的所有工作组均解析完成的情况下,在各任务队列中重新选择目标任务队列。
可选地,所述装置还包括:
第三重新选择模块,用于当连续解析的任务对应于同一所述目标任务队列,且连续解析的任务的数量达到预设解析数量时,在各任务队列中重新选择目标任务队列。
本说明书还提供了一种计算机可读存储介质,该存储介质存储有计算机程序,计算机程序可用于执行上述图1提供的多任务队列处理的方法。
本说明书提供了一种图形处理器,所述图形处理器包括任务接收器、两个及以上的任务解析器,其中包括目标任务解析器;
所述任务接收器,用于接收任务队列,并将所述任务队列发送至所述目标任务解析器;
所述目标任务解析器用于获取至少两个任务队列;在各任务队列中,选择目标任务队列;在所述目标任务队列中确定当前待解析任务;响应于所述当前待解析任务所依赖的任务不存在,则解析所述当前待解析任务;响应于所述当前待解析任务所依赖的任务存在,则在各任务队列中重新选择目标任务队列。
可选地,所述图形处理器还包括仲裁器及若干个指令处理器;所述目标任务解析器,还用于将所述若干个已被解析任务发送至所述仲裁器;所述仲裁器,用于接收所述目标任务解析器发送的所述若干个已被解析任务,并将所述若干个已被解析任务发送至所述指令处理器;所述指令处理器,用于接收所述仲裁器发送的所述若干个已被解析任务,并处理所述若干个已被解析任务。
本说明书还提供了图6所示的电子设备的结构示意图。如图6所示,在硬件层面,该无人驾驶设备包括处理器、内部总线、网络接口、内存以及非易失性存储器,当然还可能包括其他业务所需要的硬件。处理器从非易失性存储器中读取对应的计算机程序到内存中然后运行,以实现上述图1所述的多任务队列处理的方法。当然,除了软件实现方式之外,本说明书并不排除其他实现方式,比如逻辑器件抑或软硬件结合的方式等等,也就是说以下处理流程的执行主体并不限定于各个逻辑单元,也可以是硬件或逻辑器件。
在20世纪90年代,对于一个技术的改进可以很明显地区分是硬件上的改进(例如,对二极管、晶体管、开关等电路结构的改进)还是软件上的改进(对于方法流程的改进)。然而,随着技术的发展,当今的很多方法流程的改进已经可以视为硬件电路结构的直接改进。设计人员几乎都通过将改进的方法流程编程到硬件电路中来得到相应的硬件电路结构。因此,不能说一个方法流程的改进就不能用硬件实体模块来实现。例如,可编程逻辑器件(Programmable Logic Device, PLD)(例如现场可编程门阵列(Field Programmable GateArray,FPGA))就是这样一种集成电路,其逻辑功能由用户对器件编程来确定。由设计人员自行编程来把一个数字系统“集成”在一片PLD上,而不需要请芯片制造厂商来设计和制作专用的集成电路芯片。而且,如今,取代手工地制作集成电路芯片,这种编程也多半改用“逻辑编译器(logic compiler)”软件来实现,它与程序开发撰写时所用的软件编译器相类似,而要编译之前的原始代码也得用特定的编程语言来撰写,此称之为硬件描述语言(Hardware Description Language,HDL),而HDL也并非仅有一种,而是有许多种,如ABEL(Advanced Boolean Expression Language)、AHDL(Altera Hardware DescriptionLanguage)、Confluence、CUPL(Cornell University Programming Language)、HDCal、JHDL(Java Hardware Description Language)、Lava、Lola、MyHDL、PALASM、RHDL(RubyHardware Description Language)等,目前最普遍使用的是VHDL(Very-High-SpeedIntegrated Circuit Hardware Description Language)与Verilog。本领域技术人员也应该清楚,只需要将方法流程用上述几种硬件描述语言稍作逻辑编程并编程到集成电路中,就可以很容易得到实现该逻辑方法流程的硬件电路。
控制器可以按任何适当的方式实现,例如,控制器可以采取例如微处理器或处理器以及存储可由该(微)处理器执行的计算机可读程序代码(例如软件或固件)的计算机可读介质、逻辑门、开关、专用集成电路(Application Specific Integrated Circuit,ASIC)、可编程逻辑控制器和嵌入微控制器的形式,控制器的例子包括但不限于以下微控制器:ARC 625D、Atmel AT91SAM、Microchip PIC18F26K20 以及Silicone Labs C8051F320,存储器控制器还可以被实现为存储器的控制逻辑的一部分。本领域技术人员也知道,除了以纯计算机可读程序代码方式实现控制器以外,完全可以通过将方法步骤进行逻辑编程来使得控制器以逻辑门、开关、专用集成电路、可编程逻辑控制器和嵌入微控制器等的形式来实现相同功能。因此这种控制器可以被认为是一种硬件部件,而对其内包括的用于实现各种功能的装置也可以视为硬件部件内的结构。或者甚至,可以将用于实现各种功能的装置视为既可以是实现方法的软件模块又可以是硬件部件内的结构。
上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机。具体的,计算机例如可以为个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任何设备的组合。
为了描述的方便,描述以上装置时以功能分为各种单元分别描述。当然,在实施本说明书时可以把各单元的功能在同一个或多个软件和/或硬件中实现。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
本领域技术人员应明白,本说明书的实施例可提供为方法、系统或计算机程序产品。因此,本说明书可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本说明书可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本说明书可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本说明书,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上所述仅为本说明书的实施例而已,并不用于限制本说明书。对于本领域技术人员来说,本说明书可以有各种更改和变化。凡在本说明书的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。

Claims (11)

1.一种多任务队列处理的方法,其特征在于,所述方法应用于图形处理器,所述图形处理器包括两个及以上的任务解析器,其中包括目标任务解析器;所述方法包括:
所述目标任务解析器获取至少两个任务队列;
在各任务队列中,选择目标任务队列;
在所述目标任务队列中确定当前待解析任务;
响应于所述当前待解析任务所依赖的任务不存在,则解析所述当前待解析任务;
响应于所述当前待解析任务所依赖的任务存在,则在各任务队列中重新选择目标任务队列。
2.如权利要求1所述的方法,其特征在于,在所述目标任务队列中确定当前待解析任务,具体包括:
读取存储的所述目标任务队列中已被解析的任务的地址;
根据所述已被解析任务的地址,在所述目标任务队列中确定当前待解析任务。
3.如权利要求1所述的方法,其特征在于,响应于所述当前待解析任务所依赖的任务不存在,则解析所述当前待解析任务,具体包括:
所述目标任务解析器查询存储于内存中的所述当前待解析任务所依赖的任务的标识;
当所述标识为预设标识值时,确定所述当前待解析任务所依赖的任务不存在,则解析所述当前待解析任务。
4.如权利要求1所述的方法,其特征在于,所述当前待解析任务的类型为内核程序类型或工作组类型。
5.如权利要求4所述的方法,其特征在于,在各任务队列中重新选择目标任务队列之前,所述方法还包括:
若所述当前待解析任务的类型为内核程序类型,则存储所述目标任务队列中当前所有已被解析内核程序的地址;
若所述当前待解析任务的类型为工作组类型,则存储所述目标任务队列中当前所有已被解析工作组的地址、当前所有已被解析工作组所在的内核程序的描述信息及当前所有已被解析工作组的工作组标识。
6.如权利要求4所述的方法,其特征在于,所述方法还包括:
若所述当前待解析任务的类型为工作组类型,则在所述当前待解析工作组所在的内核程序包含的所有工作组均解析完成的情况下,在各任务队列中重新选择目标任务队列。
7.如权利要求1所述的方法,其特征在于,所述方法还包括:
当连续解析的任务对应于同一所述目标任务队列,且连续解析的任务的数量达到预设解析数量时,在各任务队列中重新选择目标任务队列。
8.一种多任务队列处理的装置,其特征在于,所述装置应用于图形处理器,所述图形处理器包括两个及以上的任务解析器,其中包括目标任务解析器;所述装置包括:
任务队列获取模块,用于所述目标任务解析器获取至少两个任务队列;
目标任务队列选择模块,用于在各任务队列中,选择目标任务队列;
待解析任务确定模块,用于在所述目标任务队列中确定当前待解析任务;
解析模块,用于响应于所述当前待解析任务所依赖的任务不存在,则解析所述当前待解析任务;
第一重新选择模块,用于响应于所述当前待解析任务所依赖的任务存在,则在各任务队列中重新选择目标任务队列。
9.一种计算机可读存储介质,其特征在于,所述存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述权利要求1~7任一项所述的方法。
10.一种图形处理器,其特征在于,所述图形处理器包括任务接收器、两个及以上的任务解析器,其中包括目标任务解析器;
所述任务接收器,用于接收任务队列,并将所述任务队列发送至所述目标任务解析器;
所述目标任务解析器用于获取至少两个任务队列;在各任务队列中,选择目标任务队列;在所述目标任务队列中确定当前待解析任务;响应于所述当前待解析任务所依赖的任务不存在,则解析所述当前待解析任务;响应于所述当前待解析任务所依赖的任务存在,则在各任务队列中重新选择目标任务队列。
11.如权利要求10所述的图形处理器,其特征在于,所述图形处理器还包括仲裁器及若干个指令处理器;
所述目标任务解析器,还用于将所述若干个已被解析任务发送至所述仲裁器;
所述仲裁器,用于接收所述目标任务解析器发送的所述若干个已被解析任务,并将所述若干个已被解析任务发送至所述指令处理器;
所述指令处理器,用于接收所述仲裁器发送的所述若干个已被解析任务,并处理所述若干个已被解析任务。
CN202311220675.2A 2023-09-20 2023-09-20 一种多任务队列处理的方法、装置、存储介质及电子设备 Pending CN116954954A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202311220675.2A CN116954954A (zh) 2023-09-20 2023-09-20 一种多任务队列处理的方法、装置、存储介质及电子设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202311220675.2A CN116954954A (zh) 2023-09-20 2023-09-20 一种多任务队列处理的方法、装置、存储介质及电子设备

Publications (1)

Publication Number Publication Date
CN116954954A true CN116954954A (zh) 2023-10-27

Family

ID=88453263

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202311220675.2A Pending CN116954954A (zh) 2023-09-20 2023-09-20 一种多任务队列处理的方法、装置、存储介质及电子设备

Country Status (1)

Country Link
CN (1) CN116954954A (zh)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110494848A (zh) * 2018-03-28 2019-11-22 深圳市大疆创新科技有限公司 任务处理方法、设备及机器可读存储介质
US20200089528A1 (en) * 2018-09-18 2020-03-19 Advanced Micro Devices, Inc. Hardware accelerated dynamic work creation on a graphics processing unit
CN111708639A (zh) * 2020-06-22 2020-09-25 中国科学技术大学 任务调度系统及方法、存储介质及电子设备
CN116149810A (zh) * 2018-10-10 2023-05-23 上海寒武纪信息科技有限公司 任务调度装置及任务调度方法
CN116483584A (zh) * 2023-05-26 2023-07-25 摩尔线程智能科技(北京)有限责任公司 Gpu的任务处理方法、装置、电子设备和存储介质

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110494848A (zh) * 2018-03-28 2019-11-22 深圳市大疆创新科技有限公司 任务处理方法、设备及机器可读存储介质
US20200089528A1 (en) * 2018-09-18 2020-03-19 Advanced Micro Devices, Inc. Hardware accelerated dynamic work creation on a graphics processing unit
CN116149810A (zh) * 2018-10-10 2023-05-23 上海寒武纪信息科技有限公司 任务调度装置及任务调度方法
CN111708639A (zh) * 2020-06-22 2020-09-25 中国科学技术大学 任务调度系统及方法、存储介质及电子设备
CN116483584A (zh) * 2023-05-26 2023-07-25 摩尔线程智能科技(北京)有限责任公司 Gpu的任务处理方法、装置、电子设备和存储介质

Similar Documents

Publication Publication Date Title
CN111756550B (zh) 一种区块链共识方法及装置
CN111885082B (zh) 一种web应用包处理方法、装置及设备
CN116167463B (zh) 一种面向智能计算的分布式模型训练容器调度方法及装置
CN117312394B (zh) 一种数据访问方法、装置、存储介质及电子设备
CN116185532B (zh) 一种任务执行系统、方法、存储介质及电子设备
CN116225669A (zh) 一种任务执行方法、装置、存储介质及电子设备
CN116306856A (zh) 一种基于搜索的深度学习模型部署方法及装置
CN111241040B (zh) 信息获取方法、装置、电子设备及计算机存储介质
CN116932175B (zh) 一种基于序列生成的异构芯片任务调度方法以及装置
CN116822657B (zh) 一种模型训练加速的方法、装置、存储介质及电子设备
CN116347623B (zh) 一种任务调度的方法、装置、存储介质及电子设备
CN110083602B (zh) 一种基于hive表的数据存储及数据处理的方法及装置
CN111538667A (zh) 一种页面测试的方法及装置
CN116384505A (zh) 一种数据处理的方法、装置、存储介质及电子设备
CN116954954A (zh) 一种多任务队列处理的方法、装置、存储介质及电子设备
CN110275782B (zh) 数据处理方法及装置
CN116501927A (zh) 一种图数据处理系统、方法、设备及存储介质
CN110874322B (zh) 一种用于应用程序的测试方法及测试服务器
CN117041980B (zh) 一种网元管理方法、装置、存储介质及电子设备
CN110704733B (zh) 一种发送数据的方法及装置
CN115827310B (zh) 一种信息校验的方法、装置、存储介质及电子设备
CN111966479B (zh) 业务处理、风险识别业务处理方法、装置及电子设备
CN116521713B (zh) 一种数据查询的方法、装置、设备及存储介质
CN116541314A (zh) 基于系统页表的地址映射方法、装置和存储介质
CN116319774A (zh) 一种请求的分配方法、装置、设备及存储介质

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