CN115878299A - 图任务调度方法、装置及相关产品 - Google Patents
图任务调度方法、装置及相关产品 Download PDFInfo
- Publication number
- CN115878299A CN115878299A CN202111108271.5A CN202111108271A CN115878299A CN 115878299 A CN115878299 A CN 115878299A CN 202111108271 A CN202111108271 A CN 202111108271A CN 115878299 A CN115878299 A CN 115878299A
- Authority
- CN
- China
- Prior art keywords
- chip
- storage space
- task
- target
- graph
- 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
Images
Classifications
-
- 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
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明实施例提供一种图任务调度方法、装置及相关产品。该方法包括:通过获取目标图任务对应的访存信息;根据访存信息确定执行目标图任务所需要的预估片上存储空间;为目标图任务分配预估片上存储空间;控制目标图任务执行过程中独占预估片上存储空间。由于在执行多个图任务前,根据图任务对应的访存信息确定出的预估片上存储空间都是被对应的图任务所独占的,所以即使多个图任务共享相同的存储单元,同时执行多个图任务并不会造成存储资源的竞争,避免了对存储资源造成污染。
Description
技术领域
本发明实施例涉及数据处理技术领域,尤其涉及一种图任务调度方法、装置及相关产品。
背景技术
图任务是指采用图结构的方式表示多个连续任务的任务。图任务所对应的图结构中的每个节点表示一个任务,节点之间所形成的有向边表示任务之间的依赖关系。
在对每个图任务进行调度时,为了节省处理资源,会出现一个处理单元中存在多个图任务的情况,由多个图任务来共享该处理单元内的存储资源。所以导致在同时执行多个图任务中的任务时,多个图任务会竞争共享的存储资源,导致对共享的存储资源造成污染。
发明内容
本发明实施例提供一种图任务调度方法、装置及相关产品,用以解决现有技术中导致在执行多个图任务中的任务时,多个图任务会竞争共享的存储资源,导致共享的存储资源造成污染的技术问题。
第一方面,本发明实施例提供一种图任务调度方法,包括:
获取目标图任务对应的访存信息;
根据所述访存信息确定执行所述目标图任务所需要的预估片上存储空间;
为所述目标图任务分配所述预估片上存储空间;
控制所述目标图任务执行过程中独占所述预估片上存储空间。
第二方面,本发明实施例提供一种图任务调度装置,包括:
信息获取模块,用于获取目标图任务对应的访存信息;
空间确定模块,用于根据所述访存信息确定执行所述目标图任务所需要的预估片上存储空间;
空间分配模块,用于为所述目标图任务分配所述预估片上存储空间;
任务控制模块,用于控制所述目标图任务执行过程中独占所述预估片上存储空间。
第三方面,本发明实施例提供一种图任务调度装置,包括:至少一个处理器及存储器;
所述存储器存储计算机执行指令;
所述至少一个处理器执行所述存储器存储的计算机执行指令,使得所述至少一个处理器执行如第一方面所述的方法。
第四方面,本发明实施例提供一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机程序,所述计算机程序被至少一个处理器执行时,实现如第一方面所述的方法。
第五方面,本发明实施例提供一种人工智能芯片,所述人工智能芯片包括如第二方面或第三方面所述的图任务调度装置。
第六方面,本发明实施例提供一种板卡,所述板卡包括:存储器件、接口装置和控制器件以及如第五方面所述的人工智能芯片;
其中,所述人工智能芯片与所述存储器件、所述控制器件以及所述接口装置分别连接;
所述存储器件,用于存储数据;
所述接口装置,用于实现所述人工智能芯片与外部设备之间的数据传输;
所述控制器件,用于对所述人工智能芯片的状态进行监控。
本发明实施例提供的图任务调度方法、装置及相关产品,通过获取目标图任务对应的访存信息;根据访存信息确定执行目标图任务所需要的预估片上存储空间;为目标图任务分配预估片上存储空间;控制目标图任务执行过程中独占预估片上存储空间。由于在执行多个图任务前,根据图任务对应的访存信息确定出的预估片上存储空间都是被对应的图任务所独占的,所以即使多个图任务共享相同的存储单元,同时执行多个图任务并不会造成存储资源的竞争,避免了对存储资源造成污染。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。
图1为本申请实施例中处理资源示意图;
图2为本申请一个实施例提供的图任务调度方法的流程图;
图3为本申请实施例提供的图任务调度方法的一种网络架构图;
图4为本申请另一实施例提供的图任务调度方法的流程图;
图5为本申请再一实施例提供的图任务调度方法的流程图;
图6为本申请还一实施例提供的图任务调度方法的流程图;
图7为本申请又一实施例提供的图任务调度方法的流程图;
图8为本申请还一实施例提供的图任务调度方法的流程图;
图9为本申请一个实施例提供的图任务调度装置的结构示意图;
图10为本申请另一个实施例提供的图任务调度装置的结构示意图;
图11是示出根据本申请实施例的板卡的结构图;
图12是示出根据本申请实施例的组合处理装置的结构图;
图13是示出根据本申请实施例的单核计算装置的内部结构示意图
图14是示出根据本申请实施例的多核计算装置的内部结构示意图;
图15是示出根据本申请实施例的处理器核的内部结构示意图。
通过上述附图,已示出本公开明确的实施例,后文中将有更详细的描述。这些附图和文字描述并不是为了通过任何方式限制本公开构思的范围,而是通过参考特定实施例为本领域技术人员说明本公开的概念。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置和方法的例子。
为了清楚理解本申请的技术方案,首先对现有技术的方案进行详细介绍。
在处理图任务时,首先由主机端(简称:host)将任务下发到设备端(简称:device),再由设备端的处理单元来执行任务。设备端可以是人工智能处理器等多核处理器,其可以包括多个处理单元。如图1所示,多个处理单元可以按照NUMA架构设置,该多个处理单元可以被划分为四个象限,每个象限中包括多个运算单元和至少一个存储单元。如图1所示,每个象限的处理单元包括4个运算单元和一个存储单元。具体地,象限1中包括存储单元1和运算单元1-4;象限2中包括存储单元2和运算单元5-8;象限3中包括存储单元3和运算单元9-12;象限4中包括存储单元4和运算单元13-16。应当清楚的是,图1仅以设备端处理器包含16个运算单元进行举例,并不用于限定设备端的具体结构及其所包含的运算单元和存储单元的数量。当然,在其他可选实施例中,该设备端处理器所包含的运算单元也可以是8个或32等,此时,每个象限中的运算单元的数量不限于4个。
在对每个图任务进行调度时,为了节省处理资源,会出现一个处理单元中存在多个图任务的情况。这多个图任务中每个图任务中的任务会独占对应的运算单元。但这多个图任务会共享该处理单元内的存储资源。
示例性的,如图1中,第一图任务中的第一任务独占象限1中的运算单元1和运算单元2。第二图任务中的第一任务独占象限1中的运算单元3和运算单元4。但第一个图任务中的第一任务和第二图任务中的第一任务共享存储单元1。若第一图任务中的第一任务去访问存储单元1的同时,第二图任务中的第一任务也去访问存储单元1,则两个任务会竞争存储单元1的端口带宽,且可能存在访存冲突。并且若第一图任务中的第一任务存储数据所占用的容量太多,会对第二图任务的第一任务存储数据造成影响。例如,在不同任务之间存在访存冲突时,在后任务可能会覆盖在先任务的数据,以顺利完成本任务的数据存储,这样会造成在先任务的数据的丢失。这都会造成污染共享的存储单元1。
所以面对现有技术中对共享存储单元造成污染的问题,发明人创造性地研究发现,由于多个图任务对同一个存储单元进行共享时,没有进行存储单元中存储空间在逻辑上的划分和独占,才会导致存储单元的污染问题。所以在进行图任务调度时,对存储资源进行调度需要每个图任务独占一部分片上存储空间。这部分片上存储空间只能被独占的图任务进行访存。所以即使多个图任务共享相同的存储单元,由于在存储单元中对于每个图任务的片上存储空间都是被独占的,也不会造成共享存储单元的污染。而在确定每个图任务独占的片上存储空间时,需要获取图任务对应的访存信息,根据访存信息确定执行图任务所需要的预估片上存储空间,为图任务分配预估片上存储空间。由于在执行多个图任务前,为每个图任务分配的片上存储空间都是被对应的图任务所独占的,所以即使多个图任务共享相同的存储单元,同时执行多个图任务并不会造成存储资源的竞争,避免了对存储资源造成污染。
下面以具体地实施例对本发明的技术方案以及本申请的技术方案如何解决上述技术问题进行详细说明。下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例中不再赘述。下面将结合附图,对本发明的实施例进行描述。
图2为本申请一个实施例提供的图任务调度方法的流程图,如图2所示,本实施例提供的图任务调度方法可以应用于图3所示的异构计算系统2。本实施例的执行主体为设备端。如图3所示,主机端21与设备端22构成异构计算系统2。在主机端21中包括:处理器211(如CPU)及主机内存212。主机端可将目标图任务和每个任务对应的待占用资源信息存储在主机内存212中。设备端22与主机端21进行通信,其可以接收主机端21发送的目标图任务及目标图任务中每个任务对应的待占用资源信息。本实施例中,该设备端可以是芯片或板卡等,该设备端可以包括具有多个运算单元的人工智能处理器。进一步地,该设备端还可以包括一任务调度器,该任务调度器用以实现本申请实施例的图任务调度方法。
如图2所示,本实施例提供的图任务调度方法包括以下步骤:
步骤101,获取目标图任务对应的访存信息。
其中,图任务可以是神经网络任务,图任务中的每个任务节点可以是神经网络任务中的一个算子(如卷积、全连接、激活等等)。目标图任务为设备端需要进行调度及执行的图任务。
本实施例中,访存信息可以包括访存数据量,还可以包括数据局部性信息。其中,数据局部性信息可以包括:时间局部性信息和空间局部性信息。
步骤102,根据访存信息确定执行目标图任务所需要的预估片上存储空间。
本实施例中,根据访存信息对执行目标图任务所需要的片上存储空间进行估算,以获得预估片上存储空间。可选地,可直接根据访存数据量估算出执行目标图任务所需要的片上存储空间。或者可选地,也可以首先根据访存数据量对执行目标图任务所需要的片上存储空间进行初步估算,获得初始片上存储空间,然后再根据数据局部性信息对初始片上存储空间进行调整,获得预估片上存储空间。
其中,预估片上存储空间可以为至少一个存储单元对应的存储空间,也可以为一个存储单元中的部分存储空间,或者还可以为至少一个存储单元对应的存储空间和一个存储单元中的部分存储空间之和。
步骤103,为目标图任务分配预估片上存储空间。
本实施例中,可根据预估片上存储空间的大小为目标图任务分配对应的处于空闲状态的片上存储空间。可选地,在为目标图任务分配预估片上存储空间时,可将预估片上存储空间所属的存储单元与目标图任务的目标运算单元分配在相同的处理单元中,以降低访存开销。
步骤104,控制目标图任务执行过程中独占预估片上存储空间。
本实施例中,采用预估片上存储空间存储目标任务执行过程中的访存数据,并控制目标图任务执行过程中独占该预估片上存储空间。在有其他图任务对预估片上存储空间进行访存时,拒绝其他图任务对该预估片上存储空间进行访存。
本实施例提供的图任务调度方法,通过获取目标图任务对应的访存信息;根据访存信息确定执行目标图任务所需要的预估片上存储空间;为目标图任务分配预估片上存储空间;控制目标图任务执行过程中独占预估片上存储空间。由于在执行多个图任务前,根据图任务对应的访存信息确定出的预估片上存储空间都是被对应的图任务所独占的,所以即使多个图任务共享相同的存储单元,同时执行多个图任务并不会造成存储资源的竞争,避免了对存储资源造成污染。
作为一种可选实施方式,本实施例中,访存信息包括访存数据量。则步骤102可以包括以下步骤:
步骤1021,根据访存数据量确定执行目标图任务所需要的初始片上存储空间。
步骤1022,将初始片上存储空间确定为预估片上存储空间。
本实施例中,在将该图任务发送至设备端执行之前,编译器可以将该图任务翻译为设备端的处理单元能够执行的硬件指令,该硬件指令可以包括操作码和操作数,操作码用于指示该图任务中的任务所需执行的运算或访存操作,操作数用于指示相应操作所涉及的数据信息,如所需访问数据的地址信息、数据的大小(即访存数据量)等等。在将图任务发送至设备端时,可以将该图任务对应的硬件指令一起发送至设备端,以便设备端可以执行该硬件指令。设备端可以根据相应的硬件指令获取到目标图任务对应的访存数据量。进而根据访存数据量初步估计出执行目标图任务所需要的片上存储空间作为预估片上存储空间。
由于执行目标图任务所需要的访存的存储空间的大小不仅与访存数据量相关,而且还与数据局部性信息有关。所以为了能够更准确地确定出执行目标图任务所需要的预估片上存储空间,访存信息包括访存数据量和数据局部性信息。相应地,步骤102包括以下步骤:
步骤102a,根据访存数据量确定执行目标图任务所需要的初始片上存储空间。
步骤102b,根据数据局部性信息对初始片上存储空间进行调整,以获得预估片上存储空间。
其中,数据局部性信息包括:时间局部性信息和空间局部性信息。
具体地,本实施例中,首先根据访存数据量初步估计出执行目标图任务所需要的片上存储空间作为初始片上存储空间。然后再根据时间局部性信息和空间局部性信息对初始片上存储空间进行调整,获得最终的预估片上存储空间。
具体地,时间局部性信息可采用目标图任务中在生命周期中所访问的次数来表示。空间局部性信息可采用目标图任务所需要的数据从片外存储空间搬运到片上存储空间每次搬运的数据量表示。所以可根据目标图任务中在生命周期中所访问的次数及目标图任务所需要的数据从片外存储空间搬运到片上存储空间每次搬运的数据量对初始片上存储空间进行调整,获得最终的预估片上存储空间。
本实施例提供的图任务调度方法,在根据访存信息确定执行目标图任务所需要的预估片上存储空间时,根据访存数据量确定执行目标图任务所需要的初始片上存储空间;根据数据局部性信息对初始片上存储空间进行调整,以获得预估片上存储空间,由于在确定预估片上存储空间时,不仅考虑了访存数据量相关,而且考虑了数据局部性信息,所以能够确定出更加准确的预估片上存储空间。
作为一种可选实施方式,本实施例中,为了保证执行目标图任务期间,禁止其他图任务占用为目标图任务分配的预估片上存储空间,则在步骤103之后,还包括:对目标图任务对应的预估片上存储空间进行被独占的标记操作。
具体地,可采用全局变量标记被目标图任务独占的预估片上存储空间。可选地,在其他任务的调度过程中,通过查看全局变量确定片上存储空间的空闲存储空间,其中,被标记为独占的预估片上存储空间可视为已被占用的存储空间,从而可以为其他任务分配被独占的预估片上存储空间以外的其他存储空间。进而在执行其他图任务时,采用除独占的预估片上存储空间以外的存储空间对其他图任务的数据进行访存。
本实施例提供的图任务调度方法,在为目标图任务分配预估片上存储空间之后,对目标图任务对应的预估片上存储空间进行被独占的标记操作,能够保证预估片上存储空间被目标图任务独占,其他图任务根据被独占的标记不会对目标图任务对应的预估片上存储空间进行访存。
图4为本申请另一实施例提供的图任务调度方法的流程图,如图4所示,本实施例提供的图任务调度方法,在上述实施例提供的图任务调度方法的基础上,在步骤103之后,还包括了其他步骤,则本实施例提供的图任务调度方法在步骤103之后,还包括以下步骤:
步骤201,为目标图任务分配目标运算单元,目标运算单元与预估片上存储空间所属的存储单元在相同的处理单元内。
具体地,本实施例中,可获取目标图任务每个任务对应的资源占用信息,并根据各资源占用信息为目标图任务中的每个任务分配对应的目标运算单元。在为每个任务分配对应的目标运算单元时,使目标运算单元与预估片上存储空间所属的存储单元在相同的处理单元内。
示例性的,如图1所示,为目标图任务分配的目标运算单元包括运算单元1到运算单元6,则为目标图任务分配的预估片上存储空间包括存储单元1的全部存储空间和存储单元2中的部分片上存储空间。
步骤202,对目标图任务对应的目标运算单元进行被独占的标记操作。
本实施例中,可采用全局变量标记被目标图任务独占的目标运算单元。在其他图任务被调度分配时,查看全局变量中被目标图任务独占的目标运算单元,确定目标运算单元为已被占用的运算单元,进而在执行其他图任务时,采用除独占目标运算单元以外的目标运算单元来执行其他图任务。
步骤203,控制目标图任务执行过程中独占目标运算单元。
本实施例中,控制目标图任务执行过程中独占目标运算单元,并独占在相同处理单元中的预估片上存储空间。这样可以实现只有目标运算单元对独占的预估片上存储空间中数据进行访存,从而可以降低访存开销。若有其他图任务需要同时执行,则可以采用除独占目标运算单元以外的目标运算单元来执行其他图任务,这样也实现了运算单元的隔离,从而避免了不同图任务之间在执行过程中的影响。
本实施例提供的图任务调度方法,为目标图任务分配目标运算单元,目标运算单元与预估片上存储空间所属的存储单元在相同的处理单元内;对目标图任务对应的目标运算单元进行被独占的标记操作;控制目标图任务执行过程中独占目标运算单元。由于目标运算单元与预估片上存储空间所属的存储单元在相同的处理单元内,所以能够使目标运算单元对预估片上存储空间中所需要的数据进行快速访存。并且由于目标运算单元也是被目标图任务所独占的,所以能够加速目标图任务的执行。
作为一种可选实施方式,如图5所示,本实施例中还包括以下步骤:
步骤204,若为其他图任务分配了与目标图任务在相同处理单元中除目标运算单元外的其他运算单元,则为其他图任务分配预估片上存储空间所属的存储单元中的其他片上存储空间。
步骤205,控制其他图任务执行过程中独占其他片上存储空间。
具体地,本实施例中,在对目标图任务进行调度后,在需要对其他图任务也进行调度的情况下,为了节省处理资源,若在目标图任务所在的处理单元中还包括其他未被目标图任务独占的运算单元,则将未被目标图任务独占的运算单元分配给其他图任务,被其他图任务所独占。所以出现了为其他图任务分配的运算单元与目标图任务所独占的目标运算单元在相同的处理单元中的情况。此时在为其他图任务分配预估片上存储空间时,将目标图任务所独占的预估片上存储空间所属的存储单元中的其他片上存储空间分配给其他图任务,以控制其他图任务独占的运算单元对这些片上存储空间进行访存。
示例性的,如图1所示,为目标图任务分配的目标运算单元包括运算单元1到运算单元6,则为目标图任务分配的预估片上存储空间包括存储单元1的全部存储空间和存储单元2中的部分片上存储空间。则在处理单元2中包括有未被目标图任务独占的运算单元7和8。在需要对其他图任务也进行调度的情况下,为其他图任务分配了运算单元7和8。将存储单元2中的另一部分片上存储空间分配给其他图任务,并被其他图任务所独占。其中,对于多个图任务共用同一存储单元的情形,每个图任务可以独占地使用该存储单元中的不同存储地址,不同的存储地址之间互不交叠,从而实现了存储空间的隔离,避免了不同图任务之间的访存冲突。例如,当存储单元2对应的地址空间为0-1024,且目标图任务已经独占其中的地址空间0-512,则其他图任务只能独占的使用剩余的513-1024。
本实施例提供的图任务调度方法,还包括:若为其他图任务分配了与目标图任务在相同处理单元中除目标运算单元外的其他运算单元,则为其他图任务分配预估片上存储空间所属的存储单元中的其他片上存储空间,控制其他图任务执行过程中独占其他片上存储空间。能够在多个图任务共享相同的存储单元时,也能够独占在相同存储单元中不同的预估片上存储空间,同时执行多个图任务并不会造成存储资源的竞争,避免了对存储资源造成污染。
图6为本申请还一实施例提供的图任务调度方法的流程图,如图6所示,本实施例提供的图任务调度方法,在上述实施例提供的图任务调度方法的基础上,在步骤104执行过程中还包括了以下步骤:
步骤301,判断目标图任务执行过程中预估片上存储空间是否充足,若是,则继续执行步骤104,否则执行步骤302。
步骤302,将预估片上存储空间中的部分数据写回到片外内存中,以空出继续执行目标图任务所需要的额外片上存储空间。
步骤303,采用额外片上存储空间继续执行目标图任务。
本实施例中,控制目标图任务执行过程中判断预估片上存储空间是否充足。若充足,则继续执行目标图任务,并在执行目标图任务过程中独占预估片上存储空间。若不足,则为了保证目标图任务地顺利执行,将预估片上存储空间中的部分数据写回到片外内存中,将空余出来的额外片上存储空间继续供目标图任务独占使用。本实施例中,该额外片上存储空间为预估片上存储空间的一部分或全部。可选地,当预估片上存储空间不能满足该目标图任务的执行需求时,可以该预估片上存储空间的全部数据均拷贝至片外存储(例如片外DDR)中。可选地,当预估片上存储空间不能满足该目标图任务的执行需求时,还可以仅将一段时间内不会访问的数据或在图任务执行过程中只访问预设次数的数据拷贝至片外存储中,而将图任务执行过程中需要多次访问的数据暂存在片上存储空间中,这样不仅可以空余出片上存储空间以满足图任务的执行需求,还可以减少访问片外数据的次数,从而降低图任务执行过程中的访存开销。即在确定写回到片外内存中的部分数据时,可根据在预估片上存储空间中数据的访存频率将访问频率最小的数据确定为部分数据。或者根据数据的访存时间将访存时间最远的数据确定为部分数据。
本实施例提供的图任务调度方法,若确定目标图任务执行过程中预估片上存储空间不足,则将预估片上存储空间中的部分数据写回到片外内存中,以空出继续执行目标图任务所需要的额外片上存储空间;采用额外片上存储空间继续执行目标图任务。能够在预估片上存储空间不足时,通过将部分数据写回到片外内存中的方式,将空余出来的额外片上存储空间继续供目标图任务独占使用。能够保证目标图任务的顺利执行,并且保证执行过程中避免对存储资源造成污染。
图7为本申请又一实施例提供的图任务调度方法的流程图,如图7所示,本实施例提供的图任务调度方法,当预估片上存储空间不能满足该目标图任务的执行需求时,可以适当扩充该片上存储空间。扩充后的片上存储空间大于预估片上存储空间。具体地,在上述实施例提供的图任务调度方法的基础上,在步骤104执行过程中还包括了以下步骤:
步骤401,判断目标图任务执行过程中预估片上存储空间是否充足,若是,则继续执行步骤104,否则执行步骤402。
步骤402,判断是否存在片上空闲存储空间,若是,则执行步骤403,否则执行步骤404。
可选地,本实施例中,判断是否存在片上空闲存储空间,包括:
判断预估片上存储空间所属的存储单元中是否存在片上空闲存储空间。
本实施例中,为了能够使目标图任务的目标运算单元快速对预估片上存储空间进行访存,预估片上存储空间所属存储单元与目标运算单元在相同的处理单元中。而在确定出预估片上存储空间不足时,为了使目标运算单元仍然能够快速对补充的片上空闲存储空间进行访存,可以首先判断预估片上存储空间所属的存储单元中是否存在片上空闲存储空间。其中,片上空闲存储空间可以为未被任何图任务所独占的片上存储空间,或者为被其他图任务独占后被释放的片上存储空间。即本实施在对该目标图任务独占的片上存储空间进行扩充时,优先考虑该目标图任务独占的运算单元最邻近的存储单元。如果目标图任务独占的运算单元最邻近的存储单元中不存在空闲存储空间,而可以判断其他处理单元中的存储单元中是否存储空闲存储空间。
步骤403,将片上空闲存储空间进行被目标图任务独占的标记操作。
本实施例中,通过将预估存储空间以外的片上空闲存储空间标记为目标图任务独占的存储空间,从而实现了目标图任务对应的存储空间的扩充,该扩充后的存储空间能够满足该图任务的执行需求。
当然,若该扩充后的存储空间仍然不能满足图任务的执行需求,且设备端不存在片上空闲存储空间,此时可以结合图6所示的实施例的方式,将扩充后的存储空间中的部分数据拷贝至片外存储空间,具体实现方式可参见上文的描述。
可选地,上述片上空闲存储空间包括被其他图任务独占后被释放的片上存储空间。则步骤403包括以下步骤:
步骤4031,确定继续执行目标图任务所需要的额外片上存储空间。
步骤4032,从被释放的片上存储空间中分配额外片上存储空间给目标图任务。
步骤4033,将额外片上存储空间进行被目标图任务独占的标记操作。
本实施例中,从被其他图任务独占后被释放的片上存储空间中确定出继续执行目标图任务所需要的额外片上存储空间。将额外片上存储空间分配给目标图任务,对额外片上存储空间进行被独占的标记操作。进而该预估存储空间以及额外片上存储空间之和可以满足图任务的执行需求,设备端可以继续执行目标图任务。
其中,对额外片上存储空间进行被独占的标记操作时,可采用全局变量标记被目标图任务独占的额外片上存储空间。在其他任务被调度时,查看全局变量中被目标图任务独占的额外片上存储空间,进而在执行其他图任务时,采用除独占的额外片上存储空间和预估片上存储空间以外的存储空间对其他图任务的数据进行存储。
步骤404,将预估片上存储空间中的部分数据写回到片外内存中,以空出继续执行目标图任务所需要的额外片上存储空间;采用额外片上存储空间继续执行目标图任务。
本实施例中,步骤404的实现方式与步骤302和步骤303的实现方式类似,在此不再一一赘述。
本实施例提供的图任务调度方法,通过判断目标图任务执行过程中预估片上存储空间是否充足,若不足,则优先判断是否存在片上空闲存储空间,若确定存在片上空闲存储空间,则继续采用片上空闲存储空间执行目标图任务,若确定不存在片上空闲存储空间,则再将预估片上存储空间中的部分数据写回到片外内存中,以空出继续执行目标图任务所需要的额外片上存储空间;采用额外片上存储空间继续执行目标图任务。能够在预估片上存储空间不足时,优先将片上空闲存储空间继续供目标图任务执行使用,进而使目标运算单元能够继续快速访存片上空闲存储空间。
图8为本申请又一实施例提供的图任务调度方法的流程图,如图8所示,本实施例提供的图任务调度方法,在上述实施例提供的图任务调度方法的基础上,还包括以下步骤:
步骤501,监测目标图任务中每个任务是否均执行完毕,若是,则执行步骤502,否则在到达监测周期后,继续执行步骤501。
本实施例中,由于目标图任务中的各个任务具有执行顺序,所以在监测目标图任务中每个任务是否均执行完毕时,可监测目标图任务中的最后一个执行的任务是否执行完毕,若确定目标图任务中的最后一个执行的任务也执行完毕,则确定目标图任务中每个任务均执行完毕。若确定目标图任务中的最后一个执行的任务未执行完毕,则确定目标图任务中并非每个任务均执行完毕。
步骤502,释放被独占的目标运算单元和被独占的存储空间。
步骤503,将目标图任务被独占的目标运算单元标记和被独占的存储空间标记进行去除。
本实施例中,若确定最后一个执行的任务也执行完毕,则确定目标图任务中每个任务均执行完毕,进而确定目标图任务执行完毕,在整个目标图任务执行完毕后,释放被独占的目标运算单元和被独占的存储空间。
本实施例中,为了保证在目标图任务执行结束后,其他图任务也能采用目标图任务对应的被独占的目标运算单元标记和被独占的存储空间执行,将目标图任务被独占的目标运算单元标记和被独占的存储空间标记进行去除。如将全局变量中标记的被独占的目标运算单元和被独占的存储空间置为空。
本实施例提供的图任务调度方法,监测目标图任务中每个任务是否均执行完毕;若监测到目标图任务中每个任务均执行完毕,则释放被独占的目标运算单元和被独占的存储空间;将目标图任务被独占的目标运算单元标记和被独占的存储空间标记进行去除。能够在目标图任务执行完毕后,再集中对被独占的目标运算单元和被独占的存储空间进行释放,能够有效保证目标图任务执行过程中不被其他图任务所干扰,提高了目标图任务的执行效率,保证被独占的存储空间不被其他图任务所污染。
图9为本申请一个实施例提供的图任务调度装置的结构示意图,如图9所示,本实施例提供的图任务调度装置位于设备端。则本实施例提供的图任务调度装置60包括:信息获取模块61,空间确定模块62,空间分配模块63及任务控制模块64。
其中,信息获取模块61,用于获取目标图任务对应的访存信息。空间确定模块62,用于根据访存信息确定执行目标图任务所需要的预估片上存储空间。空间分配模块63,用于为目标图任务分配预估片上存储空间。任务控制模块64,用于控制目标图任务执行过程中独占预估片上存储空间。
本实施例提供的图任务调度装置可以执行图2所示方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。
可选地,访存信息包括;访存数据量;相应地,空间确定模块62,具体用于:根据访存数据量确定执行目标图任务所需要的初始片上存储空间;将初始片上存储空间确定为预估片上存储空间。
可选地,访存信息包括:访存数据量和数据局部性信息;相应地,空间确定模块62,具体用于:根据访存数据量确定执行目标图任务所需要的初始片上存储空间;根据数据局部性信息对初始片上存储空间进行调整,以获得预估片上存储空间。
可选地,还包括:标记操作模块,用于对目标图任务对应的预估片上存储空间进行被独占的标记操作。
可选地,还包括:运算分配模块,用于为目标图任务分配目标运算单元,目标运算单元与预估片上存储空间所属的存储单元在相同的处理单元内。标记操作模块,还用于对目标图任务对应的目标运算单元进行被独占的标记操作。任务控制模块64,还用于控制目标图任务执行过程中独占目标运算单元。
可选地,空间分配模块63,还用于:若为其他图任务分配了与目标图任务在相同处理单元中除目标运算单元外的其他运算单元,则为其他图任务分配预估片上存储空间所属的存储单元中的其他片上存储空间。任务控制模块64,还用于控制其他图任务执行过程中独占其他片上存储空间。
可选地,还包括:数据写回模块,用于若确定目标图任务执行过程中预估片上存储空间不足,则将预估片上存储空间中的部分数据写回到片外内存中,以空出继续执行目标图任务所需要的额外片上存储空间。
可选地,还包括:空间判断模块,用于若确定目标图任务执行过程中预估片上存储空间不足,则判断是否存在片上空闲存储空间。标记操作模块,还用于若确定存在片上空闲存储空间,则将片上空闲存储空间进行被目标图任务独占的标记操作。
可选地,空间判断模块,具体用于判断预估片上存储空间所属的存储单元中是否存在片上空闲存储空间。
可选地,片上空闲存储空间包括被其他图任务独占后被释放的片上存储空间;
标记操作模块,具体用于确定继续执行目标图任务所需要的额外片上存储空间;从被释放的片上存储空间中分配额外片上存储空间给目标图任务;将额外片上存储空间进行被目标图任务独占的标记操作。
可选地,还包括:监测模块、释放模块和标记去除模块。
监测模块,用于监测目标图任务中每个任务是否均执行完毕。释放模块,用于若监测到目标图任务中每个任务均执行完毕,则释放被独占的目标运算单元和被独占的存储空间。标记去除模块,用于将目标图任务被独占的目标运算单元标记和被独占的存储空间标记进行去除。
图10为本申请另一个实施例提供的图任务调度装置的结构示意图,如图10所示,本实施例提供的图任务调度装置70,包括:至少一个处理器71及存储器72;
存储器72存储计算机执行指令;
至少一个处理器71执行存储器72存储的计算机执行指令,使得至少一个处理器执行图2、图4-图8任意一个实施例提供的图任务调度方法。
在一种可能的实现方式中,还公开了一种计算机可读存储介质,计算机可读存储介质中存储有计算机程序,计算机程序被至少一个处理器执行时,实现图2、图4-图8任意一个实施例提供的图任务调度方法。
在一种可能的实现方式中,还公开了一种板卡,板卡可为设备端的板卡。图11示出本申请实施例的一种板卡80的结构示意图。如图11所示,板卡80包括芯片801,其是一种系统级芯片(System on Chip,SoC),或称片上系统,集成有一个或多个组合处理装置,组合处理装置是一种人工智能运算单元,用以支持各类深度学习和机器学习算法,满足计算机视觉、语音、自然语言处理、数据挖掘等领域复杂场景下的智能处理需求。特别是深度学习技术大量应用在云端智能领域,云端智能应用的一个显著特点是输入数据量大,对平台的存储能力和计算能力有很高的要求,此实施例的板卡80适用在云端智能应用,具有庞大的片外存储、片上存储和强大的计算能力。
芯片801通过对外接口装置802与外部设备803相连接。外部设备803例如是服务器、计算机、摄像头、显示器、鼠标、键盘、网卡或wifi接口等。待处理的数据可以由外部设备803通过对外接口装置802传递至芯片801。芯片801的计算结果可以经由对外接口装置802传送回外部设备803。根据不同的应用场景,对外接口装置802可以具有不同的接口形式,例如PCIe接口等。
板卡80还包括用于存储数据的存储器件804,其包括一个或多个存储单元805。存储器件804通过总线与控制器件806和芯片801进行连接和数据传输。板卡80中的控制器件806配置用于对芯片801的状态进行调控。为此,在一个应用场景中,控制器件806可以包括单片机(Micro Controller Unit,MCU)。
在一种可能的实现方式中,还提供了一种组合处理装置,图12是示出此实施例的芯片801中的组合处理装置的结构图。如图12中所示,组合处理装置90包括计算装置901、接口装置902、处理装置903和存储装置904。
计算装置901配置成执行用户指定的操作,主要实现为单核智能处理器或者多核智能处理器,用以执行深度学习或机器学习的计算,其可以通过接口装置902与处理装置903进行交互,以共同完成用户指定的操作。
接口装置902用于在计算装置901与处理装置903间传输数据和控制指令。例如,计算装置901可以经由接口装置902从处理装置903中获取输入数据,写入计算装置901片上的存储装置。进一步,计算装置901可以经由接口装置902从处理装置903中获取控制指令,写入计算装置901片上的控制缓存中。替代地或可选地,接口装置902也可以读取计算装置901的存储装置中的数据并传输给处理装置903。
处理装置903作为通用的处理装置,执行包括但不限于数据搬运、对计算装置901的开启和/或停止等基本控制。根据实现方式的不同,处理装置903可以是中央处理器(central processing unit,CPU)、图形处理器(graphics processing unit,GPU)或其他通用和/或专用处理器中的一种或多种类型的处理器,这些处理器包括但不限于数字信号处理器(digital signal processor,DSP)、专用集成电路(application specificintegrated circuit,ASIC)、现场可编程门阵列(field-programmable gate array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等,并且其数目可以根据实际需要来确定。如前,仅就本申请的计算装置901而言,其可以视为具有单核结构或者同构多核结构。然而,当将计算装置901和处理装置903整合共同考虑时,二者视为形成异构多核结构。
存储装置904用以存储待处理的数据,其可以是DRAM 904,为DDR内存,大小通常为16G或更大,用于保存计算装置901和/或处理装置903的数据。
图13中,是计算装置为单核的内部结构示意图。单核计算装置1000用以处理计算机视觉、语音、自然语言、数据挖掘等输入数据,单核计算装置1000包括三大模块:控制模块1001、运算模块1002及存储模块1003。
控制模块1001用以协调并控制运算模块1002和存储模块1003的工作,以完成深度学习的任务,其包括取指单元(instruction fetch unit,IFU)10011及指令译码单元(instruction decode unit,IDU)10012。取指单元10011用以获取来自处理装置的指令,指令译码单元10012则将获取的指令进行译码,并将译码结果作为控制信息发送给运算模块1002和存储模块1003。
运算模块1002包括向量运算单元10021及矩阵运算单元10022。向量运算单元10021用以执行向量运算,可支持向量乘、加、非线性变换等复杂运算;矩阵运算单元10022负责深度学习算法的核心计算,即矩阵乘及卷积。
存储模块1003用来存储或搬运相关数据,包括神经元存储单元(neuron RAM,NRAM)10031、参数存储单元(weight RAM,WRAM)10032、直接内存访问模块(direct memoryaccess,DMA)10033。NRAM 10031用以存储输入神经元、输出神经元和计算后的中间结果;WRAM 10032则用以存储深度学习网络的卷积核,即权值;DMA 10033通过总线1004连接DRAM904,负责单核计算装置1000与DRAM 904间的数据搬运。
图14中,示出了计算装置为多核的内部结构示意图。多核计算装置1101采用分层结构设计,多核计算装置1101作为一个片上系统,其包括至少一个集群(cluster),每个集群又包括多个处理器核,换言之,多核计算装置1101是以片上系统-集群-处理器核的层次所构成的。
以片上系统的层级来看,如图14所示,多核计算装置1100包括外部存储控制器1101、外设通信模块1102、片上互联模块1103、同步模块1104以及多个集群1105。
外部存储控制器1101可以有多个,在图中示例性地展示2个,其用以响应处理器核发出的访问请求,访问外部存储设备,例如图12中的DRAM 904,从而自片外读取数据或是将数据写入。外设通信模块1102用以通过接口装置902接收来自处理装置的控制信号,启动计算装置900执行任务。片上互联模块1103将外部存储控制器1101、外设通信模块1102及多个集群1105连接起来,用以在各个模块间传输数据和控制信号。同步模块1104是一种全局同步屏障控制器(global barrier controller,GBC),用以协调各集群的工作进度,确保信息的同步。多个集群1105是多核计算装置1100的计算核心,在图中示例性地展示4个,4个集群1105形成如图1中的4个象限。随着硬件的发展,本申请的多核计算装置1101还可以包括8个、16个、64个、甚至更多的集群1105。集群1105用以高效地执行深度学习算法。
以集群的层级来看,如图14所示,每个集群1105包括多个处理器核(IPU core)1106及一个存储核(MEM core)1107。示例性的,每个集群1105包括4个处理器核和1个存储器,存储器可以为DRAM 904。每个处理器核相当于图1中的一个运算单元,每个存储器相当于图1中的一个存储单元。
处理器核1106在图中示例性地展示4个,本申请不限制处理器核1106的数量。其内部架构如图12所示。每个处理器核1106类似于图15的单核计算装置1200,同样包括三大模块:控制模块1201、运算模块1202及存储模块1203。控制模块1201、运算模块1202及存储模块1203的功用及结构大致与控制模块1001、运算模块1002及存储模块1003相同,控制模块1201包括取指单元12011和指令译码单元12012。运算模块1202包括向量运算单元12021和矩阵运算单元12022。不再赘述。需特别说明的是,存储模块1203包括输入/输出直接内存访问模块(input/output direct memory access,IODMA)12033、搬运直接内存访问模块(move direct memory access,MVDMA)12034。IODMA 12033通过广播总线1109控制NRAM12031/WRAM 12032与DRAM 904的访存;MVDMA 12034则用以控制NRAM 12031/WRAM 12032与存储单元(SRAM)1108的访存。
回到图14,存储核1107主要用以存储和通信,即存储处理器核1106间的共享数据或中间结果、以及执行集群1105与DRAM 904之间的通信、集群1105间彼此的通信、处理器核1106间彼此的通信等。在其他实施例中,存储核1107具有标量运算的能力,用以执行标量运算。
存储核1107包括SRAM 1108、广播总线1109、集群直接内存访问模块(clusterdirect memory access,CDMA)1110及全局直接内存访问模块(global direct memoryaccess,GDMA)1111。SRAM 1108承担高性能数据中转站的角色,在同一个集群1105内不同处理器核1106之间所复用的数据不需要通过处理器核1106各自向DRAM 904获得,而是经SRAM1108在处理器核1106间中转,存储核1107只需要将复用的数据从SRAM 1108迅速分发给多个处理器核1106即可,以提高核间通讯效率,亦大大减少片上片外的输入/输出访问。
广播总线1109、CDMA 910及GDMA 1111则分别用来执行处理器核1106间的通信、集群1105间的通信和集群1105与DRAM 904的数据传输。以下将分别说明。
广播总线1109用以完成集群1105内各处理器核1106间的高速通信,此实施例的广播总线1109支持核间通信方式包括单播、多播与广播。单播是指点对点(例如单一处理器核至单一处理器核)的数据传输,多播是将一份数据从SRAM 1108传输到特定几个处理器核1106的通信方式,而广播则是将一份数据从SRAM 1108传输到所有处理器核1106的通信方式,属于多播的一种特例。
CDMA 1110用以控制在同一个计算装置内不同集群1105间的SRAM 1108的访存。
GDMA 1111与外部存储控制器1101协同,用以控制集群1105的SRAM 1108到DRAM904的访存,或是将数据自DRAM 904读取至SRAM 1108中。从前述可知,DRAM 904与NRAM10031或WRAM 10032间的通信可以经由2个渠道来实现。第一个渠道是通过IODAM 10033直接联系DRAM 904与NRAM 10031或WRAM 10032;第二个渠道是先经由GDMA 1111使得数据在DRAM 904与SRAM 1108间传输,再经过MVDMA 10034使得数据在SRAM 1108与NRAM 10031或WRAM 10032间传输。虽然表面上看来第二个渠道需要更多的元件参与,数据流较长,但实际上在部分实施例中,第二个渠道的带宽远大于第一个渠道,因此DRAM 904与NRAM 10031或WRAM 10032间的通信通过第二个渠道可能更有效率。本申请的实施例可根据本身硬件条件选择数据传输渠道。
在其他实施例中,GDMA 1111的功能和IODMA 10033的功能可以整合在同一部件中。本申请为了方便描述,将GDMA 1111和IODMA 10033视为不同部件,对于本领域技术人员来说,只要其实现的功能以及达到的技术效果与本申请类似,即属于本申请的保护范围。进一步地,GDMA 1111的功能、IODMA 10033的功能、CDMA 1110的功能、MVDMA 10034的功能亦可以由同一部件来实现。
依据以下条款可更好地理解前述内容(The foregoing may be betterunderstood in view of the following clauses):
条款1、一种图任务调度方法,包括:
获取目标图任务对应的访存信息;
根据所述访存信息确定执行所述目标图任务所需要的预估片上存储空间;
为所述目标图任务分配所述预估片上存储空间;
控制所述目标图任务执行过程中独占所述预估片上存储空间。
条款2、根据条款1所述的方法,所述访存信息包括;访存数据量;
所述根据所述访存信息确定执行所述目标图任务所需要的预估片上存储空间,包括:
根据所述访存数据量确定执行所述目标图任务所需要的初始片上存储空间;
将所述初始片上存储空间确定为所述预估片上存储空间。
条款3、根据条款1所述的方法,所述访存信息包括:访存数据量和数据局部性信息;
所述根据所述访存信息确定执行所述目标图任务所需要的预估片上存储空间,包括:
根据所述访存数据量确定执行所述目标图任务所需要的初始片上存储空间;
根据所述数据局部性信息对所述初始片上存储空间进行调整,以获得所述预估片上存储空间。
条款4、根据条款1所述的方法,所述为所述目标图任务分配所述预估片上存储空间之后,还包括:
对目标图任务对应的预估片上存储空间进行被独占的标记操作。
条款5、根据条款1所述的方法,还包括:
为所述目标图任务分配目标运算单元,目标运算单元与预估片上存储空间所属的存储单元在相同的处理单元内;
对目标图任务对应的目标运算单元进行被独占的标记操作;
控制所述目标图任务执行过程中独占所述目标运算单元。
条款6、根据条款5所述的方法,还包括:
若为其他图任务分配了与所述目标图任务在相同处理单元中除所述目标运算单元外的其他运算单元,则为其他图任务分配预估片上存储空间所属的存储单元中的其他片上存储空间;
控制所述其他图任务执行过程中独占所述其他片上存储空间。
条款7、根据条款1所述的方法,还包括:
若确定所述目标图任务执行过程中所述预估片上存储空间不足,则将所述预估片上存储空间中的部分数据写回到片外内存中,以空出继续执行所述目标图任务所需要的额外片上存储空间。
条款8、根据条款1所述的方法,还包括:
若确定所述目标图任务执行过程中所述预估片上存储空间不足,则判断是否存在片上空闲存储空间;
若确定存在片上空闲存储空间,则将所述片上空闲存储空间进行被目标图任务独占的标记操作。
条款9、根据条款8所述的方法,所述判断是否存在片上空闲存储空间,包括:
判断所述预估片上存储空间所属的存储单元中是否存在片上空闲存储空间。
条款10、根据条款8所述的方法,所述片上空闲存储空间包括被其他图任务独占后被释放的片上存储空间;
所述将所述片上空闲存储空间进行被目标图任务独占的标记操作,包括:
确定继续执行所述目标图任务所需要的额外片上存储空间;
从所述被释放的片上存储空间中分配所述额外片上存储空间给所述目标图任务;
将所述额外片上存储空间进行被目标图任务独占的标记操作。
条款11、根据条款5-10任一项所述的方法,还包括:
监测所述目标图任务中每个任务是否均执行完毕;
若监测到所述目标图任务中每个任务均执行完毕,则释放被独占的目标运算单元和被独占的存储空间;
将目标图任务被独占的目标运算单元标记和被独占的存储空间标记进行去除。
条款12、一种图任务调度装置,包括:
信息获取模块,用于获取目标图任务对应的访存信息;
空间确定模块,用于根据所述访存信息确定执行所述目标图任务所需要的预估片上存储空间;
空间分配模块,用于为所述目标图任务分配所述预估片上存储空间;
任务控制模块,用于控制所述目标图任务执行过程中独占所述预估片上存储空间。
条款13、一种图任务调度装置,包括:至少一个处理器及存储器;
所述存储器存储计算机执行指令;
所述至少一个处理器执行所述存储器存储的计算机执行指令,使得所述至少一个处理器执行如条款1-11任一项所述的方法。
条款14、一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机程序,所述计算机程序被至少一个处理器执行时,实现如条款1-11任一项所述的方法。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请并不受所描述的动作顺序的限制,因为依据本申请,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于可选实施例,所涉及的动作和模块并不一定是本申请所必须的。
进一步需要说明的是,虽然流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,流程图中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
应该理解,上述的装置实施例仅是示意性的,本申请的装置还可通过其它的方式实现。例如,上述实施例中单元/模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。例如,多个单元、模块或组件可以结合,或者可以集成到另一个系统,或一些特征可以忽略或不执行。
另外,若无特别说明,在本申请各个实施例中的各功能单元/模块可以集成在一个单元/模块中,也可以是各个单元/模块单独物理存在,也可以两个或两个以上单元/模块集成在一起。上述集成的单元/模块既可以采用硬件的形式实现,也可以采用软件程序模块的形式实现。
集成的单元/模块如果以硬件的形式实现时,该硬件可以是数字电路,模拟电路等等。硬件结构的物理实现包括但不局限于晶体管,忆阻器等等。若无特别说明,人工智能处理器可以是任何适当的硬件处理器,比如CPU、GPU、FPGA、DSP和ASIC等等。若无特别说明,存储单元可以是任何适当的磁存储介质或者磁光存储介质,比如,阻变式存储器RRAM(Resistive Random Access Memory)、动态随机存取存储器DRAM(Dynamic Random AccessMemory)、静态随机存取存储器SRAM(Static Random-Access Memory)、增强动态随机存取存储器EDRAM(Enhanced Dynamic Random Access Memory)、高带宽内存HBM(High-Bandwidth Memory)、混合存储立方HMC(Hybrid Memory Cube)等等。
集成的单元/模块如果以软件程序模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储器中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储器中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本申请各个实施例方法的全部或部分步骤。而前述的存储器包括:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。上述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
Claims (14)
1.一种图任务调度方法,其特征在于,包括:
获取目标图任务对应的访存信息;
根据所述访存信息确定执行所述目标图任务所需要的预估片上存储空间;
为所述目标图任务分配所述预估片上存储空间;
控制所述目标图任务执行过程中独占所述预估片上存储空间。
2.根据权利要求1所述的方法,其特征在于,所述访存信息包括;访存数据量;
所述根据所述访存信息确定执行所述目标图任务所需要的预估片上存储空间,包括:
根据所述访存数据量确定执行所述目标图任务所需要的初始片上存储空间;
将所述初始片上存储空间确定为所述预估片上存储空间。
3.根据权利要求1所述的方法,其特征在于,所述访存信息包括:访存数据量和数据局部性信息;
所述根据所述访存信息确定执行所述目标图任务所需要的预估片上存储空间,包括:
根据所述访存数据量确定执行所述目标图任务所需要的初始片上存储空间;
根据所述数据局部性信息对所述初始片上存储空间进行调整,以获得所述预估片上存储空间。
4.根据权利要求1所述的方法,其特征在于,所述为所述目标图任务分配所述预估片上存储空间之后,还包括:
对目标图任务对应的预估片上存储空间进行被独占的标记操作。
5.根据权利要求1所述的方法,其特征在于,还包括:
为所述目标图任务分配目标运算单元,目标运算单元与预估片上存储空间所属的存储单元在相同的处理单元内;
对目标图任务对应的目标运算单元进行被独占的标记操作;
控制所述目标图任务执行过程中独占所述目标运算单元。
6.根据权利要求5所述的方法,其特征在于,还包括:
若为其他图任务分配了与所述目标图任务在相同处理单元中除所述目标运算单元外的其他运算单元,则为其他图任务分配预估片上存储空间所属的存储单元中的其他片上存储空间;
控制所述其他图任务执行过程中独占所述其他片上存储空间。
7.根据权利要求1所述的方法,其特征在于,还包括:
若确定所述目标图任务执行过程中所述预估片上存储空间不足,则将所述预估片上存储空间中的部分数据写回到片外内存中,以空出继续执行所述目标图任务所需要的额外片上存储空间。
8.根据权利要求1所述的方法,其特征在于,还包括:
若确定所述目标图任务执行过程中所述预估片上存储空间不足,则判断是否存在片上空闲存储空间;
若确定存在片上空闲存储空间,则将所述片上空闲存储空间进行被目标图任务独占的标记操作。
9.根据权利要求8所述的方法,其特征在于,所述判断是否存在片上空闲存储空间,包括:
判断所述预估片上存储空间所属的存储单元中是否存在片上空闲存储空间。
10.根据权利要求8所述的方法,其特征在于,所述片上空闲存储空间包括被其他图任务独占后被释放的片上存储空间;
所述将所述片上空闲存储空间进行被目标图任务独占的标记操作,包括:
确定继续执行所述目标图任务所需要的额外片上存储空间;
从所述被释放的片上存储空间中分配所述额外片上存储空间给所述目标图任务;
将所述额外片上存储空间进行被目标图任务独占的标记操作。
11.根据权利要求5-10任一项所述的方法,其特征在于,还包括:
监测所述目标图任务中每个任务是否均执行完毕;
若监测到所述目标图任务中每个任务均执行完毕,则释放被独占的目标运算单元和被独占的存储空间;
将目标图任务被独占的目标运算单元标记和被独占的存储空间标记进行去除。
12.一种图任务调度装置,其特征在于,包括:
信息获取模块,用于获取目标图任务对应的访存信息;
空间确定模块,用于根据所述访存信息确定执行所述目标图任务所需要的预估片上存储空间;
空间分配模块,用于为所述目标图任务分配所述预估片上存储空间;
任务控制模块,用于控制所述目标图任务执行过程中独占所述预估片上存储空间。
13.一种图任务调度装置,其特征在于,包括:至少一个处理器及存储器;
所述存储器存储计算机执行指令;
所述至少一个处理器执行所述存储器存储的计算机执行指令,使得所述至少一个处理器执行如权利要求1-11任一项所述的方法。
14.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机程序,所述计算机程序被至少一个处理器执行时,实现如权利要求1-11任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111108271.5A CN115878299A (zh) | 2021-09-22 | 2021-09-22 | 图任务调度方法、装置及相关产品 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111108271.5A CN115878299A (zh) | 2021-09-22 | 2021-09-22 | 图任务调度方法、装置及相关产品 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115878299A true CN115878299A (zh) | 2023-03-31 |
Family
ID=85762373
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111108271.5A Pending CN115878299A (zh) | 2021-09-22 | 2021-09-22 | 图任务调度方法、装置及相关产品 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115878299A (zh) |
-
2021
- 2021-09-22 CN CN202111108271.5A patent/CN115878299A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112465129B (zh) | 片内异构人工智能处理器 | |
US8645638B2 (en) | Shared single-access memory with management of multiple parallel requests | |
US9804666B2 (en) | Warp clustering | |
US8108625B1 (en) | Shared memory with parallel access and access conflict resolution mechanism | |
US20230367722A1 (en) | Data processing device and method, and related products | |
CN111488114B (zh) | 一种可重构的处理器架构及计算设备 | |
US8615770B1 (en) | System and method for dynamically spawning thread blocks within multi-threaded processing systems | |
US20210248006A1 (en) | Hardware Resource Allocation System for Allocating Resources to Threads | |
EP3662376B1 (en) | Reconfigurable cache architecture and methods for cache coherency | |
CN114580606A (zh) | 数据处理方法、装置、计算机设备和存储介质 | |
TW202109286A (zh) | 純函數語言神經網路加速器系統及結構 | |
US8959497B1 (en) | System and method for dynamically spawning thread blocks within multi-threaded processing systems | |
US11899970B2 (en) | Storage system and method to perform workload associated with a host | |
US8539207B1 (en) | Lattice-based computations on a parallel processor | |
CN115878299A (zh) | 图任务调度方法、装置及相关产品 | |
CN117539823A (zh) | 芯片算力控制方法、芯片及存储介质 | |
TWI763158B (zh) | 記憶體共享 | |
CN115904681A (zh) | 任务调度方法、装置及相关产品 | |
CN112948001A (zh) | 设定张量硬件配置的方法、可读存储介质及装置 | |
JP2023527770A (ja) | メモリにおける推論 | |
CN115904682A (zh) | 图任务调度方法、装置及存储介质 | |
CN111209230B (zh) | 数据处理装置、方法及相关产品 | |
CN113434813A (zh) | 一种基于神经网络的矩阵乘运算方法及相关装置 | |
WO2023045478A1 (zh) | 图任务调度方法、执行端设备、存储介质及程序产品 | |
CN115904643A (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 |