CN114661444A - 调度方法、第一计算节点、第二计算节点以及调度系统 - Google Patents

调度方法、第一计算节点、第二计算节点以及调度系统 Download PDF

Info

Publication number
CN114661444A
CN114661444A CN202210333511.XA CN202210333511A CN114661444A CN 114661444 A CN114661444 A CN 114661444A CN 202210333511 A CN202210333511 A CN 202210333511A CN 114661444 A CN114661444 A CN 114661444A
Authority
CN
China
Prior art keywords
algorithm
algorithms
execution
time period
time
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202210333511.XA
Other languages
English (en)
Inventor
代明
谢立君
康宏伟
白钰
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Alibaba China Co Ltd
Original Assignee
Alibaba China Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Alibaba China Co Ltd filed Critical Alibaba China Co Ltd
Priority to CN202210333511.XA priority Critical patent/CN114661444A/zh
Publication of CN114661444A publication Critical patent/CN114661444A/zh
Priority to PCT/CN2023/084359 priority patent/WO2023185825A1/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

本申请提出一种调度方法、第一计算节点、第二计算节点以及调度系统。该方法包括:接收N个算法在第一时段内的算法使用数据;将算法使用数据输入预测模型,得到N个算法在第二时段内的执行计划。利用本申请实施例可以适应真实场景下的计算需求分布并充分利用算法资源。

Description

调度方法、第一计算节点、第二计算节点以及调度系统
技术领域
本申请涉及人工智能领域,尤其涉及计算机视觉领域以及算法资源调度领域。
背景技术
在一些应用场景中,需要使用算法实时处理视频流中的图像数据,并且往往存在多个算法分别需要接入多个摄像头进行实时处理的情况。然而,计算节点的计算能力有限。为了支持每个算法处理更多摄像头传送的数据,需要对算法资源进行调度。
相关技术中,机械地采用轮询的方式让不同的摄像头共享算法资源,一方面造成不同的摄像头之间抢占算法资源,另一方面,摄像头常常在本不需要进行分析的时刻占用算法资源。因此,无法满足计算需求且没有充分利用算法资源。
发明内容
本申请实施例提供一种调度方法、第一计算节点、第二计算节点以及调度系统,以解决相关技术存在的问题。
第一方面,本申请实施例提供了一种调度方法,包括:
基于N个算法在第一时段内的执行计划,得到N个算法在第一时段内的算法使用数据;
其中,算法使用数据用于输入预测模型,以得到N个算法在第二时段内的执行计划,N为正整数。
第二方面,本申请实施例提供了一种调度方法,包括:
接收N个算法在第一时段内的算法使用数据;其中,N为正整数;
将算法使用数据输入预测模型,得到N个算法在第二时段内的执行计划。
第三方面,本申请实施例提供了一种第一计算节点,包括:
算法执行模块,用于基于N个算法在第一时段内的执行计划,得到N个算法在第一时段内的算法使用数据;
其中,算法使用数据用于输入预测模型,以得到N个算法在第二时段内的执行计划,N为正整数。
第四方面,本申请实施例提供了一种第二计算节点,包括:
通信模块,用于接收N个算法在第一时段内的算法使用数据;其中,N为正整数;
预测模块,用于将算法使用数据输入预测模型,得到N个算法在第二时段内的执行计划。
第五方面,本申请实施例提供了一种调度系统,包括:
第一计算节点,用于基于N个算法在第一时段内的执行计划,得到N个算法在第一时段内的算法使用数据;其中,N为正整数;
第二计算节点,用于将算法使用数据输入预测模型,得到N个算法在第二时段内的执行计划。
第六方面,本申请实施例提供一种计算节点,包括存储器、处理器及存储在存储器上的计算机程序,处理器在执行计算机程序时实现本申请任一实施例提供的方法。
第七方面,本申请实施例提供一种计算机可读存储介质,计算机可读存储介质内存储有计算机程序,计算机程序被处理器执行时实现本申请任一实施例提供的方法。
第八方面,本申请实施例提供一种计算机程序产品,包括计算机程序,计算机程序在被处理器执行时实现本申请任一实施例提供的方法。
与现有技术相比,本申请具有如下优点:
根据本申请的技术方案,计算节点基于至少一个算法的执行计划,获得对应时段内的算法使用数据,利用该算法使用数据以及预测模型,得到其他时段内的执行计划。也就是说,基于算法使用数据的反馈,动态更新各算法的执行计划。因此,可以适应真实场景下的计算需求分布并充分利用算法资源,在同等硬件配置下提供更多高质量的算法服务。
上述概述仅仅是为了说明书的目的,并不意图以任何方式进行限制。除上述描述的示意性的方面、实施方式和特征之外,通过参考附图和以下的详细描述,本申请进一步的方面、实施方式和特征将会是容易明白的。
附图说明
在附图中,除非另外规定,否则贯穿多个附图相同的附图标记表示相同或相似的部件或元素。这些附图不一定是按照比例绘制的。应该理解,这些附图仅描绘了根据本申请公开的一些实施方式,而不应将其视为是对本申请范围的限制。
图1是本申请实施例的调度方法的应用场景的示意图;
图2是根据本申请一实施例的调度方法的流程示意图;
图3是本申请实施例中执行计划的示意图;
图4是根据本申请另一实施例的调度方法的流程示意图;
图5是本申请提供的调度方法的一个应用示例的示意图;
图6是本申请一实施例的第一计算节点的结构框图;
图7是本申请一实施例的第二计算节点的结构框图;
图8是本申请一实施例的调度系统的结构框图;
图9是根据本申请实施例的电子设备的结构框图。
具体实施方式
在下文中,仅简单地描述了某些示例性实施例。正如本领域技术人员可认识到的那样,在不脱离本申请的精神或范围的情况下,可通过各种不同方式修改所描述的实施例。因此,附图和描述被认为本质上是示例性的而非限制性的。
为便于理解本申请实施例的技术方案,以下对可用于实现本申请实施例的应用场景进行说明。
图1为一个示例性的应用场景的示意图。在该应用场景中,作为数据源的多个摄像头130与云中心110之间部署有边缘计算节点120。这里,边缘计算节点120为靠近网络边缘侧(摄像头130侧)构建的数据处理节点,用于提供存储、AI(Artificial Intelligence,人工智能)计算等资源,具有分布式和更靠近数据源的特性。利用边缘计算节点120可以将部分关键应用功能下沉到接入网络边缘,无需将海量的所有数据上传至云中心110进行处理,从而可以减少网络传输和多级转发带来的带宽和时延损耗。
例如,在安防场景中,可以将摄像头接入边缘计算节点,在边缘计算节点采用计算机视觉算法例如重点区域占用检测算法、人群聚集检测算法、垃圾检测算法等进行AI分析。
边缘硬件计算资源价格高,处理能力相对较差。因此,往往边缘计算节点无法对接入的每一路摄像头的数据都进行AI算法分析,只能将算法分析能力分配给接入的部分摄像头的视频流,将其他视频流或相应的图像数据上传云中心。为了能够在边缘计算节点中处理更多的摄像头数据,需要提升边缘计算节点的算法资源使用率。
面向不同场景,算法的使用频率和使用的算力分布会和场景特性有很强的相关性。本申请实施例提供一种调度方法,支持根据特定场景的算法使用数据来动态进行算法执行计划的更新,以适应真实场景下的算力使用分布,充分利用单个设备算力来提供更多高质量的AI服务。
图2示出了根据本申请一实施例的调度方法的流程示意图,该方法可以由图1所示的边缘计算节点执行,但不仅限于此。该方法包括:
S210、基于N个算法在第一时段内的执行计划,得到N个算法在第一时段内的算法使用数据;其中,算法使用数据用于输入预测模型,以得到N个算法在第二时段内的执行计划。其中,N为正整数。
可选地,上述执行计划,包括第一时段内的执行计划以及第二时段内的执行计划,可以用于调度各算法。例如,执行计划可以指示各算法的执行时间,边缘计算节点可以按照该执行计划,调度各算法在对应的执行时间运行。
示例性地,本申请实施例中的算法,可以是AI算法。具体地,该算法可以包括计算机视觉算法,例如基于深度学习的图像分类算法、目标检测算法、语义分割算法、实例分割算法等。针对特定的应用场景,N个算法可以包括针对该场景下不同目标数据的计算机视觉算法。例如,在安防场景,N个算法可以包括人群聚集检测算法、重点区域检测算法、重点区域检测算法、目标人物检测算法等。在智能交通场景,N个算法可以包括违章检测算法、拥堵检测算法、目标车辆检测算法等。
可选地,上述N个算法在第一时段内的执行计划,可以包括N个算法整体在第一时段内的执行计划,例如全部算法均每5分钟执行一次,或全部算法均在某几个时刻执行。或者,N个算法在第一时段内的执行计划,也可以包括N个算法中每个算法的执行计划,例如算法A每5分钟执行一次,算法B每10分钟执行一次等。相应地,N个算法在第一时段内的算法使用数据,可以包括N个算法整体在第一时段内的算法使用数据,也可以包括N个算法中每个算法在第一时段内的算法使用数据。
可选地,在上述步骤S210中,可以通过执行N个算法在第一时段内的执行计划,得到N个算法的算法使用数据。例如,可以按照第一时段内的执行计划执行各算法,得到各算法的执行结果,基于各算法的执行结果得到各算法的算法使用数据。
可选地,执行上述方法的计算节点在得到第一时段内的算法使用数据后,可以自行将算法使用数据输入预测模型,以得到算法在第二时段内的执行计划。
可选地,执行上述方法的计算节点也可以向其他计算节点发送算法使用数据,以使其他计算节点利用预测模型和算法使用数据得到算法在第二时段内的执行计划。示例性地,其他计算节点包括云中心和/或其他边缘计算节点。
例如,部署于云边缘的用于执行AI算法的边缘计算节点(以下称边缘AI计算节点)连接摄像头,基于摄像头采集的视频流或视频流中的图像以及在第一时段内的执行计划,执行各AI算法,得到各AI算法在第一时段内的算法使用数据。
然后,边缘AI计算节点可以向网络中的调度配置预测装置发送算法使用数据,由调度配置预测装置基于预测模型输出对各AI算法的使用需求信息,并将该使用需求信息发送至网络中的调度配置管理模块,由调度配置管理模块基于使用需求信息输出各AI算法在第二时段内的执行计划,并将第二时段内的执行计划下发至边缘AI计算节点。
边缘AI计算节点也可以向云中心发送算法使用数据,由云中心基于预测模型得到各AI算法在第二时段内的执行计划,并将第二时段内的执行计划下发至边缘AI计算节点。
示例性地,上述算法在特定时段内的执行计划,可以基于该算法在特定时段内的执行时间或执行频率表示。例如,某个AI算法在8:00至9:00的执行计划,可以是该AI算法在8:20以及8:30执行,也可以是该AI算法在8:00至9:00内每5分钟或每10分钟检测一次。
在上述步骤S210中,可以通过调度各算法执行对应的执行计划,得到各算法的算法使用数据。示例性地,可以将各算法在特定时段内的执行结果,作为各算法在特定时段内的算法使用数据。以目标检测算法为例,具体而言,算法在特定时段内的执行结果可以指该算法在特定时段内是否检测到目标、检测到目标的次数、检测到目标的时间、检测到目标的次数与执行次数之间的比值等。
示例性地,在本申请实施例中,预测模型可以基于强化学习算法实现。预测模型的输入信息为算法使用数据,输出信息可以是算法的执行计划,或者与算法的执行计划相关的信息,例如对算法的使用需求信息,包括但不限于执行时间、频率等参数,或者针对如何变更执行计划的指示信息(例如,提高执行频率、降低执行频率、增加执行次数、减少执行次数等指示信息)。
可选地,可以根据实际需求、预测模型的精度等,相应地设置预测模型的使用方式。以下提供几种示例:
示例1:每个算法对应一个预测模型。通过将该算法在第一时段的算法使用数据输入该算法对应的预测模型,得到该算法在第二时段的执行计划。
示例2:每个算法对应一个预测模型。通过将N个算法对应的第一时段内的N个算法使用数据输入第一算法对应的预测模型,得到第一算法在第二时段的执行计划。其中,针对各算法的算法使用数据设置不同的权重。例如,在利用第一算法对应的预测模型进行预测时,第一算法的算法使用数据的权重大于其他算法的算法使用数据的权重。
示例3:N个算法对应一个预测模型。通过将N个算法对应的第一时段内的N个算法使用数据输入一个预测模型,得到该预测模型输出的每个算法在第二时段内的执行计划。也就是说,该预测模型针对全部算法进行统一的执行计划调度。
在本申请实施例中,第一时段可以是第二时段之前的时段。可选地,第一时段和第二时段可以是相邻的时段,且/或,第一时段的时长与第二时段的时长相等。例如,第一时段可以是8:00至9:00,第二时段可以是9:00至10:00。
可选地,上述方法可以周期性地执行。例如,在一段较长的时间范围内设置多个周期,在每个周期内基于每个算法在当前周期的执行计划,得到每个算法在当前周期内的算法使用数据,以利用该算法使用数据得到每个算法在下一周期的执行计划。也就是说,假设上述第一时段是多个周期中的第i个周期,则第二时段可以是多个周期中的第i+1个周期,其中,i为正整数。
根据上述调度方法,计算节点基于各算法的执行计划,获得对应时段内的算法使用数据,利用该算法使用数据以及预测模型,得到其他时段内的执行计划。也就是说,基于算法使用数据的反馈,动态更新各算法的执行计划,从而可以适应真实场景下的计算需求分布并充分利用算法资源,在同等硬件配置下提供更多高质量的算法服务。
在一种示例性的实施方式中,上述步骤S210,基于N个算法在第一时段内的执行计划,得到N个算法在第一时段内的算法使用数据,包括:
根据N个算法中的第i个算法在第一时段内的执行计划,确定第i个算法的M个执行时刻;其中,i为小于或等于N的正整数,M为正整数;
基于M个执行时刻执行第i个算法,得到第i个算法在第一时段内的执行结果;
基于第i个算法在第一时段内的执行结果,得到第i个算法在第一时段内的算法使用数据。
也就是说,针对每个算法,分别执行其执行计划并获取算法使用数据。获取某个算法在特定时段内的算法使用数据的方式包括:基于该算法在该时段内的执行计划,确定该算法在该时段内的各个执行时刻。然后,在各个执行时刻执行该算法,得到各个执行时刻对应的执行结果。再基于各个执行时刻对应的执行结果,得到算法使用数据。如此,算法使用数据中承载具体、全面的算法执行结果,有利于采用强化学习算法准确预测更优的算法执行计划,进一步提升算法资源的利用率。
示例性地,第一时段内的执行结果,可以包括每个执行时刻对应的执行结果,具体可以为该执行时刻是否检测到目标物体或目标事件。例如,对于垃圾检测算法,其在某个时刻的执行结果,指垃圾检测算法在该时刻是否检测到垃圾。
示例性地,特定时段内的算法使用数据,可以为多维的向量。其中,向量的各个元素与各个执行时刻或各个预定的时刻对应,表示该时刻的执行结果。
图3示出了一个示例性方式中的执行计划的示意图。在该示例性方式中,边缘计算节点中配置有垃圾检测算法、重点区域占用检测算法和人群聚集检测算法。其中,每个算法均与边缘计算节点所连接的部分或全部摄像头对接,例如垃圾检测算法对接摄像头A,重点区域占用检测算法对接摄像头B,人群聚集检测算法对接摄像头C。
如图3所示,边缘计算节点接收到的各算法在10:00至10:40的执行计划分别是:垃圾检测算法每5分钟执行一次,重点区域占用检测算法每10分钟执行一次,人群聚集检测算法每15分钟执行一次。基于此,可以确定如图3所示的在10:00至10:40之间各算法的执行时刻。边缘计算节点可基于图3所示的执行时刻执行对应的算法,例如在10:00执行垃圾检测算法、重点区域占用检测算法和人群聚集检测算法,在10:05仅执行垃圾检测算法,以此类推,在此不进行赘述。以人群聚集检测算法为例,若仅在10:30检测到有人群聚集,则各执行时刻的执行结果包括:10:00未检测到,10:15未检测到,10:30检测到。若以0表示未检测到,以1表示检测到,则人群聚集检测算法的算法使用数据可以表示为向量(0,0,1)。
在一种示例性的实施方式中,执行上述方法的计算节点可以通过获取摄像头的图像而非视频流,来实现各算法的执行,以减少抓图时的计算消耗。具体地,上述基于M个执行时刻执行第i个算法,得到第i个算法在第一时段内的执行结果,包括:
在M个执行时刻中的第j个执行时刻,向第i个算法对应的摄像头发送图像获取指令,并接收来自摄像头的图像;其中,j为小于或等于M的整数;
基于第i个算法对图像进行处理,得到第i个算法在第j个执行时刻的执行结果。
可选地,每个算法可以对应于一个或多个摄像头。根据上述示例性的实施方式,各算法采用图像进行算法分析,通过发送图像获取指令抓取图像而非视频流,让每个摄像头异步抓图,占用的计算资源较少。相比抓取视频流并抽帧获得图像,上述方法可以降低计算资源占用,使得边缘计算节点能够支持连接的所有摄像头共享计算资源。
示例性地,上述图像获取指令包括基于ONVIF(Open Network Video InterfaceForum,开放式网络视频接口论坛)协议的指令。ONVIF协议创建了一个视频监测和其他物理安全领域的产品进行相互通信的标准,支持直接从摄像头获取目标图像。
如前述说明,执行上述方法的计算节点可以自行将算法使用数据输入预测模型,以得到算法在第二时段内的执行计划。也就是说,预测模型可以配置在执行上述方法的计算节点中。可选地,上述调度方法还可以包括更新/调整预测模型的参数的步骤。
具体而言,上述调度方法还包括:
基于N个算法在第一时段内的执行计划以及算法使用数据,得到N个算法对应的反馈信息;
基于该反馈信息,调整预测模型的参数。
可选地,上述获取反馈信息并调整预测模型参数的步骤,可以在获取算法在第二时段内的执行计划之前执行,也可以在获取算法在第二时段内的执行计划之后执行,本申请不对此进行限定。
可选地,若多次执行获取每个算法的执行计划的步骤,例如周期性地执行该步骤,则上述获取反馈信息并调整预测模型参数的步骤也可以多次执行,例如每次获取算法的执行计划之前,都会先获取反馈信息并调整预测模型的参数,或者,每获取两次算法的执行计划,则获取一次反馈信息并调整预测模型的参数。
示例性地,该反馈信息可以是执行计划和算法使用数据之间的差异信息。
示例性地,基于N个算法在第一时段内的执行计划以及算法使用数据,得到N个算法对应的反馈信息,可以包括:
基于N个算法中的第k个算法在第一时段内的每个预定时刻的计划信息,得到第一向量;其中,k为小于或等于N的正整数;
基于第k个算法在每个预定时刻的执行结果,得到第k个算法对应的第二向量;
基于第一向量与第二向量之间的距离,得到第k个算法对应的反馈信息。
示例性地,预定时刻可以是预定的周期节点,也可以是算法的执行时刻。基于执行计划可以确定每个预定时刻的计划信息,该计划信息可以指该时刻是否执行算法。示例性地,各预定时刻的计划信息可以作为第一向量中的各元素,第一向量中的元素取值1表示对应的时刻上执行算法,元素取值0表示对应的时刻上不执行算法。
相应地,每个预定时刻的执行结果,可以指该时刻是否检测到目标物或目标事件。基于算法使用数据可以确定每个预定时刻的执行结果。示例性地,各时刻的执行结果可以作为第二向量中的各元素,可以用1表示检测到,用0表示未检测到。
以图3为例,假设垃圾检测算法仅在10:10和10:20检测到垃圾,重点区域占用检测算法在其全部执行时刻均检测到重点区域被占用,人群聚集检测算法在其全部执行时刻均未检测到人群聚集,则根据以下不同情况,第一向量和第二向量有不同的实现方式。
情况1:预定时刻为预定的周期节点。
例如,10:00-10:40之间的预定时刻可以包括8个时刻:10:00、10:05、10:10、10:15、10:20、10:25、10:30、10:35,则根据图3以及上述假设,垃圾检测算法对应的第一向量为(1,1,1,1,1,1,1,1),第二向量为(0,0,1,0,1,0,0,0);重点区域占用检测算法对应的第一向量为(1,0,1,0,1,0,1,0),第二向量为(1,0,1,0,1,0,1,0);人群聚集检测算法对应的第一向量为(1,0,0,1,0,0,1,0),第二向量为(0,0,0,0,0,0,0,0)。
情况2:预定时刻为算法的执行时刻。
针对第k个算法,10:00-10:40之间的预定时刻可以包括第k个算法的各个执行时刻。则第k个算法对应的第一向量的各个元素均为1,算法的执行次数决定第一向量和第二向量的元素数量。根据图3以及上述假设,垃圾检测算法对应的第一向量为(1,1,1,1,1,1,1,1),第二向量为(0,0,1,0,1,0,0,0);重点区域占用检测算法对应的第一向量为(1,1,1,1),第二向量为(1,1,1,1);人群聚集检测算法对应的第一向量为(1,1,1),第二向量为(0,0,0)。
根据上述实施方式,采用向量表示执行计划和算法使用数据,可以基于向量之间的距离例如欧氏距离、余弦距离等,准确地表示执行计划和算法使用数据之间的差异,从而有利于根据实际使用反馈将预测模型准确调整至适应实际场景。
图4示出了本申请另一实施例提供的调度方法的流程示意图。该方法可选地可以由边缘计算节点或云中心执行,但不仅限于此。如图4所示,该方法包括:
S410、接收N个算法在第一时段内的算法使用数据;其中,N为正整数;
S420、将算法使用数据输入预测模型,得到N个算法在第二时段内的执行计划。
示例性地,上述算法使用数据来自于边缘AI计算节点,或者说由边缘AI计算节点采集并发送。这里,边缘AI计算节点指部署在云边端的用于执行AI算法的计算节点。例如,边缘AI计算节点连接摄像头,基于摄像头采集的视频流或视频流中的图像,执行各AI算法在第一时段内的执行计划,得到并发送各AI算法在第一时段内的算法使用数据。
可选地,上述实施例提供的调度方法由网络中的调度配置预测装置和调度配置管理模块共同完成。可选地,该调度配置预测装置和调度配置管理模块也可以部署于云边端。其中,预测模型配置于调度配置预测装置。调度配置预测装置接收算法使用数据,将算法使用数据输入预测模型,基于预测模型得到对各算法的使用需求信息,并将该使用需求信息发送至网络中的调度配置管理模块。调度配置管理模块基于使用需求信息输出各算法在第二时段内的执行计划,并将第二时段内的执行计划下发至边缘AI计算节点。
可选地,上述实施例提供的调度方法由云中心执行。云中心接收算法使用数据,基于预测模型得到各算法在第二时段内的执行计划,并将第二时段内的执行计划下发至边缘AI计算节点。
示例性地,上述调度方法还可以包括:
基于N个算法在第一时段内的执行计划以及算法使用数据,得到N个算法对应的反馈信息;
基于该反馈信息,调整预测模型的参数。
在上述调度方法中的各技术细节可以参考前述实施例实现,在此不再进行赘述。
为了更清楚地呈现本申请的技术思路,下面提供一个具体的应用示例。
如图5所示,在本应用示例中,调度方法可以在云边端实现。云边端部署有调度配置管理模块、调度配置预测装置以及边缘AI计算节点。其中,边缘AI计算节点中配置计算资源调度装置、调度数据收集与处理装置以及多个AI算法。具体技术细节如下:
1、调度的目标计算资源位于连接摄像头的边缘AI计算节点。边缘AI计算节点部署多路AI算法,其连接的每个摄像头的抓图照片会流转到边缘AI计算节点进行算法计算,所有的摄像头共享这些AI算法和计算资源。
2、边缘AI计算绩点中的计算资源调度装置按照用户初始配置的执行计划调度任务执行。每次任务执行时,计算资源调度装置控制该执行计划配置的摄像头采用ONVIF协议进行异步抓图,图像流转到边缘AI计算节点具体的算法处进行算法分析,算法执行结果发送到边缘AI计算节点中的调度数据收集与处理装置。
3、调度数据收集与处理装置收集每路算法调用的日志,将日志明细加工处理后,上报至调度配置预测装置。调度配置预测装置根据算法使用数据分析不同算法的使用情况分布,预测出未来一段时间该边缘设备在当前特定场景下对算法的使用需求,并将预测结果同步到调度配置管理模块。
4、调度配置预测装置利用预测模型(强化学习模型)预测未来该边缘设备在当前场景的算法使用需求。其中,预测模型的算法描述如下:
a)初始配置摄像头周期性地运行算法(比如2分钟一次);
b)经过一段时间的试运行后,采用强化学习算法,将每次算法事件的结果作为实时反馈,作为强化学习模型的输入,预测未来一段时间的算法执行时间点;
c)计算步骤b中预测的算法执行时间点和实际检测到目标的时间点之间的距离,将这个距离做为负反馈调整步骤b中的强化学习算法的参数;
d)不断重复步骤b和c;
e)最终步骤b的强化学习算法的参数将趋于一组相对稳定的值,从而最少的算法执行代价检测到尽可能多的算法事件。
5、调度配置管理模块收到未来一段时间的当前特定场景下算法使用需求后,动态调整各摄像头的算法执行频率配置,优化算力的使用,并将优化的调度配置计划动态下发到边缘AI计算节点,更新算法调度配置,完成整个链路闭环。
在一些示例性的实际场景中采用上述方案,原本最多支持12路AI分析任务的边缘AI计算节点,可以提升至支持256路AI分析任务。可以看到,根据本申请实施例的方法,可以基于算法使用数据的反馈,动态更新各算法的执行计划,从而可以适应真实场景下的计算需求分布并充分利用算法资源,在同等硬件配置下提供更多高质量的算法服务。
与本申请实施例提供的方法的应用场景以及方法相对应地,本申请实施例还提供一种第一计算节点。参考图6,该第一计算节点600可以包括:
算法执行模块610,用于基于N个算法在第一时段内的执行计划,得到N个算法在第一时段内的算法使用数据;
其中,算法使用数据用于输入预测模型,以得到N个算法在第二时段内的执行计划,N为正整数。
示例性地,算法执行模块610包括:
执行时刻确定单元,用于根据N个算法中的第i个算法在第一时段内的执行计划,确定第i个算法的M个执行时刻;其中,i为小于或等于N的正整数,M为正整数;
执行结果获取单元,用于基于M个执行时刻执行第i个算法,得到第i个算法在第一时段内的执行结果;
使用数据获取单元,用于基于第i个算法在第一时段内的执行结果,得到第i个算法在第一时段内的算法使用数据。
示例性地,执行结果获取单元具体用于:
在M个执行时刻中的第j个执行时刻,向第i个算法对应的摄像头发送图像获取指令,并接收来自摄像头的图像;其中,j为小于或等于M的整数;
基于第i个算法对图像进行处理,得到第i个算法在第j个执行时刻的执行结果。
示例性地,图像获取指令包括基于开放式网络视频接口论坛协议的指令。
可选地,如图6所示,第一计算节点600还包括:
反馈获取模块620,用于基于N个算法在第一时段内的执行计划以及算法使用数据,得到N个算法对应的反馈信息;
参数调整模块630,用于基于反馈信息,调整预测模型的参数。
示例性地,反馈信息获取模块620包括:
第一向量获取单元,用于基于N个算法中在第一时段内的每个预定时刻的计划信息,得到第一向量;其中,k为小于或等于N的正整数;
第二向量获取单元,用于基于第k个算法在每个预定时刻的执行结果,得到第k个算法对应的第二向量;
反馈信息计算单元,用于基于第一向量与第二向量之间的距离,得到第k个算法对应的反馈信息。
本申请实施例还提供一种第二计算节点。参考图7,该第二计算节点700可以包括:
通信模块710,用于接收N个算法在第一时段内的算法使用数据;其中,N为正整数;
预测模块720,用于将算法使用数据输入预测模型,得到N个算法在第二时段内的执行计划。
可选地,第二计算节点700还可以包括:
反馈获取模块,用于基于N个算法在第一时段内的执行计划以及算法使用数据,得到N个算法对应的反馈信息;
参数调整模块,用于基于反馈信息,调整预测模型的参数。
本申请实施例各装置中的各模块的功能可以参见上述方法中的对应描述,并具备相应的有益效果,在此不再赘述。
与本申请实施例提供的方法的应用场景以及方法相对应地,本申请实施例还提供一种调度系统。图8示出了调度系统800的结构框图,系统800包括:
第一计算节点810,用于基于N个算法在第一时段内的执行计划,得到N个算法在第一时段内的算法使用数据;其中,N为正整数;
第二计算节点820,用于将算法使用数据输入预测模型,得到N个算法在第二时段内的执行计划。
该系统用于实现上述各实施例的方法,具体技术细节可参考方法实施例中相应的内容实现,并具备相应的有益效果,在此不再赘述。
本申请实施例还提供了一种用于实现上述方法的电子设备。图9示出根据本申请实施例的电子设备的结构框图。该电子设备包括用于实现上述方法的第一计算节点和/或第二计算节点。如图9所示,该电子设备包括:存储器910和处理器920,存储器910内存储有可在处理器920上运行的计算机程序。处理器920执行该计算机程序时实现上述实施例中的调度方法。存储器910和处理器920的数量可以为一个或多个。
该电子设备还包括:
通信接口930,用于与外界设备进行通信,进行数据交互传输。
如果存储器910、处理器920和通信接口930独立实现,则存储器910、处理器920和通信接口930可以通过总线相互连接并完成相互间的通信。该总线可以是工业标准体系结构(Industry Standard Architecture,ISA)总线、外部设备互连(Peripheral ComponentInterconnect,PCI)总线或扩展工业标准体系结构(Extended Industry StandardArchitecture,EISA)总线等。该总线可以分为地址总线、数据总线、控制总线等。为便于表示,图9中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
可选的,在具体实现上,如果存储器910、处理器920及通信接口930集成在一块芯片上,则存储器910、处理器920及通信接口930可以通过内部接口完成相互间的通信。
本申请实施例还提供一种计算机可读存储介质,其存储有计算机程序,该程序被处理器执行时实现本申请任一实施例中提供的方法。
本申请实施例还提供一种计算机程序产品,其包括计算机程序,该计算机程序在被处理器执行时实现本申请任一实施例中提供的方法。
本申请实施例还提供了一种芯片,该芯片包括,包括处理器,用于从存储器中调用并运行存储器中存储的指令,使得安装有芯片的通信设备执行本申请实施例提供的方法。
本申请实施例还提供了一种芯片,包括:输入接口、输出接口、处理器和存储器,输入接口、输出接口、处理器以及存储器之间通过内部连接通路相连,处理器用于执行存储器中的代码,当代码被执行时,处理器用于执行申请实施例提供的方法。
应理解的是,上述处理器可以是中央处理器(Central Processing Unit,CPU),还可以是其他通用处理器、数字信号处理器(Digital Signal Processing,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(FieldProgrammable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者是任何常规的处理器等。值得说明的是,处理器可以是支持进阶精简指令集机器(Advanced RISC Machines,ARM)架构的处理器。
进一步地,可选的,上述存储器可以包括只读存储器和随机存取存储器,还可以包括非易失性随机存取存储器。该存储器可以是易失性存储器或非易失性存储器,或可包括易失性和非易失性存储器两者。其中,非易失性存储器可以包括只读存储器(read-onlymemory,ROM)、可编程只读存储器(programmable ROM,PROM)、可擦除可编程只读存储器(erasable PROM,EPROM)、电可擦除可编程只读存储器(electrically EPROM,EEPROM)或闪存。易失性存储器可以包括随机存取存储器(random access memory,RAM),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的RAM可用。例如,静态随机存取存储器(static RAM,SRAM)、动态随机存取存储器(dynamic random access memory,DRAM)、同步动态随机存取存储器(synchronous DRAM,SDRAM)、双倍数据速率同步动态随机存取存储器(double data date SDRAM,DDR SDRAM)、增强型同步动态随机存取存储器(enhancedSDRAM,ESDRAM)、同步连接动态随机存取存储器(Sync Link DRAM,SLDRAM)和直接内存总线随机存取存储器(Direct Rambus RAM,DR RAM)。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行计算机程序指令时,全部或部分地产生按照本申请的流程或功能。计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包括于本申请的至少一个实施例或示例中。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或隐含地包括至少一个该特征。在本申请的描述中,“多个”的含义是两个或两个以上,除非另有明确具体的限定。
流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为,表示包括一个或更多个用于实现特定逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分。并且本申请的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能。
在流程图中表示或在此以其他方式描述的逻辑和/或步骤,例如,可以被认为是用于实现逻辑功能的可执行指令的定序列表,可以具体实现在任何计算机可读介质中,以供指令执行系统、装置或设备(如基于计算机的系统、包括处理器的系统或其他可以从指令执行系统、装置或设备取指令并执行指令的系统)使用,或结合这些指令执行系统、装置或设备而使用。
应理解的是,本申请的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。上述实施例方法的全部或部分步骤是可以通过程序来指令相关的硬件完成,该程序可以存储于一种计算机可读存储介质中,该程序在执行时,包括方法实施例的步骤之一或其组合。
此外,在本申请各个实施例中的各功能单元可以集成在一个处理模块中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。上述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读存储介质中。该存储介质可以是只读存储器,磁盘或光盘等。
以上,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到其各种变化或替换,这些都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以权利要求的保护范围为准。

Claims (14)

1.一种调度方法,包括:
基于N个算法在第一时段内的执行计划,得到所述N个算法在所述第一时段内的算法使用数据;
其中,所述算法使用数据用于输入预测模型,以得到所述N个算法在第二时段内的执行计划,N为正整数。
2.根据权利要求1所述的方法,其中,所述基于N个算法在第一时段内的执行计划,得到所述N个算法在所述第一时段内的算法使用数据,包括:
根据所述N个算法中的第i个算法在第一时段内的执行计划,确定所述第i个算法的M个执行时刻;其中,i为小于或等于N的正整数,M为正整数;
基于所述M个执行时刻执行所述第i个算法,得到所述第i个算法在所述第一时段内的执行结果;
基于所述第i个算法在所述第一时段内的执行结果,得到所述第i个算法在所述第一时段内的算法使用数据。
3.根据权利要求2所述的方法,其中,所述基于所述M个执行时刻执行所述第i个算法,得到所述第i个算法在所述第一时段内的执行结果,包括:
在所述M个执行时刻中的第j个执行时刻,向所述第i个算法对应的摄像头发送图像获取指令,并接收所述摄像头发送的图像;其中,j为小于或等于M的整数;
基于所述第i个算法对所述图像进行处理,得到所述第i个算法在所述第j个执行时刻的执行结果。
4.根据权利要求3所述的方法,其中,所述图像获取指令包括基于开放式网络视频接口论坛协议的指令。
5.根据权利要求1-4中任一项所述的方法,其中,所述方法还包括:
基于所述N个算法在所述第一时段内的执行计划以及所述算法使用数据,得到所述N个算法对应的反馈信息;
基于所述反馈信息,调整所述预测模型的参数。
6.根据权利要求5所述的方法,其中,所述基于所述N个算法在所述第一时段内的执行计划以及所述算法使用数据,得到所述N个算法对应的反馈信息,包括:
基于所述N个算法中的第k个算法在第一时段内的每个预定时刻的计划信息,得到第一向量;其中,k为小于或等于N的正整数;
基于所述第k个算法在所述每个预定时刻的执行结果,得到所述第k个算法对应的第二向量;
基于所述第一向量与所述第二向量之间的距离,得到所述第k个算法对应的反馈信息。
7.一种调度方法,包括:
接收N个算法在第一时段内的算法使用数据;其中,N为正整数;
将所述算法使用数据输入预测模型,得到所述N个算法在第二时段内的执行计划。
8.根据权利要求7所述的方法,其中,所述方法还包括:
基于所述N个算法在所述第一时段内的执行计划以及所述算法使用数据,得到所述N个算法对应的反馈信息;
基于所述反馈信息,调整所述预测模型的参数。
9.一种第一计算节点,包括:
算法执行模块,用于基于N个算法在第一时段内的执行计划,得到所述N个算法在第一时段内的算法使用数据;
其中,所述算法使用数据用于输入预测模型,以得到所述N个算法在第二时段内的执行计划,N为正整数。
10.一种第二计算节点,包括:
通信模块,用于接收N个算法在第一时段内的算法使用数据;其中,N为正整数;
预测模块,用于将所述算法使用数据输入预测模型,得到所述N个算法在第二时段内的执行计划。
11.一种调度系统,包括:
第一计算节点,用于基于N个算法在第一时段内的执行计划,得到所述N个算法在第一时段内的算法使用数据;其中,N为正整数;
第二计算节点,用于将所述算法使用数据输入预测模型,得到所述N个算法在第二时段内的执行计划。
12.一种第一计算节点,包括存储器、处理器及存储在存储器上的计算机程序,所述处理器在执行所述计算机程序时实现权利要求1-6中任一项所述的方法。
13.一种第二计算节点,包括存储器、处理器及存储在存储器上的计算机程序,所述处理器在执行所述计算机程序时实现权利要求7或8所述的方法。
14.一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现权利要求1-8中任一项所述的方法。
CN202210333511.XA 2022-03-30 2022-03-30 调度方法、第一计算节点、第二计算节点以及调度系统 Pending CN114661444A (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN202210333511.XA CN114661444A (zh) 2022-03-30 2022-03-30 调度方法、第一计算节点、第二计算节点以及调度系统
PCT/CN2023/084359 WO2023185825A1 (zh) 2022-03-30 2023-03-28 调度方法、第一计算节点、第二计算节点以及调度系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210333511.XA CN114661444A (zh) 2022-03-30 2022-03-30 调度方法、第一计算节点、第二计算节点以及调度系统

Publications (1)

Publication Number Publication Date
CN114661444A true CN114661444A (zh) 2022-06-24

Family

ID=82033596

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210333511.XA Pending CN114661444A (zh) 2022-03-30 2022-03-30 调度方法、第一计算节点、第二计算节点以及调度系统

Country Status (2)

Country Link
CN (1) CN114661444A (zh)
WO (1) WO2023185825A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023185825A1 (zh) * 2022-03-30 2023-10-05 阿里巴巴(中国)有限公司 调度方法、第一计算节点、第二计算节点以及调度系统

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109416647A (zh) * 2016-12-07 2019-03-01 塔塔咨询服务有限公司 用于闭环控制系统的调度任务和管理计算资源分配的系统和方法
US10613899B1 (en) * 2018-11-09 2020-04-07 Servicenow, Inc. Lock scheduling using machine learning
CN112286990A (zh) * 2020-10-29 2021-01-29 上海淇玥信息技术有限公司 一种预测平台作业执行时间的方法、装置和电子设备
KR102257028B1 (ko) * 2020-10-06 2021-05-27 주식회사 딥이티 컴퓨팅 플랫폼 기반의 적응형 딥러닝 작업 할당 장치 및 방법
CN113850428A (zh) * 2021-09-24 2021-12-28 联想(北京)有限公司 作业调度的预测处理方法、装置和电子设备

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101698875B1 (ko) * 2013-03-14 2017-01-24 한국전자통신연구원 Ldpc 부호의 복호 방법 및 장치
CN111680850B (zh) * 2020-08-12 2020-11-20 中兴软件技术(南昌)有限公司 基于迭代算法的负荷预测方法和系统
CN114661444A (zh) * 2022-03-30 2022-06-24 阿里巴巴(中国)有限公司 调度方法、第一计算节点、第二计算节点以及调度系统

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109416647A (zh) * 2016-12-07 2019-03-01 塔塔咨询服务有限公司 用于闭环控制系统的调度任务和管理计算资源分配的系统和方法
US10613899B1 (en) * 2018-11-09 2020-04-07 Servicenow, Inc. Lock scheduling using machine learning
KR102257028B1 (ko) * 2020-10-06 2021-05-27 주식회사 딥이티 컴퓨팅 플랫폼 기반의 적응형 딥러닝 작업 할당 장치 및 방법
CN112286990A (zh) * 2020-10-29 2021-01-29 上海淇玥信息技术有限公司 一种预测平台作业执行时间的方法、装置和电子设备
CN113850428A (zh) * 2021-09-24 2021-12-28 联想(北京)有限公司 作业调度的预测处理方法、装置和电子设备

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023185825A1 (zh) * 2022-03-30 2023-10-05 阿里巴巴(中国)有限公司 调度方法、第一计算节点、第二计算节点以及调度系统

Also Published As

Publication number Publication date
WO2023185825A1 (zh) 2023-10-05

Similar Documents

Publication Publication Date Title
Zhang et al. Blockchain-based collaborative edge intelligence for trustworthy and real-time video surveillance
CN111208748B (zh) 基于物联网的联动控制方法、系统和计算机设备
CN115914392A (zh) 算力网络资源调度方法及系统
CN114356548A (zh) 边缘计算服务的动态扩展及放置方法和装置
WO2023185825A1 (zh) 调度方法、第一计算节点、第二计算节点以及调度系统
Zhang et al. A serverless cloud-fog platform for dnn-based video analytics with incremental learning
CN110149476A (zh) 一种延时摄影方法、装置、系统及终端设备
CN115130649A (zh) 一种面向流水线分布式端云协同推理的深度学习模型划分方法和装置
Hou et al. Real-time surveillance video salient object detection using collaborative cloud-edge deep reinforcement learning
CN114625477A (zh) 一种服务节点容量调整方法、设备及计算机可读存储介质
CN112995287B (zh) 一种面向边缘计算的关键词检测任务调度方法
CN117389721A (zh) 一种基于时序调用图的无服务系统自适应扩缩容方法和装置
CN115729683A (zh) 任务处理方法、装置、系统、计算机设备和存储介质
Lotfi et al. Time-based feedback-control framework for real-time video surveillance systems with utilization control
CN111581255A (zh) 基于大数据挖掘的高密集图像数据流的分配调度系统
CN116010228A (zh) 面向网络安全扫描的时间预估方法及装置
Wang et al. Dependence-Aware Multi-Task Scheduling for Edge Video Analytics With Accuracy Guarantee
CN113723203B (zh) 一种面向边缘计算的人行为特征提取方法与系统
Makaya et al. Cost-effective machine learning inference offload for edge computing
CN116436980A (zh) 一种实时视频任务端网边协同调度方法及装置
CN114936089A (zh) 资源调度方法、系统、设备及存储介质
Argerich et al. Reinforcement learning based orchestration for elastic services
Hou et al. Dystri: A Dynamic Inference based Distributed DNN Service Framework on Edge
CN116866352B (zh) 一种云边协同的智能摄像系统
KR20180020334A (ko) 통신 시스템에서 장애 예측 장치 및 방법

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