掌桥专利:专业的专利平台
掌桥专利
首页

一种视觉智能系统资源信息调度方法、装置、终端及介质

文献发布时间:2023-06-19 19:30:30


一种视觉智能系统资源信息调度方法、装置、终端及介质

技术领域

本发明涉及视频及图像处理技术领域,尤其涉及的是一种视觉智能系统资源信息调度方法、装置、终端及介质。

背景技术

视觉智能系统在处理视频分析任务时通常会涉及视频源、视频处理单元和算法计算单元三个部分。视频源一般包括图像传感器采集的raw视频数据,或者是摄像头采集的实时压缩视频,或者存储在存储服务器中的离线压缩视频文件。视频处理单元具有视频解码或者编码的硬件加速模块,主要负责视频的编解码,也可以对视频进行缩放、格式转换等工作。算法计算单元具有计算加速模块,主要负责算法的加载和运行。一个典型的视频分析任务的流程通常是将采集到的视频数据,经过视频处理单元处理后,通过设备内部的高速通道发送给算法计算单元进行智能化分析处理。在一个具有一定规模的视觉智能系统中,可能会包含各种各样的设备。有些设备可能同时包含视频源、视频处理单元和算法计算单元,例如拥有AI加速单元的智能摄像头,而有些设备可能只包含其中的一个或者两个部分,例如传统的IPC摄像头只能作为视频源,市面上的英伟达Jetson智能盒包含了视频处理单元和算法计算单元。

视觉智能系统通常还包括至少一个调度单元,来实现多个任务在多个视频计算设备之间的调度,以尽可能合理的方式进行资源分配。

目前市面上的计算资源管理主要使用虚拟化集群化的方法,但对于性能要求较高的视觉智能系统具有一定的局限性。主要有下面几个方面:

(1)由于业务或者成本需要,系统中不同设备的硬件加速核可能是异构的,如一个系统中可能即包含英伟达的GPU服务器,也包括华为的昇腾AI服务器。而在英伟达GPU上能够运行的算法通常在华为的AI平台上是直接运行存在一定的难度。使用虚拟化集群化技术对异构资源进行管理有一定的局限性。

(2)对于一些嵌入式的计算设备,由于设备资源等原因,有些无法有效使用容器等虚拟化集群化资源管理技术。

(3)目前市面上大部分资源管理方案是将计算资源分割成具有标准资源量的静态作业槽。而在视频任务中,视频处理需要的资源和算法计算需要的资源并不成固定比例,例如有的任务需要1080p解码和10T算力,而有的任务需要4K解码和1T算力,所以很难使用一种静态的标准去分割作业槽。

(4)在性能要求较高的视频分析任务中,视频数据需要通过设备内部高速通道从视频处理单元传输到算法计算单元,视频处理单元和算法计算单元存在一定的耦合关系,如果将视频处理部分分配到设备1,而算法计算分配到设备2,会大大降低视频分析任务的性能。这是系统需要避免的。

(5)资源在数量上的累加不一定能满足任务要求,例如一个视频分析任务需要解码一路4K视频,但是系统中每一个视频处理单元最大的解码能力是1080P,即使有成千上万个这种处理单元也无法满足解码4K视频的需要。这就需要考虑每个视频处理单元最大处理能力。

通常情况下,视觉智能系统在调度任务资源时通常会遇到下面的问题:

视觉智能系统资源主要包括视频处理资源和算法计算资源,视频分析任务信息主要包含视频源信息、算法信息、任务配置信息三方面要素信息。任务中主要消耗资源的是视频处理部分和算法计算部分。资源调度归根结底是协调任务和资源的关系。

任务和资源的关系具有一定的复杂性,具体有下面几个方面:

(1)视频源信息、算法信息、任务配置信息这三者具有一些互不耦合的固有属性,任务一旦选定视频源后,只能选择视频源提供的视频规格选项,而无法改变视频源的规格属性。同样的,任务在选定算法后,无法改变算法本身的运行环境、资源消耗等信息,任务配置信息是用户根据需求配置的,用户本身是不关心视频源的规格属性和算法资源消耗信息的。所以这三者信息相互之间具有一定的独立性,组合在一起,形成任务信息的主要部分。

(2)视频源由视频采集设备或者视频文件提供,输出的视频规格参数为原始视频参数,例如原始分辨率、原始帧率。视频处理消耗的资源量是和视频分辨率以及帧率是正比关系,分辨率越高或者帧率越高,视频处理占用的资源量越大,反之则越小。视频采集设备例如监控摄像头,通常会提供多种视频格式、分辨率、帧率可供选择,业务用户可以通过配置任务参数进行选择。如果是视频文件的话,视频格式、分辨率和帧率都已经固定,视频时长可能不同,业务用户可以通过任务参数配置批量处理视频文件的分组数量和顺序。

(3)算法由算法开发者提供,发布在系统中,给成千上万的业务用户使用。算法的运行对算力有要求,每秒处理的帧数越多,需要的算力越大。所以单纯的算法信息是无法确定它在运行时消耗的算力资源量;算法以实例的形式在系统中运行,一个算法在系统中可以有多个算法实例运行。而算法实例每秒处理多少帧视频图像,这个参数通常是由任务决定,在任务配置参数中提供,即任务帧率。通常不同于视频源的原始帧率。例如门禁卡口人脸识别任务对处理视频帧率要求不高,任务帧率一般1FPS或者0.5FPS即可。而实时监控行人、车辆的分析任务则对处理帧率要求较高,任务帧率通常会到5~20FPS,甚至要求逐帧处理;另一方面,算法对于显存的需求通常比较固定,不受帧率影响。

(4)任务配置参数由业务用户根据业务场景需求生成,其中包含任务帧率,如(3)中所述。视频源信息、算法信息、任务配置参数信息三者都不能独立完成对任务资源需求信息的表达,只有三者结合在一起才可以。

(5)视频源和算法可能不是一一对应的,可能是一路视频作为多个算法的数据源,此时消耗的资源量是一路视频处理资源+多个算法计算资源。也可能多路视频作为一个算法的数据源,此时该任务消耗的资源量是多路视频处理资源+一个算法计算资源;所以系统在管理资源时,又不能把视频处理资源和算法计算资源完全耦合起来,需要保持一定的灵活性。

(6)不同设备(特别是异构设备)之间的资源信息描述方法可能各不相同;例如海思3559A的规格书中描述视频编解码性能如下:

视频解码:

●最高支持到H264/H265 8K@30fps或H.264/H.265 4K@ 120fps;

视频编码:

●H.264/H.265多码流实时编码能力:

-7680*4320@30fps+1080P@30fps+ 7680*4320@2fps;

抓拍。

而Atlas200的规格书中描述视频编解码性如下:

视频解码能力:

●支持H.264/H.265 Decoder硬件解码,20路1080P 25FPS,YUV420;

●支持H.264/H.265 Decoder硬件解码,16路1080P 30FPS,YUV420;

●支持H.264/H.265 Decoder硬件解码,2路4K 60FPS,YUV420;

●支持H.264/H.265 Encoder硬件编码,1路1080P 30FPS,YUV420;

●JPEG解码能力1080P 256FPS,编码能力1080P 64FPS, 最大分辨率:8192 *4320;

●PNG解码能力1080P 24FPS,最大分辨率:4096 x 2160。

在上述两种描述方式中,一种是使用最大编解码分辨率的方法描述,另一种是编解码多少路某种规格视频的方法描述;另外计算能力的描述也有类似的问题,有的计算平台规格书中使用FLOPS指定的是浮点运算下的操作性能,有的平台则使用TOPS(INT8)来描述INT8下计算性能,有的平台使用TOPS(INT4)来描述INT4下计算性能;描述方式的不统一给管理和调度增加了一定的复杂性。

基于上述几点,需要一种合理的任务资源需求信息和资源信息表达方式来体现上述关系。

因此,现有虚拟化技术不适用于对视频分析性能要求较高、存在多种异构计算设备的系统进行资源管理和调度。

发明内容

本发明要解决的技术问题在于,针对现有技术缺陷,本发明提供一种视觉智能系统资源信息调度方法、装置、终端及介质,以解决现有的视觉智能系统的调度方法无法满足大规模高性能视频分析及异构计算要求的技术问题。

本发明解决技术问题所采用的技术方案如下:

第一方面,本发明提供一种视觉智能系统资源信息调度方法,包括:

获取视频计算设备的设备资源信息,对所述设备资源信息进行结构化和量化处理,获取至少一个视频计算设备结构化和量化处理后的资源信息,并创建资源池;

获取任务信息,对所述任务信息进行结构化和量化处理,并根据结构化和量化处理后的任务信息和所述资源池中的设备资源信息进行任务调度;

根据任务运行情况更新各视频计算设备资源信息,并更新所述资源池以及所述资源池中空闲作业槽的信息。

在一种实现方式中,所述获取视频计算设备的设备资源信息,对所述设备资源信息进行结构化和量化处理,获取至少一个视频计算设备结构化和量化处理后的资源信息,并创建资源池,包括:

获取视频计算设备的设备资源信息,对所述设备资源信息进行结构化和量化处理;

获取至少一个视频计算设备结构化和量化处理后的资源信息;

根据各设备资源信息中的设备平台信息进行异构设备分类;

对于每一类视频计算设备,遍历每个设备的资源信息;

根据所述设备的可用资源信息创建空闲作业槽;

将同类所有设备的空闲作业槽构成当前类别设备的空闲资源池。

在一种实现方式中,所述将同类所有设备的空闲作业槽构成当前类别设备的空闲资源池,之后包括:

通过所述调度单元对所述资源池进行管理,并动态更新及维护每个所述空闲作业槽的资源信息;

所述调度单元和对应的视频计算设备及时更新及维护设备的可用资源信息。

在一种实现方式中,所述设备资源信息包括:设备平台信息、算法计算资源信息、视频处理资源信息以及可用存储信息;

所述空闲作业槽的资源信息包括:可用算法计算资源信息、可用视频处理资源信息以及可用存储信息。

在一种实现方式中,所述根据结构化和量化处理后的任务信息和所述资源池中的设备资源信息进行任务调度,包括:

根据结构化和量化处理后的任务信息确定任务资源需求信息,并根据所述任务资源需求信息匹配得到与任务对应的设备类别;

计算任务所需的视频处理能力、算法计算能力以及存储能力;

判断所述当前类别设备资源池中是否有满足所述视频处理能力、所述算法计算能力以及所述存储能力的空闲作业槽;

若有满足的空闲作业槽,则确定调度策略,并根据所述调度策略向对应满足的视频计算设备下发对应的任务;

根据对应视频计算设备反馈的任务运行信息,将设备资源信息中的可用资源减去任务资源,更新所述设备资源信息,并更新所述资源池以及所述空闲作业槽的信息。

在一种实现方式中,所述判断所述当前类别设备资源池中是否有满足所述视频处理能力、所述算法计算能力以及所述存储能力的空闲作业槽,之后包括:

若无满足的空闲作业槽,则将任务挂起等待,直到有空闲作业槽满足任务资源需求;

或将所述任务资源需求信息与所述资源池中所有空闲作业槽的资源信息进行比较,根据比较结果修改任务参数及更新任务信息,并返回调度单元再次进行任务调度。

在一种实现方式中,所述任务资源需求信息包括:适用平台信息、视频源信息、算法资源需求信息以及任务配置信息;

其中,所述算法资源需求信息包括:算力需求信息和计算内存需求信息;

所述任务配置信息包括:任务处理帧率、算法运行参数以及存储需求信息。

在一种实现方式中,所述视频处理能力的计算公式为:

,/>

其中,

、/>

、/>

所述视频处理能力的计算公式用于计算所述设备资源信息、所述任务资源需求信息、所述空闲作业槽的资源信息;

所述任务所需的算法计算能力的计算公式为:

其中,

为算力需求信息;

为任务处理帧率。

在一种实现方式中,所述判断所述当前类别设备资源池中是否有满足所述视频处理能力、所述算法计算能力以及所述存储能力的空闲作业槽,包括:

若调度多个具有相同资源需求的任务,计算每一个空闲作业槽可处理任务的路数;

根据所述每一个空闲作业槽可处理任务的路数,通过计算估算出系统最大可并行处理任务的路数;

根据各空闲作业槽可处理任务的路数与所述最大并行可处理任务的路数,判断当前类别设备资源池中是否有满足多个所述具有相同资源需求的任务。

在一种实现方式中,所述根据任务运行情况更新各视频计算设备资源信息,包括:

更新所述资源池以及空闲作业槽的可用计算能力值、可用计算内存大小、可用存储大小、可用解码能力值以及可用编码能力值。

第二方面,本发明提供一种视觉智能系统资源信息调度装置,包括:

资源池创建模块,用于获取视频计算设备的设备资源信息,对所述设备资源信息进行结构化和量化处理,获取至少一个视频计算设备结构化和量化处理后的资源信息,并创建资源池;

任务调度模块,用于获取任务信息,对所述任务信息进行结构化和量化处理,并根据结构化和量化处理后的任务信息和所述资源池中的设备资源信息进行任务调度;

资源更新模块,用于根据任务运行情况更新各视频计算设备资源信息,并更新所述资源池以及所述资源池中空闲作业槽的信息。

第三方面,本发明提供一种终端,包括:处理器以及存储器,所述存储器存储有视觉智能系统资源信息调度程序,所述视觉智能系统资源信息调度程序被所述处理器执行时用于实现如第一方面所述的视觉智能系统资源信息调度方法的操作。

第四方面,本发明还提供一种介质,所述介质为计算机可读存储介质,所述介质存储有视觉智能系统资源信息调度程序,所述视觉智能系统资源信息调度程序被处理器执行时用于实现如第一方面所述的视觉智能系统资源信息调度方法的操作。

本发明采用上述技术方案具有以下效果:

本发明通过获取至少一个视频计算设备的设备资源信息,可以根据设备资源信息在调度单元中创建资源池,从而根据任务信息和资源池中的设备资源信息进行任务调度,并且根据调度任务更新各视频计算设备资源信息,更新资源池以及资源池中空闲作业槽的信息;本发明将视频分析任务中的资源需求信息,以及视觉智能系统中计算资源相关信息进行结构化和量化处理,降低系统对任务和资源管理、调度的复杂度,可适用于高计算性能及异构计算要求的视觉智能系统的调度任务。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图示出的结构获得其他的附图。

图1是本发明的一种实现方式中视觉智能系统资源信息调度方法的流程图。

图2是本发明的一种实现方式中调度单元的调度示意图。

图3是本发明的一种实现方式中不同设备类别的调度示意图。

图4是本发明的一种实现方式中调度单元创建资源池的流程图。

图5是本发明的一种实现方式中任务调度的流程图。

图6是本发明的一种实现方式中单个作业槽的检查的流程图。

图7是本发明的一种实现方式中计算每一个空闲作业槽运行任务的路数的流程图。

图8是本发明的一种实现方式中终端的功能原理图。

本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。

具体实施方式

为使本发明的目的、技术方案及优点更加清楚、明确,以下参照附图并举实施例对本发明进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。

示例性方法

目前市面上具有一定规模的视觉智能系统主要采用虚拟化集群化技术进行资源管理和调度。但这种使用虚拟化集群化技术对异构资源进行管理有一定的局限性,并且对于一些嵌入式的计算设备,由于设备资源等原因,有些无法有效使用容器等虚拟化集群化资源管理技术,很难使用一种静态的标准去分割作业槽,而且,在性能要求较高的视频分析任务中,复杂的调度方式会大大降低视频分析任务的性能,不能满足任务要求。

针对上述技术问题,本实施例中提供了一种视觉智能系统资源信息调度方法,本实施例中将视频分析任务中的资源需求信息,以及视觉智能系统中计算资源相关信息进行结构化和量化处理,从而降低系统对任务和资源管理、调度的复杂度,可适用于高计算性能及异构计算要求的视觉智能系统的调度任务。

如图1所示,本发明实施例提供一种视觉智能系统资源信息调度方法,包括以下步骤:

步骤S100,获取视频计算设备的设备资源信息,对所述设备资源信息进行结构化和量化处理,获取至少一个视频计算设备结构化和量化处理后的资源信息,并创建资源池。

在本实施例中,该视觉智能系统资源信息调度方法应用于终端上,该终端包括但不限于:计算机等设备。

本实施例中提供的方法将有效解决或者改善视觉智能系统在调度任务资源的问题。

视觉智能系统主要的资源包括:视频处理资源和算法计算资源,视频处理能力主要跟视频格式、分辨率和帧率相关,且具有一定的相对倍数关系。算法计算能力与每秒运算次数及精度相关。这种关系为量化视频处理资源和算法计算资源提供了依据;本实施例中对视频计算设备的设备资源信息进行结构化处理。

本实施例中通过对视频处理资源和算法计算资源进行量化处理,可以在一定范围内分解或者合并,从而做到资源精细化调度。经过量化的资源信息,如总资源量、可用资源量、任务资源需求量等之间可以进行数值运算和逻辑运算,从而简化资源调度里的流程和逻辑判断,大大降低资源调度的复杂度。例如,在智能转码任务的场景里,通常需要处理成百上千路视频,如现在需要转码10000路1080P@30FPS的视频,如果系统对资源信息有统一的量化处理,可以根据可用的资源量,得出最大并行处理1080P@30FPS视频的路数,例如目前可用的视频处理单元资源最大可并行转码1000路1080P@30FPS的视频,则调度单元可很快得出调度方案,譬如将10000路视频分成10组,每一组1000路。如果系统没有对计算资源信息统一量化处理,调度这类任务将存在一定的复杂性;而且,由于管理和调度的复杂度大大降低,系统可以很方便的实现资源动态管理和调度。

在本实施例中,在对视频处理资源和算法计算资源进行量化处理的过程中,包括以下几个部分:

首先,引入视频处理能力参考基准和计算能力参考基准,将任务对计算能力的需求,以及设备的视频处理能力和计算能力进行量化处理。

对于视频处理能力的量化描述,例如以1080P@1fps为视频能力参考基准,上述海思3559A视频H264解码能力值为8K@30fps/1080P@1fps=480.0,上述Atlas200的视频H264解码能力值为16*1080P@30fps/1080P@1fps=480.0。可以看出虽然描述方式不同,但上述两个平台的H264解码能力是相同的。

对于计算能力的量化描述,目前业界计算平台普遍都是支持INT8精度的计算,本实施例中统一使用1TOPS(INT8)为基准指标,估算出计算平台的计算能力值。

然后,将资源调度中相关的信息分别从设备、视频源、算法、任务四个部分进行描述,使用统一的结构化方法进行描述,并将视频处理能力和计算能力相应的参数使用量化方法进行量化处理。

最后,资源经过量化之后,可在设备内部范围内分解或者合并,从而做到资源精细化管理和调度。

本实施例中,在资源精细化管理和调度的过程中,需要创建并维护一个动态更新的资源池。

具体地,在本实施例的一种实现方式中,步骤S100包括以下步骤:

步骤S101,获取视频计算设备的设备资源信息,对所述设备资源信息进行结构化和量化处理;

步骤S102,获取至少一个视频计算设备结构化和量化处理后的资源信息;

步骤S103,根据各设备资源信息中的设备平台信息进行异构设备分类;

步骤S104,对于每一类视频计算设备,遍历每个设备的资源信息;

步骤S105,根据所述设备的可用资源信息创建空闲作业槽;

步骤S106,将同类所有设备的空闲作业槽构成当前类别设备的空闲资源池。

在本实施例中,在创建资源池的过程中需要将所有同类的视频计算设备组成资源池。具体为,在对设备资源信息进行结构化和量化处理后,获取至少一个视频计算设备结构化和量化处理后的资源信息,即获取的处理后的资源信息可以是一个视频计算设备的结构化和量化处理后的资源信息,也可以是多个视频计算设备的结构化和量化处理后的资源信息,甚至是所有视频计算设备的结构化和量化处理后的资源信息;然后,根据各设备资源信息中的设备平台信息进行分类并组成资源池。

如图3所示,资源池包括:空闲资源池和已用资源池;空闲资源池由设备的可用资源组成,每个设备的可用资源作为一个空闲作业槽,一个作业槽可完成一个或者多个任务。已用资源池由设备的已用资源组成。由于设备可用资源和已用资源是随着运行的任务增加或者减少是变化的,空闲作业槽的资源大小也是随之变化。

具体地,在本实施例的一种实现方式中,步骤S106之后包括以下步骤:

步骤S107,通过所述调度单元对所述资源池进行管理,并动态更新及维护每个所述空闲作业槽的资源信息;

步骤S108,所述调度单元和对应的视频计算设备及时更新及维护设备的可用资源信息。

在本实施例中,主要通过调度单元对资源池,以及其中的空闲作业槽统一管理,并及时动态更新维护它们的信息。同时,调度单元和设备还需及时更新维护设备的可用资源信息;其中,本实施例中的调度单元的调度方式如图2所示。

以下通过一种应用场景,对本实施例的资源量化进行说明:

首先定义视频编解码性能的量化方法F

选取某个分辨率W

P

其次定义计算平台计算性能的量化方法F

统一使用1TOPS(INT8精度)为基准指标,换算出计算平台的计算能力值c

若使用在INT8精度下的算力值c

若使用在FP16精度下的算力值c

如图2所示,一个视觉智能系统中通常包含至少一个调度单元,负责资源的管理和调度。资源管理的过程如下:

首先调度单元需创建资源池,具体如图4所示:

步骤S1.1:获取系统中所有视频计算设备的设备资源信息A;

步骤S1.2:根据设备资源信息A中的设备平台信息将异构设备分类;

步骤S1.3:将所有同类的视频计算设备组成资源池;遍历同类设备所有的资源信息,根据设备的可用资源信息和已用资源信息,创建空闲资源池,空闲作业槽,以及已用资源池。得到每个空闲作业槽的资源信息J。

步骤S1.4:调度单元对资源池统一管理,并及时动态更新维护它们的信息,包括每个空闲作业槽的资源信息J。同时,调度单元和设备及时更新维护设备的可用资源信息。

在上述步骤中,步骤S1.1中的设备资源信息A包括:设备平台信息、算法计算资源信息、视频处理资源信息以及可用存储信息,具体主要内容如下表1所示:

表1

根据设备资源信息A中的信息描述对其进行结构化和量化处理,得到结构化和量化处理后的设备资源信息A。

表1中的子信息包含的内容如下:

a)设备平台信息;包括设备使用的操作系统信息(如Ubuntu18.04、Windows10等)、计算加速平台信息(如英伟达GPU、英伟达Jetson、华为昇腾、寒武纪NPU等)、必要的驱动版本信息(如JetPack5.0、CUDA7@ 440.33.01等)等,用于区分标识不同的系统环境。

b)算法计算资源信息,如下表2所示:

表2

c)视频处理资源信息,如下表3所示:

表3

d)可用存储信息,如下表4所示:

表4

步骤S1.3中的空闲作业槽资源信息J包括:可用算法计算资源信息、可用视频处理资源信息以及可用存储信息,具体如下表5所示:

表5

在表5中,子信息包含的内容如下:

a)可用算法计算资源信息,具体如下表6所示:

表6

b)可用视频处理资源信息,具体如下表7所示:

表7

c)可用存储信息,具体如下表8所示:

表8

本实施例将资源调度中相关的信息分解为设备、视频、算法、任务几个部分,并且每个部分相互解耦,由独立的实体提供;其中,设备信息可以由设备厂商提供,视频信息可以由任务选择的视频流或者视频文件提供,算法资源需求信息可以由任务选择的算法提供,任务配置信息可以由任务发起者根据任务需求提供。

本实施例中通过对视频处理资源和算法计算资源进行量化处理,可灵活处理不同任务需求。例如一路视频作为多个算法的数据源,或者多路视频作为一个算法的数据源,或者有的任务需要1080p解码和10T算力,而有的任务需要4K解码和1T算力。同时可大大简化大规模批量任务的资源调度。

如图1所示,在本发明实施例的一种实现方式中,视觉智能系统资源信息调度方法还包括以下步骤:

步骤S200,获取任务信息,对所述任务信息进行结构化和量化处理,并根据结构化和量化处理后的任务信息和所述资源池中的设备资源信息进行任务调度。

在本实施例中,调度单元接收到任务后,根据任务信息,识别出适合运行该任务的设备类别。调度单元通过比较任务资源需求量和该类别空闲作业槽的资源信息,便可确定是否有足够资源完成任务;如果资源足够,调度单元根据任务资源需求量匹配资源合适的作业槽,并下发任务。任务资源被占用,调度单元更新空闲作业槽的信息,调度单元和设备更新的可用资源信息;如果资源不满足,调度单元可根据任务资源需求量和空闲作业槽的资源信息,调整任务参数,使得两者任务资源需求量能匹配空闲作业槽的资源量,从而保证任务可以完成。

具体地,在本实施例的一种实现方式中,步骤S200包括以下步骤:

步骤S201,根据结构化和量化处理后的任务信息确定任务资源需求信息,并根据所述任务资源需求信息匹配得到与任务对应的设备类别;

步骤S202,计算任务所需的视频处理能力、算法计算能力以及存储能力;

步骤S203,判断所述当前类别设备资源池中是否有满足所述视频处理能力、所述算法计算能力以及所述存储能力的空闲作业槽。

在本实施例的一种实现方式中,步骤S203包括以下步骤:

步骤S203a,若调度多个具有相同资源需求的任务,计算每一个空闲作业槽可处理任务的路数;

步骤S203b,根据所述每一个空闲作业槽可处理任务的路数,通过计算估算出系统最大可并行处理任务的路数;

步骤S203c,根据各空闲作业槽可处理任务的路数与所述最大并行可处理任务的路数,判断当前类别设备资源池中是否有满足多个所述具有相同资源需求的任务。

具体地,在本实施例的一种实现方式中,步骤S200还包括以下步骤:

步骤S204,若有满足的空闲作业槽,则确定调度策略,并根据所述调度策略向对应满足的视频计算设备下发对应的任务;

步骤S205,根据对应视频计算设备反馈的任务运行信息,将设备资源信息中的可用资源减去任务资源,更新所述设备资源信息,并更新所述资源池以及所述空闲作业槽的信息。

步骤S206,若无满足的空闲作业槽,则将任务挂起等待,直到有空闲作业槽满足任务资源需求;或将所述任务资源需求信息与所述资源池中所有空闲作业槽的资源信息进行比较,根据比较结果修改任务参数及更新任务信息,并返回调度单元再次进行任务调度。

在本实施例中,调度单元接收到任务后,对所述任务信息进行结构化和量化处理;并且根据任务资源需求信息从上述建立的资源池中查找满足任务的视频处理能力、算法计算能力以及存储能力的空闲作业槽,然后根据制定的调度方案向对应的可执行设备下发任务,完成整个调度过程。

以下通过一种应用场景,对本实施例的任务调度过程进行说明,如图5所示,包括:

步骤S2.1:系统给调度单元发送任务信息,调度单元对任务信息进行结构化和量化处理,得到任务资源需求信息B;

步骤S2.2:根据任务资源需求信息B中的适用平台信息B1,匹配适合运行该任务的设备类别W;若匹配成功,则执行步骤S2.3;若匹配失败,则返回失败给系统;

步骤S2.3:根据任务资源需求信息B,计算任务需要的视频处理能力V

步骤S2.4:检查资源池W中的所有空闲作业槽是否有满足S2.3中的计算得到的视频处理能力V

步骤S2.5:制定调度方案,下发任务给设备,检查设备运行状态;若运行成功,则执行步骤S2.6;若运行失败,则返回失败给系统,并提示资源未被占用;

步骤S2.6:设备节点返回成功给调度节点,并将设备资源信息A中的可用资源减去任务资源B,更新设备资源信息A;调度单元同时也相应更新资源池以及空闲作业槽的信息J。

在上述步骤S2.1的执行过程中,调度单元获得的任务资源需求信息B包括:适用平台信息、视频源信息、算法资源需求信息以及任务配置信息,具体如下表9所示:

表9

根据任务资源需求信息B中的信息描述进行结构化和量化处理,得到结构化和量化处理后的任务资源需求信息B。

在上述表9中,子信息包含的内容如下:

a)适用平台信息,描述可运行该任务的平台信息,与设备资源信息A中“A1 设备平台信息”对应。

b)视频数据源信息,具体如下表10所示:

表10

c)算法资源需求信息,具体如下表11所示:

表11

d)任务配置信息,具体如下表12所示:

表12

在上述步骤S2.3的执行过程中,根据任务资源需求信息B,计算任务需要的视频处理能力V

所述视频处理能力的计算公式为:

其中,

、/>

、/>

所述视频处理能力的计算公式用于计算所述设备资源信息、所述任务资源需求信息、所述空闲作业槽的资源信息;

所述任务所需的算法计算能力的计算公式为:

其中,

为算力需求信息;

为任务处理帧率。

在上述步骤S2.4的执行过程中,检查资源池W中的所有空闲作业槽是否有满足任务需要的视频处理能力V

如图6所示,对于单个作业槽的检查过程如下:

步骤S2.4.1:检查空闲作业槽的可用视频处理能力信息J2是否满足任务需要的视频格式sVideo FmtName和视频处理能力V

步骤S2.4.2:检查空闲作业槽的可用算法计算能力信息J1是否满足任务的计算能力需求信息C

步骤S2.4.3:检查空闲作业槽的可用存储信息是否满足存储需求vTask

步骤S2.4.4:提示资源无法满足任务需要,调度任务失败。

通过遍历资源池W中所有空闲作业槽,直到找到合适的作业槽满足任务的资源需求。

上述步骤S2.4.1~S2.4.3是针对单一调度任务的场景,如果调度多个具有相同资源需求的任务,即任务资源需求信息B相同,先计算每一个空闲作业槽运行任务的路数,然后,根据各空闲作业槽运行任务的路数判断所述当前类别设备资源池中是否有满足多个具有相同资源需求的任务的视频处理能力、算法计算能力以及存储能力的空闲作业槽。

如图7所示,每一个空闲作业槽运行任务的路数,具体计算过程如下:

从视频处理能力角度,计算该作业槽可运行同类任务的路数n

其中,

从算法计算能力角度,计算该作业槽可运行同类任务的路数n

其中,

从算法计算内存角度,计算该作业槽可运行同类任务的路数n

其中,

从存储角度,计算该作业槽可运行同类任务的路数n

其中,

结合三部分的计算结果,得出该作业槽上可运行同类任务的路数CH

在上述步骤S2.4的执行过程中,若无满足的空闲作业槽,则执行可选的调度方案;其中,可选的调度方案为:

可选调度方案1、系统根据S2.4的数值比较,修改任务参数,更新任务信息,重新调度;

可选调度方案2、任务挂起等待,直到有空闲作业槽满足该任务资源需求。

在上述步骤S2.6的执行过程中,设备节点返回成功给调度节点,并将设备资源信息A中的可用资源减去任务资源B,更新设备资源信息A。调度单元同时也相应更新资源池以及空闲作业槽的信息J。

其中,设备资源信息A中更新的信息包括:可用计算能力值vDev_AvailCmpPower、可用计算内存大小vDev_AvailCmpMem、可用存储大小vDev_AvailStorage、可用解码能力值vAvailPerf_Dec以及可用编码能力值vAvailPerf_Enc。

如图1所示,在本发明实施例的一种实现方式中,视觉智能系统资源信息调度方法还包括以下步骤:

步骤S300,根据任务运行情况更新各视频计算设备资源信息,并更新所述资源池以及所述资源池中空闲作业槽的信息。

在本实施例中,任务结束后,系统回收任务资源,设备更新设备资源信息A。调度单元同时也相应更新资源池以及空闲作业槽的信息J。

本实施例通过引入视频能力参考基准和计算精度参考基准,将任务的资源需求信息,以及设备资源信息进行量化处理,通过简单的计算即可以得到可用资源信息和已用资源信息,大大降低资源调度的复杂性。在系统可用资源信息无法满足任务资源需求时,通过调整任务配置参数,可以降低任务资源消耗,从而使系统可执行任务;而且,本实施例中的方法创建了动态资源池和动态作业槽,资源在一定范围内实现分解和合并,对于无法集群化管理的端设备或者边设备进行高效的调度。

本实施例通过上述技术方案达到以下技术效果:

本实施例通过获取至少一个视频计算设备的设备资源信息,可以根据设备资源信息在调度单元中创建资源池,从而根据任务信息和资源池中的设备资源信息进行任务调度,并且根据调度任务更新各视频计算设备资源信息,更新资源池以及资源池中空闲作业槽的信息;本实施例将视频分析任务中的资源需求信息,以及视觉智能系统中计算资源相关信息进行结构化和量化处理,降低系统对任务和资源管理、调度的复杂度,可适用于高计算性能及异构计算要求的视觉智能系统的调度任务。

示例性设备

基于上述实施例,本发明还提供一种视觉智能系统资源信息调度装置,包括:

资源池创建模块,用于获取视频计算设备的设备资源信息,对所述设备资源信息进行结构化和量化处理,获取至少一个视频计算设备结构化和量化处理后的资源信息,并创建资源池;

任务调度模块,用于获取任务信息,对所述任务信息进行结构化和量化处理,并根据结构化和量化处理后的任务信息和所述资源池中的设备资源信息进行任务调度;

资源更新模块,用于根据任务运行情况更新各视频计算设备资源信息,并更新所述资源池以及所述资源池中空闲作业槽的信息。

基于上述实施例,本发明还提供一种终端,其原理框图可以如图8所示。

该终端包括:通过系统总线连接的处理器、存储器、接口、显示屏以及通讯模块;其中,该终端的处理器用于提供计算和控制能力;该终端的存储器包括存储介质以及内存储器;该存储介质存储有操作系统和计算机程序;该内存储器为存储介质中的操作系统和计算机程序的运行提供环境;该接口用于连接外部设备,例如,移动终端以及计算机等设备;该显示屏用于显示相应的信息;该通讯模块用于与云端服务器或移动终端进行通讯。

该计算机程序被处理器执行时用以实现一种视觉智能系统资源信息调度方法的操作。

本领域技术人员可以理解的是,图8中示出的原理框图,仅仅是与本发明方案相关的部分结构的框图,并不构成对本发明方案所应用于其上的终端的限定,具体的终端可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。

在一个实施例中,提供了一种终端,其中,包括:处理器和存储器,存储器存储有视觉智能系统资源信息调度程序,视觉智能系统资源信息调度程序被处理器执行时用于实现如上的视觉智能系统资源信息调度方法的操作。

在一个实施例中,提供了一种存储介质,其中,存储介质存储有视觉智能系统资源信息调度程序,视觉智能系统资源信息调度程序被处理器执行时用于实现如上的视觉智能系统资源信息调度方法的操作。

本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,计算机程序可存储于一非易失性存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本发明所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。

综上,本发明提供了一种视觉智能系统资源信息调度方法、装置、终端及介质,方法包括:获取视频计算设备的设备资源信息,对设备资源信息进行结构化和量化处理,获取至少一个视频计算设备结构化和量化处理后的资源信息,并创建资源池;获取任务信息,对任务信息进行结构化和量化处理,并根据结构化和量化处理后的任务信息和资源池中的设备资源信息进行任务调度;根据任务运行情况更新各视频计算设备资源信息,并更新资源池以及资源池中空闲作业槽的信息;本发明将视频分析任务中的资源需求信息,以及视觉智能系统中计算资源相关信息进行结构化和量化处理,降低系统对任务和资源管理、调度的复杂度,可适用于高计算性能及异构计算要求的视觉智能系统的调度任务。

应当理解的是,本发明的应用不限于上述的举例,对本领域普通技术人员来说,可以根据上述说明加以改进或变换,所有这些改进和变换都应属于本发明所附权利要求的保护范围。

技术分类

06120115935958