CN116721007B - 任务控制方法、系统及装置、电子设备和存储介质 - Google Patents
任务控制方法、系统及装置、电子设备和存储介质 Download PDFInfo
- Publication number
- CN116721007B CN116721007B CN202310963943.3A CN202310963943A CN116721007B CN 116721007 B CN116721007 B CN 116721007B CN 202310963943 A CN202310963943 A CN 202310963943A CN 116721007 B CN116721007 B CN 116721007B
- Authority
- CN
- China
- Prior art keywords
- task
- engine
- instruction
- wake
- target
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 97
- 238000004590 computer program Methods 0.000 claims description 18
- 230000004044 response Effects 0.000 claims description 12
- 239000000725 suspension Substances 0.000 claims description 7
- 230000008569 process Effects 0.000 abstract description 17
- 238000010586 diagram Methods 0.000 description 24
- 238000009877 rendering Methods 0.000 description 13
- 238000004891 communication Methods 0.000 description 11
- 230000001419 dependent effect Effects 0.000 description 10
- 230000002618 waking effect Effects 0.000 description 9
- 230000003993 interaction Effects 0.000 description 8
- 230000008901 benefit Effects 0.000 description 7
- 239000000203 mixture Substances 0.000 description 6
- 230000005540 biological transmission Effects 0.000 description 4
- 230000006870 function Effects 0.000 description 4
- 230000000694 effects Effects 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 230000002452 interceptive effect Effects 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000001934 delay Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T1/00—General purpose image data processing
- G06T1/20—Processor architectures; Processor configuration, e.g. pipelining
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T1/00—General purpose image data processing
- G06T1/60—Memory management
-
- 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
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Image Generation (AREA)
Abstract
本公开实施例公开了一种任务控制方法、系统及装置、电子设备和存储介质,涉及计算机技术领域,以至少解决了相关技术中引擎在执行等待的过程中,由于频繁、盲目的读取存储器带来的资源的消耗、工作效率较低等问题。该任务控制方法应用于基于图形处理器运行的第一引擎,具体实现方案为:对存储器发送的第一唤醒指令进行解析,得到第一存储信息;其中,所述第一存储信息关联于第二引擎对应的第二任务,所述第二引擎基于所述图形处理器运行;基于所述第一存储信息,从所述第一引擎对应的至少一个第一任务中确定依赖所述第二任务的目标第一任务;将所述目标第一任务从当前状态切换至第一目标状态。
Description
技术领域
本公开涉及但不限于计算机技术领域,尤其涉及一种任务控制方法、系统及装置、电子设备和存储介质。
背景技术
图形处理器(Graphics Processing Unit,简称为GPU),又称显示核心、视觉处理器、显示芯片,是一种专门在个人电脑、工作站、游戏机和一些移动设备(如平板电脑、智能手机等)上做图像和图形相关运算工作的微处理器。
相关技术中,GPU内部的某一引擎(例如,渲染引擎、视频引擎、传输引擎等)执行某一任务时,若该任务需要等待另一引擎对应的任务执行完后才能执行,那么该引擎在执行等待的过程中,会频繁、且盲目的读取存储器,以获知另一引擎对应的任务是否执行完毕,存在浪费执行其他任务的时间,增加了功耗、带宽等资源的消耗。
发明内容
本公开实施例提供一种任务控制方法、系统及装置、电子设备、存储介质和计算机程序产品。
本公开实施例的技术方案是这样实现的:
本公开实施例提供一种任务控制方法,应用于基于图形处理器运行的第一引擎,该方法包括:
对存储器发送的第一唤醒指令进行解析,得到第一存储信息;其中,所述第一存储信息关联于第二引擎对应的第二任务,所述第二引擎基于所述图形处理器运行;
基于所述第一存储信息,从所述第一引擎对应的至少一个第一任务中确定依赖所述第二任务的目标第一任务;
将所述目标第一任务从当前状态切换至第一目标状态。
本公开实施例提供一种任务控制方法,应用于存储器,该方法包括:
对接收的第二写入指令进行解析,得到第一存储信息;其中,所述第一存储信息关联于第二引擎对应的第二任务,所述第二引擎基于图形处理器运行;
基于所述第一存储信息,生成第一唤醒指令;
将所述第一唤醒指令发送至第一引擎中,以使得所述第一引擎基于接收的所述第一唤醒指令,将依赖所述第二任务的目标第一任务切换至第一目标状态;其中,所述第一引擎基于所述图形处理器运行。
本公开实施例提供一种任务控制方法,应用于基于图形处理器运行的第二引擎,该方法包括:
响应于在第二任务的状态为完成状态的情况下,基于所述第二任务关联的第一存储信息,生成第二写入指令;
将所述第二写入指令发送至存储器中;其中,所述第二写入指令用于指示所述存储器生成并向第一引擎发送第一唤醒指令,所述第一唤醒指令用于使得所述第一引擎基于接收的所述第一唤醒指令,将依赖所述第二任务的目标第一任务切换至第一目标状态,所述第一引擎基于所述图形处理器运行。
本公开实施例提供一种任务控制系统,所述系统包括存储器、及基于图形处理器运行的第一引擎,其中:
所述第一引擎,用于对所述存储器发送的第一唤醒指令进行解析,得到第一存储信息;其中,所述第一存储信息关联于第二引擎对应的第二任务,所述第二引擎基于所述图形处理器运行;基于所述第一存储信息,从所述第一引擎对应的至少一个第一任务中确定依赖所述第二任务的目标第一任务;将所述目标第一任务从当前状态切换至第一目标状态。
本公开实施例提供一种任务控制装置,应用于基于图形处理器运行的第一引擎,该装置包括:
第一确定模块,用于对存储器发送的第一唤醒指令进行解析,得到第一存储信息;其中,所述第一存储信息关联于第二引擎对应的第二任务,所述第二引擎基于所述图形处理器运行;
第二确定模块,用于基于所述第一存储信息,从所述第一引擎对应的至少一个第一任务中确定依赖所述第二任务的目标第一任务;
切换模块,用于将所述目标第一任务从当前状态切换至第一目标状态。
本公开实施例提供一种任务控制装置,应用于存储器,所述装置包括:
第三确定模块,用于对接收的第二写入指令进行解析,得到第一存储信息;其中,所述第一存储信息关联于第二引擎对应的第二任务,所述第二引擎基于图形处理器运行;
第一生成模块,用于基于所述第一存储信息,生成第一唤醒指令;
第一发送模块,用于将所述第一唤醒指令发送至第一引擎中,以使得所述第一引擎基于接收的所述第一唤醒指令,将依赖所述第二任务的目标第一任务切换至第一目标状态。
本公开实施例提供一种任务控制装置,应用于基于图形处理器运行的第二引擎,所述装置包括:
第二生成模块,用于响应于在第二任务的状态为完成状态的情况下,基于所述第二任务关联的第一存储信息,生成第二写入指令;
第二发送模块,用于将所述第二写入指令发送至存储器中;其中,所述第二写入指令用于指示所述存储器生成并向第一引擎发送第一唤醒指令,所述第一唤醒指令用于使得所述第一引擎基于接收的所述第一唤醒指令,将依赖所述第二任务的目标第一任务切换至第一目标状态,所述第一引擎基于所述图形处理器运行。
本公开实施例提供一种电子设备,包括处理器和存储器,所述存储器存储有可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述方法。
本公开实施例提供一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述方法。
本公开实施例提供一种计算机程序产品,所述计算机程序产品包括存储了计算机程序的非瞬时性计算机可读存储介质,所述计算机程序被计算机读取并执行时,实现上述方法。
在本公开实施例中,通过对存储器发送的第一唤醒指令进行解析,得到第一存储信息;其中,所述第一存储信息关联于第二引擎对应的第二任务,所述第二引擎基于所述图形处理器运行;基于所述第一存储信息,从所述第一引擎对应的至少一个第一任务中确定依赖所述第二任务的目标第一任务;将所述目标第一任务从当前状态切换至第一目标状态。这样,一方面,通过以被动接收的方式来确定任务的状态,相较于以主动读取的方式而言,由于不需要读取时长,可以缩短任务的状态的确定时长,从而提升引擎的工作效率;另一方面,通过主动唤醒的方式来切换任务的状态,相较于频繁且盲目的读取存储器来切换任务的状态而言,由于不需要频繁读取存储器,不仅可以利用该读取时间来执行其它任务,以提升引擎的工作效率,而且可以减少因频繁读取所带来的带宽、功耗等资源的消耗。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,而非限制本公开。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,这些附图示出了符合本公开的实施例,并与说明书一起用于说明本公开的技术方案。
图1A为相关技术中的一种多引擎同步的交互示意图;
图1B为本公开实施例提供的一种任务控制方法的实现流程示意图一;
图1C为本公开实施例提供的一种多引擎同步的交互示意图一;
图2A为本公开实施例提供的一种任务控制方法的实现流程示意图二;
图2B为本公开实施例提供的一种多引擎同步的交互示意图二;
图3A为本公开实施例提供的一种任务控制方法的实现流程示意图三;
图3B为本公开实施例提供的一种多引擎同步的交互示意图三;
图4A为本公开实施例提供的一种任务控制系统的组成结构示意图;
图4B为本公开实施例提供的一种多引擎同步的交互示意图四;
图5为本公开实施例提供的一种任务控制装置的组成结构示意图一;
图6为本公开实施例提供的一种任务控制装置的组成结构示意图二;
图7为本公开实施例提供的一种任务控制装置的组成结构示意图三;
图8为本公开实施例中电子设备的一种硬件实体示意图。
具体实施方式
为了使本公开的目的、技术方案和优点更加清楚,下面将结合附图对本公开作进一步地详细描述,所描述的实施例不应视为对本公开的限制,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本公开保护的范围。
在以下的描述中,涉及到“一些实施例”,其描述了所有可能实施例的子集,但是可以理解,“一些实施例”可以是所有可能实施例的相同子集或不同子集,并且可以在不冲突的情况下相互结合。
在以下的描述中,所涉及的术语“第一\第二\第三”仅仅是区别类似的对象,不代表针对对象的特定排序,可以理解地,“第一\第二\第三”在允许的情况下可以互换特定的顺序或先后次序,以使这里描述的本公开实施例能够以除了在这里图示或描述的以外的顺序实施。
除非另有定义,本文所使用的所有的技术和科学术语与属于本公开的技术领域的技术人员通常理解的含义相同。本文中所使用的术语只是为了描述本公开实施例的目的,不是旨在限制本公开。
多引擎同步,指GPU内部多个不同功能的处理器,协同工作时,需要相互等待进行同步的过程。图1A为相关技术中的一种多引擎同步的交互示意图,如图1A所示,其中:
计算引擎11执行完图形生成任务111后,生成唤醒(notify)指令112,其中,唤醒指令112用于更新DDR(Double Data Rate Synchronous Dynamic Random Access Memory,双倍数据率同步动态随机存取存储器,简称为DDR SDRAM)中的一个地址A的值,以表征图形生成任务111已经完成。
渲染引擎12执行等待(wait)指令121,用于等待计算引擎11执行完图形生成任务111,在实施时,该等待指令121通过循环读取DDR中地址A的值,来判断计算引擎11是否执行完图形生成任务111;在计算引擎11执行完图形生成任务111后,根据生成结果来执行图像生成任务122;在执行完图像生成任务122后,生成唤醒指令123,其中,唤醒指令123用于更新DDR中的一个地址B的值,以表征图像生成任务122已经完成。
视频引擎13执行等待指令131,用于等待渲染引擎12执行完图像生成任务122,在实施时,该等待指令131通过循环读取DDR中地址B的值,来判断渲染引擎12是否执行完图像生成任务122;在渲染引擎12执行完图像生成任务122后,根据生成结果来执行视频生成任务132;在执行完视频生成任务132后,生成唤醒指令133,其中,唤醒指令133用于更新DDR中的一个地址C的值,以表征视频生成任务132已经完成。
传输引擎14执行等待指令141,用于等待视频引擎13执行完视频生成任务132,在实施时,该等待指令141通过循环读取DDR中地址C的值,来判断视频引擎13是否执行完视频生成任务132;在视频引擎13执行完视频生成任务132后,根据生成结果来执行传输任务142。
那么,一方面,由于DDR距离GPU的物理距离较远,因此GPU对DDR的读取和写入延迟较大,使得引擎的依赖任务(例如,渲染引擎12中的图形生成任务122)需要较长时间才能被唤醒;另一方面,由于引擎在执行等待的过程中,会频繁、盲目的读取DDR,不仅浪费了本来可以用来执行其他任务的时间,而且频繁读取会使得DDR的带宽增加、引擎和DDR的功耗也增加。
本公开实施例提供一种任务控制方法,一方面,通过以被动接收的方式来确定任务的状态,相较于以主动读取的方式而言,由于不需要读取时长,可以缩短任务的状态的确定时长,从而提升引擎的工作效率;另一方面,通过主动唤醒的方式来切换任务的状态,相较于频繁且盲目的读取存储器来切换任务的状态而言,由于不需要频繁读取存储器,不仅可以利用该读取时间来执行其它任务,以提升引擎的工作效率,而且可以减少因频繁读取所带来的带宽、功耗等资源的消耗。本公开实施例提供的方法可以由电子设备执行,电子设备可以为笔记本电脑,平板电脑,台式计算机,机顶盒,移动设备(例如,移动电话,便携式音乐播放器,个人数字助理,专用消息设备,便携式游戏设备)等各种类型的终端,也可以实施为服务器。服务器可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、内容分发网络(Content Delivery Network,CDN)、以及大数据和人工智能平台等基础云计算服务的云服务器。
下面,将结合本公开实施例中的附图,对本公开实施例中的技术方案进行清楚、完整地描述。
图1B为本公开实施例提供的一种任务控制方法的实现流程示意图一,应用于基于图形处理器运行的第一引擎,如图1B所示,所述方法包括步骤S11至步骤S13,其中:
步骤S11、对存储器发送的第一唤醒指令进行解析,得到第一存储信息;其中,所述第一存储信息关联于第二引擎对应的第二任务,所述第二引擎基于所述图形处理器运行。
这里,第一引擎可以是GPU中的任一引擎,第一引擎的数量可以为至少一个。在实施时,GPU中包括至少一种引擎,不同的引擎为执行不同类型任务的硬件模块。例如,对于GPU内的计算引擎,主要用于执行计算之类的任务,比如,三角形的位置。又例如,对于GPU内的渲染引擎,主要用于执行图像渲染的任务。还例如,对于GPU内的视频引擎,主要用于基于图像生成视频的任务。
第一唤醒指令用于唤醒第一引擎对应的某一任务。第一唤醒指令中至少包括第一存储信息。在实施时,该第一唤醒指令是存储器发送的。在一些实施方式中,由于可能存在多个第一引擎等待该第一唤醒指令,那么在实施时,可以以广播的方式发送该第一唤醒指令。
在一些实施方式中,该第一唤醒指令中还可以包括唤醒对象、唤醒内容等。其中,唤醒对象为至少一个第一引擎。唤醒内容可以是任意合适的内容,例如,任务的标识。这样,通过解析第一唤醒指令中的唤醒对象,第一引擎便能确定是否需要唤醒某一任务,相较于对整个第一唤醒指令进行解析而言,可以缩短指令的处理时长。
存储器可以是任意合适的能够进行存储的存储器。例如,该存储器是位于GPU外的存储器,比如,系统内存Memory、DDR等。又例如,该存储器可以是GPU内置的存储器,比如,片上存储器(On Chip Memory)。在实施时,该存储器中包括至少一个存储地址。
第二引擎也是GPU内的一个引擎,第二引擎的数量可以为至少一个。在实施时,第二引擎不同于第一引擎。例如,在图1A中,第二引擎可以是计算引擎,那么第一引擎可以是渲染引擎。又例如,在图1A中,第二引擎可以是渲染引擎,那么第一引擎可以是视频引擎。
第二任务是第二引擎正在执行的一个任务,在实施时,第一引擎的某一任务依赖第二任务的执行结果。例如,在图1A中,第二任务可以是图形生成任务111,那么第一引擎的某一任务可以是图像生成任务122。
第一存储信息可以包括但不限于该存储器的某一存储地址,也可以是该存储地址中存储的内容、第二任务的标识、目标第一任务的标识等。其中,该存储地址中存储的内容可以是任意合适的内容,例如,任务的标识、默认值等。目标第一任务是依赖第二任务的执行结果的一个任务。
例如,第一存储信息关联第二任务的一个存储地址。在实施时,在第二任务完成后,会更新该存储地址中的值,以表征第二任务已经执行完成。例如,在第二任务未完成之前,该存储地址的值可以是默认值,比如,大于0的值;在第二任务完成后,该存储地址的值可以变为更新值,比如,为0。在一些实施方式中,该存储地址的默认值、更新值均是可配置的。在实施时,可以通过CPU预先配置该默认值和更新值。
在一些实施方式中,所述存储器为所述图形处理器中的片上存储器;所述步骤S11包括步骤S111,其中:
步骤S111、对所述片上存储器发送的第一唤醒指令进行解析,得到第一存储信息。
这里,GPU中还包括片上存储器,在实施时,该片上存储器的容量不大,一般用于高速处理芯片内部所需要的数据存储即可。这样,第一引擎通过与芯片内的存储器进行指令通信,相较于与芯片外的存储器进行指令通信而言,缩短了双方通信之间的物理距离,从而可以降低指令读写的延迟时间,进而可以快速唤醒依赖的任务。
步骤S12、基于所述第一存储信息,从所述第一引擎对应的至少一个第一任务中确定依赖所述第二任务的目标第一任务。
这里,第一任务表征待唤醒的任务。在实施时,第一引擎中可以包括至少一个待唤醒的第一任务,通过该第一存储信息,可以从多个待唤醒的第一任务中确定目标第一任务。
在一些实施方式中,第一引擎在接收到一个等待指令时,通过该等待指令中的存储信息,确定第一任务,并记录第一任务与存储信息之间的对应关系,这样,通过该对应关系,便可以快速得到与第一存储信息对应的目标第一任务。在实施时,该存储信息关联于第二引擎对应的一个任务,第一任务依赖该任务。例如,在图1A中,视频引擎13在接收到等待指令131时,根据该等待指令131中的存储地址B(对应于前述第一存储信息),确定第一任务为视频生成任务132,并记录视频生成任务132与存储地址B之间的对应关系,那么在接收到第一唤醒指令时,根据第一唤醒指令中的第一存储信息(包含存储地址B),得到与存储地址B对应的目标第一任务为视频生成任务132。
步骤S13、将所述目标第一任务从当前状态切换至第一目标状态。
这里,目标第一任务的状态可以包括但不限于挂起状态、非挂起状态等,其中,非挂起状态可以包括但不限于就绪状态、执行状态、中断状态等。当前状态为挂起状态。第一目标状态为非挂起状态。例如,将就绪状态作为目标第一任务的第一目标状态,即:将该目标第一任务放入至等待执行的任务队列中进行排队,或将目标第一任务放入至等待执行的任务队列中,并在当前任务执行完毕后立刻执行该目标第一任务。又例如,将执行状态作为目标第一任务的第一目标状态,即:立刻执行目标第一任务。
在实施时,将目标第一任务切换至第一目标状态后,按照第一目标状态来执行该目标第一任务。例如,在图1A中,在图像生成任务122(目标第一任务)的第一目标状态为就绪状态的情况下,将图像生成任务122切换至就绪状态,等待渲染引擎12执行该图像生成任务122。
本公开实施例中,通过对存储器发送的第一唤醒指令进行解析,得到第一存储信息;其中,所述第一存储信息关联于第二引擎对应的第二任务,所述第二引擎基于所述图形处理器运行;基于所述第一存储信息,从所述第一引擎对应的至少一个第一任务中确定依赖所述第二任务的目标第一任务;将所述目标第一任务从当前状态切换至第一目标状态。这样,一方面,通过以被动接收的方式来确定任务的状态,相较于以主动读取的方式而言,由于不需要读取时长,可以缩短任务的状态的确定时长,从而提升引擎的工作效率;另一方面,通过主动唤醒的方式来切换任务的状态,相较于频繁且盲目的读取存储器来切换任务的状态而言,由于不需要频繁读取存储器,不仅可以利用该读取时间来执行其它任务,以提升引擎的工作效率,而且可以减少因频繁读取所带来的带宽、功耗等资源的消耗。
在一些实施方式中,所述方法还包括步骤S14至步骤S16,其中:
步骤S14、对接收的等待指令进行解析,得到第二存储信息;其中,所述第二存储信息关联于所述第二引擎对应的第三任务。
这里,等待指令用于挂起第一引擎的某一任务,该等待指令可以是CPU发送的。在实施时,该等待指令中包括第二存储信息,通过对该等待指令进行解析,便可以得到第二存储信息,第二存储信息可以包括但不限于该存储器的某一存储地址,也可以是该存储地址中存储的内容、第三任务的标识、目标第四任务的标识等,其中,目标第四任务是依赖第三任务的执行结果的一个任务。例如,在图1A中,等待指令131中携带地址B,将地址B作为该第二存储信息。
第三任务是第二引擎正在执行、或需要执行的一个任务,在实施时,第一引擎对应的某一任务依赖第三任务的执行结果。
在一些实施方式中,第二存储信息为关联第三任务的一个存储地址。在实施时,在第三任务完成后,会更新该存储地址中的值,以表征第三任务已经执行完成。例如,在图1A中,在图形生成任务111(第三任务)完成后,会更新地址A中的值,比如,从默认值变为更新值,以表征图形生成任务111已经执行完成。
步骤S15、基于所述第二存储信息,从所述第一引擎中对应的至少一个第四任务中确定依赖所述第三任务的目标第四任务。
这里,第四任务表征待执行的一个任务。在实施时,第一引擎中可以包括至少一个待执行的第四任务,通过该第二存储信息,可以从多个待执行的第四任务中确定目标第四任务。
在一些实施方式中,通过该第二存储信息关联的第二引擎对应的第三任务,确定该目标第四任务。例如,在图1A中,渲染引擎12(第一引擎)在接收到等待指令121时,根据该等待指令121中的存储地址A(第二存储信息),确定该存储地址A关联计算引擎11(第二引擎)中的图形生成任务111(第三任务),由于渲染引擎12中的图像生成任务122依赖计算引擎11中的图形生成任务111的生成结果,因此,将图像生成任务122作为目标第四任务。
步骤S16、基于所述第二存储信息,确定所述目标第四任务的当前状态。
这里,目标第四任务的当前状态可以包括但不限于挂起状态、就绪状态、执行状态等。例如,在存储地址(第二存储信息)的内容为默认值的情况下,表征依赖的第三任务还未执行完毕,因此,目标第四任务的当前状态可以为挂起状态,此时,目标第四任务为一个第一任务。又例如,在存储地址的内容变为更新值的情况下,表征依赖的第三任务已经执行完毕,因此,目标第四任务的当前状态可以为就绪状态、或执行状态。
在一些实施方式中,所述步骤S16包括步骤S161至步骤S162,其中:
步骤S161、基于所述第二存储信息,从所述存储器处得到目标数据。
这里,从存储器中查找与存储地址(第二存储信息)匹配的数据作为该目标数据。其中,目标数据可以是默认值,也可以是更新值。在实施时,该目标数据可以是CPU预先配置的。
步骤S162、基于所述目标数据,确定所述目标第四任务的当前状态。
这里,可以将目标数据与预设条件进行比较,以确定目标第四任务的当前状态。预设条件可以是任意合适能够表征目标第四任务依赖的第三任务的完成情况的条件。例如,默认值、大于0等。在实施时,本领域技术人员可以根据实际需求自主设定预设条件,本公开实施例不作限定。例如,在预设条件为默认值的情况下,若目标数据为默认值,表征第三任务还未完成,将挂起状态作为目标第四任务的当前状态;反之,若目标数据不为默认值,表征第三任务已完成,则将非挂起状态(例如,就绪状态、执行状态等)作为该目标第四任务的当前状态。这样,一方面,在接收到等待指令后,主动读取一次存储器来确定任务的当前状态,相较于仅根据等待指令将任务直接挂起而言,提升了任务的当前状态的准确度,以降低因唤醒发生在等待之前而误判任务的当前状态的可能性;另一方面,通过读取片上存储器中的存储内容,相较于读取片外存储器中的存储内容而言,降低了读取的延迟时长,从而加快了确定任务的当前状态的时长。
在一些实施方式中,所述步骤S162包括步骤S1621和/或步骤S1622,其中:
步骤S1621、在所述目标数据满足预设条件的情况下,将挂起状态作为所述目标第四任务的当前状态。
这里,在目标数据满足该预设条件的情况下,表明目标第四任务依赖的第三任务还未完成,需要等待第三任务执行完毕,此时,可以挂起目标第四任务。
步骤S1622、在所述目标数据不满足所述预设条件的情况下,将非挂起状态作为所述目标第四任务的当前状态。
这里,在目标数据不满足该预设条件的情况下,表明目标第四任务依赖的第三任务已经完成,不需要等待第三任务,此时,可以执行目标第四任务、或将目标第四任务标记为就绪状态。
图1C为本公开实施例提供的一种多引擎同步的交互示意图一,如图1C所示,其中:
第一引擎15接收到等待指令151后,根据等待指令151中携带的地址A(对应于前述第二存储信息),确定被依赖的任务为第二引擎16中第二任务161,由于第一任务152需要等待第二引擎16中第二任务161的生成结果,因此将第一任务152确定为目标第四任务;
第一引擎15读取一次存储器17中地址A的值,若地址A的值为默认值(对应于前述预设条件),确定第一任务152的当前状态为挂起状态,在等待的过程中,第一引擎15可以执行其他任务153;
第一引擎15在接收到存储器发送的第一唤醒指令18后,根据第一唤醒指令18中携带的地址A(对应于前述第一存储信息),确定第一任务152为目标第一任务,将第一任务152从挂起状态切换至就绪状态(对应于前述第一目标状态)。
在本公开实施方式中,通过对接收的等待指令进行解析,得到第二存储信息;其中,所述第二存储信息关联于所述第二引擎对应的第三任务;基于所述第二存储信息,从所述第一引擎对应的至少一个第四任务中确定依赖所述第三任务的目标第四任务;基于所述第二存储信息,确定所述目标第四任务的当前状态。这样,通过第二存储信息来确定任务的当前状态,相较于仅根据等待指令将任务直接挂起而言,提升了任务的当前状态的准确度,以降低因唤醒发生在等待之前而误判任务的当前状态的可能性。
在一些实施方式中,所述方法还包括步骤S17至步骤S18,其中:
步骤S17、响应于在第五任务的状态为完成状态的情况下,基于所述第五任务关联的第三存储信息,生成第一写入指令。
这里,第五任务可以是某一第一任务,也可以是某一第四任务。完成状态表征第五任务已经处理完毕。在实施时,CPU可以预先设定第五任务与第三存储信息之间的关联。其中,第三存储信息可以包括但不限于该存储器的某一存储地址,也可以是该存储地址中存储的内容、第五任务的标识、目标第六任务的标识等,其中,目标第六任务是依赖第五任务的执行结果的一个任务。
第一写入指令中至少包括第三存储信息和写入信息。其中,写入信息可以是任意合适的内容,在实施时,该写入信息也可以是由CPU配置的。例如,该写入信息可以为0。
步骤S18、将所述第一写入指令发送至所述存储器;其中,所述第一写入指令用于指示所述存储器生成并向所述第二引擎发送第二唤醒指令;所述第二唤醒指令用于使得所述第二引擎基于接收的所述第二唤醒指令,将依赖所述第五任务的目标第六任务切换至第二目标状态。
这里,存储器根据该第一写入指令,更新对应存储地址的内容,用于表征第一引擎对应的第五任务已经执行完成。在实施时,第一写入指令中至少包括第三存储信息,那么通过对第一写入指令进行解析,便可以得到该第三存储信息。
存储器完成第一写入指令中的写入信息的写入后,生成该第二唤醒指令。第二唤醒指令与第一唤醒指令类似,在实施时,可以参照前述步骤S11的具体实施方式。第二唤醒指令是用于唤醒第二引擎对应的一个任务,该任务依赖第五任务的执行结果。在一些实施方式中,由于可能存在多个第二引擎等待该第二唤醒指令,那么,可以以广播的方式发送该第二唤醒指令。
第六任务表征第二引擎对应的待唤醒的任务,第二引擎可以对应至少一个待唤醒的第六任务。在实施时,第二引擎基于接收的第二唤醒指令,将依赖第五任务的目标第六任务切换至第二目标状态的实施过程,可以参见前述步骤S11至步骤S13的具体实施方式。
在本公开实施方式中,第二引擎基于接收存储器发送的第二唤醒指令来切换任务的状态,而并不是频繁、盲目的读取存储器来切换任务的状态,可以降低存储器的带宽、及功耗等资源的消耗。
图2A为本公开实施例提供的一种任务控制方法的实现流程示意图二,应用于存储器,如图2A所示,所述方法包括步骤S21至步骤S23,其中:
步骤S21、对接收的第二写入指令进行解析,得到第一存储信息;其中,所述第一存储信息关联于第二引擎对应的第二任务,所述第二引擎基于图形处理器运行。
这里,存储器可以是任意合适的存储器,例如,DDR、On Chip Memory等。在实施时,该存储器中至少包括一个存储地址。
第一存储信息可以是该存储器的某一存储地址,也可以是该存储地址中存储的内容。
第二写入指令与第一写入指令类似,第二写入指令用于更新某一存储地址中的内容,用于表征第二引擎对应的第二任务已经执行完成。在实施时,该第二写入指令可以是CPU发送的,也可以是图形处理器的第二引擎发送的。
在一些实施方式中,第二写入指令中至少包括第一存储信息,那么通过对第二写入指令进行解析,便可以得到该第一存储信息。
步骤S22、基于所述第一存储信息,生成第一唤醒指令。
这里,第二写入指令中还包括写入信息,在存储器完成写入信息的写入后,生成该第一唤醒指令。第一唤醒指令用于唤醒第一引擎对应的某一任务,该任务依赖第二任务的执行结果。
在一些实施方式中,所述步骤S22包括步骤S221至步骤S222,其中:
步骤S221、基于所述第二写入指令中的写入信息,更新所述第一存储信息。
这里,写入信息可以是任意合适的内容。例如,大于0的整数、0等。在实施时,该写入信息可以预先是由CPU配置的。
存储器对第二写入指令进行解析,获得写入信息,并将写入信息写入至对应的存储地址(第一存储信息)中。
步骤S222、基于所述第一存储信息,生成所述第一唤醒指令。
这里,在完成写入信息的写入后,存储器生成携带第一存储信息的第一唤醒指令,该第一唤醒指令用于唤醒至少一个第一引擎对应的一个任务。
第一唤醒指令中可以包括第一存储信息、第一存储信息+唤醒对象和/或唤醒内容等。例如,该第一唤醒指令中仅包括第一存储信息。又例如,该第一唤醒指令中包括唤醒对象+第一存储信息,这样,便于接收的引擎能够快速获知,是否需要唤醒某一任务。比如,当前处于等待的第一引擎包括引擎B1、引擎B2和引擎B3,那么在接收到存储器发送的第一唤醒指令后,其中,第一唤醒指令中携带引擎B2(唤醒对象)+第一存储信息,引擎B1和引擎B3对第一唤醒指令中的唤醒对象进行解析,获知其不为唤醒对象,那么也就不需要继续解析唤醒指令了;引擎B2对第一唤醒指令中的唤醒对象进行解析,获知其为唤醒对象,那么继续对第一唤醒指令进行解析,以根据第一唤醒指令中的第一存储信息来唤醒某一任务。
步骤S23、将所述第一唤醒指令发送至第一引擎中,以使得所述第一引擎基于接收的所述第一唤醒指令,将依赖所述第二任务的目标第一任务切换至第一目标状态;其中,所述第一引擎基于所述图形处理器运行。
这里,由于可能存在多个第一引擎等待该第一唤醒指令,因此,存储器可以以广播的方式发送该第一唤醒指令。“第一引擎基于所述第一唤醒指令,将依赖所述第二任务的目标第一任务切换至第一目标状态”的实施过程,可以参照前述步骤S11至步骤S13的具体实施方式。
图2B为本公开实施例提供的一种多引擎同步的交互示意图二,如图2B所示,其中:
第一引擎22接收到等待指令221后,根据等待指令221中携带的地址B(对应于前述第二存储信息),确定被依赖的任务为第二引擎21中第二任务211,由于第一任务222需要等待第二引擎21中第二任务211的生成结果,因此将第一任务222确定为目标第四任务;
第一引擎22读取一次存储器23中地址B的值,若地址B的值为默认值(对应于前述预设条件),确定第一任务222的当前状态为挂起状态,在等待的过程中,第一引擎22可以执行其他任务223;
存储器23对接收的第二写入指令212进行解析,得到地址B(对应于前述第一存储信息)和写入信息,将写入信息更新至地址B后,生成携带地址B的第一唤醒指令231,并广播该第一唤醒指令231;
第一引擎22在接收到存储器23广播的第一唤醒指令231后,根据第一唤醒指令231中携带的地址B(对应于前述第一存储信息),确定第一任务222为目标第一任务,将第一任务222从挂起状态切换至就绪状态(对应于前述第一目标状态)。
在本公开实施例中,一方面,引擎与片上存储器进行通信,相较于与片外存储器进行通信而言,由于缩短了双方之间的物理距离,因此可以降低指令的延迟时间;另一方面,第一引擎基于接收存储器发送的唤醒指令来切换任务的状态,而并不是频繁、盲目的读取存储器来切换任务的状态,可以降低存储器的带宽、及功耗等资源的消耗。
在一些实施方式中,所述方法还包括步骤S24至步骤S26,其中:
步骤S24、对接收的第一写入指令进行解析,得到第三存储信息;其中,所述第三存储信息关联所述第一引擎对应的第五任务。
这里,第一写入指令可以是CPU发送的,也可以是第一引擎发送的。在实施时,上述步骤S24可以参照前述步骤S21的具体实施方式。
步骤S25、基于所述第三存储信息,生成第二唤醒指令。
这里,第二唤醒指令与第一唤醒指令类似,第二唤醒指令用于唤醒第二引擎对应的某一任务。在实施时,上述步骤S25可以参照前述步骤S22的具体实施方式。
步骤S26、将所述第二唤醒指令发送至所述第二引擎中,以使得所述第二引擎基于接收的所述第二唤醒指令,将依赖所述第五任务的目标第六任务切换至第二目标状态。
这里,由于可能存在多个第二引擎等待该第二唤醒指令,因此,存储器可以以广播的方式发送该第二唤醒指令。在实施时,上述步骤S26可以参照前述步骤S23的具体实施方式。
在本公开实施方式中,第二引擎基于接收存储器发送的第二唤醒指令来切换任务的状态,而并不是频繁、盲目的读取存储器来切换任务的状态,可以降低存储器的带宽、及功耗等资源的消耗。
图3A为本公开实施例提供的一种任务控制方法的实现流程示意图三,应用于基于图形处理器运行的第二引擎,如图3A所示,所述方法包括步骤S31至步骤S32,其中:
步骤S31、响应于在第二任务的状态为完成状态的情况下,基于所述第二任务关联的第一存储信息,生成第二写入指令。
这里,完成状态表征第二任务已经处理完毕。在实施时,CPU可以预先设定第二任务与第一存储信息之间的关联。
存储器可以图形处理器中的存储器,也可以是图形处理器外的存储器。
第二写入指令中至少包括第一存储信息和写入信息。其中,写入信息可以是任意合适的内容,在实施时,该写入信息也可以是由CPU配置的。例如,该写入信息可以为0。
步骤S32、将所述第二写入指令发送至存储器中;其中,所述第二写入指令用于指示所述存储器生成并向第一引擎发送第一唤醒指令,所述第一唤醒指令用于使得所述第一引擎基于接收的所述第一唤醒指令,将依赖所述第二任务的目标第一任务切换至第一目标状态,所述第一引擎基于所述图形处理器运行。
这里,“存储器生成并向第一引擎发送第一唤醒指令”的实施过程,可以参照前述步骤S21至步骤S23的具体实施方式。“第一引擎基于所述第一唤醒指令,将依赖所述第二任务的目标第一任务切换至第一目标状态”的实施过程,可以参照前述步骤S11至步骤S13的具体实施方式。
图3B为本公开实施例提供的一种多引擎同步的交互示意图三,如图3B所示,其中:
第一引擎31接收到等待指令311后,根据等待指令311中携带的地址C(对应于前述第二存储信息),确定被依赖的任务为第二引擎32中第二任务321,由于第一任务312需要等待第二引擎32中第二任务321的生成结果,因此将第一任务312确定为目标第四任务;
第一引擎31读取一次存储器33中地址C的值,若地址C的值为默认值(对应于前述预设条件),确定第一任务312的当前状态为挂起状态,在等待的过程中,第一引擎31可以执行其他任务313;
第二引擎32在执行完第二任务321后,生成携带地址C和写入信息的第二写入指令322,并将第二写入指令322发送至存储器33中;
存储器33对接收的第二引擎32发送的第二写入指令322进行解析,得到地址C和写入信息,将写入信息更新至地址C后,生成携带地址C的第一唤醒指令331,并广播该第一唤醒指令331;
第一引擎31在接收到存储器33广播的第一唤醒指令331后,根据第一唤醒指令331中携带的地址C(对应于前述第一存储信息),确定第一任务312为目标第一任务,将第一任务312从挂起状态切换至就绪状态(对应于前述第一目标状态)。
在本公开实施例中,首先,第二引擎将第二写入指令发送至片上存储器,相较于发送至片外存储器而言,由于缩短了双方之间的物理距离,因此可以降低写入指令的延迟时间;其次,第一引擎接收片内存储器发送的第一唤醒指令,相较于接收片外存储器发送的第一唤醒指令而言,由于缩短了双方之间的物理距离,因此可以降低第一唤醒指令的延迟时间,从而任务可以快速被唤醒;最后,第一引擎基于接收的第一唤醒指令来切换任务的状态,而并不是频繁、盲目的读取存储器来切换任务的状态,不仅可以提升第一引擎的工作效率,而且还可以降低带宽、及功耗等资源的消耗。
在一些实施方式中,所述方法还包括步骤S33至步骤S35,其中:
步骤S33、对所述存储器发送的第二唤醒指令进行解析,得到第三存储信息;其中,所述第三存储信息关联于所述第一引擎对应的第五任务。
这里,第二唤醒指令与第一唤醒指令类似,第二唤醒指令用于唤醒第二引擎对应的一个任务。在实施时,上述步骤S33的实施方式可以参照前述步骤S11的具体实施方式。
步骤S34、基于所述第三存储信息,从所述第二引擎对应的至少一个第六任务中确定依赖所述第五任务的目标第六任务。
这里,第二引擎对应至少一个待唤醒的第六任务。在实施时,上述步骤S34的实施方式可以参照前述步骤S12的具体实施方式。
步骤S35、将所述目标第六任务从当前状态切换至第二目标状态。
这里,第二目标状态与第一目标状态类似。在实施时,上述步骤S35的实施方式可以参照前述步骤S13的具体实施方式。
在本公开实施方式中,第二引擎基于接收存储器发送的第二唤醒指令来切换任务的状态,而并不是频繁、盲目的读取存储器来切换任务的状态,可以降低存储器的带宽、及功耗等资源的消耗。
在一些实施方式中,所述方法还包括步骤S36至步骤S38,其中:
步骤S36、对接收的等待指令进行解析,得到第四存储信息;其中,所述第四存储信息关联于所述第一引擎对应的第七任务。
这里,该等待指令用于挂起第二引擎对应的某一任务。该等待指令可以是CPU发送的。在实施时,该等待指令中包括第四存储信息,通过对该等待指令进行解析,便可以得到第四存储信息,其中,第四存储信息可以包括但不限于该存储器的某一存储地址,也可以是该存储地址中存储的内容、第七任务的标识、目标第八任务的标识等,其中,目标第八任务是依赖第七任务的执行结果的一个任务。
第七任务是第一引擎正在执行、或需要执行的一个任务,在实施时,第二引擎对应的某一任务依赖第七任务的执行结果。
步骤S37、基于所述第四存储信息,从所述第二引擎对应的至少一个第八任务中确定依赖所述第七任务的目标第八任务。
这里,第八任务表征待执行的一个任务。在实施时,第二引擎中可以包括至少一个待执行的第八任务,通过该第四存储信息,可以从多个待执行的第八任务中确定目标第八任务。在实施时,可以参见前述步骤S15的具体实施方式。
步骤S38、基于所述第四存储信息,确定所述目标第八任务的当前状态。
这里,目标第八任务的当前状态可以包括但不限于挂起状态、就绪状态、执行状态等。在实施时,可以参见前述步骤S16的具体实施方式。
在本公开实施方式中,一方面,在接收到等待指令后,主动读取一次存储器来确定任务的当前状态,相较于仅根据等待指令将任务直接挂起而言,提升了任务的当前状态的准确度,以降低因唤醒发生在等待之前而误判任务的当前状态的可能性;另一方面,通过读取片上存储器中的存储内容,相较于读取片外存储器中的存储内容而言,降低了读取的延迟时长,从而加快了确定任务的当前状态的时长。
基于上述实施例,本公开实施例提供一种任务控制系统,图4A为本公开实施例提供的一种任务控制系统的组成结构示意图,如图4A所示,该任务控制系统40包括存储器41及基于图形处理器运行的第一引擎42,其中:
所述第一引擎42,用于对所述存储器发送的第一唤醒指令进行解析,得到第一存储信息;其中,所述第一存储信息关联第二引擎对应的第二任务,所述第二引擎基于所述图形处理器运行;基于所述第一存储信息,从所述第一引擎42对应的至少一个第一任务中确定依赖所述第二任务的目标第一任务;将所述目标第一任务从当前状态切换至第一目标状态。
这里,存储器41可以为片上存储器,也可以为片外存储器。在实施时,该存储器41中包括至少一个存储地址,通过该存储地址的内容,确定第二引擎中第二任务的是否执行完成。例如,若存储地址的内容为默认值,则表征第二任务未完成;若存储地址的内容不为默认值,则表征第二任务已经完成。
第一引擎42的数量可以为至少一个。在实施时,GPU中包括多种引擎,不同的引擎为执行不同类型任务的硬件模块。
第一唤醒指令用于唤醒第一引擎42中的目标第一任务。该第一唤醒指令中至少包括第一存储信息,其中,第一存储信息可以包括但不限于该存储器的某一存储地址,也可以是该存储地址中存储的内容、第二任务的标识、目标第一任务的标识等。在一些实施方式中,由于可能存在多个第一引擎等待该第一唤醒指令,那么在实施时,可以以广播的方式发送该第一唤醒指令。
第一引擎中可以包括至少一个待唤醒的第一任务,通过该第一唤醒指令中的第一存储信息,可以从多个待唤醒的第一任务中确定目标第一任务。
目标第一任务的状态可以包括但不限于挂起状态、非挂起状态等,其中,非挂起状态可以包括但不限于就绪状态、执行状态、中断状态等。
在一些实施方式中,所述系统还包括所述第二引擎;其中,所述第二引擎,用于:响应于在所述第二任务的状态为完成状态的情况下,基于所述第二任务关联的所述第一存储信息,生成第二写入指令,并将所述第二写入指令发送至所述存储器中;所述存储器,还用于:接收所述第二引擎发送的所述第二写入指令;对所述第二写入指令进行解析,得到所述第一存储信息;基于所述第一存储信息,生成所述第一唤醒指令,并将所述第一唤醒指令发送至所述第一引擎中;所述第一引擎,还用于:接收所述存储器发送的所述第一唤醒指令;对接收的所述第一唤醒指令进行解析,得到所述第一存储信息。
这里,第二引擎也是GPU内的一个引擎,第二引擎不同于第一引擎。
完成状态表征第二任务已经处理完成。在实施时,CPU可以预先设定第二任务与第一存储信息之间的关联。
第二写入指令中至少包括第一存储信息和写入信息。其中,写入信息可以是由CPU预先配置的。
存储器对接收的第二写入指令进行解析,得到第一存储信息和写入信息,将写入信息更新至对应的存储地址后,生成该第一唤醒指令,并广播该第一唤醒指令。
在一些实施方式中,所述第一引擎42,还用于:响应于在第五任务的状态为完成状态的情况下,基于所述第五任务关联的第三存储信息,生成第一写入指令;将所述第一写入指令发送至所述存储器中;所述存储器41,还用于:接收所述第一引擎发送的所述第一写入指令;对所述第一写入指令进行解析,得到所述第三存储信息;基于所述第三存储信息,生成第二唤醒指令,并将所述第二唤醒指令发送至所述第二引擎中;所述第二引擎,还用于:接收所述存储器发送的所述第二唤醒指令;对所述第二唤醒指令进行解析,得到所述第三存储信息;基于所述第三存储信息,从至少一个第六任务中确定依赖所述第五任务的目标第六任务;将所述目标第六任务从当前状态切换至第二目标状态。
这里,完成状态表征第五任务已经处理完成。在实施时,CPU可以预先设定第五任务与第三存储信息之间的关联。第一写入指令中至少包括第三存储信息和写入信息。其中,写入信息可以是由CPU预先配置的。第三存储信息可以包括但不限于该存储器的某一存储地址,也可以是该存储地址中存储的内容、第五任务的标识、目标第六任务的标识等。
存储器对接收的第一写入指令进行解析,得到第三存储信息和写入信息,将写入信息更新至对应的存储地址后,生成该第二唤醒指令,并广播该第二唤醒指令。
第二唤醒指令用于唤醒第二引擎中的目标第六任务。该第二唤醒指令中至少包括第三存储信息。
第二引擎中可以包括至少一个待唤醒的第六任务,通过该第二唤醒指令中的第三存储信息,可以从多个待唤醒的第六任务中确定目标第六任务。
目标第六任务的状态可以包括但不限于挂起状态、非挂起状态等,其中,非挂起状态可以包括但不限于就绪状态、执行状态、中断状态等。
图4B为本公开实施例提供的一种多引擎同步的交互示意图四,应用于任务控制系统中,如图4B所示,该任务控制系统包括GPU中的存储器41、GPU中的引擎42、GPU中的引擎43、及GPU中的引擎44,其中:
引擎42(对应于前述第一引擎)接收CPU发送的等待指令421,根据等待指令421中携带的地址A,确定被依赖的任务为引擎43(对应于前述第二引擎)中第二任务431,由于第一任务422需要等待引擎43中第二任务431的生成结果,因此将第一任务422确定为目标第四任务;
引擎42读取一次存储器41中地址A的值,若地址A的值为默认值(对应于前述预设条件),确定第一任务422的当前状态为挂起状态,在等待的过程中,引擎42可以执行其他任务423;
引擎43在执行完第二任务431后,生成携带地址A和写入信息的第二写入指令432,并将第二写入指令432发送至存储器41中;
存储器41对接收的第二写入指令432进行解析,得到地址A和写入信息,将写入信息更新至地址A后,生成携带地址A的第一唤醒指令411,并广播该第一唤醒指令411;
引擎42在接收到第一唤醒指令411后,根据第一唤醒指令411中携带的地址A(对应于前述第一存储信息),确定第一任务422为目标第一任务,将第一任务422从挂起状态切换至就绪状态(对应于前述第一目标状态);
引擎44(对应于前述第一引擎)接收CPU发送的等待指令441,根据等待指令441中携带的地址B,确定被依赖的任务为引擎42(对应于前述第二引擎)中第一任务422,由于第三任务442需要等待引擎42中第一任务422的生成结果,因此将第三任务442确定为目标第四任务;
引擎44读取一次存储器41中地址B的值,若地址B的值为默认值(对应于前述预设条件),确定第三任务442的当前状态为挂起状态,在等待的过程中,引擎44可以执行其他任务443;
引擎42在执行完第一任务422后,生成携带地址B和写入信息的第一写入指令424,并将第一写入指令424发送至存储器41中;
存储器41对接收的第一写入指令424进行解析,得到地址B和写入信息,将写入信息更新至地址B后,生成携带地址B的第二唤醒指令412,并广播该第二唤醒指令412;
引擎44在接收到第二唤醒指令412后,根据第二唤醒指令412中携带的地址B(对应于前述第三存储信息),确定第三任务442为目标第六任务,将第三任务442从挂起状态切换至就绪状态(对应于前述第二目标状态)。
在本公开实施例中,首先,各个引擎与片上存储器进行通信,缩短了双方的通信距离,降低了指令的延迟时长,从而使得依赖任务可以快速被唤醒;其次,引擎在等待的过程中,不再频繁读取存储器,不仅可以利用该读取时间来执行其它任务,以提升引擎的工作效率,而且可以减少因频繁读取所带来的带宽、功耗等资源的消耗;最后,引擎根据接收的唤醒指令来切换任务的状态,由于不需要对存储器进行读取,可以缩短切换任务的状态的时长,从而可以进一步提升工作效率。
在一些实施方式中,所述存储器41,还用于:基于所述第二写入指令中的写入信息,更新所述第一存储信息;基于所述第一存储信息,生成所述第一唤醒指令。
在一些实施方式中,所述存储器41,还用于:对接收的第一写入指令进行解析,得到第三存储信息;其中,所述第三存储信息关联所述第一引擎对应的第五任务;基于所述第三存储信息,生成第二唤醒指令;将所述第二唤醒指令发送至所述第二引擎中,以使得所述第二引擎基于接收的所述第二唤醒指令,将依赖所述第五任务的目标第六任务切换至第二目标状态。
在一些实施方式中,所述存储器41为所述图形处理器中的片上存储器;所述第一引擎42,还用于:对所述片上存储器发送的第一唤醒指令进行解析,得到所述第一存储信息。
在一些实施方式中,所述第一引擎42,还用于:对接收的等待指令进行解析,得到第二存储信息;其中,所述第二存储信息关联于第二引擎对应的第三任务;基于所述第二存储信息,从所述第一引擎对应的至少一个第四任务中确定依赖所述第三任务的目标第四任务;基于所述第二存储信息,确定所述目标第四任务的当前状态。
在一些实施方式中,所述第一引擎42,还用于:基于所述第二存储信息,从所述存储器处得到目标数据;基于所述目标数据,确定所述目标第四任务的当前状态。
在一些实施方式中,所述第一引擎42,还用于以下至少之一:在所述目标数据满足预设条件的情况下,将挂起状态作为所述目标第四任务的当前状态;在所述目标数据不满足所述预设条件的情况下,将非挂起状态作为所述目标第四任务的当前状态。
在一些实施方式中,所述第一引擎42,还用于:响应于在第五任务的状态为完成状态的情况下,基于所述第五任务关联的第三存储信息,生成第一写入指令;将所述第一写入指令发送至所述存储器;其中,所述第一写入指令用于指示所述存储器生成并向所述第二引擎发送第二唤醒指令;所述第二唤醒指令用于使得所述第二引擎基于接收的所述第二唤醒指令,将依赖所述第五任务的目标第六任务切换至第二目标状态。
在一些实施方式中,所述第二引擎,还用于:对所述存储器发送的第二唤醒指令进行解析,得到第三存储信息;其中,所述第三存储信息关联于所述第一引擎对应的第五任务;基于所述第三存储信息,从所述第二引擎对应的至少一个第六任务中确定依赖所述第五任务的目标第六任务;将所述目标第六任务从当前状态切换至第二目标状态。
以上系统实施例的描述,与上述方法实施例的描述是类似的,具有同方法实施例相似的有益效果。对于本公开系统实施例中未披露的技术细节,请参照本公开方法实施例的描述而理解。
基于上述实施例,本公开实施例提供一种任务控制装置,应用于基于图形处理器运行的第一引擎,图5为本公开实施例提供的一种任务控制装置的组成结构示意图一,如图5所示,所述任务控制装置50包括第一确定模块51、第二确定模块52、及切换模块53,其中:
所述第一确定模块51,用于对存储器发送的第一唤醒指令进行解析,得到第一存储信息;其中,所述第一存储信息关联于第二引擎对应的第二任务,所述第二引擎基于所述图形处理器运行;
所述第二确定模块52,用于基于所述第一存储信息,从所述第一引擎对应的至少一个第一任务中确定依赖所述第二任务的目标第一任务;
所述切换模块53,用于将所述目标第一任务从当前状态切换至目标状态。
在一些实施方式中,所述存储器为所述图形处理器中的片上存储器;所述第一确定模块51,还用于:对所述片上存储器发送的第一唤醒指令进行解析,得到所述第一存储信息。
在一些实施方式中,所述装置还包括第四确定模块,所述第四确定模块,用于:对接收的等待指令进行解析,得到第二存储信息;其中,所述第二存储信息关联于所述第二引擎对应的第三任务;基于所述第二存储信息,从所述第一引擎对应的至少一个第四任务中确定依赖所述第三任务的目标第四任务;基于所述第二存储信息,确定所述目标第四任务的当前状态。
在一些实施方式中,所述第四确定模块,还用于:基于所述第二存储信息,从所述存储器处得到目标数据;基于所述目标数据,确定所述目标第四任务的当前状态。
在一些实施方式中,所述第四确定模块,还用于以下至少之一:在所述目标数据满足预设条件的情况下,将挂起状态作为所述目标第四任务的当前状态;在所述目标数据不满足所述预设条件的情况下,将非挂起状态作为所述目标第四任务的当前状态。
在一些实施方式中,所述装置还包括第三生成模块,所述第三生成模块,用于:响应于在第五任务的状态为完成状态的情况下,基于所述第五任务关联的第三存储信息,生成第一写入指令;将所述第一写入指令发送至所述存储器;其中,所述第一写入指令用于指示所述存储器生成并向所述第二引擎发送第二唤醒指令;所述第二唤醒指令用于使得所述第二引擎基于接收的所述第二唤醒指令,将依赖所述第五任务的目标第六任务切换至第二目标状态。
以上装置实施例的描述,与上述方法实施例的描述是类似的,具有同方法实施例相似的有益效果。对于本公开装置实施例中未披露的技术细节,请参照本公开方法实施例的描述而理解。
基于上述实施例,本公开实施例提供一种任务控制装置,应用于存储器,图6为本公开实施例提供的一种任务控制装置的组成结构示意图二,如图6所示,所述任务控制装置60包括第三确定模块61、第一生成模块62及第一发送模块63,其中:
所述第三确定模块61,用于对接收的第二写入指令进行解析,得到第一存储信息;其中,所述第一存储信息关联于第二引擎对应的第二任务,所述第二引擎基于图形处理器运行;
所述第一生成模块62,用于基于所述第一存储信息,生成第一唤醒指令;
所述第一发送模块63,用于将所述第一唤醒指令发送至第一引擎中,以使得所述第一引擎基于接收的所述第一唤醒指令,将依赖所述第二任务的目标第一任务切换至第一目标状态,其中,所述第一引擎基于所述图形处理器运行。
在一些实施方式中,所述第一生成模块62,还用于:基于所述第二写入指令中的写入信息,更新所述第一存储信息;基于所述第一存储信息,生成所述第一唤醒指令。
在一些实施方式中,所述第三确定模块61,还用于:对接收的第一写入指令进行解析,得到第三存储信息;其中,所述第三存储信息关联所述第一引擎对应的第五任务;所述第一生成模块62,还用于:基于所述第三存储信息,生成第二唤醒指令;所述第一发送模块63,还用于:将所述第二唤醒指令发送至所述第二引擎中,以使得所述第二引擎基于接收的所述第二唤醒指令,将依赖所述第五任务的目标第六任务切换至第二目标状态。
以上装置实施例的描述,与上述方法实施例的描述是类似的,具有同方法实施例相似的有益效果。对于本公开装置实施例中未披露的技术细节,请参照本公开方法实施例的描述而理解。
基于上述实施例,本公开实施例提供一种任务控制装置,应用于基于图形处理器运行的第二引擎,图7为本公开实施例提供的一种任务控制装置的组成结构示意图三,如图7所示,所述任务控制装置70包括第二生成模块71及第二发送模块72,其中:
所述第二生成模块71,用于响应于在第二任务的状态为完成状态的情况下,基于所述第二任务关联的第一存储信息,生成第二写入指令;
所述第二发送模块72,用于将所述第二写入指令发送至存储器中;其中,所述第二写入指令用于指示所述存储器生成并向第一引擎发送第一唤醒指令,所述第一唤醒指令用于使得所述第一引擎基于接收的所述第一唤醒指令,将依赖所述第二任务的目标第一任务切换至第一目标状态;其中,所述第一引擎基于所述图形处理器运行。
在一些实施方式中,所述装置还包括第五确定模块,所述第五确定模块,用于:对所述存储器发送的第二唤醒指令进行解析,得到第三存储信息;其中,所述第三存储信息关联于所述第一引擎对应的第五任务;基于所述第三存储信息,从所述第二引擎对应的至少一个第六任务中确定依赖所述第五任务的目标第六任务;将所述目标第六任务从当前状态切换至第二目标状态。
在一些实施方式中,所述装置还包括第六确定模块,所述第六确定模块,用于:对接收的等待指令进行解析,得到第四存储信息;其中,所述第四存储信息关联于所述第一引擎对应的第七任务;基于所述第四存储信息,从所述第二引擎对应的至少一个第八任务中确定依赖所述第七任务的目标第八任务;基于所述第四存储信息,确定所述目标第八任务的当前状态。
以上装置实施例的描述,与上述方法实施例的描述是类似的,具有同方法实施例相似的有益效果。对于本公开装置实施例中未披露的技术细节,请参照本公开方法实施例的描述而理解。
需要说明的是,本公开实施例中,如果以软件功能模块的形式实现上述方法,并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。基于这样的理解,本公开实施例的技术方案本质上或者说对相关技术做出贡献的部分可以以软件产品的形式体现出来,该软件产品存储在一个存储介质中,包括若干指令用以使得一台电子设备(可以是个人计算机、服务器、或者网络设备等)执行本公开各个实施例所述方法的全部或部分。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read Only Memory,ROM)、磁碟或者光盘等各种可以存储程序代码的介质。这样,本公开实施例不限制于任何特定的硬件和软件结合。
本公开实施例提供一种电子设备,包括存储器和处理器,所述存储器存储有可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述方法。
本公开实施例提供一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述方法。所述计算机可读存储介质可以是瞬时性的,也可以是非瞬时性的。
本公开实施例提供一种计算机程序产品,所述计算机程序产品包括存储了计算机程序的非瞬时性计算机可读存储介质,所述计算机程序被计算机读取并执行时,实现上述方法中的部分或全部步骤。该计算机程序产品可以具体通过硬件、软件或其结合的方式实现。在一个可选实施例中,所述计算机程序产品具体体现为计算机存储介质,在另一个可选实施例中,计算机程序产品具体体现为软件产品,例如软件开发包(SoftwareDevelopment Kit,SDK)等等。
需要说明的是,图8为本公开实施例中电子设备的一种硬件实体示意图,如图8所示,该电子设备800的硬件实体包括:处理器801、通信接口802和存储器803,其中:
处理器801通常控制电子设备800的总体操作。
通信接口802可以使电子设备通过网络与其他终端或服务器通信。
存储器803配置为存储由处理器801可执行的指令和应用,还可以缓存待处理器801以及电子设备800中各模块待处理或已经处理的数据(例如,图像数据、音频数据、语音通信数据和视频通信数据),可以通过闪存(FLASH)或随机访问存储器(Random AccessMemory,RAM)实现。处理器801、通信接口802和存储器803之间可以通过总线804进行数据传输。
这里需要指出的是:以上存储介质和设备实施例的描述,与上述方法实施例的描述是类似的,具有同方法实施例相似的有益效果。对于本公开存储介质和设备实施例中未披露的技术细节,请参照本公开方法实施例的描述而理解。
应理解,说明书通篇中提到的“一个实施例”或“一实施例”意味着与实施例有关的特定特征、结构或特性包括在本公开的至少一个实施例中。因此,在整个说明书各处出现的“在一个实施例中”或“在一实施例中”未必一定指相同的实施例。此外,这些特定的特征、结构或特性可以任意适合的方式结合在一个或多个实施例中。应理解,在本公开的各种实施例中,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本公开实施例的实施过程构成任何限定。上述本公开实施例序号仅仅为了描述,不代表实施例的优劣。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。
在本公开所提供的几个实施例中,应该理解到,所揭露的设备和方法,可以通过其它的方式实现。以上所描述的设备实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,如:多个单元或组件可以结合,或可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的各组成部分相互之间的耦合、或直接耦合、或通信连接可以是通过一些接口,设备或单元的间接耦合或通信连接,可以是电性的、机械的或其它形式的。
上述作为分离部件说明的单元可以是、或也可以不是物理上分开的,作为单元显示的部件可以是、或也可以不是物理单元;既可以位于一个地方,也可以分布到多个网络单元上;可以根据实际的需要选择其中的部分或全部单元来实现本实施例方案的目的。
另外,在本公开实施例中的各功能单元可以全部集成在一个处理单元中,也可以是各单元分别单独作为一个单元,也可以两个或两个以上单元集成在一个单元中;上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:移动存储设备、只读存储器(Read Only Memory,ROM)、磁碟或者光盘等各种可以存储程序代码的介质。
或者,本公开上述集成的单元如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。基于这样的理解,本公开的技术方案本质上或者说对相关技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台电子设备(可以是个人计算机、服务器、或者网络设备等)执行本公开各个实施例所述方法的全部或部分。而前述的存储介质包括:移动存储设备、ROM、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本公开的实施方式,但本公开的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本公开揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本公开的保护范围之内。
Claims (19)
1.一种任务控制方法,其特征在于,应用于基于图形处理器运行的第一引擎,所述方法包括:
对存储器发送的第一唤醒指令进行解析,得到第一存储信息;其中,所述第一存储信息关联于第二引擎对应的第二任务,所述第二引擎基于所述图形处理器运行,所述第二引擎不同于所述第一引擎,所述第一引擎的数量为至少一个,所述第二引擎的数量为至少一个,所述第一唤醒指令表征所述第二任务为完成状态;
基于所述第一存储信息,从所述第一引擎对应的至少一个第一任务中确定依赖所述第二任务的目标第一任务;
将所述目标第一任务从当前状态切换至第一目标状态。
2.根据权利要求1所述的方法,其特征在于,所述存储器为所述图形处理器中的片上存储器;
所述对存储器发送的第一唤醒指令进行解析,得到第一存储信息,包括:
对所述片上存储器发送的第一唤醒指令进行解析,得到所述第一存储信息。
3.根据权利要求1所述的方法,其特征在于,所述方法还包括:
对接收的等待指令进行解析,得到第二存储信息;其中,所述第二存储信息关联于所述第二引擎对应的第三任务;
基于所述第二存储信息,从所述第一引擎对应的至少一个第四任务中确定依赖所述第三任务的目标第四任务;
基于所述第二存储信息,确定所述目标第四任务的当前状态。
4.根据权利要求3所述的方法,其特征在于,所述基于所述第二存储信息,确定所述目标第四任务的当前状态,包括:
基于所述第二存储信息,从所述存储器处得到目标数据;
基于所述目标数据,确定所述目标第四任务的当前状态。
5.根据权利要求4所述的方法,其特征在于,所述基于所述目标数据,确定所述目标第四任务的当前状态,包括以下至少之一:
在所述目标数据满足预设条件的情况下,将挂起状态作为所述目标第四任务的当前状态;
在所述目标数据不满足所述预设条件的情况下,将非挂起状态作为所述目标第四任务的当前状态。
6.根据权利要求1至5中任一项所述的方法,其特征在于,所述方法还包括:
响应于在第五任务的状态为完成状态的情况下,基于所述第五任务关联的第三存储信息,生成第一写入指令;
将所述第一写入指令发送至所述存储器;其中,所述第一写入指令用于指示所述存储器生成并向所述第二引擎发送第二唤醒指令;所述第二唤醒指令用于使得所述第二引擎基于接收的所述第二唤醒指令,将依赖所述第五任务的目标第六任务切换至第二目标状态。
7.一种任务控制方法,其特征在于,应用于存储器,所述方法包括:
对接收的第二写入指令进行解析,得到第一存储信息;其中,所述第一存储信息关联于第二引擎对应的第二任务,所述第二引擎基于图形处理器运行;
基于所述第一存储信息,生成第一唤醒指令;其中,所述第一唤醒指令表征所述第二任务为完成状态;
将所述第一唤醒指令发送至第一引擎中,以使得所述第一引擎基于接收的所述第一唤醒指令,将依赖所述第二任务的目标第一任务切换至第一目标状态;其中,所述第一引擎基于所述图形处理器运行,所述第一引擎不同于所述第二引擎,所述第一引擎的数量为至少一个,所述第二引擎的数量为至少一个。
8.根据权利要求7所述的方法,其特征在于,所述基于所述第一存储信息,生成第一唤醒指令,包括:
基于所述第二写入指令中的写入信息,更新所述第一存储信息;
基于所述第一存储信息,生成所述第一唤醒指令。
9.根据权利要求7或8所述的方法,其特征在于,所述方法还包括:
对接收的第一写入指令进行解析,得到第三存储信息;其中,所述第三存储信息关联所述第一引擎对应的第五任务;
基于所述第三存储信息,生成第二唤醒指令;
将所述第二唤醒指令发送至所述第二引擎中,以使得所述第二引擎基于接收的所述第二唤醒指令,将依赖所述第五任务的目标第六任务切换至第二目标状态。
10.一种任务控制方法,其特征在于,应用于基于图形处理器运行的第二引擎,所述方法包括:
响应于在第二任务的状态为完成状态的情况下,基于所述第二任务关联的第一存储信息,生成第二写入指令;
将所述第二写入指令发送至存储器中;其中,所述第二写入指令用于指示所述存储器生成并向第一引擎发送第一唤醒指令,所述第一唤醒指令用于使得所述第一引擎基于接收的所述第一唤醒指令,将依赖所述第二任务的目标第一任务切换至第一目标状态,所述第一引擎基于所述图形处理器运行,所述第一引擎不同于所述第二引擎,所述第一引擎的数量为至少一个,所述第二引擎的数量为至少一个,所述第一唤醒指令表征所述第二任务为完成状态。
11.根据权利要求10所述的方法,其特征在于,所述方法还包括:
对所述存储器发送的第二唤醒指令进行解析,得到第三存储信息;其中,所述第三存储信息关联于所述第一引擎对应的第五任务;
基于所述第三存储信息,从所述第二引擎对应的至少一个第六任务中确定依赖所述第五任务的目标第六任务;
将所述目标第六任务从当前状态切换至第二目标状态。
12.一种任务控制系统,其特征在于,所述系统包括存储器、及基于图形处理器运行的第一引擎,其中:
所述第一引擎,用于对所述存储器发送的第一唤醒指令进行解析,得到第一存储信息;其中,所述第一存储信息关联于第二引擎对应的第二任务,所述第二引擎基于所述图形处理器运行,所述第二引擎不同于所述第一引擎,所述第一引擎的数量为至少一个,所述第二引擎的数量为至少一个,所述第一唤醒指令表征所述第二任务为完成状态;基于所述第一存储信息,从所述第一引擎对应的至少一个第一任务中确定依赖所述第二任务的目标第一任务;将所述目标第一任务从当前状态切换至第一目标状态。
13.根据权利要求12所述的系统,其特征在于,所述系统还包括所述第二引擎;
所述第二引擎,用于:响应于在所述第二任务的状态为完成状态的情况下,基于所述第二任务关联的所述第一存储信息,生成第二写入指令,并将所述第二写入指令发送至所述存储器中;
所述存储器,还用于:接收所述第二引擎发送的所述第二写入指令;对所述第二写入指令进行解析,得到所述第一存储信息;基于所述第一存储信息,生成所述第一唤醒指令,并将所述第一唤醒指令发送至所述第一引擎中;
所述第一引擎,还用于:接收所述存储器发送的所述第一唤醒指令;对所述第一唤醒指令进行解析,得到所述第一存储信息。
14.根据权利要求12或13所述的系统,其特征在于,
所述第一引擎,还用于:响应于在第五任务的状态为完成状态的情况下,基于所述第五任务关联的第三存储信息,生成第一写入指令;将所述第一写入指令发送至所述存储器中;
所述存储器,还用于:接收所述第一引擎发送的所述第一写入指令;对所述第一写入指令进行解析,得到所述第三存储信息;基于所述第三存储信息,生成第二唤醒指令,并将所述第二唤醒指令发送至所述第二引擎中;
所述第二引擎,还用于:接收所述存储器发送的所述第二唤醒指令;对所述第二唤醒指令进行解析,得到所述第三存储信息;基于所述第三存储信息,从至少一个第六任务中确定依赖所述第五任务的目标第六任务;将所述目标第六任务从当前状态切换至第二目标状态。
15.一种任务控制装置,其特征在于,应用于基于图形处理器运行的第一引擎,所述装置包括:
第一确定模块,用于对存储器发送的第一唤醒指令进行解析,得到第一存储信息;其中,所述第一存储信息关联于第二引擎对应的第二任务,所述第二引擎基于所述图形处理器运行,所述第二引擎不同于所述第一引擎,所述第一引擎的数量为至少一个,所述第二引擎的数量为至少一个,所述第一唤醒指令表征所述第二任务为完成状态;
第二确定模块,用于基于所述第一存储信息,从所述第一引擎对应的至少一个第一任务中确定依赖所述第二任务的目标第一任务;
切换模块,用于将所述目标第一任务从当前状态切换至第一目标状态。
16.一种任务控制装置,其特征在于,应用于存储器,所述装置包括:
第三确定模块,用于对接收的第二写入指令进行解析,得到第一存储信息;其中,所述第一存储信息关联于第二引擎对应的第二任务,所述第二引擎基于图形处理器运行;
第一生成模块,用于基于所述第一存储信息,生成第一唤醒指令;其中,所述第一唤醒指令表征所述第二任务为完成状态;
第一发送模块,用于将所述第一唤醒指令发送至第一引擎中,以使得所述第一引擎基于接收的所述第一唤醒指令,将依赖所述第二任务的目标第一任务切换至第一目标状态,所述第一引擎不同于所述第二引擎,所述第一引擎的数量为至少一个,所述第二引擎的数量为至少一个。
17.一种任务控制装置,其特征在于,应用于基于图形处理器运行的第二引擎,所述装置包括:
第二生成模块,用于响应于在第二任务的状态为完成状态的情况下,基于所述第二任务关联的第一存储信息,生成第二写入指令;
第二发送模块,用于将所述第二写入指令发送至存储器中;其中,所述第二写入指令用于指示所述存储器生成并向第一引擎发送第一唤醒指令,所述第一唤醒指令用于使得所述第一引擎基于接收的所述第一唤醒指令,将依赖所述第二任务的目标第一任务切换至第一目标状态,所述第一引擎基于所述图形处理器运行,所述第一引擎不同于所述第二引擎,所述第一引擎的数量为至少一个,所述第二引擎的数量为至少一个,所述第一唤醒指令表征所述第二任务为完成状态。
18.一种电子设备,包括处理器和存储器,所述存储器存储有可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至6中任一项、权利要求7至9中任一项、或权利要求10至11中任一项所述方法。
19.一种计算机可读存储介质,其特征在于,其上存储有计算机程序,该计算机程序被处理器执行时实现权利要求1至6中任一项、权利要求7至9中任一项、或权利要求10至11中任一项所述方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310963943.3A CN116721007B (zh) | 2023-08-02 | 2023-08-02 | 任务控制方法、系统及装置、电子设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310963943.3A CN116721007B (zh) | 2023-08-02 | 2023-08-02 | 任务控制方法、系统及装置、电子设备和存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116721007A CN116721007A (zh) | 2023-09-08 |
CN116721007B true CN116721007B (zh) | 2023-10-27 |
Family
ID=87868192
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310963943.3A Active CN116721007B (zh) | 2023-08-02 | 2023-08-02 | 任务控制方法、系统及装置、电子设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116721007B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117519799A (zh) * | 2023-11-06 | 2024-02-06 | 摩尔线程智能科技(北京)有限责任公司 | 指令调度方法及装置、和电子设备 |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB201913580D0 (en) * | 2016-09-23 | 2019-11-06 | Imagination Tech Ltd | Task scheduling in a gpu |
CN110704173A (zh) * | 2019-09-29 | 2020-01-17 | 深圳前海环融联易信息科技服务有限公司 | 任务调度方法、调度系统、电子设备及计算机存储介质 |
CN112291293A (zh) * | 2019-07-27 | 2021-01-29 | 华为技术有限公司 | 任务处理方法、相关设备及计算机存储介质 |
CN112395246A (zh) * | 2019-08-15 | 2021-02-23 | 英特尔公司 | 用于实现多个推理计算引擎的方法和装置 |
CN112712298A (zh) * | 2021-01-21 | 2021-04-27 | 建信金融科技有限责任公司 | 工作流引擎、调度方法、装置、设备及存储介质 |
CN113377348A (zh) * | 2021-06-10 | 2021-09-10 | 平安科技(深圳)有限公司 | 应用于任务引擎的任务调整方法、相关装置和存储介质 |
CN114004730A (zh) * | 2021-11-03 | 2022-02-01 | 奥特贝睿(天津)科技有限公司 | 一种基于图形处理器的深度神经网络多模型并行推理方法 |
CN114153584A (zh) * | 2021-12-03 | 2022-03-08 | 完美世界互动(北京)科技有限公司 | 游戏帧循环的任务处理方法、设备及存储介质 |
CN115700484A (zh) * | 2021-07-27 | 2023-02-07 | 阿里巴巴新加坡控股有限公司 | 渲染方法、装置、设备和存储介质 |
CN116414464A (zh) * | 2023-05-26 | 2023-07-11 | 摩尔线程智能科技(北京)有限责任公司 | 调度任务的方法和装置、电子设备和计算机可读介质 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7830387B2 (en) * | 2006-11-07 | 2010-11-09 | Microsoft Corporation | Parallel engine support in display driver model |
US10198784B2 (en) * | 2016-07-29 | 2019-02-05 | Microsoft Technology Licensing, Llc | Capturing commands in a multi-engine graphics processing unit |
-
2023
- 2023-08-02 CN CN202310963943.3A patent/CN116721007B/zh active Active
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB201913580D0 (en) * | 2016-09-23 | 2019-11-06 | Imagination Tech Ltd | Task scheduling in a gpu |
CN112291293A (zh) * | 2019-07-27 | 2021-01-29 | 华为技术有限公司 | 任务处理方法、相关设备及计算机存储介质 |
CN112395246A (zh) * | 2019-08-15 | 2021-02-23 | 英特尔公司 | 用于实现多个推理计算引擎的方法和装置 |
CN110704173A (zh) * | 2019-09-29 | 2020-01-17 | 深圳前海环融联易信息科技服务有限公司 | 任务调度方法、调度系统、电子设备及计算机存储介质 |
CN112712298A (zh) * | 2021-01-21 | 2021-04-27 | 建信金融科技有限责任公司 | 工作流引擎、调度方法、装置、设备及存储介质 |
CN113377348A (zh) * | 2021-06-10 | 2021-09-10 | 平安科技(深圳)有限公司 | 应用于任务引擎的任务调整方法、相关装置和存储介质 |
CN115700484A (zh) * | 2021-07-27 | 2023-02-07 | 阿里巴巴新加坡控股有限公司 | 渲染方法、装置、设备和存储介质 |
CN114004730A (zh) * | 2021-11-03 | 2022-02-01 | 奥特贝睿(天津)科技有限公司 | 一种基于图形处理器的深度神经网络多模型并行推理方法 |
CN114153584A (zh) * | 2021-12-03 | 2022-03-08 | 完美世界互动(北京)科技有限公司 | 游戏帧循环的任务处理方法、设备及存储介质 |
CN116414464A (zh) * | 2023-05-26 | 2023-07-11 | 摩尔线程智能科技(北京)有限责任公司 | 调度任务的方法和装置、电子设备和计算机可读介质 |
Also Published As
Publication number | Publication date |
---|---|
CN116721007A (zh) | 2023-09-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2019174595A1 (zh) | 资源配置方法、装置、终端及存储介质 | |
WO2019085721A1 (en) | Method for resource allocation and terminal device | |
CN109947512B (zh) | 一种文本适配显示方法、装置、服务器及存储介质 | |
US20170192819A1 (en) | Method and electronic device for resource allocation | |
US11782756B2 (en) | Method and apparatus for scheduling processor core, and storage medium | |
CN116721007B (zh) | 任务控制方法、系统及装置、电子设备和存储介质 | |
WO2021139386A1 (zh) | 资源配置方法、装置、设备和存储介质 | |
US20210065694A1 (en) | Voice Interaction Method, System, Terminal Device and Medium | |
US20170177255A1 (en) | Method and electronic device for allocating dynamic memory resources | |
CN112604289B (zh) | 游戏地图生成方法、装置、设备和存储介质 | |
CN113453073A (zh) | 一种图像渲染方法、装置、电子设备及存储介质 | |
CN111679790A (zh) | 远程软件开发存储空间分配方法及装置 | |
CN111026493B (zh) | 界面渲染的处理方法和装置 | |
CN113971048A (zh) | 应用程序的启动方法及装置、存储介质及电子设备 | |
CN111045732A (zh) | 数据处理方法、芯片、设备及存储介质 | |
CN110286954B (zh) | 一种应用程序的启动方法、装置及存储介质 | |
CN115129460A (zh) | 获取算子硬件时间的方法、装置、计算机设备和存储介质 | |
CN115543317A (zh) | 前端页面开发方法及装置 | |
CN113609349A (zh) | 租赁车辆库存检测方法、装置及介质 | |
CN113467823A (zh) | 一种配置信息的获取方法、装置、系统及存储介质 | |
CN112540848A (zh) | 图像解压缩的设备、方法及可读存储介质 | |
CN115373646A (zh) | 扩展信息方法、装置和相关产品 | |
CN113626137A (zh) | 一种支持多格式镜像的实现方法、装置、设备和介质 | |
CN112559109A (zh) | 基于组件库的显示界面的生成方法及系统、设备及介质 | |
CN113626086A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |