CN111913799B - 一种视频流在线分析任务调度方法和计算机设备 - Google Patents
一种视频流在线分析任务调度方法和计算机设备 Download PDFInfo
- Publication number
- CN111913799B CN111913799B CN202010674393.XA CN202010674393A CN111913799B CN 111913799 B CN111913799 B CN 111913799B CN 202010674393 A CN202010674393 A CN 202010674393A CN 111913799 B CN111913799 B CN 111913799B
- Authority
- CN
- China
- Prior art keywords
- task
- generated
- gpu
- tasks
- priority
- 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
- 238000004458 analytical method Methods 0.000 title claims abstract description 73
- 238000000034 method Methods 0.000 title claims abstract description 49
- 238000004422 calculation algorithm Methods 0.000 claims abstract description 31
- 238000012544 monitoring process Methods 0.000 claims description 17
- 230000008569 process Effects 0.000 claims description 8
- 230000003247 decreasing effect Effects 0.000 claims description 6
- 238000004590 computer program Methods 0.000 claims description 5
- 238000001514 detection method Methods 0.000 description 4
- 230000003287 optical effect Effects 0.000 description 3
- 238000013135 deep learning Methods 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 210000004556 brain Anatomy 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 230000001186 cumulative effect Effects 0.000 description 1
- 230000000593 degrading effect Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 238000005070 sampling Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/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/5038—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 the execution order of a plurality of tasks, e.g. taking priority or time dependency constraints into consideration
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N7/00—Television systems
- H04N7/18—Closed-circuit television [CCTV] systems, i.e. systems in which the video signal is not broadcast
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
Abstract
本申请涉及一种视频流在线分析任务调度方法和计算机设备,其中该方法,包括:通过多个GPU执行视频流在线分析的第一任务和第二任务;其中,第一任务对应于一路视频流,第一任务包括多个服务等级,服务等级与分析帧率成正比;第一任务按照其服务等级对应的分析帧率产生一种子任务,第一任务具有子任务相对截止期;第二任务包括多种子任务,且第二任务具有指定截止期;每种子任务对应于一种算法与模型,每个GPU按照其预设利用率上限运行一种算法与模型来执行一种子任务,多个GPU运行多种算法与模型来执行多种子任务。由此,避免了任务调度中切换GPU,减少了GPU切换对任务调度的影响,从而提高任务调度效率。
Description
技术领域
本申请涉及视频流在线分析技术领域,尤其涉及一种视频流在线分析任务调度方法和计算机设备。
背景技术
深度学习是模拟人脑神经系统而建立的数学网络模型,这个模型的最大特点是,需要大量数据样本来训练,并且训练形成的模型包括视频分析中的目标检测模型也需要运行在图形处理器(Graphics Processing Unit,简称为GPU)上以提升性能。
随着视频监控与基于深度学习算法的视频分析的广泛应用,GPU在很多系统建设中需求快速增加,也带来了很大的资金压力。如何更加充分地利用GPU资源成为一个亟待解决的问题。
发明内容
为了解决上述技术问题或者至少部分地解决上述技术问题,本申请提供了一种视频流在线分析任务调度方法和计算机设备。
第一方面,本申请提供了一种视频流在线分析任务调度方法,包括:通过多个GPU执行视频流在线分析的第一任务和第二任务;其中,第一任务对应于一路视频流,第一任务包括多个服务等级,服务等级与分析帧率成正比;第一任务按照其服务等级对应的分析帧率产生一种子任务,第一任务具有子任务相对截止期;第二任务包括多种所述子任务,且所述第二任务具有指定截止期;每种子任务对应于一种算法与模型,每个GPU按照其预设利用率上限U上限运行一种算法与模型来执行一种子任务,多个GPU运行多种算法与模型来执行多种子任务。
在某些实施例中,上述方法还包括:接收第一任务和/或第二任务;将接收的第一任务和/或第二任务放入接收的任务队列;根据第一任务和/或第二任务的优先级调度接收的任务队列;将接收的任务队列中第一任务和/或第二任务的子任务放入对应的GPU的执行的任务队列;其中,每个GPU按照子任务所属的第一任务或第二任务的优先级调度其执行的任务队列中的子任务。
在某些实施例中,上述方法还包括:在执行子任务的过程中,监测每个GPU的已用利用率U已用,并根据GPU的U已用和GPU的U上限确定GPU的剩余利用率U剩余;以及在接收到第一视频分析请求时,根据第一视频分析请求生成第一任务;对于生成的第一任务,根据生成的第一任务初始的服务等级估计其估计GPU利用率U估计;根据生成的第一任务的U估计、执行生成的第一任务的GPU的U剩余和第一任务的优先级,调整一个或多个第一任务的服务等级,以接收生成的第一任务;以及,如果接收生成的第一任务,将生成的第一任务放入接收的任务队列。
在某些实施例中,上述方法还包括:在接收到接收第二视频分析请求时,根据第二视频分析请求生成第二任务;判断与生成的第二任务包含的多个子任务相关的GPU是否能够在所述指定截止期内执行生成的第二任务;如果否,根据第一任务的优先级,调整一个或多个第一任务的服务等级,以在生成的第二任务的指定截止期内执行生成的第二任务;以及,如果接收生成的第二任务,将生成的第二任务放入接收的任务队列。
在某些实施例中,GPU的U上限为第一预设利用率和第二预设利用率之和;其中,第一预设利用率被配置为执行第一任务,第二预设利用率被配置为执行第二任务;其中,判断与生成的第二任务包含的多个子任务相关的GPU是否能够在所述指定截止期内执行生成的第二任务,包括:判断与生成的第二任务包含的多个子任务相关的GPU的第二预设利用率,是否能够在指定截止期内执行生成的第二任务。
在某些实施例中,根据生成的第一任务的U估计、执行生成的第一任务的GPU的U剩余和第一任务的优先级,调整一个或多个第一任务的服务等级,以接收生成的第一任务,包括:如果生成的第一任务的U估计小于或等于执行生成的第一任务的GPU的U剩余,接收生成的第一任务;如果生成的第一任务的U估计大于执行生成的第一任务的GPU的U剩余,逐渐降低生成的第一任务的服务等级,直到生成的第一任务的U估计小于或等于执行生成的第一任务的GPU的U剩余,或者生成的第一任务的服务等级降低到其最低服务等级;以及如果生成的第一任务的服务等级降低到其最低服务等级,根据第一任务的优先级,降低一个或多个正在执行的第一任务的服务等级,以接收生成的第一任务。
在某些实施例中,如果生成的第一任务的U估计小于或等于执行生成的第一任务的GPU的U剩余,接收生成的第一任务;以及,如果生成的第一任务的U估计大于执行生成的第一任务的GPU的U剩余,降低正在执行的第一任务中比生成的第一任务的服务等级低的一个或多个第一任务的服务等级,以接收生成的第一任务。
在某些实施例中,第一任务的优先级,与第一任务对应的视频流的优先级、关键程度或价值成正比;或者第一任务的子任务相对截止期越短,则第一任务的优先级越高;或者第一任务的子任务相对截止期越短,且视频流的优先级、关键程度或价值越高,则第一任务的优先级越高;或者第二任务的优先级,与第二任务对应的多个视频流中优先级、关键程度或价值最高的视频流对应。
在某些实施例中,上述方法还包括:在执行子任务的过程中,监测至少部分GPU执行子任务的平均截止期错失率;以及如果GPU的平均截止期错失率大于预设错失率,降低该GPU的U上限;和/或,监测至少部分第一任务和/或第二任务的服务质量,服务质量包括:实际分析帧率、分析实际帧间隔的均方差,以及相对截止期错失率;以及如果所述服务质量低于预设条件,根据第一任务和/或第二任务的优先级,降低一个或多个第一任务的服务等级。
在某些实施例中,第一任务的不同服务等级对应相同的子任务相对截止期。
第二方面,本申请提供了一种计算机设备,该计算机设备包括:存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序;该计算机程序被处理器执行时实现视频流在线分析任务调度方法的步骤。
本申请实施例提供的上述技术方案,通过多个GPU执行视频流在线分析的第一任务和第二任务;其中,第一任务对应于一路视频流,第一任务包括多个服务等级,服务等级与分析帧率成正比;第一任务按照其服务等级对应的分析帧率产生一种子任务,第一任务具有子任务相对截止期;第二任务包括多种所述子任务,且所述第二任务具有指定截止期;每种子任务对应于一种算法与模型,每个GPU按照其预设利用率上限U上限运行一种算法与模型来执行一种子任务,多个GPU运行多种算法与模型来执行多种子任务。由此,避免了任务调度中切换GPU,减少了GPU切换对任务调度的影响,从而提高任务调度效率。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本申请的实施例,并与说明书一起用于解释本申请的原理。
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例提供的视频流在线分析任务调度系统一种实施例方式的示意图;
图2为本申请实施例提供的视频流在线分析任务调度方法一种实施方式的流程图;
图3为本申请实施例提供的第一任务调度方法一种实施方式的流程图;
图4为本申请实施例提供的第二任务调度方法一种实施方式的流程图;以及
图5为本申请实施例提供的计算机设备一种实施方式的硬件示意图。
具体实施方式
应当理解,此处所描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
在后续的描述中,使用用于表示元件的诸如“模块”、“部件”或“单元”的后缀仅为了有利于本申请的说明,其本身没有特定的意义。因此,“模块”、“部件”或“单元”可以混合地使用。
在本文中,技术术语“GPU”并不限定于硬件意义的GPU,本文中GPU可以是硬件意义的GPU,或者多个硬件意义的GPU虚化成的GPU(例如,一种算法与模型由多个硬件意义的GPU运行,这多个硬件意义的GPU虚拟成一个GPU),或者硬件意义的GPU虚拟成多个GPU(例如,硬件意义的GPU运行多种算法与模型,按照算法与模型将GPU虚拟成多个GPU)。
图1为本申请实施例提供的视频流在线分析任务调度系统一种实施例方式的示意图,如图1所示,有m个GPU(在图1中标记为GPU-1至GPU-m)。GPU-1至GPU-m中每个GPU运行一种算法与模型,m个GPU运行m种算法与模型。每个GPU有一个执行的任务队列(简称为EQ)。视频流在线分析任务包括多种子任务,每种子任务对应于一种GPU运行的算法与模型。在本申请实施例中,在GPU上运行一种的算法与模型,任务调度中,每种任务由执行其对应算法的GPU处理,避免了任务调度中切换GPU,减少了GPU切换对任务调度的影响,从而提高任务调度效率。
在某些实施例中,接收第一任务和/或第二任务;将接收的第一任务和/或第二任务放入接收的任务队列(简称为AQ);根据第一任务和/或第二任务的优先级调度接收的任务队列;将接收的任务队列中第一任务和/或第二任务的子任务放入对应的GPU的执行的任务队列(EQ)。在某些实施例中,每个GPU按照子任务所属的第一任务或第二任务的优先级调度其执行的任务队列中的子任务。
本申请实施例中,视频在线分析包括第一任务,可实现对一路视频流的持续分析,例如持续对一路视频流进行人脸检测等。其中,每个第一任务可对应于一路视频流,每路视频流可包括一个或多个第一任务,例如,对视频流进行人脸检测和/或火情检测等。每个第一任务对应于一种算法与模型,每个第一任务按照其服务等级对应的分析帧率(例如10~30帧/秒)产生子任务。每个第一任务包括多个服务等级,服务等级与分析帧率成正比。服务等级越高,分析帧率越大。每个第一任务具有子任务相对截止期,即,第一任务产生的每个子任务最好在产生后一定时间内执行。第一任务的每个子任务,应当争取在该第一任务的子任务相对截止期内执行完成。
在某些实施例中,第一任务的不同服务等级对应相同的子任务相对截止期,由此在调整第一任务的服务等级时不对GPU执行的任务队列产生影响。可选地,第一任务的子任务相对截止期可为预设值,该预设值可为最低服务等级对应的分析帧间隔,但不限于此。
在本申请实施例中,作为示例性说明,第一任务表示为Ti,每个Ti具有N(N≥1)个服务等级,表示为Ti,j(0≤j≤N-1),j为服务等级序号;Ti的不同服务等级的实例Ti,j对应的分析帧率不同,也就在单位时间内有不同的累计执行时间Ci,j。分析帧率越高,单位时间内累计执行时间越长,服务等级序号j越大,服务等级越低;单位时间内累计执行时间Ci,j>Ci,j+1。在某些实施例中,Ti的不同服务等级的实例Ti,j具有相同的相对截止期Di,优选地,相对截止期Di可以按照最低服务等级对应的帧间隔或者设置的帧间隔来定义。
在本申请实施例中,视频在线分析可包括第二任务,用于分析一路或多路视频流的一帧或多帧图像。第二任务包括多个子任务,每个子任务对应于一种算法与模型。对于第二任务的多个子任务,多个GPU执行多个子任务,在第二任务的指定截止期内完成第二任务的所有子任务。第二任务具有指定截止期,即第二任务包含的子任务最好在指定的时间点之前完成。
在某些实施例中,第二任务可为同一帧图像由多种算法与模型同步执行,或者多帧图像由一种算法与模型串行执行,但不限于此。例如,识别一帧图像中未佩戴安全帽的人,并进一步进行人脸识别;从多路视频中的多帧图像中检测出摩托车等类似的任务。
本申请实施例中,n路视频流标记为V:<V1,V2,…,Vn>,其中每一路视频Vi具有一个指定的优先级或者关键程度或者价值指标Hi,表明这一路视频的重要程度或者在线分析一帧所产生的价值。在某些实施例中,视频流在线分析任务调度系统至少对这n路视频流进行在线分析。
在某些实施例中,参考图1所示,视频流在线分析任务调度系统包括接收的任务队列(AQ)和执行的任务队列(EQ)。第一任务以及第二任务在接收的任务队列中被调度,第一任务及第二任务对应的子任务在执行的任务队列中被调度。执行完成的任务放入完成的任务队列(CQ)暂存,供其他系统获取任务执行结果。
在某些实施例中,按照价值最高最优先(Highest Value First,简称为HVF)调度接收的任务队列。例如,按照视频流的优先级或者关键程度或者价值指标Hi,确定任务(第一任务和/或第二任务)的优先级Pi,例如任务的优先级Pi表示为Pi=Hi,其中,Hi的取值越大,视频流的优先级或者关键程度或者价值指标越高,相应的Pi的取值越大,任务的优先级越高,但不限于此。如果一个任务(第一任务和/或第二任务)涉及多路视频流,以其中的最高Hi作为任务的优先级。
在某些实施例中,按照截止期最早最优先(Earliest Deadline First,简称为EDF)调度接收的任务队列。例如,按照任务(第一任务和/或第二任务)的截止期排序,截止期最早(Di的取值越小)的任务优先级最高,作为示例,优先级Pi表示为Pi=1/Di,其中,Pi的取值越大,优先级越高。
在某些实施例中,按照关键性-截止期优先(Criticalness-Deadline First,简称为CDF)调度接收的任务队列。例如,任务的优先级按照(关键性或者价值÷相对截止期)进行分配,假设任务Ti的相对截止期采用Di表示,任务的优先级Pi可表示为Pi=Hi/Di,其中,Pi的取值越大,任务的优先级越高;Hi的取值越大,视频流的优先级或者关键程度或者价值指标越高;截止期最早,Di的取值越小。由此综合考虑任务的截止期与关键性,提高系统的综合性能。
在某些实施例中,按照接收的任务队列中的任务优先级组织执行的任务队列。可选地,执行的任务队列的长度不超过相应的GPU在单位时间(例如,1秒钟或者2秒钟或5秒钟)内的处理能力。(按照任务优先级组织)。
在本申请实施例中,每个GPU按照其预设利用率上限U上限运行算法与模型来执行子任务。U上限可以大于1,也可以小于1。多个GPU可设置相同U上限,也可以设置不同的U上限,本申请实施例对此不做限定。
在某些实施例中,为了保证第二任务到来时有一定的GPU能力用来执行任务,按照一定比例分配GPU的利用率U上限,第一预设利用率(表示为Up)用于执行第一任务,第二预设利用率(表示为UA)用于执行第二任务,U上限=UA+UP。
参考图1所示,视频流在线分析任务调度系统包括:任务接收模块10、任务调度模块20、负荷监视模块30、服务质量(QoS)监视模块40,以及准入控制模块50。
任务接收模块10,用于接收视频分析请求,并根据视频分析请求生成任务,提交到接收的任务队列(AQ)。
任务调度模块20,用于按照实时任务调度方法调度接收的任务队列(AQ)中的任务,生成可由GPU执行的子任务,放入相应的执行的任务队列(EQ),以由GPU执行子任务。
负荷监视模块30,用于监视GPU上的负荷,把相关参数传给任务调度模块20,以便优化任务调度与准入控制策略。在某些实施例中,负荷监视模块30,监测GPU处理子任务的平均执行时间,特别是针对第一任务,通过一段时间计算其处理每一帧的平均执行时间ei,由此估计GPU的已用利用率U已用。在初始化阶段,以第一任务的分析帧率估计GPU的已用利用率U已用。
QoS监视模块40,用于监视视频分析任务的服务质量,并把相关参数传给任务调度模块20,以便优化任务调度与准入控制策略。在某些实施例中,QoS监视模块40监测第一任务的服务质量包括:实际分析帧率、实际帧间隔的均方差,以及相对截止期错失率。
任务调度模块20,还用于根据负荷监视模块30与QoS监视模块40反馈的数据调整任务调度相关的参数,控制准入控制模块50控制任务接收。执行完成的任务放入完成的任务队列(CQ)暂存,供其他系统获取任务执行结果。
准入控制模块50,用于通过准入控制机制控制流入系统的工作负载。在某些实施例中,当一个新任务到达,准入控制模块50决定这个任务是否能够被接收。对于第一任务,控制接收任务能够提供的服务等级,对于第二任务,如果超过系统负荷,降低一部分第一任务的服务等级。
在某些实施例中,对于每个GPU,QoS监视模块40监测所有在该GPU上执行的子任务的平均截止期错失率,即在单位时间内错失截止的任务比例。此外,QoS监视模块40检测第一任务的服务质量,针对每个第一任务,确定任务Ti的服务质量Qi(t)包括Qi(t)=<fi(t),σi(t),mi(t)>,分别是实际分析帧率(即实际执行时单位时间内的帧率)fi(t)、实际帧间隔的均方差σi(t),以及截止期错失率mi(t)。
下面对视频流在线分析任务调度方法进行描述。
图2为本申请实施例提供的视频流在线分析任务调度方法一种实施方式的流程图,如图2所示,该方法包括步骤S202至步骤S206。
步骤S202,通过多个GPU执行视频流在线分析的第一任务和/或第二任务。
其中,每个第一任务对应于一路视频流,每路视频流包括一个或多个第一任务,每个第一任务对应于一种算法与模型,每个第一任务按照其服务等级对应的分析帧率产生子任务,每个第一任务具有子任务相对截止期,每个GPU按照其预设利用率上限U上限运行算法与模型来执行子任务,每个第一任务包括多个服务等级,服务等级与分析帧率成正比。
在执行子任务的过程中,执行步骤S204和/或步骤S206。
步骤S204,监测至少部分GPU执行子任务的平均截止期错失率,如果GPU的平均截止期错失率大于预设错失率,降低该GPU的U上限。
上述步骤S204中,平均截止期错失率为在单位时间内错失截止的任务比例。如果平均截止期错失率,超过或者低于用户设定的预期错失率,则需要相应地调整U上限。
步骤S206,监测至少部分第一任务和/或第二任务的服务质量,如果该服务质量低于预设条件,根据第一任务和/或第二任务的优先级,降低一个或多个第一任务的服务等级。
其中,步骤S206中,服务质量包括:实际分析帧率、分析实际帧间隔的均方差,以及相对截止期错失率。
图3为本申请实施例提供的第一任务调度方法一种实施方式的流程图,如图3所示,该方法包括步骤S302至步骤S306。
步骤S302,在执行子任务的过程中,监测每个GPU的已用利用率U已用,并根据GPU的U已用和GPU的U上限确定GPU的剩余利用率U剩余。
步骤S304,在接收到第一视频分析请求时,根据第一视频分析请求生成第一任务。
步骤S306,对于生成的第一任务,根据生成的第一任务的估计GPU利用率U估计、执行生成的第一任务的GPU的U剩余和第一任务的优先级,调整一个或多个第一任务的服务等级,以接收生成的第一任务。
在某些实施例中,对于生成的第一任务,上述步骤S306中,如果生成的第一任务的估计GPU利用率U估计小于或等于执行生成的第一任务的GPU的U剩余,接收生成的第一任务。如果生成的第一任务的U估计大于执行生成的第一任务的GPU的U剩余,逐渐降低生成的第一任务的服务等级,直到生成的第一任务的U估计小于或等于执行生成的第一任务的GPU的U剩余,或者生成的第一任务的服务等级降低到其最低服务等级。如果生成的第一任务的服务等级降低到其最低服务等级,根据第一任务的优先级,降低一个或多个正在执行的第一任务的服务等级,以接收生成的第一任务。
在某些实施例中,对于生成的第一任务,上述步骤S306中,如果生成的第一任务的估计GPU利用率U估计小于或等于执行生成的第一任务的GPU的U剩余,接收生成的第一任务。如果生成的第一任务的U估计大于执行生成的第一任务的GPU的U剩余,根据第一任务的优先级,降低正在执行的第一任务中比生成的第一任务的服务等级低的一个或多个第一任务的服务等级,以接收生成的第一任务。
在某些实施例中,第一任务的优先级与视频流的优先级、关键程度或价值成正比。在一些实施例中,第一任务的优先级与其子任务相对截止期成反比,相对截止期越早优先级越高。在一些实施例中,第一任务的优先级与其子任务相对截止期成正比,且与视频流的优先级、关键程度或价值成反比。
图4为本申请实施例提供的第二任务调度方法一种实施方式的流程图,如图4所示,该方法包括步骤S402至步骤S408。
步骤S402,在接收到接收第二视频分析请求时,根据第二视频分析请求生成第二任务。
其中,第二视频分析请求用于请求分析一路或多路视频流的一帧或多帧图像,第二任务包括多个子任务,且第二任务具有指定截止期,每个子任务对应于一种算法与模型,每个GPU按照其U预设运行算法与模型来执行子任务。
步骤S404,判断与第二任务包含的多个子任务相关的GPU是否能够在指定截止期内执行生成的第二任务;如果否,进入步骤S406;如果是,进入步骤S408,接收第二任务。
步骤S406,根据第一任务的优先级,调整一个或多个第一任务的服务等级,以在第二任务的指定截止期内执行第二任务。
步骤S408,接收第二任务。
在某些实施例中,GPU的预设利用率为第一预设利用率和第二预设利用率之和;其中,第一预设利用率被配置为执行第一任务,第二预设利用率被配置为执行第二任务。上述步骤S404中,判断与第二任务包含的多个子任务相关的GPU的第二预设利用率,是否能够在指定截止期内执行第二任务。
下面以一个示例对第一任务的调度进行说明。
作为一个示例性说明,假设当前系统中第一任务的估计GPU利用率为Up(t),如果任务Ti的服务等级Ti,j满足Up(t)+Ui,j≤Up,则Ti能够以服务等级Ti,j被接收,其中Up表示分配给第一任务的GPU利用率(第一预设利用率)。如果任务Ti以服务等级j不能够被接受,通过调整接收的任务的服务等级来改变任务所要求的GPU利用率。例如,如果改变任务Ti的服务等级从Ti,j到Ti,k,则所要求的GPU利用率相应地调整Ui,j-Ui,k,其中Ui,j与Ui,k分别表示Ti,j和Ti,k所要求的GPU利用率(U估计)。如果Ti以最低的服务等级仍不能满足准入控制需求,则调整正在执行的第一任务的服务级别。
假设任务Ti运行在处理器Gk上,对于所有在处理器Gk上运行的任务构成的任务集从优先级最低的任务开始,计算每个任务降低1个服务等级节省GPU利用率(GPU的执行时间),如果超过任务Ti的最低服务等级要求,则接纳任务Ti,其中,任务的服务等级最多降低到允许的最低服务等级。如果遍历任务集/>一遍后仍然不能满足,重复上述计算每个任务降低1个服务等级节省GPU利用率,直到满足任务Ti的最低服务等级要求。如果任务集/>中所有任务已经降低到最低服务等级依然无法满足任务Ti的要求,则拒绝任务Ti。
在另一些示例中,把低于任务Ti优先级的任务,从低到高逐步调整到最低服务等级,直到满足任务Ti的要求;如果所有低优先级的任务都降级之后依然不能满足要求,可以:1)继续依次降级相关任务的服务等级,直到满足要求,或者最终无法满足;2)拒绝该任务Ti。
对于第二任务,准入控制以最大可能地接收任务为目标。由于非定期任务可能涉及多个算法与模型多个GPU,假设第二任务Ti需要使用的GPU处理表示为集合其估计利用率表示为一个集合:
针对集合中每一项,当前的估计GPU利用率则可以接收该任务;如果/>则针对相关的第一任务按照优先级从低到高降低服务等级,直到满足需要,或者最终无法满足拒绝第二任务。降低第一任务的服务等级,可参见接收第一任务时降低第一任务的服务等级的方法,在此不再赘述。(利用率估计执行时间/截止期)
在某些示例中,任务的估计GPU利用率确定方法如下。针对每个GPU,第一任务的估计GPU利用率Up(t)=∑Ci,j/W,其中,Ci,j为服务等级为j时第一任务Ti的累计执行时间,W是单位时间或者采样窗口。针对任务队列中的第二任务涉及到的每个GPU,第二任务的估计GPU利用率当任务到达或者离开时,/>其中Di表示子任务相对截止期,Ci表示子任务估计的执行时间。
本申请实施例还提供了一种计算机设备。图5为本申请实施例提供的计算机设备一种实施方式的硬件结构示意图,如图5所示,本申请实施例的计算机设备50包括:至少包括但不限于:可通过系统总线相互通信连接的存储器51和处理器52。需要指出的是,图5仅示出了具有组件51-52的计算机设备50,但是应理解的是,并不要求实施所有示出的组件,可以替代的实施更多或者更少的组件。
本实施例中,存储器51(即可读存储介质)包括闪存、硬盘、多媒体卡、卡型存储器(例如,SD或DX存储器等)、随机访问存储器(RAM)、静态随机访问存储器(SRAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、可编程只读存储器(PROM)、磁性存储器、磁盘、光盘等。在一些实施例中,存储器51可以是计算机设备50的内部存储单元,例如计算机设备50的硬盘或内存。在另一些实施例中,存储器51也可以是计算机设备50的外部存储设备,例如该计算机设备50上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。当然,存储器51还可以既包括计算机设备50的内部存储单元也包括其外部存储设备。本实施例中,存储器51通常用于存储安装于计算机设备50的操作系统和各类软件。此外,存储器51还可以用于暂时地存储已经输出或者将要输出的各类数据。
处理器52在一些实施例中可以是中央处理器(Central Processing Unit,CPU)、控制器、微控制器、微处理器、或其他数据处理芯片。该处理器52通常用于控制计算机设备50的总体操作。本实施例中,处理器52用于运行存储器51中存储的程序代码或者处理数据,例如视频流在线分析任务调度方法。
本实施例还提供一种计算机可读存储介质,如闪存、硬盘、多媒体卡、卡型存储器(例如,SD或DX存储器等)、随机访问存储器(RAM)、静态随机访问存储器(SRAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、可编程只读存储器(PROM)、磁性存储器、磁盘、光盘、服务器、App应用商城等等,其上存储有计算机程序,程序被处理器执行时实现相应功能。本实施例的计算机可读存储介质用于存储视频流在线分析任务调度的程序代码,被处理器执行时实现视频流在线分析任务调度方法。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。
上述本申请实施例序号仅仅为了描述,不代表实施例的优劣。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本申请各个实施例的方法。
上面结合附图对本申请的实施例进行了描述,但是本申请并不局限于上述的具体实施方式,上述的具体实施方式仅仅是示意性的,而不是限制性的,本领域的普通技术人员在本申请的启示下,在不脱离本申请宗旨和权利要求所保护的范围情况下,还可做出很多形式,这些均属于本申请的保护之内。
Claims (8)
1.一种视频流在线分析任务调度方法,其特征在于,包括:
通过多个GPU执行视频流在线分析的第一任务和第二任务;
其中,
所述第一任务对应于一路视频流,所述第一任务包括多个服务等级,服务等级与分析帧率成正比;所述第一任务按照其服务等级对应的分析帧率产生一种子任务,所述第一任务具有子任务相对截止期;
所述第二任务包括多种子任务,且所述第二任务具有指定截止期;
每种所述子任务对应于一种算法与模型,每个GPU按照其预设利用率上限U上限运行一种算法与模型来执行一种子任务,所述多个GPU运行多种算法与模型来执行多种子任务;
还包括:
接收第一任务和/或第二任务;
将接收的第一任务和/或第二任务放入接收的任务队列;
根据第一任务和/或第二任务的优先级调度所述接收的任务队列;
将所述接收的任务队列中第一任务和/或第二任务的子任务放入对应的GPU的执行的任务队列;
其中,每个GPU按照子任务所属的第一任务或第二任务的优先级调度其执行的任务队列中的子任务;
还包括:
在执行子任务的过程中,监测每个GPU的已用利用率U已用,并根据GPU的U已用和GPU的U上限确定GPU的剩余利用率U剩余;以及
在接收到第一视频分析请求时,根据所述第一视频分析请求生成第一任务;
对于生成的第一任务,根据生成的第一任务初始的服务等级估计其估计GPU利用率U估计;
根据生成的第一任务的U估计、执行生成的第一任务的GPU的U剩余和第一任务的优先级,调整一个或多个第一任务的服务等级,以接收生成的第一任务;以及
如果接收生成的第一任务,将生成的第一任务放入接收的任务队列。
2.根据权利要求1所述的视频流在线分析任务调度方法,其特征在于,还包括:
在接收到接收第二视频分析请求时,根据所述第二视频分析请求生成第二任务;
判断与生成的第二任务包含的多个子任务相关的GPU是否能够在所述指定截止期内执行生成的第二任务;
如果否,根据第一任务的优先级,调整一个或多个第一任务的服务等级,以在生成的第二任务的指定截止期内执行生成的第二任务;以及
如果接收生成的第二任务,将生成的第二任务放入接收的任务队列。
3.根据权利要求2所述的视频流在线分析任务调度方法,其特征在于,GPU的U上限为第一预设利用率和第二预设利用率之和;其中,所述第一预设利用率被配置为执行第一任务,所述第二预设利用率被配置为执行第二任务;
其中,判断与生成的第二任务包含的多个子任务相关的GPU是否能够在所述指定截止期内执行生成的第二任务,包括:判断与生成的第二任务包含的多个子任务相关的GPU的第二预设利用率,是否能够在所述指定截止期内执行生成的第二任务。
4.根据权利要求3所述的视频流在线分析任务调度方法,其特征在于,根据生成的第一任务的U估计、执行生成的第一任务的GPU的U剩余和第一任务的优先级,调整一个或多个第一任务的服务等级,以接收生成的第一任务,包括:
如果生成的第一任务的U估计小于或等于执行生成的第一任务的GPU的U剩余,接收生成的第一任务;
如果生成的第一任务的U估计大于执行生成的第一任务的GPU的U剩余,逐渐降低生成的第一任务的服务等级,直到生成的第一任务的U估计小于或等于执行生成的第一任务的GPU的U剩余,或者生成的第一任务的服务等级降低到其最低服务等级;以及
如果生成的第一任务的服务等级降低到其最低服务等级,根据第一任务的优先级,降低一个或多个正在执行的第一任务的服务等级,以接收生成的第一任务;
或者
如果生成的第一任务的U估计小于或等于执行生成的第一任务的GPU的U剩余,接收生成的第一任务;以及
如果生成的第一任务的U估计大于执行生成的第一任务的GPU的U剩余,降低正在执行的第一任务中比生成的第一任务的服务等级低的一个或多个第一任务的服务等级,以接收生成的第一任务。
5.根据权利要求1至4中任一项所述的视频流在线分析任务调度方法,其特征在于,
第一任务的优先级,与第一任务对应的视频流的优先级、关键程度或价值成正比;或者
第一任务的子任务相对截止期越短,则第一任务的优先级越高;或者
第一任务的子任务相对截止期越短,且视频流的优先级、关键程度或价值越高,则第一任务的优先级越高;或者
第二任务的优先级,与第二任务对应的多个视频流中优先级、关键程度或价值最高的视频流对应。
6.根据权利要求1所述的视频流在线分析任务调度方法,其特征在于,还包括:
在执行子任务的过程中,
监测至少部分GPU执行子任务的平均截止期错失率;以及
如果GPU的平均截止期错失率大于预设错失率,降低该GPU的U上限;
和/或
监测至少部分第一任务和/或第二任务的服务质量,所述服务质量包括:实际分析帧率、分析实际帧间隔的均方差,以及相对截止期错失率;以及
如果所述服务质量低于预设条件,根据第一任务和/或第二任务的优先级,降低一个或多个第一任务的服务等级。
7.根据权利要求1所述的视频流在线分析任务调度方法,其特征在于,第一任务的不同服务等级对应相同的子任务相对截止期。
8.一种计算机设备,其特征在于,所述计算机设备包括:
存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序;
所述计算机程序被所述处理器执行时实现如权利要求1至7中任一项所述的视频流在线分析任务调度方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010674393.XA CN111913799B (zh) | 2020-07-14 | 2020-07-14 | 一种视频流在线分析任务调度方法和计算机设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010674393.XA CN111913799B (zh) | 2020-07-14 | 2020-07-14 | 一种视频流在线分析任务调度方法和计算机设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111913799A CN111913799A (zh) | 2020-11-10 |
CN111913799B true CN111913799B (zh) | 2024-04-19 |
Family
ID=73280047
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010674393.XA Active CN111913799B (zh) | 2020-07-14 | 2020-07-14 | 一种视频流在线分析任务调度方法和计算机设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111913799B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113052107B (zh) * | 2021-04-01 | 2023-10-24 | 北京华夏启信科技有限公司 | 一种检测安全帽佩戴情况的方法、计算机设备及存储介质 |
CN114339266B (zh) * | 2021-12-14 | 2023-09-01 | 浪潮软件集团有限公司 | 一种基于国产cpu和操作系统的视频流队列处理方法 |
Citations (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103309748A (zh) * | 2013-06-19 | 2013-09-18 | 上海交通大学 | 云游戏中的gpu虚拟资源自适应调度宿主机系统和调度方法 |
CN104156264A (zh) * | 2014-08-01 | 2014-11-19 | 西北工业大学 | 一种基于多gpu的基带信号处理任务并行实时调度方法 |
GB201522461D0 (en) * | 2015-12-18 | 2016-02-03 | Imagination Tech Ltd | Controlling scheduling of a GPU |
GB201522462D0 (en) * | 2015-12-18 | 2016-02-03 | Dsouza Jackson | Controlling operation of a GPU |
CN106598716A (zh) * | 2016-12-02 | 2017-04-26 | 陕西尚品信息科技有限公司 | 一种基于多处理器的任务调度方法 |
CN108859759A (zh) * | 2018-06-25 | 2018-11-23 | 武汉科技大学 | 电动汽车仪表系统及其调度方法 |
CN109361925A (zh) * | 2018-11-14 | 2019-02-19 | 浙江远算云计算有限公司 | 一种基于hevc转码的视频流加速方法 |
CN109711323A (zh) * | 2018-12-25 | 2019-05-03 | 武汉烽火众智数字技术有限责任公司 | 一种实时视频流分析加速方法、装置和设备 |
CN109769115A (zh) * | 2019-01-04 | 2019-05-17 | 武汉烽火众智数字技术有限责任公司 | 一种优化智能视频分析性能的方法、装置和设备 |
CN110399222A (zh) * | 2019-07-25 | 2019-11-01 | 北京邮电大学 | Gpu集群深度学习任务并行化方法、装置及电子设备 |
CN110489223A (zh) * | 2019-08-26 | 2019-11-22 | 北京邮电大学 | 一种异构集群中任务调度方法、装置及电子设备 |
CN111274021A (zh) * | 2020-02-27 | 2020-06-12 | 苏宁云计算有限公司 | 一种gpu集群任务调度分配方法 |
CN111400022A (zh) * | 2019-01-02 | 2020-07-10 | 中国移动通信有限公司研究院 | 一种资源调度方法、装置及电子设备 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10186007B2 (en) * | 2014-08-25 | 2019-01-22 | Intel Corporation | Adaptive scheduling for task assignment among heterogeneous processor cores |
US9747659B2 (en) * | 2015-06-07 | 2017-08-29 | Apple Inc. | Starvation free scheduling of prioritized workloads on the GPU |
US10298969B2 (en) * | 2016-11-10 | 2019-05-21 | University Of Louisiana At Lafayette | Architecture and method for high performance on demand video transcoding |
US10303522B2 (en) * | 2017-07-01 | 2019-05-28 | TuSimple | System and method for distributed graphics processing unit (GPU) computation |
CN109729113B (zh) * | 2017-10-27 | 2021-03-23 | 伊姆西Ip控股有限责任公司 | 管理专用处理资源的方法、服务器系统和计算机程序产品 |
-
2020
- 2020-07-14 CN CN202010674393.XA patent/CN111913799B/zh active Active
Patent Citations (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103309748A (zh) * | 2013-06-19 | 2013-09-18 | 上海交通大学 | 云游戏中的gpu虚拟资源自适应调度宿主机系统和调度方法 |
CN104156264A (zh) * | 2014-08-01 | 2014-11-19 | 西北工业大学 | 一种基于多gpu的基带信号处理任务并行实时调度方法 |
GB201522461D0 (en) * | 2015-12-18 | 2016-02-03 | Imagination Tech Ltd | Controlling scheduling of a GPU |
GB201522462D0 (en) * | 2015-12-18 | 2016-02-03 | Dsouza Jackson | Controlling operation of a GPU |
CN106598716A (zh) * | 2016-12-02 | 2017-04-26 | 陕西尚品信息科技有限公司 | 一种基于多处理器的任务调度方法 |
CN108859759A (zh) * | 2018-06-25 | 2018-11-23 | 武汉科技大学 | 电动汽车仪表系统及其调度方法 |
CN109361925A (zh) * | 2018-11-14 | 2019-02-19 | 浙江远算云计算有限公司 | 一种基于hevc转码的视频流加速方法 |
CN109711323A (zh) * | 2018-12-25 | 2019-05-03 | 武汉烽火众智数字技术有限责任公司 | 一种实时视频流分析加速方法、装置和设备 |
CN111400022A (zh) * | 2019-01-02 | 2020-07-10 | 中国移动通信有限公司研究院 | 一种资源调度方法、装置及电子设备 |
CN109769115A (zh) * | 2019-01-04 | 2019-05-17 | 武汉烽火众智数字技术有限责任公司 | 一种优化智能视频分析性能的方法、装置和设备 |
CN110399222A (zh) * | 2019-07-25 | 2019-11-01 | 北京邮电大学 | Gpu集群深度学习任务并行化方法、装置及电子设备 |
CN110489223A (zh) * | 2019-08-26 | 2019-11-22 | 北京邮电大学 | 一种异构集群中任务调度方法、装置及电子设备 |
CN111274021A (zh) * | 2020-02-27 | 2020-06-12 | 苏宁云计算有限公司 | 一种gpu集群任务调度分配方法 |
Non-Patent Citations (3)
Title |
---|
Nexus:a GPU cluster engine for accelerating DNN-based video analysis;Haichen Shen等;ACM;20191231;全文 * |
智能视频监控系统中多视角目标跟踪研究与FPGA实现;徐海刚;李朋伟;;现代电子技术;20160901(第17期);全文 * |
海洋地理空间数据处理Spark框架异构任务处理研究;夏海涛;秦勃;景辉;;中国海洋大学学报(自然科学版)(第S2期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN111913799A (zh) | 2020-11-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111913799B (zh) | 一种视频流在线分析任务调度方法和计算机设备 | |
CN110825520B (zh) | 一种实现资源高效利用的集群极速弹性伸缩方法 | |
US7441028B1 (en) | Method of defining a required information system capacity as a function of a user's quality of service objectives | |
CN112328399A (zh) | 一种集群资源调度方法、装置、计算机设备及存储介质 | |
CN111813624B (zh) | 基于时长分析的机器人执行时长的预估方法及其相关设备 | |
CN106961351A (zh) | 基于Docker容器集群的智能弹性伸缩方法 | |
CN109298936A (zh) | 一种资源调度方法及装置 | |
CN111338791A (zh) | 集群队列资源的调度方法、装置、设备及存储介质 | |
CN107943579B (zh) | 资源瓶颈预测方法、设备、系统及可读存储介质 | |
CN104820616A (zh) | 一种任务调度的方法及装置 | |
CN115576534A (zh) | 原子服务的编排方法、装置、电子设备及存储介质 | |
CN113342497A (zh) | 任务调度方法、装置、终端设备及计算机存储介质 | |
Li et al. | A QoS-based scheduling algorithm for instance-intensive workflows in cloud environment | |
US20050182747A1 (en) | Method and system for executing multiple tasks at adaptively controlled resource utilization rates to achieve equal QoS levels | |
CN111475267A (zh) | 系统任务自动调度方法、装置、计算机设备及存储介质 | |
CN117135130A (zh) | 服务器控制方法、装置、电子设备及存储介质 | |
CN111522845A (zh) | 一种基于时间序列预测的流计算框架水印发放策略 | |
CN114936089A (zh) | 资源调度方法、系统、设备及存储介质 | |
CN111176815B (zh) | 一种操作系统的任务调度方法及装置 | |
CN113076181A (zh) | 一种数据处理流程优化方法、系统及存储介质 | |
CN111553645A (zh) | 订单分派方法、装置、计算机设备和存储介质 | |
CN117177296B (zh) | 基于5g网络的公共监控视频实时传输与远程播放方法 | |
CN117170886B (zh) | 一种面向大连接视频分析的连续学习资源调度方法及装置 | |
CN118170550A (zh) | Node节点水位线阈值调节方法、装置及相关设备 | |
CN105824809B (zh) | 一种etl调度的实现方法及装置 |
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 |