CN109213590A - 调度处理器的方法和装置 - Google Patents
调度处理器的方法和装置 Download PDFInfo
- Publication number
- CN109213590A CN109213590A CN201710521843.XA CN201710521843A CN109213590A CN 109213590 A CN109213590 A CN 109213590A CN 201710521843 A CN201710521843 A CN 201710521843A CN 109213590 A CN109213590 A CN 109213590A
- Authority
- CN
- China
- Prior art keywords
- computer vision
- operator
- processor
- vision operator
- computer
- 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.)
- Granted
Links
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/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
- G06F9/5044—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 considering hardware capabilities
Abstract
本申请提供了调度处理器的方法和装置。调度处理器的方法包括:调度多个处理器中的第一处理器执行多个计算机视觉算子中的第一计算机视觉算子和第二计算机视觉算子,其中,第一计算机视觉算子的输出仅为第二计算机视觉算子的输入,第二计算机视觉算子的输入仅包含第一计算机视觉算子的输出。本申请提供的调度处理器的方法和装置,有助于降低调度处理器所造成的损耗。
Description
技术领域
本申请涉及计算机视觉领域,并且更具体地,涉及调度处理器的方法和装置。
背景技术
OpenVX是一种低阶级的软件编程软件。通过OpenVX,用户可以访问计算机视觉硬件平台,以执行计算机视觉应用。
OpenVX可以支持不同硬件架构的系统,如支持移动设备、嵌入式系统级芯片(system on chip,SoC)、桌面系统等,更具体地,可以支持多核中央处理单元(centralprocessing unit,CPU)、数字信号处理(digital signal processing,DSP)单元、图形处理单元(graphic processing unit,GPU)、专用视觉处理芯片等处理器。
OpenVX可以最大化这些硬件平台的功能和性能的可移植性,同时,对应用程序的影响又很小。
计算机视觉应用由一系列的视觉算子组成,每个视觉算子可以实现一个或多个功能。在OpenVX中,可以根据视觉算子之间的输入和输出关系建立视觉算子间的依赖关系,因此,依赖关系用于指示不同的视觉算子在输入和输出之间所存在的关系。计算机视觉应用包括的视觉算子也可以称为视觉函数。
例如,一个视觉算子的输出为另一个视觉算子的输出时,这两个视觉算子间存在依赖关系,其中,前一个视觉算子被后一个视觉算子依赖,后一个视觉算子依赖于前一个视觉算子。若两个视觉算子的输入和输出之间没有关系时,这两个视觉算子间没有依赖关系。
视觉算子间的依赖关系可以决定视觉算子的执行顺序。具体地,被依赖的视觉算子的执行顺序位于依赖该被依赖视觉算子的视觉算子之前。没有依赖关系的视觉算子可以并行。如,一个视觉算子与另一个视觉算子分别依赖的视觉算子均已被执行,且这两个算子没有依赖关系,则这两个算子可以并行。
在OpenVX中,处理器执行计算机视觉应用包括的视觉算子,以加速计算机视觉应用的传统方法如图1所示。其中,一个节点(Node)表示一个视觉算子。
图1所示的方法中,调度器101建立视觉算子间的依赖关系后,可以调度处理器102-1执行节点103-1表示的视觉算子。
节点103-1表示的视觉算子执行完后,调度器101调用处理器102-2和处理器102-3。其中,处理器102-2执行节点103-2表示的视觉算子。处理器102-3执行节点103-4表示的视觉算子。
节点103-2表示的视觉算子和节点103-4表示的视觉算子执行完后,调度器101再次调度处理器102-2和处理器102-1。其中,处理器102-2执行节点103-3表示的视觉算子,处理器102-1执行节点103-5表示的视觉算子。
节点103-3表示的视觉算子和节点103-5表示的视觉算子执行完后,调度器101调度处理器102-3执行节点103-6表示的视觉算子。
其中,每个视觉算子由哪个处理器执行,通常情况下,是由计算机视觉应用的开发者根据经验指定的。
由图1所示的方法可知,传统方法中,调度器每次只调用处理器执行不依赖其他视觉算子的视觉算子,或者只调度处理器执行所依赖的所有视觉算子已经被执行的视觉算子,这使得调度器对处理器的调度次数较多,损耗较大。
发明内容
本申请提供调度处理器的方法和装置,有助于降低调度处理器的损耗。
第一方面,本申请提供了一种调度处理器的方法。该方法包括:调度多个处理器中的第一处理器执行多个计算机视觉算子中的第一计算机视觉算子和第二计算机视觉算子,其中,第一计算机视觉算子的输出仅为第二计算机视觉算子的输入,第二计算机视觉算子的输入仅包含第一计算机视觉算子的输出。
该方法中,计算机视觉算子也可以简称为视觉算子或视觉函数,可以称第一计算机视觉算子与第二计算机视觉算子具有单依赖关系。
该方法调度第一处理器执行所依赖的计算机视觉算子已经执行过的第一计算机视觉算子时,还调用第一处理器执行与第一计算机视觉算子具有单依赖关系的第二计算机视觉算子,从而可以减少调度次数,进而有助于降低调度损耗。
结合第一方面,在第一种可能的实现方式中,在调度第一处理器执行所述第一计算机视觉算子和第二计算机视觉算子之前,该方法还包括:根据多个计算机视觉算子间的依赖关系,对多个计算机视觉算子进行分组,得到包含第一计算机视觉算子和第二计算机视觉算子的第一计算机视觉算子组。
也就是说,根据计算机视觉算子间的依赖关系,将具有单依赖关系的第一计算机视觉算子和第二计算机视觉算子划分到同一个计算机视觉算子分组中。这样,按组调度处理器执行计算机视觉算子时,就可以在同一调度批次中既可以调度第一处理器执行第一计算机视觉算子,又可以调度第一处理器执行第二计算机视觉算子了。
结合第一种可能的实现方式,在第二种可能的实现方式中,第一计算机视觉算子组还包括多个计算机视觉算子中的第三计算机视觉算子,第三计算机视觉算子与第一计算机视觉算子和第二计算机视觉算子没有依赖关系。
此时,调度第一处理器执行第一计算机视觉算子和第二计算机视觉算子,包括:根据运行时间表中记录的历史运行时间,确定第一计算机视觉算子在第一处理器上的历史运行时间、第二计算机视觉算子在所述第一处理器上的历史运行时间和第三计算机视觉算子在多个处理器中的第二处理器上的历史运行时间的总和,小于或等于第一计算机视觉算子在多个处理器中除第一处理器外任意处理器上的历史运行时间、第二计算机视觉算子在多个处理器中除第一处理器外任意处理器上的历史运行时间和第三计算机视觉算子在多个处理器中除第二处理器外任意处理器上的历史运行时间的总和时,调度第一处理器执行第一计算机视觉算子和第二计算机视觉算子,调度第二处理器执行第三计算机视觉算子。
这种方法使得处理器可以使用较少的时间执行第一计算机视觉算子、第二计算机视觉算子和第三计算机视觉算子。
具体地,第三计算机视觉算子与第一计算机视觉算子的执行顺序可以根据传统方法确定得到。
结合第二种可能的实现方式,在第三种可能的实现方式中,第二处理器和第一处理器可以是同一个处理器。
也就是说,可以调用同一个处理器执行第一计算机视觉算子和第二计算机视觉算子。
结合第一种至第三种中任意一种可能的实现方式,在第四种可能的实现方式中,根据多个计算机视觉算子间的依赖关系,对多个计算机视觉算子进行分组,包括:将多个计算机视觉算子中,根据多个计算机视觉算子间的依赖关系确定并行的计算机视觉算子,以及与该并行的计算机视觉算子中的计算机视觉算子具有单依赖关系的计算机视觉算子分为同一组计算机视觉算子,单依赖关系用于指示两个计算机视觉算子中的前一个计算机视觉算子的输出仅为后一个计算机视觉算子的输入,后一个计算机视觉算子的输入仅包含前一个计算机视觉算子的输出。
具体地,可以根据传统方法确定多个计算机视觉算子中具有相同顺序的计算机算子,并将这些具有相同执行顺序的计算机视觉算子分为同一组。此外,还将与这些具有相同执行顺序的计算机视觉算子中的计算机视觉算子具有单依赖关系的计算机视觉算子分到这个组中。这使得每个组中可以包括更多的计算机视觉算子,从而使得划分的组的数量较少,进而使得按组调度处理器时,调度次数可以较少,最终可以降低调度损耗。
第二方面,本申请提供了一种调度处理器的装置。该装置包括主处理器、存储器和多个处理器。主处理器用于调度多个处理器中的第一处理器执行多个计算机视觉算子中的第一计算机视觉算子和第二计算机视觉算子,其中,第一计算机视觉算子的输出仅为第二计算机视觉算子的输入,第二计算机视觉算子的输入仅包含第一计算机视觉算子的输出。处理器用于执行计算机视觉算子,存储器用于存储计算机视觉算子间的依赖关系,以及输入和输出。
该装置调度第一处理器执行所依赖的计算机视觉算子已经执行过的第一计算机视觉算子时,还调用第一处理器执行与第一计算机视觉算子具有单依赖关系的第二计算机视觉算子,从而可以减少调度次数,进而有助于降低调度损耗。
结合第二方面,在第一种可能的实现方式中,在调度第一处理器执行所述第一计算机视觉算子和第二计算机视觉算子之前,主处理器还用于:根据多个计算机视觉算子间的依赖关系,对多个计算机视觉算子进行分组,得到包含第一计算机视觉算子和第二计算机视觉算子的第一计算机视觉算子组。
结合第一种可能的实现方式,在第二种可能的实现方式中,第一计算机视觉算子组还包括多个计算机视觉算子中的第三计算机视觉算子,第三计算机视觉算子与第一计算机视觉算子和第二计算机视觉算子没有依赖关系。
此时,主处理器具体用于:根据运行时间表中记录的历史运行时间,确定第一计算机视觉算子在第一处理器上的历史运行时间、第二计算机视觉算子在所述第一处理器上的历史运行时间和第三计算机视觉算子在多个处理器中的第二处理器上的历史运行时间的总和,小于或等于第一计算机视觉算子在多个处理器中除第一处理器外任意处理器上的历史运行时间、第二计算机视觉算子在多个处理器中除第一处理器外任意处理器上的历史运行时间和第三计算机视觉算子在多个处理器中除第二处理器外任意处理器上的历史运行时间的总和时,调度第一处理器执行第一计算机视觉算子和第二计算机视觉算子,调度第二处理器执行第三计算机视觉算子。
结合第二种可能的实现方式,在第三种可能的实现方式中,第二处理器和第一处理器可以是同一个处理器。
结合第一种至第三种中任意一种可能的实现方式,在第四种可能的实现方式中,主处理器具体用于:将多个计算机视觉算子中,根据多个计算机视觉算子间的依赖关系确定并行的计算机视觉算子,以及与该并行的计算机视觉算子中的计算机视觉算子具有单依赖关系的计算机视觉算子分为同一组计算机视觉算子,单依赖关系用于指示两个计算机视觉算子中的前一个计算机视觉算子的输出仅为后一个计算机视觉算子的输入,后一个计算机视觉算子的输入仅包含前一个计算机视觉算子的输出。
在一个可能的设计中,本申请提供的调度处理器的装置可以包含用于执行上述方法相对应的模块。所述模块可以是软件和/或是硬件。
在一种可能的设计中,上述调度处理器的装置实现的方案可以由芯片实现。
本申请的又一方面提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当其在调度处理器的装置上运行时,使得调度处理器的装置执行上述任意一个方面或任意一个方面中任意一种可能的实现方式所述的方法。
本申请的又一方面提供了一种包含指令的计算机程序产品,当其在调度处理器的装置上运行时,使得调度处理器的装置执行上述任意方面或任意方面中任意一种可能的实现方式所述的方法。
附图说明
图1是现有技术中调度处理器的方法的示意图;
图2是本申请实施例的调度处理器的方法的应用场景的示意性架构图;
图3是本申请一个实施例的调度处理器的方法的示意性流程图;
图4是本申请另一个实施例的调度处理器的方法的示意性流程图;
图5是本申请另一个实施例的调度处理器的方法的示意性流程图;
图6是本申请一个实施例的分组方法的示意性流程图;
图7是本申请另一个实施例的分组方法的示意性流程图;
图8是本申请另一个实施例的调度处理器的方法的示意性流程图;
图9是本申请另一个实施例的调度处理器的方法的示意性流程图;
图10是本申请一个实施例的调度处理器的装置的示意性流程图;
图11是本申请另一个实施例的调度处理器的装置的示意性流程图。
具体实施方式
下面将结合附图,对本申请中的技术方案进行描述。
图2是本申请实施例的调度处理器的方法的应用场景的示意图。应理解,本申请实施例并不限于图2所示的应用场景中,此外,图2中的装置可以是硬件,也可以是从功能上划分的软件或者以上二者的结合。
图2中示出了6个计算机视觉算子的网络示意图,每个计算机视觉算子用一个节点(Node)表示。6个计算机视觉算子即为节点203-1至节点203-6。
图2所示的网络示意图中,箭头表示计算机视觉算子间的参数关系。具体地,箭头的指向表示箭头起点连接的节点所表示的计算机视觉算子的输出为箭头终点连接的节点所表示的计算机视觉算子的输入。
或者可以说,图2所示的网络示意图中,箭头表示计算机视觉算子间存在依赖关系。具体地,箭头终点连接的节点所表示的计算机视觉算子依赖箭头起点连接的节点所表示的计算机视觉算子。
调度器201可以根据计算机视觉算子间的参数关系建立计算机视觉算子间的依赖关系。具体地,调度器201确定一个计算机视觉算子的输出为另一个计算机算视觉算子的输入,或者说,确定一个计算机视觉算子的输入为另一个计算机视觉算子的输出时,可以建立这两个计算机视觉算子间的依赖关系。
具有依赖关系的计算机视觉算子间是有先后执行顺序的。具体地,对于某个计算机视觉算子来说,只要其依赖的所有计算机视觉算子都执行后,该计算机视觉算子才能执行。如节点203-3表示的计算机视觉算子与节点203-5表示的计算机视觉算子执行后,节点203-6表示的计算机视觉算子可以执行。
没有依赖的关系的计算机视觉算子可行并行。如节点203-2表示的计算机视觉算子与节点203-4表示的计算机视觉算子没有依赖关系,他们在节点203-1表示的计算机视觉算子执行后,可以并行。
应理解,不依赖其他任何计算机视觉算子的计算机视觉算子,可以等同于其依赖的所有计算机视觉算子都已执行。如节点203-1表示的计算机视觉算子可以直接执行。
计算机视觉算子的输入的个数可以称为计算机视觉算子的入度,计算机视觉算子的输出的个数可以称为计算机视觉算子的出度。如,节点203-1表示的计算机视觉算子的入度为0,出度为2;节点203-2表示的计算机视觉算子的入度和出度均为1;节点203-6表示的计算机视觉算子的入度为2,出度为0。
本申请的实施例中,计算机视觉算子可以简称为视觉函数或视觉算子。
图2所示的应用场景中,示例性给出3个处理器(202-1至202-3)。每个处理器上可以配置一个或多个计算机视觉算子,且每个处理器可以执行各自配置的计算机视觉算子。例如,处理器202-1至处理器202-3中每个处理器上可以配置有节点203-1至节点203-6表示的计算机视觉算子。
图2中示出的调度器201可以是一种处理器。调度器201与处理器202-1至处理器202-3之间可以通信,传输指令等。具体地,调度器201可以通知处理器202-1至处理器202-3中任意一个处理器执行其上的哪些计算机视觉算子。
本申请实施例中的任意一个处理器可以是以下任一种:CPU、GPU,DSP、SoC、专用视觉处理芯片等等。
应注意,上述对处理器的举例只是为了更好地介绍本申请实施例的方法,并不限制本申请实施例中的处理器的具体形式。凡是具有数字或信号处理功能的单元都可以纳入本申请实施例的处理器的保护范畴。
本申请的实施例中的处理器也可以称为执行单元或执行设备或计算机视觉硬件加速单元。
图3为本申请一个实施例的调度处理器的方法的示意性流程图。应理解,图3示出了该方法的步骤或操作,但这些步骤或操作仅是示例,本申请实施例还可以执行其他操作或者图3中的各个操作的变形。
图3所示的方法的执行主体可以称为调度器,如图2中的调度器201。
S310,调度多个处理器中的第一处理器执行多个计算机视觉算子中的第一计算机视觉算子和第二计算机视觉算子,其中,第一计算机视觉算子的输出仅为第二计算机视觉算子的输入,第二计算机视觉算子的输入仅包含第一计算机视觉算子的输出。
换句话说,调度第一处理器执行第一计算机视觉算子时,也调度第一处理器执行与第一计算机视觉算子具有单依赖关系的第二计算机算子。
如图2所示的应用场景中,按照图3所示的方法调度处理器执行计算机视觉算子的过程的一种示例如图4所示。
具体地,调度器201先调度处理器202-1执行节点203-1表示的计算机视觉算子;待节点203-1表示的计算机视觉算子执行完后,调度处理器202-2执行节点203-2和节点203-3表示的计算机视觉算子,且调度处理器202-3执行节点203-4和节点203-5表示的计算机视觉算子;待节点203-2、节点203-3、节点203-4和节点203-5表示的计算机视觉算子执行完后,调度处理器202-3执行节点203-6表示的计算机视觉算子。
其中,处理器202-2可以称为第一处理器,此时,节点203-2表示的计算机视觉算子可以称为第一计算机视觉算子,节点203-3表示的计算机视觉算子可以称为第二计算机视觉算子。此外,处理器202-3也可以称为第一处理器,节点203-4表示的计算机视觉算子可以称为第一计算机视觉算子,节点203-5表示的计算机视觉算子可以称为第二计算机视觉算子。
由图4可知,按照本申请实施例的方法调度处理器执行计算机视觉应用包括的计算机视觉算子,可以减少调度次数,从而可以降低损耗。
本申请实施例的方法中,可选地,在调度第一处理器执行第一计算机视觉算子和第二计算机视觉算子之前,还可以包括:根据多个计算机视觉算子间的依赖关系,对多个计算机视觉算子进行分组,得到包含第一计算机视觉算子和第二计算机视觉算子的第一计算机视觉算子组。
也就是说,在调度第一处理器执行第一计算机视觉算子与第二计算机视觉算子之前,可以先将计算机视觉应用包括的多个计算机视觉算子分组,得到的第一计算机视觉算子组中包括第一计算机视觉算子和第二计算机视觉算子。在第一计算机视觉算子组所依赖的计算机算子均被执行后,可以在多个处理器中调度处理器执行第一计算机视觉算子组中的计算机算子。具体的调度方法如S310所示。
本申请实施例中,可选地,第一计算机视觉算子组中还包可以包括计算机视觉应用的多个计算机视觉算子中的第三计算机视觉算子,第三计算机视觉算子与第一计算机视觉算子和第二计算机视觉算子没有依赖关系。
具体地,第三计算机视觉算子可以是根据计算机视觉算子间的依赖关系确定的、可以与第一计算机视觉算子或第二计算机视觉算子并行的计算机视觉算子。应注意,此处所说的并行是指根据依赖关系确定得到的一种可行性,但实际上,第一计算机视觉算子或第二计算机视觉算子,与第三计算机视觉算子最终可能没有并行。
进一步,调度器可以通过在与其耦合的存储器中调用存储的运行时间表来实现从多个处理器中选择处理器执行算子。该运行时间表中记录了各个计算机视觉算子在每个处理器上的运行时间。在该运行时间表中包含第一计算机视觉算子、第二计算机视觉算子和第三计算机视觉算子分别在每个处理器上的运行时间时,则S310,即调度多个处理器中的第一处理器执行多个计算机视觉算子中的第一计算机视觉算子和第二计算机视觉算子,可以包括:根据运行时间表中记录的历史运行时间,确定第一计算机视觉算子在第一处理器上的历史运行时间、第二计算机视觉算子在第一处理器上的历史运行时间和第三计算机视觉算子在多个处理器中的第二处理器上的历史运行时间的总和,小于或等于第一计算机视觉算子在多个处理器中除第一处理器外任意处理器上的历史运行时间、第二计算机视觉算子在多个处理器中除第一处理器外任意处理器上的历史运行时间和第三计算机视觉算子在多个处理器中除第二处理器外任意处理器上的历史运行时间的总和时,调度第一处理器执行第一计算机视觉算子和第二计算机视觉算子,调度第二处理器执行第三计算机视觉算子。
这样可以使得调度的第一处理器和第二处理器分别执行第一计算机视觉算子、第二计算机视觉算子和第三计算机视觉算子的时间更少。
进一步地,第一处理器与第二处理器可以是同一个处理器。
本申请另一个实施例的调度处理器的方法的示意性流程图如图5所示。应理解,图5示出了该方法的步骤或操作,但这些步骤或操作仅是示例,本申请实施例还可以执行其他操作或者图5中的各个操作的变形。
S510,根据所述多个计算机视觉算子间的依赖关系,对多个计算机视觉算子进行分组。其中,这多个计算机视觉算子可以是计算机视觉应用包括的计算机视觉算子。
根据所述多个计算机视觉算子间的依赖关系,对多个计算机视觉算子进行分组的一种示例方法包括:将多个计算机视觉算子中,根据多个计算机视觉算子间的依赖关系确定并行的计算机视觉算子,以及与该并行的计算机视觉算子中的计算机视觉算子具有单依赖关系的计算机视觉算子分为同一组计算机视觉算子。
应注意,此处所说的并行是指根据依赖关系确定得到的一种可行性,但实际上,这些可以并行的计算机视觉算子最终可能没有并行。
如前面所述的第一计算机视觉算子组,其中可以包括第一计算机视觉算子与第二计算机视觉算子。进一步地,还可以包括第三计算机视觉算子。
S520,调度多个处理器中的处理器执行每个组中的计算机视觉算子。
也就是说,将多个计算机视觉算子分组后,每组的计算机视觉算子可以作为同一批次的计算机视觉算子进行调度。通常情况下,有多少个组,就会进行多少批次的调度。
每一批次调度处理器执行一个组中的计算机视觉算子时,可以根据运行时间表中记录的每个计算机视觉算子在全部或部分处理器中的每个处理器上的历史运行时间,来调度处理器执行该组中的计算机视觉算子,以使得该组计算机视觉算子的执行时间满足要求,如小于或等于执行时间上限,或者是最小执行时间。
具体地,S510中,将多个计算机视觉算子中,根据多个计算机视觉算子间的依赖关系确定并行的计算机视觉算子,以及与该并行的计算机视觉算子中的计算机视觉算子具有单依赖关系的计算机视觉算子分为同一组计算机视觉算子的一种示例方法的流程图如图6所示。
图6中示例的计算机视觉算子的个数为N个。应理解,图6示出了计算机视觉算子的分组方法的步骤或操作,但这些步骤或操作仅是示例,本申请实施例还可以执行其他操作或者图6中的各个操作的变形。
S501,分组方法开始执行。此时,调度器已获知N个计算机视觉算子中每个计算机视觉算子的入度和出度,以及计算机视觉算子间的输入和输出关系,即依赖关系。
为了叙述简洁,下面将计算机视觉算子简称为算子。
S502,调度器获取N个算子中入度为零的算子作为待分析算子。应注意,入度为零的算子并不是说该算子不需要输入,而是指该算子不需要N个算子中其他算子的输出作为输入。如是首次执行S502,则调度器从N个算子中获取待分析算子;非首次执行,则从入度进行处理过的算子中获取待分析算子。
S503,调度器判断是否还有待分析算子。若还有待分析算子,则执行S504,否则执行S513。
S504,从所有待分析算子中获取一个待分析算子。
S505,判断该待分析算子的出度是否为1。若为1,则执行S507,否则执行S506。
S506,删除该待分析算子,并将该待分析算子的后继算子的入度减1,然后执行S502。该待分析算子的后继算子是指以该待分析算子的输出直接为输入的算子。
S507,判断该待分析算子的后继算子是否已遍历完。若已遍历完,执行S506,否则执行S508。
S508,获取该待分析算子还未遍历的后继算子中的一个算子为待分析后继算子。
S509,遍历判断该待分析后继算子的入度是否为1。若为1,则执行S510,否则,执行S511。
S510,将该待分析后继算子与该待分析算子划分为同一组待处理计算机视觉算子。
S511,将该待分析后继算子的所有直接后继算子的入度减1。
S512,将待分析后继算子的后继算子作为新的待分析后继算子。
S513,结束,也就是说,得到M组待处理计算机视觉算子。
图6所示的分组方法中,主要采用了广度搜索和深度搜索相结合的方法,对计算机视觉算子进行分组,以将具有相同执行顺序和具有单依赖关系的计算机视觉算子分到同一个组中,从而减少分组次数,进而减少调度次数。
如图2所示的应用场景,使用图6所示的分组方法进行分组后的分组结果如图7所示。由图7可知,这个计算机视觉算子分为3各组,针对每个组进行一次处理器的调度,则调度次数为3次,与图1中的4次调度相比,调度次数减少。
S520中,根据计算机视觉算子的历史运行时间,为一个组中的计算机视觉算子动态调度处理器的一种示例方法如图8所示。
其中,该组计算机视觉算子包括的计算机视觉算子数量示例为P个,且将具有依赖关系的计算机视觉算子成为一个算子链表,或者看作一个计算机视觉算子,处理器的示例数量为T个,P小于或等于T。为了叙述简洁,下面将计算机视觉算子简称为算子。
应理解,图8示出了调度方法的步骤或操作,但这些步骤或操作仅是示例,本申请实施例还可以执行其他操作或者图8中的各个操作的变形。
S601,开始执行。
S602,从运行时间表中获取P个算子中每个算子在不同处理器上的历史运行时间。
S603,根据P个算子中每个算子在不同处理器上的历史运行时间,计算调度T个处理器并行执行P个算子的多种方式中每种方式对应的历史运行时间和。
S604,获取这多个历史运行时间和中最小的一个值t_max,以及该每个处理器执行的是哪个计算机视觉算子,即t_max对应的历史调度方式。
S605,按照t_max对应的历史调度方式中,P个算子在对应的处理器上的历史运行时间从小到大的顺序对算子进行排序,得到T1、T2、…、TP,各个算子对应的运行时间为t1、t2、…、tP。并初始化i=1,x=P。
bIsComb用于表示是否可以为不同算子调度同一个处理器。bIsComb=0表示不可以为不同算子调度同一个处理器,bIsComb=1表示可以为不同算子调度同一个处理器。
S606,bIsComb=0,确定t_max对应的历史调度方式中,Ti的处理器,串行执行Tx与Ti的开支时间t。如t可以是第一处理器串行执行第一计算机视觉算子、第二计算机视觉算子和第三计算机视觉算子的历史运行时间和。
S607,判断t是否小于或等于t_max。
若t<=t_max,则执行S608;否则执行S611。
S608,将Tx与Ti合成一个算子Ti,且bIsComb=1,ti=t。
S609,x=x-1,t_max=max(t_max,t)。max(,)表示求取最大值。
S610,判断x是否大于i。
若x>i,则执行S606;否则执行S612。
S611,i=i+1。并判断i>=x或bIsComb为0,即判断搜索是否完成或是否没有可以组合成同一个算子的算子。
若i>=x或bIsComb为0,则执行S612;否则,bIsComb=0,执行S606。
S612,结束,得到新的调度方式。
最后可以根据新的调度方式为该组计算机视觉算子调度处理器。
若P大于T,则调度方法如图9所示。
S901,开始执行。
S902,根据该组中每个算子的历史运行时间,计算将P个算子在T个处理器上并行的最小运行时间。应注意,由于P大于T,因此此处所述的并行可以理解为,每个处理器上执行的算子尽量少。初始化待处理算子的数量Z为P。
S903,将计算得到最小运行时间所依据的每个算子的历史运行时间按照从大到小的顺序排序。
S904,判断待处理算子的数量Z是否大于T。若大于,则执行S905,否则执行S906。
S905,根据排序的历史运行时间中的前T个或后T个历史运行时间以及这T个历史运行时间对应的算子和处理器,按照图8所示的方法调度确定这T个算子的处理器。
此时,Z=Z-T。即待处理算子为还未确定处理器的其他算子。
S906,按照图8所示的方法调度确定剩余算子的处理器。
S907,确定所有算子的处理器后,调度这些处理器执行这P个算子。
图10是本申请一个实施例的调度处理器的装置的示意性结构图。应理解,图10示出的装置1000仅是示例,本申请实施例的调度处理器的装置还可包括其他模块或单元,或者包括与图10中的各个模块的功能相似的模块,或者并非要包括图10中所有模块。
调度模块1010,用于调度多个处理器中的第一处理器执行多个计算机视觉算子中的第一计算机视觉算子和第二计算机视觉算子,其中,第一计算机视觉算子的输出仅为第二计算机视觉算子的输入,第二计算机视觉算子的输入仅包含第一计算机视觉算子的输出。
该装置调度第一处理器执行所依赖的计算机视觉算子已经执行过的第一计算机视觉算子时,还调用第一处理器执行与第一计算机视觉算子具有单依赖关系的第二计算机视觉算子,从而可以减少调度次数,进而有助于降低调度损耗。
可选地,装置1010还包括分组模块1020。在调度模块1010调度第一处理器执行第一计算机视觉算子和第二计算机视觉算子之前,分组模块用于根据多个计算机视觉算子间的依赖关系,对多个计算机视觉算子进行分组,得到包含第一计算机视觉算子和第二计算机视觉算子的第一计算机视觉算子组。
可选地,第一计算机视觉算子组还包括多个计算机视觉算子中的第三计算机视觉算子,第三计算机视觉算子与第一计算机视觉算子和第二计算机视觉算子没有依赖关系。
相应地,调度模块1010具体用于:根据运行时间表中记录的历史运行时间,确定第一计算机视觉算子在第一处理器上的历史运行时间、第二计算机视觉算子在第一处理器上的历史运行时间和第三计算机视觉算子在多个处理器中的第二处理器上的历史运行时间的总和,小于或等于第一计算机视觉算子在多个处理器中除第一处理器外任意处理器上的历史运行时间、第二计算机视觉算子在多个处理器中除第一处理器外任意处理器上的历史运行时间和第三计算机视觉算子在多个处理器中除第二处理器外任意处理器上的历史运行时间的总和时,调度第一处理器执行第一计算机视觉算子和第二计算机视觉算子,调度第二处理器执行第三计算机视觉算子。
可选地,调度模块1010具体用于:根据运行时间表中记录的历史运行时间,确定第一计算机视觉算子在第一处理器上的历史运行时间、第二计算机视觉算子在第一处理器上的历史运行时间和第三计算机视觉算子在第一处理器上的历史运行时间的总和,小于或等于第一计算机视觉算子在多个处理器中除第一处理器外任意处理器上的历史运行时间、第二计算机视觉算子在多个处理器中除第一处理器外任意处理器上的历史运行时间和第三计算机视觉算子在多个处理器中除第一处理器外任意处理器上的历史运行时间的总和时,调度第一处理器执行第一计算机视觉算子、第二计算机视觉算子和第三计算机视觉算子。
可选地,分组模块1020具体用于:将多个计算机视觉算子中,根据多个计算机视觉算子间的依赖关系确定并行的计算机视觉算子,以及与该并行的计算机视觉算子中的计算机视觉算子具有单依赖关系的计算机视觉算子分为同一组计算机视觉算子,单依赖关系用于指示两个计算机视觉算子中的前一个计算机视觉算子的输出仅为后一个计算机视觉算子的输入,后一个计算机视觉算子的输入仅包含前一个计算机视觉算子的输出。
图10所示的装置可以执行图3所示的方法中各个步骤,为了简洁,此处不再赘述。
图11是本申请另一个实施例的调度处理器的装置的示意性结构图。应理解,图11示出的装置1100仅是示例,本申请实施例的装置还可包括其他模块或单元,或者包括与图11中的各个模块的功能相似的模块。
装置1100包括存储器1110、主处理器1120、多个处理器1130。
其中,主处理器1120可以是CPU,处理器1130可以是DSP、GPU、专用视觉处理芯片或SoC等;存储器1110可以是双倍速率同步动态随机存储器(Double Data Rate-SynchronousDynamic Random Access Memory,DDR-SDRAM),简称DDR。
实线箭头表示数据的传输或交互,虚线箭头表示控制信息或控制信令的传输或交互。
主处理器1120可以用于调度多个处理器1130中的第一处理器执行多个计算机视觉算子中的第一计算机视觉算子和第二计算机视觉算子,其中,第一计算机视觉算子的输出仅为第二计算机视觉算子的输入,第二计算机视觉算子的输入仅包含第一计算机视觉算子的输出。
该装置调度第一处理器执行所依赖的计算机视觉算子已经执行过的第一计算机视觉算子时,还调用第一处理器执行与第一计算机视觉算子具有单依赖关系的第二计算机视觉算子,从而可以减少调度次数,进而有助于降低调度损耗。
可选地,在主处理器1120调度第一处理器执行第一计算机视觉算子和第二计算机视觉算子之前,主处理器1120还用于根据多个计算机视觉算子间的依赖关系,对多个计算机视觉算子进行分组,得到包含第一计算机视觉算子和第二计算机视觉算子的第一计算机视觉算子组。
相应地,存储器1110可以用于存储分组结果。
可选地,第一计算机视觉算子组还包括多个计算机视觉算子中的第三计算机视觉算子,第三计算机视觉算子与第一计算机视觉算子和第二计算机视觉算子没有依赖关系。
存储器1110上存储了各个计算机视觉算子在各个处理器上的历史运行时间组成的运行时间表。
相应地,主处理器1120具体用于:根据运行时间表中记录的历史运行时间,确定第一计算机视觉算子在第一处理器上的历史运行时间、第二计算机视觉算子在第一处理器上的历史运行时间和第三计算机视觉算子在多个处理器中的第二处理器上的历史运行时间的总和,小于或等于第一计算机视觉算子在多个处理器中除第一处理器外任意处理器上的历史运行时间、第二计算机视觉算子在多个处理器中除第一处理器外任意处理器上的历史运行时间和第三计算机视觉算子在多个处理器中除第二处理器外任意处理器上的历史运行时间的总和时,调度第一处理器执行第一计算机视觉算子和第二计算机视觉算子,调度第二处理器执行第三计算机视觉算子。
可选地,主处理器1120具体用于:根据运行时间表中记录的历史运行时间,确定第一计算机视觉算子在第一处理器上的历史运行时间、第二计算机视觉算子在第一处理器上的历史运行时间和第三计算机视觉算子在第一处理器上的历史运行时间的总和,小于或等于第一计算机视觉算子在多个处理器中除第一处理器外任意处理器上的历史运行时间、第二计算机视觉算子在多个处理器中除第一处理器外任意处理器上的历史运行时间和第三计算机视觉算子在多个处理器中除第一处理器外任意处理器上的历史运行时间的总和时,调度第一处理器执行第一计算机视觉算子、第二计算机视觉算子和第三计算机视觉算子。
可选地,主处理器1120具体用于:将多个计算机视觉算子中,根据多个计算机视觉算子间的依赖关系确定并行的计算机视觉算子,以及与所述并行的计算机视觉算子中的计算机视觉算子具有单依赖关系的计算机视觉算子分为同一组计算机视觉算子,单依赖关系用于指示两个计算机视觉算子中的前一个计算机视觉算子的输出仅为后一个计算机视觉算子的输入,后一个计算机视觉算子的输入仅包含前一个计算机视觉算子的输出。
主处理器1120调用处理器1130执行计算机视觉算子时,向调度的各个处理器1130发送控制信令,通知各个处理器1130分别执行哪些计算机视觉算子。处理器1130接收到主处理器1120发送的控制信令后,用于执行计算机视觉算子。
处理器1130每次执行计算机视觉算子后,可以将计算机视觉算子输出的数据存储到存储器1110中。处理器1130下一次执行计算机视觉算子时,可以从存储器1110中读取计算机视觉算子需要输入的数据。
主处理器1120可以实现图3所示的方法中的各个步骤,为了简洁,此处不再赘述。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘Solid State Disk(SSD))等。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。
Claims (10)
1.一种调度处理器的方法,其特征在于,包括:
调度多个处理器中的第一处理器执行多个计算机视觉算子中的第一计算机视觉算子和第二计算机视觉算子,其中,所述第一计算机视觉算子的输出仅为所述第二计算机视觉算子的输入,所述第二计算机视觉算子的输入仅包含所述第一计算机视觉算子的输出。
2.根据权利要求1所述的方法,其特征在于,在调度所述第一处理器执行所述第一计算机视觉算子和所述第二计算机视觉算子之前,所述方法还包括:
根据所述多个计算机视觉算子间的依赖关系,对所述多个计算机视觉算子进行分组,得到包含所述第一计算机视觉算子和所述第二计算机视觉算子的第一计算机视觉算子组。
3.根据权利要求2所述的方法,其特征在于,所述第一计算机视觉算子组还包括所述多个计算机视觉算子中的第三计算机视觉算子,所述第三计算机视觉算子与所述第一计算机视觉算子和所述第二计算机视觉算子没有依赖关系;
其中,所述调度多个处理器中的第一处理器执行多个计算机视觉算子中的第一计算机视觉算子和第二计算机视觉算子,包括:
根据运行时间表中记录的历史运行时间,确定所述第一计算机视觉算子在所述第一处理器上的历史运行时间、所述第二计算机视觉算子在所述第一处理器上的历史运行时间和所述第三计算机视觉算子在所述多个处理器中的第二处理器上的历史运行时间的总和,小于或等于所述第一计算机视觉算子在所述多个处理器中除所述第一处理器外任意处理器上的历史运行时间、所述第二计算机视觉算子在所述多个处理器中除所述第一处理器外任意处理器上的历史运行时间和所述第三计算机视觉算子在所述多个处理器中除所述第二处理器外任意处理器上的历史运行时间的总和时,调度所述第一处理器执行所述第一计算机视觉算子和所述第二计算机视觉算子,调度所述第二处理器执行所述第三计算机视觉算子。
4.根据权利要求3所述的方法,其特征在于,所述第一处理器与所述第二处理器为同一个处理器。
5.根据权利要求2至4中任一项所述的方法,其特征在于,所述根据所述多个计算机视觉算子间的依赖关系,对所述多个计算机视觉算子进行分组,包括:
将所述多个计算机视觉算子中,根据所述多个计算机视觉算子间的依赖关系确定并行的计算机视觉算子,以及与所述并行的计算机视觉算子中的计算机视觉算子具有单依赖关系的计算机视觉算子分为同一组计算机视觉算子,所述单依赖关系用于指示两个计算机视觉算子中的前一个计算机视觉算子的输出仅为后一个计算机视觉算子的输入,所述后一个计算机视觉算子的输入仅包含所述前一个计算机视觉算子的输出。
6.一种调度处理器的装置,其特征在于,包括:
调度模块,用于调度多个处理器中的第一处理器执行多个计算机视觉算子中的第一计算机视觉算子和第二计算机视觉算子,其中,所述第一计算机视觉算子的输出仅为所述第二计算机视觉算子的输入,所述第二计算机视觉算子的输入仅包含所述第一计算机视觉算子的输出。
7.根据权利要求6所述的装置,其特征在于,所述装置还包括分组模块;
在所述调度模块调度所述第一处理器执行所述第一计算机视觉算子和所述第二计算机视觉算子之前,所述分组模块用于根据所述多个计算机视觉算子间的依赖关系,对所述多个计算机视觉算子进行分组,得到包含所述第一计算机视觉算子和所述第二计算机视觉算子的第一计算机视觉算子组。
8.根据权利要求7所述的装置,其特征在于,所述第一计算机视觉算子组还包括所述多个计算机视觉算子中的第三计算机视觉算子,所述第三计算机视觉算子与所述第一计算机视觉算子和所述第二计算机视觉算子没有依赖关系;
其中,所述调度模块具体用于:根据运行时间表中记录的历史运行时间,确定所述第一计算机视觉算子在所述第一处理器上的历史运行时间、所述第二计算机视觉算子在所述第一处理器上的历史运行时间和所述第三计算机视觉算子在所述多个处理器中的第二处理器上的历史运行时间的总和,小于或等于所述第一计算机视觉算子在所述多个处理器中除所述第一处理器外任意处理器上的历史运行时间、所述第二计算机视觉算子在所述多个处理器中除所述第一处理器外任意处理器上的历史运行时间和所述第三计算机视觉算子在所述多个处理器中除所述第二处理器外任意处理器上的历史运行时间的总和时,调度所述第一处理器执行所述第一计算机视觉算子和所述第二计算机视觉算子,调度所述第二处理器执行所述第三计算机视觉算子。
9.根据权利要求8所述的装置,其特征在于,所述调度模块具体用于:根据运行时间表中记录的历史运行时间,确定所述第一计算机视觉算子在所述第一处理器上的历史运行时间、所述第二计算机视觉算子在所述第一处理器上的历史运行时间和所述第三计算机视觉算子在所述第一处理器上的历史运行时间的总和,小于或等于所述第一计算机视觉算子在所述多个处理器中除所述第一处理器外任意处理器上的历史运行时间、所述第二计算机视觉算子在所述多个处理器中除所述第一处理器外任意处理器上的历史运行时间和所述第三计算机视觉算子在所述多个处理器中除所述第一处理器外任意处理器上的历史运行时间的总和时,调度所述第一处理器执行所述第一计算机视觉算子、所述第二计算机视觉算子和所述第三计算机视觉算子。
10.根据权利要求7至9中任一项所述的装置,其特征在于,所述分组模块具体用于:
将所述多个计算机视觉算子中,根据所述多个计算机视觉算子间的依赖关系确定并行的计算机视觉算子,以及与所述并行的计算机视觉算子中的计算机视觉算子具有单依赖关系的计算机视觉算子分为同一组计算机视觉算子,所述单依赖关系用于指示两个计算机视觉算子中的前一个计算机视觉算子的输出仅为后一个计算机视觉算子的输入,所述后一个计算机视觉算子的输入仅包含所述前一个计算机视觉算子的输出。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710521843.XA CN109213590B (zh) | 2017-06-30 | 2017-06-30 | 调度处理器的方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710521843.XA CN109213590B (zh) | 2017-06-30 | 2017-06-30 | 调度处理器的方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109213590A true CN109213590A (zh) | 2019-01-15 |
CN109213590B CN109213590B (zh) | 2021-01-15 |
Family
ID=64976423
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710521843.XA Active CN109213590B (zh) | 2017-06-30 | 2017-06-30 | 调度处理器的方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109213590B (zh) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101860752A (zh) * | 2010-05-07 | 2010-10-13 | 浙江大学 | 一种针对嵌入式多核系统的视频编码流水化并行方法 |
CN103235742A (zh) * | 2013-04-07 | 2013-08-07 | 山东大学 | 多核集群服务器上基于依赖度的并行任务分组调度方法 |
CN105573717A (zh) * | 2014-10-08 | 2016-05-11 | 华为技术有限公司 | 一种面向多核处理器的程序划分方法及装置 |
-
2017
- 2017-06-30 CN CN201710521843.XA patent/CN109213590B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101860752A (zh) * | 2010-05-07 | 2010-10-13 | 浙江大学 | 一种针对嵌入式多核系统的视频编码流水化并行方法 |
CN103235742A (zh) * | 2013-04-07 | 2013-08-07 | 山东大学 | 多核集群服务器上基于依赖度的并行任务分组调度方法 |
CN105573717A (zh) * | 2014-10-08 | 2016-05-11 | 华为技术有限公司 | 一种面向多核处理器的程序划分方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN109213590B (zh) | 2021-01-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR102504201B1 (ko) | 전자 장치 및 이의 알림 출력 제어 방법 | |
CN104123184B (zh) | 一种用于为构建过程中的任务分配资源的方法和系统 | |
CN109523187A (zh) | 任务调度方法、装置和设备 | |
CN109324977A (zh) | 应用程序卡顿的检测方法、装置及电子设备 | |
CN109076304A (zh) | 用于自适应音频呈现的应用编程接口 | |
CN107343045A (zh) | 云计算系统及用于控制服务器的云计算方法和装置 | |
CN106411697A (zh) | 会议专用的状态指示符 | |
CN105045602B (zh) | 一种构建Hadoop应用开发框架的方法、装置及电子装置 | |
CN107005550A (zh) | 相关通信模式选择 | |
CN105378668B (zh) | 多处理器系统中的操作系统管理的中断引导 | |
CN107294803A (zh) | 响应信息一致性测试方法及装置 | |
CN105847332A (zh) | 桌面虚拟化方法、客户端设备和服务端设备 | |
CN110287022A (zh) | 一种调度节点选择方法、装置、存储介质及服务器 | |
CN110007936A (zh) | 数据处理方法和装置 | |
CN114157701A (zh) | 一种任务测试方法、装置、设备以及存储介质 | |
CN104424555B (zh) | 用于发布/订阅系统中的控制方法及设备 | |
CN104102560B (zh) | 系统性能测试的方法及装置 | |
CN112835617B (zh) | 一种灰度发布方法、装置、服务器及可读介质 | |
CN110389885A (zh) | 高频交易监控方法及装置 | |
CN109213590A (zh) | 调度处理器的方法和装置 | |
CN106933646A (zh) | 一种创建虚拟机的方法及装置 | |
CN110083506A (zh) | 集群资源量优化的方法及装置 | |
CN109840072A (zh) | 信息处理方法和装置 | |
CN116016780A (zh) | 基于多种nlp的会话服务配置方法、装置、设备和介质 | |
CN109670579A (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 |