CN117539598A - 任务处理方法、装置、电子设备及存储介质 - Google Patents
任务处理方法、装置、电子设备及存储介质 Download PDFInfo
- Publication number
- CN117539598A CN117539598A CN202311532323.0A CN202311532323A CN117539598A CN 117539598 A CN117539598 A CN 117539598A CN 202311532323 A CN202311532323 A CN 202311532323A CN 117539598 A CN117539598 A CN 117539598A
- Authority
- CN
- China
- Prior art keywords
- task
- target
- core
- execution queue
- execution
- 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
Links
- 238000003672 processing method Methods 0.000 title claims abstract description 18
- 230000001133 acceleration Effects 0.000 claims abstract description 92
- 230000000903 blocking effect Effects 0.000 claims abstract description 40
- 238000012545 processing Methods 0.000 claims description 45
- 238000000034 method Methods 0.000 claims description 24
- 238000004590 computer program Methods 0.000 claims description 11
- 238000001514 detection method Methods 0.000 claims description 6
- 230000004044 response Effects 0.000 claims description 4
- 239000000306 component Substances 0.000 description 14
- 238000010586 diagram Methods 0.000 description 12
- 238000004891 communication Methods 0.000 description 9
- 238000007781 pre-processing Methods 0.000 description 8
- 238000004364 calculation method Methods 0.000 description 6
- 230000005540 biological transmission Effects 0.000 description 5
- 230000008569 process Effects 0.000 description 5
- 230000006870 function Effects 0.000 description 4
- 238000007726 management method Methods 0.000 description 4
- 230000007246 mechanism Effects 0.000 description 4
- 230000003287 optical effect Effects 0.000 description 4
- 238000012805 post-processing Methods 0.000 description 4
- 238000012546 transfer Methods 0.000 description 3
- 230000002618 waking effect Effects 0.000 description 3
- 238000006243 chemical reaction Methods 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000006872 improvement Effects 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 238000013468 resource allocation Methods 0.000 description 2
- 239000002699 waste material Substances 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 1
- 238000013473 artificial intelligence Methods 0.000 description 1
- 230000010267 cellular communication Effects 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 239000008358 core component Substances 0.000 description 1
- 238000007405 data analysis Methods 0.000 description 1
- 230000007812 deficiency Effects 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000001953 sensory effect Effects 0.000 description 1
- 238000000926 separation method Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
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
- 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/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
-
- Y—GENERAL 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
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE 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/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Advance Control (AREA)
Abstract
本申请公开一种任务处理方法、装置、电子设备及存储介质,包括:在检测任务执行队列和多个核执行队列中的目标核执行队列为非阻塞状态时,依次向任务执行队列与目标核执行队列提交目标任务;通过多个加速核中的目标加速核,获取目标任务并返回目标任务的任务执行结果;通过主计算设备,根据目标任务的任务执行结果,将目标任务分别从目标核执行队列和任务执行队列中移除。借此,本申请通过引入任务执行队列以及核执行队列,执行主计算设备中各待处理任务的任务调度管理,可实现多核加速卡中各加速核之间的协同运行控制,使得每个加速核均能得到充分利用,提升多核加速卡的任务执行效率。
Description
技术领域
本申请涉及大数据处理技术领域,尤其涉及一种任务处理方法、装置、电子设备及存储介质。
背景技术
DPU加速卡是一种低功耗、低成本的专用处理单元,可用于提高CPU的处理效率,释放CPU算力,同时为CPU和GPU提供基础数据服务。
目前,用于处理大数据的单核加速卡(即DPU加速卡中仅包含一个加速核),虽具有较高的吞吐率,但相比主计算设备可产生的并发任务请求数,仅包括一个加速核的单核加速卡的任务并行度仍相对较小。基于此,业界发展出了包含多个加速核的多核加速卡,以提高任务的并行执行数量。
然而,在实际应用过程中,由于缺乏配套的任务调度管理机制,限制了多核加速卡对于待处理任务的并发请求数量。此外,由于加速卡中的DDR资源有限,容易导致数据传输操作的阻塞执行,使得多核加速卡中部分加速核的使用率不足,造成了资源浪费。
发明内容
有鉴于此,本申请实施例提供一种任务处理方案,可提升多核加速卡的任务执行效率。
根据本申请实施例的第一方面,提供了一种任务处理方法,应用于主计算设备,所述主计算设备耦接多核加速卡,所述多核加速卡包括多个加速核,所述主计算设备包括任务执行队列、和与所述多核加速卡中的各加速核对应的多个核执行队列,所述方法包括:通过所述主计算设备,在检测所述任务执行队列和所述多个核执行队列中对应于目标任务的目标核执行队列为非阻塞状态时,依次向所述任务执行队列与所述目标核执行队列提交所述目标任务;通过所述多个加速核中对应于所述目标核执行队列的目标加速核,从所述目标核执行队列获取所述目标任务,并返回所述目标任务的任务执行结果;通过所述主计算设备,根据所述目标任务的任务执行结果,将所述目标任务分别从所述目标核执行队列和所述任务执行队列中移除。
根据本申请实施例的第二方面,提供了一种任务处理装置,应用于主计算设备,所述主计算设备耦接多核加速卡,所述多核加速卡包括多个加速核,所述主计算设备包括任务执行队列、和与所述多核加速卡中的各加速核对应的多个核执行队列,所述装置包括:任务提交模块,用于通过所述主计算设备,在检测所述任务执行队列和所述多个核执行队列中对应于目标任务的目标核执行队列为非阻塞状态时,依次向所述任务执行队列与所述目标核执行队列提交所述目标任务;任务执行模块,用于通过所述多个加速核中对应于所述目标核执行队列的目标加速核,从所述目标核执行队列获取所述目标任务,并返回所述目标任务的任务执行结果;任务移除模块,用于通过所述主计算设备,根据所述目标任务的任务执行结果,将所述目标任务分别从所述目标核执行队列和所述任务执行队列中移除。
根据本申请实施例的第三方面,提供了一种电子设备,包括:存储器和处理器,其中,所述存储器中存储有计算机程序,当所述计算机程序被所述处理器执行时,实现如第一方面所述的任务处理方法。
根据本申请实施例的第四方面,提供了一种计算机存储介质,所述计算机存储介质存储有计算机程序代码,当所述计算机程序代码被处理器运行时,使处理器执行如第一方面所述的任务处理方法。
综上所述,本申请各方面提供的任务处理方案,通过在主计算设备中设置任务执行队列以及对应于各加速核的各核执行队列,实现了主计算设备中各待处理任务的合理分配,避免因数据传输阻塞而导致多核加速卡中部分加速核被闲置的异常,提高多核加速卡的任务并行执行数量,并提升多核加速卡的任务执行效率。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请实施例中记载的一些实施例,对于本领域普通技术人员来讲,还可以根据这些附图获得其他的附图。
图1为现有技术中多核加速卡执行多线程任务的结构示意图。
图2为实施本申请各实施例的任务处理方法或装置的系统架构示意图。
图3为本申请多核加速卡执行多线程任务的结构示意图。
图4为本申请示例性实施例的任务处理方法的处理流程图。
图5为主计算设备针对算子任务的处理时序图。
图6为多核加速卡针对算子任务的处理时序图。
图7为本申请示例性实施例的任务处理装置的结构框图。
图8为本申请示例性实施例的电子设备的结构框图。
具体实施方式
为了使本领域的人员更好地理解本申请实施例中的技术方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本申请实施例一部分实施例,而不是全部的实施例。基于本申请实施例中的实施例,本领域普通技术人员所获得的所有其他实施例,都应当属于本申请实施例保护的范围。
随着技术的发展,磁盘读写、网络带宽性能的不断提升,大数据处理领域的性能瓶颈已转移到算力上,现有的CPU设计架构,已无法提供足够的算力以支撑现有的大数据业务规模,因此提供更强算力的解决方案及技术架构是亟待解决的技术问题。
DPU加速卡是一种低功耗、低成本的专用处理单元,可用于提高CPU的处理效率,释放CPU算力,同时为CPU和GPU提供基础数据服务。
当借由DPU加速卡构成的异构系统,执行主计算设备中的待处理任务时,执行任务所需的系统算力从主计算设备的CPU转移到了加速卡,因此,可提高任务的可并发提交数量。此外,通过增加加速卡中的加速核数量,可实现多核多线程并行执行多个任务,从而进一步提升任务的可并发提交数量。
然而,相关技术中由于缺乏配套的任务调度管理机制,当主计算设备向多核加速卡提交的多个并行任务,是由加速卡中的同一个加速核负责执行时,容易出现以下问题:
在主计算设备同时提交多个并行执行的任务时,会占用加速卡中大量的DDR资源,DDR资源的不足会限制异构算子任务的并发请求数量,降低加速卡对于异构算子任务的并发度。此外,当加速卡中的DDR资源不足时,也会导致传输数据的阻塞执行,容易产生加速卡中部分加速核被闲置的情况,造成各加速核之间使用率分配不均的问题。
参考图1所示示例,当主计算设备110向多核加速卡120提交了多个并行执行任务(例如,异构算子任务A1至An)时,由于占用了存储区124(例如,DDR存储器)的全部资源,会造成主计算设备110与加速卡110之间的传输通道(例如,PCIe传输通道)的阻塞。此外,由于异构算子任务A1至An均由加速核122A负责执行,也会造成加速核122B无法正常接收任务数据而处于闲置状态。
因此,目前针对多核加速卡120所采用的任务调度管理机制,不仅限制了异构算子任务的并发请求数量,也容易导致各加速核之间资源分配不均的问题,形成了资源浪费。有鉴于此,本申请各实施例提供一种适用于多核加速卡的任务处理方案,可以合理分配多核加速卡中每个加速核的资源使用率,提高多核加速卡的任务并行执行数量。
以下将结合各附图详细描述本申请各实施例的具体实现。
图2为实施本各实施例的任务处理方法或装置的架构示意图。如图2所示,系统架构200包括主计算设备210和多核加速卡220。
主计算设备210为执行各算子任务的主设备,多核加速卡220是插接于主计算设备210上的附属设备,可用于提高主计算设备210在某一方面的处理速度。在本公开实施例中,多核加速卡220可用于提高主计算设备210中各待处理任务的处理速度。
在本申请的各实施例中,待处理任务可包括但不限于算子任务。其中,算子任务中的算子是指一种用于执行特定操作的符号、函数或方法,可以用于各种计算任务,如数学运算、逻辑判断、位操作、字符串处理等。本申请是指通过加速卡(异构系统)执行大数据处理的算子。
主计算设备210可以是客户端或服务器。在一些实施例中,主计算设备210可以体现为桌面计算机、膝上型计算机、手机、PDA、专用终端,也可以体现为由若干终端组成的集群。在另一些实施例中,主计算设备210也可以是一台终端上划分出来的一部分,如虚拟机。多核加速卡220可以体现为附属设备(如插接在卡槽上的卡),也可以体现为与主计算设备210通过接口连接的另一台独立的设备。
在一些实施例中,主计算设备210和多核加速卡220之间可通过PCIe接口通信连接,多核加速卡220可通过PCIe插槽插置在主计算设备210上,以供主计算设备210和多核加速卡220之间通过PCIe传输数据。
在本公开的各实施例中,主计算设备210可执行大数据分析任务,当分析任务的一部分涉及大量的算子任务时,可将与算子任务相关的数据信息传输到多核加速卡220,由多核加速卡220执行各算子任务的处理,并将算子任务的处理结果返回给主计算设备210,从而减轻主计算设备210执行算子任务的算力占用。
如图2所示,主计算设备210包括处理器(CPU)212和内存214。处理器212为执行主计算设备210的任务的核心部件。内存214是存储主计算设备210的任务的任务数据、以及主计算设备210执行任务产生的中间结果和最终结果的部件。其中,与算子任务相关的输入数据信息也存储在内存214中。在执行算子任务时,处理器212可将与算子任务相关的输入数据从内存214中调出并发送到多核加速卡220。
多核加速卡220包括多个加速核222A、222B、222C和存储区224。各加速核222A、222B、222C是多核加速卡120中用于执行不同类别任务的处理单元。例如,加速核222A负责执行数学运算任务,加速核222B负责执行逻辑判断任务,加速核222C负责执行字符串处理任务等。由于加速核222A、222B、222C被设计为专门执行算子任务,因此,能够提高算子任务的处理效率。存储区224,例如为DDR存储器,是多核加速卡220中用于存储与算子任务相关的数据的专门区域。多核加速卡220在执行算子任务时,无需调用主计算设备210中的处理器212和内存214,因此,可避免反复占用主计算设备210和多核加速卡220之间的传输通道,减少传输开销。再者,由于多核加速卡220中各加速核222A、222B、222C与存储区224之间的分离设计机制,使得多核加速卡220在执行算子任务时,通过各加速核222A、222B、222C与存储区224之间的协同配合,以达到更高的算子任务处理效率。
如图3所示,主计算设备210中包括有任务执行队列、和与多核加速卡220中的各加速核对应的多个核执行队列。例如,主计算设备210中的核执行队列A与多核加速卡220中的加速核222A相互对应,主计算设备210中的核执行队列B与多核加速卡220中的加速核222B相互对应。利用主计算设备210中的任务执行队列与各核执行队列,对主计算设备210中的各算子任务(参考算子任务集212中的算子任务1、算子任务2、算子任务3等)执行调度管理,以提高算子任务的并发请求数量,并优化多核加速卡220中各加速核222A、222B、222C的资源分配率,充分提高每个加速核222A、222B、222C的使用率。
图4示出了本公开示例性实施例的任务处理方法的流程图。如图所示,本实施例的方法400主要包括以下步骤:
步骤402、通过主计算设备,在检测任务执行队列和多个核执行队列中对应于目标任务的目标核执行队列为非阻塞状态时,依次向任务执行队列与目标核执行队列提交所述目标任务。
在一些实施例中,主计算设备210可获取全部的待处理任务,并根据各待处理任务的请求顺序或者执行优先级,依次将各待处理任务中的一个确定为目标任务。
在一些实施例中,待处理任务包括各种类型的算子任务,包括但不限于:数学运算任务、逻辑判断任务、位操作任务、字符串处理任务等。
在一些实施例中,可依次将各待处理任务中的一个确定为目标任务,在检测任务执行队列为非阻塞状态时,向任务执行队列提交目标任务,根据目标任务的任务类型,从各核执行队列中确定目标任务的目标核执行队列,并在检测目标核执行队列为非阻塞状态时,向目标核执行队列提交目标任务,并重新执行依次将各待处理任务中的一个确定为目标任务的步骤,直至所有待处理任务均执行完成。
示例性地,可向任务执行队列执行enqueue操作,以将各目标任务加入任务执行队列,直至检测任务执行队列处于阻塞状态(参考图5的步骤502“向任务执行队列提交算子任务”)。同理,可向核执行队列执行enqueue操作,以将各目标任务加入对应的各核执行队列,直至检测对应的核执行队列处于阻塞状态(参考图5的步骤506“向核执行队列提交算子任务”)。
在一些实施例中,对于任务执行队列与目标核执行队列中的任意一个当前执行队列,可检测当前执行队列的运行状态,当检测当前执行队列处于阻塞状态时,暂停向当前执行队列提交目标任务的操作,直至检测当前执行队列由阻塞状态切换为非阻塞状态时,唤醒向当前执行队列提交目标任务的操作。
在本实施例中,可当检测当前执行队列中各待处理任务的当前并行执行数量与预设并行执行数量相等时,得到当前执行队列处于阻塞状态的检测结果,当检测当前执行队列中各待处理任务的当前并行执行数量小于预设并行执行数量时,得到当前执行队列处于非阻塞状态的检测结果。
具体地,当前执行队列具有一个固定的预设并行执行数量,当检测当前执行队列中各待处理任务的当前并行执行数量与预设并行执行数量相等时,表示当前执行队列已满,在此情况下,向当前执行队列添加待处理任务(例如,算子任务)的操作会阻塞,直至检测出当前执行队列中各待处理任务的当前并行执行数量小于预设并行执行数量时,表示当前任务队列中有空闲位置,则唤醒向当前执行队列添加待处理任务的操作。
在本实施例中,可根据各待处理任务的任务类别,确定各个核执行队列的分配比重,并根据任务执行队列的预设并行执行数量、各个核执行队列的分配比重,设定各核执行队列的预设并行执行数量。
如图3所示,针对算子任务集212中各算子任务的任务类别进行统计,确定算子任务集212中有50%的算子任务是由加速核222A负责执行,有30%的算子任务是由加速核222B负责执行。因此,在任务执行队列的预设并行执行数量为8个的情况下,可将核执行队列A的预设并行执行数量设定为5个,将核执行队列B的预设并行执行数量设定为3个,避免任务执行队列中的所有算子任务均由加速核222A执行,导致加速核222B处于闲置的情况,确保多核加速卡中的每个加速核222A、222B均能得到使用,提升多核加速卡220的任务并行执行数量。
在一些实施例中,在当前执行队列为空时,由于队列中不存在待处理任务,因此,从当前执行队列获取待处理任务(例如,算子任务)的操作会阻塞,直至检测出当前执行队列中存在待处理任务。
在一些实施例中,在将目标任务提交给任务执行队列后,主计算设备210可向多核加速卡220的存储区224(DDR)请求目标任务的任务缓存空间。
具体地,在将目标任务提交给任务执行队列后,主计算设备210可执行目标任务的预处理操作。示例性地,在目标任务为算子任务的情况下,预处理操作通常包括算子任务的输入数据处理,控制参数转换,以及向存储区224申请用于执行算子任务的内存空间等操作(参考图5的步骤504“算子任务预处理”)。
步骤404、通过多个加速核中对应于目标核执行队列的目标加速核,获取目标核执行队列中的目标任务,并返回目标任务的任务执行结果。
参考图3,可从主计算设备210的核执行队列A中获取算子任务1的任务数据(例如,待处理数据、处理规则数据),并存储于储存区224中对应于算子任务1的任务缓存空间(例如,任务缓存空间S1)中,通过加速核222A从储存区224的任务缓存空间S1,获取算子任务1的待处理数据和处理规则数据,基于处理规则数据对待处理数据执行处理,并将得到算子任务1的任务执行结果,存储在储存区224的任务缓存空间S1中,再由多核加速卡220向主计算设备210返回任务缓存空间S1中的任务执行结果(参考图5的步骤508“执行算子任务”)。
步骤406、通过主计算设备,根据目标任务的任务执行结果,将目标任务分别从目标核执行队列和任务执行队列中移除。
在一些实施例中,在主计算设备210从多核加速卡220获取目标任务的任务执行结果后,可首先将目标任务从目标核执行队列中移除,再将目标任务从任务执行队列中移除。
示例性地,主计算设备210可响应于目标任务的任务执行结果的获取操作,将目标任务从目标核执行队列中移除,并更新目标核对执行队列中各待处理任务的当前并行执行数量(参考图5的步骤510“从核执行队列移除算子任务”)。响应于目标任务从目标核执行队列中的移除操作,将目标任务从任务执行队列中移除,并更新任务执行队列中各待处理任务的当前并行执行数量(参考图5的步骤512“从任务执行队列移除算子任务”)。
在一些实施例中,可在将目标任务分别从目标核执行队列和任务执行队列中移除后,释放存储区224中的目标任务的任务缓存空间S1。
具体地,在将目标任务分别从核执行队列与任务执行队列中移除后,主计算设备210可执行目标任务的后处理操作。示例性地,后处理操作通常包括:目标任务的输出数据(即任务执行结果)的逻辑处理,以及释放存储区224中对应于目标任务的任务缓存空间S1等操作(参考图5的步骤514“算子任务后处理”)。
以下将结合图5所示的处理时序图,描述本实施例任务处理方法的执行顺序:
在算子任务执行入口,可获取各算子任务的全局任务计数。
在步骤502,向“任务执行队列”执行enqueue操作,以将各算子任务提交至“任务执行队列”。其中,当“任务执行队列”的任务并发请求数超过队列长度(即,任务执行队列中的算子任务的当前并行执行数量超过预设并行执行数量)时,执行“任务执行队列”的算子任务并发数量控制操作,向“任务执行队列”提交算子任务的操作将阻塞,直至“任务执行队列”中的至少一个算子任务执行返回。
在步骤504,主计算设备210执行算子任务预处理,包括但不限于:算子任务的任务数据输入、控制参数转换、向多核加速卡220的存储区224请求用于执行算子任务的任务缓存空间等。其中,在本申请中,由于算子任务的内存资源在加速核执行算子任务的过程中申请和释放,实现了算子任务资源的控制申请和尽快释放,以允许针对更多的算子任务执行预处理,提升算子任务在主计算设备(CPU)中的并行执行数量。
步骤506,向“核执行队列”执行enqueue操作,以将各算子任务提交至“核执行队列”。其中,当“核执行队列”的任务并发请求数超过队列长度(即,核执行队列中的算子任务的当前并行执行数量超过预设并行执行数量)时,执行“核执行队列”的加速核并行数量控制操作,向“核执行队列”提交算子任务的操作将阻塞,直至“核执行队列”中的至少一个算子任务执行返回。
步骤508,加速核执行算子任务,以将预处理步骤(即步骤504)所处理的任务数据,以消息命令方式提交加速卡命令队列,并阻塞至获取到加速核返回的任务执行结果。
参考图6,其示出了通过多核加速卡中的加速核,执行算子任务的处理时序:
在初始化存储区224中用于执行算子任务的内存资源后,通过向“加速卡命令队列”提交“非阻塞请求,传输算子任务的任务数据”的消息(参考步骤602),向多核加速卡220发出异步传输任务数据的指令;通过向“加速卡命令队列”提交“非阻塞请求,执行加速核”的消息(参考步骤604),向多核加速卡220发出异步执行算子任务的指令;通过向“加速卡命令队列”提交“非阻塞请求,获取输出参数数据”的消息(参考步骤606)以及“非阻塞请求,等待输出参数完成”的消息(参考步骤608),向多核加速卡220发出异步返回任务参数的指令;通过向“加速卡命令队列”提交“阻塞请求,等待加速核完成”的消息(参考步骤610),以进入阻塞等待状态,直至获取多核加速卡220异步返回的任务参数;通过向“加速卡命令队列”提交“阻塞请求,传输任务执行结果”的消息(参考步骤612),向多核加速卡220发出异步传输任务执行结果的指令,并进入阻塞等待状态,直至从多核加速卡220获取算子任务的任务执行结果。
步骤510、在主计算设备210获取多核加速卡220返回的算子任务的任务执行结果后,“核执行队列”通过调用dequeue方法以将算子任务从“核执行队列”中移除,并更新“核执行队列”的全局任务计数。
步骤512、“任务执行队列”调用dequeue方法,将算子任务从“任务执行队列”中移除,并更新“任务执行队列”的全局任务计数。
步骤514、执行算子任务的后处理操作,包括算子任务的任务执行结果的逻辑处理,以及释放存储区224中对应于算子任务的任务缓存空间。
综上所述,本实施例提供的任务处理方法,通过在主计算设备引入任务执行队列与核执行队列,以将不同线程中执行的待处理任务(算子任务)按照子任务流程执行阻塞控制,可实现多个加速核之间的协同控制,使得多核加速卡中的每个加速核均能得到充分利用,提升多核加速卡的任务并行执行数量。
具体地,通过任务执行队列,阻塞待处理任务(算子任务)进行预处理,可令被阻塞在预处理之前的待处理任务,拥有更少的计算资源消耗,延迟向多核加速卡申请内存资源(DDR资源)以及加速核的计算资源,从而优化待处理任务的并发请求数量。
再者,通过为多核加速卡中的每个加速核配置相应的核执行队列,可减少向多核加速卡中同一加速核提交的并行任务数量,避免在高负载运行状态下,由于向单一加速核提交大量任务,导致多核加速卡中的全部DDR资源被占用,并阻塞其它加速核无法得到有效利用的问题,优化了多核加速卡中各加速核的并行效率。
此外,基于待处理任务(算子任务)的并发请求数量的增加,以及多个加速核并行效率的提升,还可整体优化多核加速卡在高负载运行状态下的有效算力。
图7为本申请示例性实施例的任务处理装置700的结构框图。如图所示,本实施例的任务处理装置700,可应用于主计算设备210,主计算设备210耦接多核加速卡220,多核加速卡220包括多个加速核222A、222B、222C,主计算设备210包括任务执行队列、和与多核加速卡220中的各加速核222A、222B、222C对应的多个核执行队列(参考图2和图3),任务处理装置700包括:
任务提交模块702,用于通过所述主计算设备,在检测所述任务执行队列和所述多个核执行队列中对应于目标任务的目标核执行队列为非阻塞状态时,依次向所述任务执行队列与所述目标核执行队列提交所述目标任务;
任务执行模块704,用于通过所述多个加速核中对应于所述目标核执行队列的目标加速核,从所述目标核执行队列获取所述目标任务,并返回所述目标任务的任务执行结果;
任务移除模块706,用于通过所述主计算设备,根据所述目标任务的任务执行结果,将所述目标任务分别从所述目标核执行队列和所述任务执行队列中移除。
可选地,任务提交模块702还用于:确定各待处理任务中的目标任务;在检测所述任务执行队列为非阻塞状态时,向所述任务执行队列提交所述目标任务;根据所述目标任务的任务类型,从各核执行队列中确定所述目标任务的所述目标核执行队列,并在检测所述目标核执行队列为非阻塞状态时,向所述目标核执行队列提交所述目标任务;返回所述确定各待处理任务中的目标任务的步骤,直至所有待处理任务均执行完成。
可选地,任务提交模块702还用于:根据各待处理任务的请求顺序或执行优先级,依次将各待处理任务中的一个确定为所述目标任务。
可选地,任务提交模块702还用于:对于所述任务执行队列与所述目标核执行队列中的任意一个当前执行队列,检测所述当前执行队列的运行状态,当检测所述当前执行队列处于阻塞状态时,暂停向所述当前执行队列提交所述目标任务的操作,直至检测所述当前执行队列由所述阻塞状态切换为所述非阻塞状态时,唤醒向所述当前执行队列提交所述目标任务的操作;其中,当检测所述当前执行队列中各待处理任务的当前并行执行数量与预设并行执行数量相等时,得到所述当前执行队列处于所述阻塞状态的检测结果,当检测所述当前执行队列中各待处理任务的当前并行执行数量小于所述预设并行执行数量时,得到所述当前执行队列处于所述非阻塞状态的检测结果。
可选地,任务移除模块706还用于:响应于所述目标任务的任务执行结果的获取操作,将所述目标任务从所述目标核执行队列中移除,并更新所述目标核对执行队列中各待处理任务的当前并行执行数量;响应于所述目标任务从所述目标核执行队列中的移除操作,将所述目标任务从所述任务执行队列中移除,并更新所述任务执行队列中各待处理任务的当前并行执行数量。
可选地,所述多核加速卡还包括存储区。
可选地,任务提交模块702还用于:在将所述目标任务提交给所述任务执行队列后,向所述存储区请求所述目标任务的任务缓存空间。
可选地,任务移除模块706还用于:在将所述目标任务分别从所述目标核执行队列和所述任务执行队列中移除后,释放所述存储区中对应于所述目标任务的任务缓存空间。
本申请实施例还提供一种计算机存储介质,所述计算机存储介质存储有计算机程序代码,当所述计算机程序代码被处理器运行时,使处理器执行根据上述各实施例所述的任务处理方法。
本申请示例性实施例提供一种电子设备,包括:至少一个处理器;以及与至少一个处理器通信连接的存储器。所述存储器存储有能够被所述至少一个处理器执行的计算机程序,所述计算机程序在被所述至少一个处理器执行时用于使所述电子设备执行根据本申请各示例性实施例所述的任务处理方法。
请参考图8,现将描述可以作为本申请的服务端或客户端的电子设备800的结构框图,其是可以应用于本申请的各方面的硬件设备的示例。电子设备旨在表示各种形式的数字电子的计算机设备,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务端、刀片式服务端、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本申请的实现。
如图8所示,电子设备800包括计算单元801,其可以根据存储在只读存储器(ROM)802中的计算机程序或者从存储单元808加载到随机访问存储器(RAM)803中的计算机程序,来执行各种适当的动作和处理。在RAM 803中,还可存储设备800操作所需的各种程序和数据。计算单元801、ROM 802以及RAM 803通过总线804彼此相连。输入/输出(I/O)接口805也连接至总线804。
电子设备800中的多个部件连接至I/O接口805,包括:输入单元806、输出单元807、存储单元808以及通信单元809。输入单元806可以是能向电子设备800输入信息的任何类型的设备,输入单元806可以接收输入的数字或字符信息,以及产生与电子设备的用户设置和/或功能控制有关的键信号输入。输出单元807可以是能呈现信息的任何类型的设备,并且可以包括但不限于显示器、扬声器、视频/音频输出终端、振动器和/或打印机。存储单元808可以包括但不限于磁盘、光盘。通信单元809允许电子设备800通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据,并且可以包括但不限于调制解调器、网卡、红外通信设备、无线通信收发机和/或芯片组,例如蓝牙TM设备、WiFi设备、WiMax设备、蜂窝通信设备和/或类似物。
计算单元801可以是各种具有处理和计算能力的通用和/或专用处理组件。计算单元801的一些示例包括但不限于中央处理单元(CPU)、图形处理单元(GPU)、各种专用的人工智能(AI)计算芯片、各种运行机器学习模型算法的计算单元、数字信号处理器(DSP)、以及任何适当的处理器、控制器、微控制器等。计算单元801执行上文所描述的各个方法和处理。例如,在一些实施例中,如上述的任务处理方法可被实现为计算机软件程序,其被有形地包含于机器可读介质,例如存储单元808。在一些实施例中,计算机程序的部分或者全部可以经由ROM 802和/或通信单元809而被载入和/或安装到电子设备800上。在一些实施例中,计算单元801可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行上述的任务处理方法。
用于实施本申请的方法的程序代码可以采用一个或多个编程语言的任何组合来编写。这些程序代码可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器或控制器,使得程序代码当由处理器或控制器执行时使流程图和/或框图中所规定的功能/操作被实施。程序代码可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务端上执行。
在本申请的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、光纤、便捷式紧凑盘只读存储器(CD-ROM)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
如本申请使用的,术语“机器可读介质”和“计算机可读介质”指的是用于将机器指令和/或数据提供给可编程处理器的任何计算机程序产品、设备、和/或装置(例如,磁盘、光盘、存储器、可编程逻辑装置(PLD)),包括,接收作为机器可读信号的机器指令的机器可读介质。术语“机器可读信号”指的是用于将机器指令和/或数据提供给可编程处理器的任何信号。
为了提供与用户的交互,可以在计算机上实施此处描述的系统和技术,该计算机具有:用于向用户显示信息的显示装置(例如,CRT(阴极射线管)或者LCD(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给计算机。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。
可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务端)、或者包括中间件部件的计算系统(例如,应用服务端)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(LAN)、广域网(WAN)和互联网。
计算机系统可以包括客户端和服务端。客户端和服务端一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务端关系的计算机程序来产生客户端和服务端的关系。
需要指出,根据实施的需要,可将本申请实施例中描述的各个部件/步骤拆分为更多部件/步骤,也可将两个或多个部件/步骤或者部件/步骤的部分操作组合成新的部件/步骤,以实现本申请实施例的目的。
以上实施方式仅用于说明本申请实施例,而并非对本申请实施例的限制,有关技术领域的普通技术人员,在不脱离本申请实施例的精神和范围的情况下,还可以做出各种变化和变型,因此所有等同的技术方案也属于本申请实施例的范畴,本申请实施例的专利保护范围应由权利要求限定。
Claims (9)
1.一种任务处理方法,其特征在于,应用于主计算设备,所述主计算设备耦接多核加速卡,所述多核加速卡包括多个加速核,所述主计算设备包括任务执行队列、和与所述多核加速卡中的各加速核对应的多个核执行队列,所述方法包括:
通过所述主计算设备,在检测所述任务执行队列和所述多个核执行队列中对应于目标任务的目标核执行队列为非阻塞状态时,依次向所述任务执行队列与所述目标核执行队列提交所述目标任务;
通过所述多个加速核中对应于所述目标核执行队列的目标加速核,获取所述目标核执行队列中的所述目标任务,并返回所述目标任务的任务执行结果;
通过所述主计算设备,根据所述目标任务的任务执行结果,将所述目标任务分别从所述目标核执行队列和所述任务执行队列中移除。
2.根据权利要求1所述的方法,其特征在于,所述在检测所述任务执行队列和所述多个核执行队列中对应于目标任务的目标核执行队列为非阻塞状态时,依次向所述任务执行队列与所述目标核执行队列提交所述目标任务,包括:
确定各待处理任务中的目标任务;
在检测所述任务执行队列为非阻塞状态时,向所述任务执行队列提交所述目标任务;
根据所述目标任务的任务类型,从各核执行队列中确定所述目标任务的所述目标核执行队列,并在检测所述目标核执行队列为非阻塞状态时,向所述目标核执行队列提交所述目标任务;
返回所述确定各待处理任务中的目标任务的步骤,直至所有待处理任务均执行完成。
3.根据权利要求1或2所述的方法,其特征在于,通过以下方式确定各待处理任务中的目标任务:
根据各待处理任务的请求顺序或执行优先级,依次将各待处理任务中的一个确定为所述目标任务。
4.根据权利要求1或2所述的方法,其特征在于,所述在检测所述任务执行队列和所述多个核执行队列中对应于目标任务的目标核执行队列为非阻塞状态时,依次向所述任务执行队列与所述目标核执行队列提交所述目标任务,包括:
对于所述任务执行队列与所述目标核执行队列中的任意一个当前执行队列,
检测所述当前执行队列的运行状态,当检测所述当前执行队列处于阻塞状态时,暂停向所述当前执行队列提交所述目标任务的操作,直至检测所述当前执行队列由所述阻塞状态切换为所述非阻塞状态时,唤醒向所述当前执行队列提交所述目标任务的操作;
其中,当检测所述当前执行队列中各待处理任务的当前并行执行数量与预设并行执行数量相等时,得到所述当前执行队列处于所述阻塞状态的检测结果,当检测所述当前执行队列中各待处理任务的当前并行执行数量小于所述预设并行执行数量时,得到所述当前执行队列处于所述非阻塞状态的检测结果。
5.根据权利要求4所述的方法,其特征在于,所述根据所述目标任务的任务执行结果,将所述目标任务分别从所述目标核执行队列和所述任务执行队列中移除,包括:
响应于所述目标任务的任务执行结果的获取操作,将所述目标任务从所述目标核执行队列中移除,并更新所述目标核对执行队列中各待处理任务的当前并行执行数量;
响应于所述目标任务从所述目标核执行队列中的移除操作,将所述目标任务从所述任务执行队列中移除,并更新所述任务执行队列中各待处理任务的当前并行执行数量。
6.根据权利要求1所述的方法,其中,所述多核加速卡还包括存储区;
所述方法还包括:
在将所述目标任务提交给所述任务执行队列后,向所述存储区请求所述目标任务的任务缓存空间;
在将所述目标任务分别从所述目标核执行队列和所述任务执行队列中移除后,释放所述存储区中对应于所述目标任务的任务缓存空间。
7.一种任务处理装置,其特征在于,应用于主计算设备,所述主计算设备耦接多核加速卡,所述多核加速卡包括多个加速核,所述主计算设备包括任务执行队列、和与所述多核加速卡中的各加速核对应的多个核执行队列,所述装置包括:
任务提交模块,用于通过所述主计算设备,在检测所述任务执行队列和所述多个核执行队列中对应于目标任务的目标核执行队列为非阻塞状态时,依次向所述任务执行队列与所述目标核执行队列提交所述目标任务;
任务执行模块,用于通过所述多个加速核中对应于所述目标核执行队列的目标加速核,从所述目标核执行队列获取所述目标任务,并返回所述目标任务的任务执行结果;
任务移除模块,用于通过所述主计算设备,根据所述目标任务的任务执行结果,将所述目标任务分别从所述目标核执行队列和所述任务执行队列中移除。
8.一种电子设备,其特征在于,包括:
存储器和处理器,其中,所述存储器中存储有计算机程序,当所述计算机程序被所述处理器执行时,实现如权利要求1至7中任一项所述的任务处理方法。
9.一种计算机存储介质,其特征在于,所述计算机存储介质存储有计算机程序代码,当所述计算机程序代码被处理器运行时,使处理器执行根据权利要求1至7中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311532323.0A CN117539598A (zh) | 2023-11-16 | 2023-11-16 | 任务处理方法、装置、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311532323.0A CN117539598A (zh) | 2023-11-16 | 2023-11-16 | 任务处理方法、装置、电子设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117539598A true CN117539598A (zh) | 2024-02-09 |
Family
ID=89787668
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311532323.0A Pending CN117539598A (zh) | 2023-11-16 | 2023-11-16 | 任务处理方法、装置、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117539598A (zh) |
-
2023
- 2023-11-16 CN CN202311532323.0A patent/CN117539598A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10545789B2 (en) | Task scheduling for highly concurrent analytical and transaction workloads | |
CN111406250B (zh) | 无服务器计算环境中的使用经预取的数据的配设 | |
CN104598426A (zh) | 用于异构多核处理器系统的任务调度方法 | |
US20120297216A1 (en) | Dynamically selecting active polling or timed waits | |
CN111190735B (zh) | 一种基于Linux的片上CPU/GPU流水化计算方法及计算机系统 | |
EP3869324A2 (en) | Voice data processing method, apparatus, storage medium and computer program product | |
US9547576B2 (en) | Multi-core processor system and control method | |
CN110851276A (zh) | 一种业务请求处理方法、装置、服务器和存储介质 | |
US20140237017A1 (en) | Extending distributed computing systems to legacy programs | |
CN114968567A (zh) | 用于分配计算节点的计算资源的方法、装置和介质 | |
CN114721818A (zh) | 一种基于Kubernetes集群的GPU分时共享方法和系统 | |
US20220413906A1 (en) | Method, device, and program product for managing multiple computing tasks based on batch | |
CN114579323A (zh) | 一种线程处理方法、装置、设备及介质 | |
CN116303132A (zh) | 一种数据缓存方法、装置、设备以及存储介质 | |
CN115981893A (zh) | 消息队列任务处理方法、装置、服务器及存储介质 | |
CN116243983A (zh) | 处理器、集成电路芯片、指令处理方法、电子设备和介质 | |
CN117539598A (zh) | 任务处理方法、装置、电子设备及存储介质 | |
US12019909B2 (en) | IO request pipeline processing device, method and system, and storage medium | |
CN117093335A (zh) | 分布式存储系统的任务调度方法及装置 | |
US20230096015A1 (en) | Method, electronic deviice, and computer program product for task scheduling | |
CN101976206A (zh) | 一种中断处理方法和装置 | |
CN115237574A (zh) | 人工智能芯片的调度方法、装置及电子设备 | |
CN113923212B (zh) | 一种网络数据包处理方法和装置 | |
US20170052827A1 (en) | Using Multiple Central Processing Unit Cores for Packet Forwarding in Virtualized Networks | |
CN117539597A (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 |