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

GPU虚拟机的管理方法、系统、设备和介质

文献发布时间:2023-06-19 19:28:50


GPU虚拟机的管理方法、系统、设备和介质

技术领域

本发明涉及视频分析技术领域,尤其涉及一种GPU虚拟机的管理方法、系统、设备和介质。

背景技术

在视频分析领域,由于海量视频流数据以及不同分析需求的存在,为了提高视频流分析效率,当前的视频智能分析方案通常将固定数量的摄像机与固定数量的GPU(GraphicsProcessingUnit,图形处理器)资源绑定,应对大量监控场景智能分析的需求。

由于GPU资源有限,为平衡不同时段和不同应用场景对GPU算力的动态需求,充分利用GPU计算潜力,引入了虚拟GPU技术,以减少分析需求的算力波动给GPU资源带来的浪费。

目前业界普遍采用的是软件层面的虚拟GPU技术,即通过在GPU实体上加载软件,在软件控制下基于时间片划分GPU资源,实现一块物理GPU芯片的多个虚拟GPU模拟。然而由于基于时间片实现资源分配是通过运行在实体GPU之上的软件调度实现的,因此存在处理延时的问题,无法满足安防监控的实时性需求;并且软件调度处理所带来的额外消耗也浪费了GPU的计算资源。

发明内容

本发明提供了一种GPU虚拟机的管理方法、系统、设备和介质,以实现GPU计算资源的充分利用,并且满足安防监控的实时性需求。

根据本发明的一方面,提供了一种GPU虚拟机的管理方法,由与第一客户端关联的第一GPU服务器执行,包括:

获取视频管理服务器下发的目标摄像机的第一GPU虚拟机创建任务,并根据所述第一GPU虚拟机创建任务创建与所述目标摄像机关联的第一虚拟机;其中,所述第一GPU虚拟机创建任务由所述视频管理服务器根据所述第一客户端发送的对所述目标摄像机的第一分析任务进行生成;

根据所述第一GPU虚拟机创建任务中包括的所述第一分析任务确定目标算术逻辑单元数量;

根据所述目标算术逻辑单元数量从所述第一GPU服务器中确定与所述第一虚拟机关联的目标算术逻辑单元资源,并将所述第一分析任务下发至所述目标算术逻辑单元资源进行处理。

根据本发明的另一方面,提供了一种GPU虚拟机的管理方法,由视频管理服务器执行,所述视频管理服务器对至少两个GPU服务器进行管理,包括:

根据第一客户端发送的对目标摄像机的第一分析任务生成所述目标摄像机的第一GPU虚拟机创建任务,并将所述第一GPU虚拟机创建任务下发至与所述第一客户端关联的第一GPU服务器,以使所述第一GPU服务器根据所述第一GPU虚拟机创建任务创建与所述目标摄像机关联的第一虚拟机;

在获取到第二客户端发送的对所述目标摄像机的第二分析任务后,将所述第二分析任务下发至所述第一GPU服务器的所述第一虚拟机中,由所述第一GPU服务器将所述第二分析任务的第二分析结果发送至所述第二客户端。

根据本发明的另一方面,提供了一种GPU虚拟机的管理系统,包括:

视频管理服务器,用于根据第一客户端发送的对目标摄像机的第一分析任务生成所述目标摄像机的第一GPU虚拟机创建任务,并将所述第一GPU虚拟机创建任务下发至与所述第一客户端关联的第一GPU服务器;

第一GPU服务器,与所述视频管理服务器通信连接,用于获取视频管理服务器下发的目标摄像机的第一GPU虚拟机创建任务,并根据所述第一GPU虚拟机创建任务创建与所述目标摄像机关联的第一虚拟机;根据所述第一GPU虚拟机创建任务中包括的所述第一分析任务确定目标算术逻辑单元数量;根据所述目标算术逻辑单元数量从所述第一GPU服务器中确定与所述第一虚拟机关联的目标算术逻辑单元资源,并将所述第一分析任务下发至所述目标算术逻辑单元资源进行处理。

根据本发明的另一方面,提供了一种电子设备,所述电子设备包括:

至少一个处理器;以及

与所述至少一个处理器通信连接的存储器;其中,

所述存储器存储有可被所述至少一个处理器执行的计算机程序,所述计算机程序被所述至少一个处理器执行,以使所述至少一个处理器能够执行本发明任一实施例所述的GPU虚拟机的管理方法。

根据本发明的另一方面,提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机指令,所述计算机指令用于使处理器执行时实现本发明任一实施例所述的GPU虚拟机的管理方法。

本发明实施例的技术方案,通过将GPU服务器中的计算资源进行物理层面的划分实现GPU虚拟化,保证每个视频流的分析任务可以得到实时处理,同时解决了GPU资源浪费的问题,提升GPU的资源利用率。

应当理解,本部分所描述的内容并非旨在标识本发明的实施例的关键或重要特征,也不用于限制本发明的范围。本发明的其它特征将通过以下的说明书而变得容易理解。

附图说明

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

图1是根据本发明实施例一提供的一种GPU虚拟机的管理方法的流程图;

图2是根据本发明实施例二提供的另一种GPU虚拟机的管理方法的流程图;

图3是根据本发明实施例三提供的又一种GPU虚拟机的管理方法的流程图;

图4是根据本发明实施例四提供的一种GPU虚拟机的管理系统的结构示意图;

图5是实现本发明实施例五的GPU虚拟机的管理方法的电子设备的结构示意图。

具体实施方式

为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。

需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“候选”、“目标”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。

实施例一

图1为本发明实施例一提供了一种GPU虚拟机的管理方法的流程图,本实施例可适用于在视频分析领域对GPU资源进行虚拟化管理的情况,由与第一客户端关联的第一GPU服务器执行,该方法可以由GPU虚拟机的管理装置来执行,该GPU虚拟机的管理装置可以采用硬件和/或软件的形式实现,该GPU虚拟机的管理装置可配置于服务器等具有通信和计算能力的设备中。如图1所示,该方法包括:

S110、获取视频管理服务器下发的目标摄像机的第一GPU虚拟机创建任务,并根据第一GPU虚拟机创建任务创建与目标摄像机关联的第一虚拟机。

其中,视频管理服务器用于接收不同客户端下发的对各个摄像机的视频流进行分析的任务,其中,分析任务可以是视频流中的行人目标检测任务或行人目标跟踪任务或行人结构化分析任务等,并根据这些任务在对应的GPU服务器上创建虚拟机,因此视频管理服务器需要对多个GPU服务器进行管理。

第一GPU虚拟机创建任务由视频管理服务器根据第一客户端发送的对目标摄像机的第一分析任务进行生成。在视频管理服务器接收到任一客户端发送来的对目标摄像机的分析任务后,确定该目标摄像机是否有已经创建的虚拟机,若没有,则在该客户端所在区域的GPU服务器上为该目标摄像机创建虚拟机,以对该客户端对目标摄像机的分析任务进行处理。若该目标摄像机已经存在创建完成的虚拟机,则确定该虚拟机所在的GPU服务器,将该分析任务发送到该GPU服务器上的虚拟机中。示例性的,当目标摄像机出现第二客户端的分析需求时,视频管理服务器将该分析需求叠加到该目标摄像机对应的第一虚拟机中,并由第一虚拟机将第二客户端的分析需求所匹配的分析结果发送至第二客户端。

具体的,在视频管理服务器接收到第一客户端对目标摄像机的第一分析任务后,视频管理服务器确定与该第一客户端关联的第一GPU服务器,并向该第一GPU服务器发送第一GPU虚拟机创建任务,以使该第一GPU服务器在接收到该任务后在该服务器上创建一个对目标摄像机关联的第一虚拟机,为第一虚拟机设置唯一的虚拟机ID号。在第一GPU虚拟机创建任务中需要至少包括摄像机的唯一摄像机标识信息以及第一分析任务,以便于第一GPU服务器根据该摄像机的唯一摄像机标识信息获取目标摄像机的目标视频流,对第一分析任务进行处理,得到第一分析任务分析结果。

示例性的,在每个客户端所在的区域部署一个与该客户端关联的GPU服务器,不同区域会有不同的GPU服务器,以形成一个分布式的GPU服务器集群,由视频管理服务器进行管理。在视频管理服务器接收到第一客户端对目标摄像机的第一分析任务后,视频管理服务器在该第一客户端所在区域的第一GPU服务器上创建一个与目标摄像机关联的虚拟机,以便第一GPU服务器中的虚拟机对第一客户端的第一分析任务分析完成后,可以将分析结果以最快的速度发送至第一客户端,保证任务分析的实时性。若第一客户端所在区域未设置GPU服务器,则将距离第一客户端最近的GPU服务器确定为与该客户端关联的第一GPU服务器。

S120、根据第一GPU虚拟机创建任务中包括的第一分析任务确定目标算术逻辑单元数量。

第一分析任务中包括第一客户端对目标摄像机的目标视频流所需进行分析的任务集,第一GPU服务器接收到第一分析任务后,根据第一分析任务的任务量确定相应的计算量,根据任务计算量确定需要为第一GPU虚拟机分配的算术逻辑单元(arithmetic andlogic unit,ALU)数量,以保证对第一分析任务的计算效率。

示例性的,根据第一分析任务的任务计算量以及第一GPU服务器的GPU性能和算力确定目标ALU数量。

S130、根据目标算术逻辑单元数量从第一GPU服务器中确定与第一虚拟机关联的目标算术逻辑单元资源,并将第一分析任务下发至目标算术逻辑单元资源进行处理。

根据目标ALU数量对第一GPU服务器上的计算资源进行物理层面的划分,根据划分结果创建虚拟机,保证第一GPU服务器上的不同虚拟机均可以得到无延时的实时处理。避免对按照时间对GPU服务器的计算资源进行划分带来的处理延时问题。

具体的,将第一GPU服务器中目标ALU数量个空闲ALU资源确定为目标ALU资源,并将目标ALU资源与第一虚拟机绑定,用于对第一虚拟机接收到的分析任务进行处理,即使用目标ALU资源对目标摄像机的分析任务进行处理。

示例性的,第一GPU服务器中未与其他虚拟机绑定的ALU资源为空闲ALU资源,从空闲ALU资源中确定目标ALU数量个空闲ALU资源为目标ALU资源,并建立目标ALU资源与第一虚拟机的绑定关系,当第一虚拟机接收到第一分析任务后,将第一分析任务分解为各个子任务,按照各个子任务的任务计算量、GPU性能和算力从目标ALU资源中确定各个子任务的ALU资源,并将各个子任务下发至对应的ALU资源,以便为各个子任务进行并行处理,提高处理效率。例如,第一虚拟机接收到的第一分析任务为分析目标摄像机的目标视频流中的行人目标检测、跟踪、结构化分析(是否戴眼镜、衣着颜色、行走方向等)等任务,则可以将第一分析任务进行分解,并下发至各个ALU进行并行处理。

在一个可行的实施例中,在根据目标ALU数量从第一GPU服务器中确定与第一虚拟机关联的目标算术逻辑单元资源之后,该方法还包括:

按照预设周期确定第一虚拟机的算术逻辑单元资源消耗量;

根据算术逻辑单元资源消耗量的变化控制目标算术逻辑单元资源的目标算术逻辑单元数量。

由于不同客户端对目标摄像机的分析任务量存在波动,例如第一客户端修改第一分析任务,当第一分析任务的任务量减少或增加后,必然会导致第一虚拟机的计算量发生波动;又或者当第一虚拟机中执行了至少两个客户端的分析任务时,当一个客户端取消分析任务时,也会带来第一虚拟机的计算量发生波动,又或者第一虚拟机接收到了新的客户端对目标摄像机的分析任务。因此为了提高第一GPU服务器中的ALU资源的充分利用,以及保证第一虚拟机中分析任务的执行效率,需要根据业务计算负载的动态感知,将合理数量的计算逻辑单元ALU资源动态分配给GPU服务器中的虚拟机,实现虚拟机的计算能力的动态变更。

具体的,第一GPU服务器周期性的采集所有部署的虚拟机的ALU资源消耗量,根据各个虚拟机的ALU资源消耗量动态控制对各虚拟机分配的目标ALU资源的目标ALU数量。示例性的,针对每个虚拟机,第一GPU服务器周期性(例如100秒)地采集各个虚拟机的ALU资源消耗量,若存在虚拟机的ALU资源消耗量低于预设下限阈值,则GPU服务器将该虚拟机的其中一个ALU资源释放给本GPU服务器的ALU公共资源池;若消耗量存在虚拟机的ALU资源消耗量高于预设上限阈值,则GPU服务器为该虚拟机向ALU公共资源池申请一个新的ALU资源,与该虚拟机绑定。当至少两个虚拟机的ALU资源消耗量高于预设上限阈值时,则根据该至少两个虚拟机中执行任务的实时性要求确定目标虚拟机,为目标虚拟机增加目标ALU数量,从ALU公共资源池中申请新的ALU资源,以保证实时性要求高的分析任务的处理效率。

本实施例通过GPU服务器对虚拟机的ALU资源消耗检测,实现动态调整所部署虚拟机绑定的ALU资源的合理分配。

在一个可行的实施例中,第一GPU服务器中包括至少两个实体GPU;

相应的,根据目标算术逻辑单元数量从第一GPU服务器中确定与第一虚拟机关联的目标算术逻辑单元资源,包括:

确定第一GPU服务器中与同一个实体GPU关联的空闲算术逻辑单元资源的数量是否大于或等于目标算术逻辑单元数量;

若是,则从与同一个实体GPU关联的空闲算术逻辑单元资源中确定目标算术逻辑单元资源;

否则,从与至少两个实体GPU关联的空闲算术逻辑单元资源中确定目标算术逻辑单元资源。

其中,第一GPU服务器本身是一个GPU集群,可以包括至少两个实体GPU,则同一个虚拟机的目标ALU资源可以横跨多个实体GPU,以避免出现同一个GPU服务器中的实体GPU之前计算资源不等带来的资源浪费。

具体的,在确定第一虚拟机的目标ALU数量后,确定与同一个实体GPU关联的空闲ALU资源是否可以满足该目标ALU数量,若可以满足,则第一虚拟机绑定的目标ALU资源均来自同一个实体GPU;若不能满足,则第一虚拟机绑定的目标ALU资源来自至少两个实体GPU,以保证第一虚拟机的计算资源充足。例如,当第一虚拟机的ALU资源横跨了多个实体GPU,则将第一分析任务进行分解,将部分子任务通过实体GPU之间的互联接口分配到其他实体GPU中的目标ALU资源中。

示例性的,第一GPU服务器中的空闲ALU资源均放置在ALU公共资源池中,确定ALU公共资源池中来源同一个实体GPU的ALU资源数量是否达到目标ALU数量,若未达到,则确定空闲ALU资源最多的实体GPU为主GPU,从剩余空闲ALU资源最多的实体GPU中的确定从GPU,通过主、从GPU上的空闲ALU资源确定目标ALU资源,并将部分子任务通过主GPU发送至从GPU,并且主GPU接收从GPU反馈的子任务执行结果。

本实施例的技术方案,通过将GPU服务器中的计算资源进行物理层面的划分实现GPU虚拟化,保证每个视频流的分析任务可以得到实时处理,同时解决了GPU资源浪费的问题,提升GPU的资源利用率。

实施例二

图2为本发明实施例二提供的一种GPU虚拟机的管理方法的流程图,由与第一客户端关联的第一GPU服务器执行,本实施例在上述实施例的基础上进行进一步细化,涉及与第一GPU虚拟机关联的目标摄像机在接收到其他客户端发送的分析任务。如图2所示,该方法包括:

S210、获取视频管理服务器下发的目标摄像机的第一GPU虚拟机创建任务,并根据第一GPU虚拟机创建任务创建与目标摄像机关联的第一虚拟机。

S220、根据第一GPU虚拟机创建任务中包括的第一分析任务确定目标算术逻辑单元数量。

S230、根据目标算术逻辑单元数量从第一GPU服务器中确定与第一虚拟机关联的目标算术逻辑单元资源,并将第一分析任务下发至目标算术逻辑单元资源进行处理。

S240、获取视频管理服务器下发的第二客户端对目标摄像机的第二分析任务。

当视频管理服务器接收到其他客户端发送对同一个目标摄像机的第二分析任务后,由于对视频流的分析任务大多存在着共同的子任务,例如行人结构化分析任务和行人目标跟踪分析任务,两个任务均涉及到行人目标检测的分析子任务,因此为了避免部署多个虚拟机重复执行相同的分析任务,将不同客户端对目标摄像机的不同分析任务合并到同一个虚拟机上,以提高GPU计算资源的利用率。

S250、将第二分析任务下发至与第一虚拟机关联的目标算术逻辑单元资源进行处理,并将第二分析任务的第二分析结果发送至第二客户端。

具体的,当视频管理服务器收到对目标摄像机的第二客户端的第二分析任务后,并不为第二客户端重新分配新的虚拟机,而是将第二客户端的第二分析任务作为新任务合并到第一虚拟机中,由第一虚拟机所绑定的ALU资源统一执行,这样对目标视频流的共同分析任务不必分散在各地重复执行。此外,视频管理服务器向第一GPU服务器发送第二分析任务结果发送指令,已告知第一GPU服务器将第二分析任务的分析结果发送至第二客户端。当出现其他多个客户端对目标摄像机的多个分析任务时,则通知第一GPU服务器上的第一虚拟机分别将各自任务的分析结果发送至对应的客户端中。

示例性的,第一分析任务为行人计数任务,当视频管理服务器接收到第二客户端对目标摄像机的第二分析任务为行人结构化分析任务,还接收到第三客户端对目标摄像机的第三分析任务为行人跟踪分析任务,第一客户端、第二客户端和第三客户端所在区域并不相同,导致其关联的GPU服务器也不相同,第一客户端关联第一GPU服务器,第二客户端关联第二GPU服务器,第三客户端关联第三GPU服务器,由第一GPU服务器、第二GPU服务器和第三GPU服务器所组成的GPU集群属于分布式GPU集群,由视频管理服务器管理,若接收到第二客户端的第二分析任务,直接在第二GPU服务器上部署新的虚拟机后,会造成部分任务的重复执行,因此,将第二分析任务和第三分析任务发送至第一GPU服务器中,由第一GPU服务器上的第一虚拟机进行执行,视频管理服务器通知第一GPU服务器,将第二分析任务的行人目标结构化分析结果发送给第二客户端,将第三分析任务的行为目标跟踪的跟踪框位置信息发送给第三客户端,由第三客户端将目标跟踪框叠加到视频的对应位置,呈现出目标跟踪的效果。

可选的,由于其他分析任务是由与其他客户端所在不同位置的第一GPU服务器执行,因此为了保证其他任务分析结果的同步显示,例如目标跟踪框、结构化分析结果与视频中的行人目标保持同步,避免出现目标四个方向移动时,跟踪框和结构化结果信息无法很好的叠加在目标周围的情况,由其他客户端从第一GPU服务器中获取目标摄像机的目标视频流,而不是直接从目标摄像机处获取视频流。

具体的,视频管理服务器在收到第二客户端和第三客户端的其他分析任务后,将第一GPU服务器的IP地址和目标摄像机身份发送给第二客户端和第三客户端,第二客户端和第三客户端根据第一GPU服务器的IP地址向第一GPU服务器发送其他分析任务请求消息,其他分析任务请求消息内包括目标摄像机身份和具体的其他分析任务。第一GPU服务器收到请求后,分别向第二客户端转发目标摄像机的视频流并发送该视频流的行人结构化信息,向第三客户端转发目标摄像机的视频流并发送该视频流的行人目标跟踪框。

本实施例的技术方案,通过将对同一个摄像机的不同客户端的不同分析任务进行合并到同一个虚拟机上进行执行,避免了对同一视频流任务的重复执行,提高GPU计算资源的利用率,避免资源浪费。

实施例三

图3为本发明实施例三提供了一种GPU虚拟机的管理方法的流程图,本实施例可适用于在视频分析领域对GPU资源进行虚拟化管理的情况,由视频管理服务器执行,视频管理服务器对至少两个GPU服务器进行管理,该方法可以由GPU虚拟机的管理装置来执行,该GPU虚拟机的管理装置可以采用硬件和/或软件的形式实现,该GPU虚拟机的管理装置可配置于服务器等具有通信和计算能力的设备中。如图1所示,该方法包括:

S310、根据第一客户端发送的对目标摄像机的第一分析任务生成目标摄像机的第一GPU虚拟机创建任务,并将第一GPU虚拟机创建任务下发至与第一客户端关联的第一GPU服务器,以使第一GPU服务器根据第一GPU虚拟机创建任务创建与目标摄像机关联的第一虚拟机。

具体的,在视频管理服务器接收到第一客户端对目标摄像机的第一分析任务后,视频管理服务器确定与该第一客户端关联的第一GPU服务器,并向该第一GPU服务器发送第一GPU虚拟机创建任务,以使该第一GPU服务器在接收到该任务后在该服务器上创建一个对目标摄像机关联的第一虚拟机,为第一虚拟机设置唯一的虚拟机ID号。在第一GPU虚拟机创建任务中需要至少包括摄像机的唯一摄像机标识信息以及第一分析任务,以便于第一GPU服务器根据该摄像机的唯一摄像机标识信息获取目标摄像机的目标视频流,对第一分析任务进行处理,得到第一分析任务分析结果。

S320、在获取到第二客户端发送的对目标摄像机的第二分析任务后,将第二分析任务下发至第一GPU服务器的第一虚拟机中,由第一GPU服务器将第二分析任务的第二分析结果发送至第二客户端。

具体的,当视频管理服务器收到对目标摄像机的第二客户端的第二分析任务后,并不为第二客户端重新分配新的虚拟机,而是将第二客户端的第二分析任务作为新任务合并到第一虚拟机中,由第一虚拟机所绑定的ALU资源统一执行,这样对目标视频流的共同分析任务不必分散在各地重复执行。此外,视频管理服务器向第一GPU服务器发送第二分析任务结果发送指令,已告知第一GPU服务器将第二分析任务的分析结果发送至第二客户端。当出现其他多个客户端对目标摄像机的多个分析任务时,则通知第一GPU服务器上的第一虚拟机分别将各自任务的分析结果发送至对应的客户端中。

在一个可行的实施例中,在将第二分析任务下发至第一GPU服务器的第一虚拟机中之前,该方法还包括:

确定第二分析任务的实时性是否高于第一分析任务;

若是,则根据第二分析任务生成目标摄像机的第二GPU虚拟机创建任务,将第二GPU虚拟机创建任务下发至与第二客户端关联的第二GPU服务器,以使第二GPU服务器根据第二GPU虚拟机创建任务创建与目标摄像机关联的第二虚拟机;并将第一虚拟机上的第一分析任务迁移至第二虚拟机中,撤销第一虚拟机。

若客户端的分析任务由部署在其他区域的GPU服务器执行,则该客户端所接收的分析任务结果会存在一定时间的延时,为了避免发生实时性任务的延时问题,视频管理服务器在接收到多个客户端对同一个目标摄像机的分析任务时,将虚拟机部署在其中实时性最高的分析任务对应的客户端关联的GPU服务器中,将其他分析任务均发送到该GPU服务器中。例如视频管理服务器在接收到第二分析任务后,确定第二分析任务是否是实时性要求更高的任务,若是,则为了保证第二分析任务执行的实时性,需要目标摄像机绑定的虚拟机部署在第二客户端关联的第二GPU服务器上;若不是,则还是将第二分析任务下发至第一GPU服务器的第一虚拟机中,由第一GPU服务器将第二分析任务的第二分析结果发送至第二客户端。

具体的,视频管理服务器在接收到第二客户端发送的第二分析任务后,根据预先确定的实时性参数确定第二分析任务的实时性是否高于第一分析任务,若高于,则生成第二GPU虚拟机创建任务,以在第二客户端关联的GPU服务器上创建与目标摄像机绑定的第二虚拟机,第二虚拟机的ALU资源与第一虚拟机相同;同时,将第一虚拟机上的第一分析任务迁移至新的第二虚拟机上,并撤销第一虚拟机。并且,视频管理服务器通知目标摄像机将视频流的目的IP修改为第二虚拟所在的第二GPU服务器;并通知第二GPU服务器向原有的客户端转发视频流和对应所需的任务分析结果。

示例性的,在上述示例的基础上,第三客户端关注行人目标跟踪分析任务,该任务的实时性要求比第二客户端的结构化分析和第一客户端的行人计数任务都要高。因此当视频管理服务器收到来自第三客户端的行人目标跟踪分析任务时,在第三客户端所在区域的第三GPU服务器上创建第二虚拟机,所需ALU资源参照第一GPU服务器的第一虚拟机,并将三个分析任务迁移至第三GPU服务器的第二虚拟机上,同时撤销第一GPU服务器上的第一虚拟机。并且,视频管理服务器通知目标摄像机,将视频流的目的IP修改为第三GPU服务器;并通知第三GPU服务器向第一客户端转发目标摄像机的视频流并周期性发送行人计数的结果,向第二客户端转发目标摄像机的视频流并周期性发送行人结构化分析结果。

本实施例通过虚拟机在不同GPU服务器之间的迁移,提高实时性任务的处理效率。

在一个可行的实施例中,在将第二分析任务下发至第一GPU服务器的第一虚拟机中之前,该方法还包括:

确定第二分析任务与第一分析任务是否存在共同子任务;

若存在,则根据第二单独子任务生成第一虚拟机的分支虚拟机创建任务和共同子任务结果发送指令,将分支虚拟机创建任务下发至与第二客户端关联的第二GPU服务器,以使第二GPU服务器根据分支虚拟机创建任务创建与第一虚拟机关联的第一分支虚拟机,并将共同子任务结果发送指令下发至第一虚拟机,以使第一虚拟机将共同子任务的分析结果发送至第二GPU服务器中的第一分支虚拟机中;其中,第二单独子任务为第二分析任务中除共同子任务外的其他子任务。

虽然对同一视频流的分析任务会存在共同子任务,但是必然会存在各自单独的子任务,若对同一视频流的所有客户端的所有分析任务均集中到同一个GPU服务器中,会给这个GPU服务器带来计算压力,同时也会导致其他GPU服务器资源的浪费。因此,视频管理服务器在接收到其他客户端对目标摄像机的其他分析任务后,将与在第一虚拟机上执行的第一分析任务不同的单独任务在与其他客户端关联的GPU服务器上进行执行,以实现不同GPU服务器的计算资源的充分利用。

具体的,当视频管理服务器接收到第二客户端的第二分析任务后,确定第二分析任务与当前正在执行的第一分析任务是否存在共同子任务,若不存在,则直接根据第二分析任务在与第二客户端关联的第二GPU服务器上创建第二虚拟机,该第二虚拟机的任务执行与第一虚拟机互不干扰;若存在共同任务,则该共同任务仍由第一GPU服务器上的第一虚拟机执行,并在与第二客户端关联的第二GPU服务器上创建与第一虚拟机关联的第一分支虚拟机,第一分支虚拟机和第一虚拟机的身份信息相同,由第一分支虚拟机执行第二分析任务的第二单独子任务,并通知第一虚拟机,在共同子任务执行完成后,将执行结果发送至第一分支虚拟机,第一分支虚拟机需要基于这一结果进一步进行后续的分析任务执行。同时,视频管理服务器需要告知与目标摄像机关联的所有虚拟机其他虚拟机的位置信息以及各自执行的任务信息。

示例性的,在上述示例的基础上,当视频管理服务器收到来自目标摄像机的第二客户端和第三客户端的分析任务时,由于三个客户端的分析任务都均需要行人目标检测子任务,将行人目标检测子任务确定为共同子任务,于是,视频管理服务器在第二GPU服务器和第三GPU服务器上分别创建与第一虚拟机关联的分支虚拟机,同时告知3个GPU服务器,第一虚拟机在另外另个GPU服务器上同时存在分支,并且各自有任务分工,即,第一GPU服务器的第一虚拟机负责行人目标检测和行人人数计数,第二GPU服务器的分支虚拟机负责行人目标结构化分析,第三GPU服务器的分支虚拟机负责行人目标跟踪。其中,第一GPU服务器的第一虚拟机将行人目标检测这一共同子任务的分析结果实时地发送给第二GPU服务器的分支虚拟机和第三GPU服务器的分支虚拟机,后两者需要基于这一结果进一步进行行人目标结构化分析和行人目标跟踪。

可选的,在确定第二分析任务与第一分析任务存在共同子任务后,根据第二单独子任务生成第一虚拟机的分支虚拟机创建任务,将分支虚拟机创建任务下发至与第二客户端关联的第二GPU服务器,以使第二GPU服务器根据分支虚拟机创建任务创建与第一虚拟机关联的第一分支虚拟机,并确定第二分析任务的实时性是否高于第一分析任务,若是,则将第一虚拟机上的共同子任务迁移到第二GPU服务器的第一分支虚拟机进行执行,同时生成共同子任务结果发送指令,并将共同子任务结果发送指令下发至第一分支虚拟机,以使第一分支虚拟机将共同子任务的分析结果发送至第一GPU服务器中的第一虚拟机中,同时撤销第一虚拟机上的共同子任务的执行。

视频管理服务器对虚拟机的资源调度保持透明无感知,以满足实时视频码流不断变化的分析工作负载需求,在保证任务执行效率的同时提高GPU资源利用率。

可选的,当第一客户端向视频管理服务器发送第一分析任务取消请求信息,视频管理服务器向第一GPU服务器所在的第一虚拟机发送第一分析任务取消命令,若第一虚拟机上不存在其他客户端的分析任务以及不存在关联的分支虚拟机,则取消第一虚拟机上的所有分析任务,同时释放第一虚拟机关联的多余的目标ALU资源,仅保留预设数量个初始ALU资源,使得当第一虚拟机次接收到分析任务后,无需等待ALU资源的分配就可以启动分析任务,降低响应延时。若第一虚拟机上存在其他客户端的分析任务或存在关联的分支虚拟机,则仅取消第一虚拟机上的第一分析任务,保留目标ALU资源供其他分析任务进行处理。若第一虚拟机上的第一分析任务取消后,必然会导致ALU资源消耗量下降,则在下一个检测周期根据任务取消后的ALU资源消耗量调整第一虚拟机的目标ALU资源的数量。

示例性的,在上述示例的基础上,当第一客户端向视频管理服务器发送请求消息,要求停止第一分析任务时,视频管理服务器收到请求,但并不撤销第一虚拟机,而是取消第一客户端的第一分析任务,保留第二客户端和第三客户端的分析任务。如果第二客户端和第三客户端也要求停止关于目标摄像机的分析任务,则视频管理服务器取消第一虚拟机的分析任务。第一GPU服务器在第一虚拟机的下一个工作负载感知周期确定其ALU资源消耗低于下限,第一GPU服务器将多余的ALU资源从第一虚拟机中回收进ALU公共资源池,给第一虚拟机保留初始ALU资源。

本实施例的技术方案,通过视频管理服务器和不同客户端关联的GPU服务器对目标摄像机关联的虚拟机进行分布式创建、管理、迁移和协同,提升GPU计算资源的利用率。

实施例四

图4为本发明实施例四提供的一种GPU虚拟机的管理系统的结构示意图。如图4所示,该装置包括:

视频管理服务器410,用于根据第一客户端发送的对目标摄像机的第一分析任务生成所述目标摄像机的第一GPU虚拟机创建任务,并将所述第一GPU虚拟机创建任务下发至与所述第一客户端关联的第一GPU服务器;

第一GPU服务器420,与所述视频管理服务器通信连接,用于获取视频管理服务器下发的目标摄像机的第一GPU虚拟机创建任务,并根据所述第一GPU虚拟机创建任务创建与所述目标摄像机关联的第一虚拟机;根据所述第一GPU虚拟机创建任务中包括的所述第一分析任务确定目标算术逻辑单元数量;根据所述目标算术逻辑单元数量从所述第一GPU服务器中确定与所述第一虚拟机关联的目标算术逻辑单元资源,并将所述第一分析任务下发至所述目标算术逻辑单元资源进行处理。

可选的,视频管理服务器,还用于在获取到第二客户端发送的对所述目标摄像机的第二分析任务后,确定所述第二分析任务的实时性是否高于所述第一分析任务;若是,则根据第二分析任务生成目标摄像机的第二GPU虚拟机创建任务,将所述第二GPU虚拟机创建任务下发至与所述第二客户端关联的第二GPU服务器;并将所述第一虚拟机上的第一分析任务迁移至所述第二虚拟机中,撤销所述第一虚拟机;

相应的,所述系统还包括:

第二GPU服务器,与所述视频管理服务器通信连接,用于根据所述第二GPU虚拟机创建任务创建与所述目标摄像机关联的第二虚拟机,根据所述第一虚拟机中的目标算术逻辑单元数量从所述第二GPU服务器中确定与所述第二虚拟机关联的第二目标算术逻辑单元资源,并将所述第二分析任务和从所述第一虚拟机迁移来的第一分析任务下发至所述第二目标算术逻辑单元资源进行处理。

可选的,视频管理服务器,还用于在获取到第二客户端发送的对所述目标摄像机的第二分析任务后,确定所述第二分析任务与所述第一分析任务是否存在共同子任务;若存在,则根据第二单独子任务生成所述第一虚拟机的分支虚拟机创建任务和共同子任务结果发送指令,将所述分支虚拟机创建任务下发至与所述第二客户端关联的第二GPU服务器,并将所述共同子任务结果发送指令下发至所述第一虚拟机;其中,所述第二单独子任务为所述第二分析任务中除所述共同子任务外的其他子任务;

第二GPU服务器,还用于根据所述分支虚拟机创建任务创建与所述第一虚拟机关联的第一分支虚拟机,执行所述第二单独子任务;

第一GPU服务器,还用于将所述共同子任务的分析结果发送至所述第二GPU服务器中的第一分支虚拟机中。

可选的,所述第一GPU服务器中包括至少两个实体GPU;

相应的,所述第一GPU服务器还用于:

确定所述第一GPU服务器中与同一个实体GPU关联的空闲算术逻辑单元资源的数量是否大于或等于所述目标算术逻辑单元数量;

若是,则从与同一个实体GPU关联的所述空闲算术逻辑单元资源中确定目标算术逻辑单元资源;

否则,从与至少两个实体GPU关联的所述空闲算术逻辑单元资源中确定目标算术逻辑单元资源。

可选的,所述第一GPU服务器还用于:

在根据所述目标算术逻辑单元数量从所述第一GPU服务器中确定与所述第一虚拟机关联的目标算术逻辑单元资源之后,按照预设周期确定所述第一虚拟机的算术逻辑单元资源消耗量;

根据所述算术逻辑单元资源消耗量的变化控制所述目标算术逻辑单元资源的目标算术逻辑单元数量。

可选的,视频管理服务器,还用于在获取到第二客户端发送的对所述目标摄像机的第二分析任务后,将所述第二分析任务下发至所述第一GPU服务器的所述第一虚拟机中,由所述第一GPU服务器将所述第二分析任务的第二分析结果发送至所述第二客户端。

可选的,所述第一GPU服务器还用于:

在根据所述第一GPU虚拟机创建任务创建与所述目标摄像机关联的第一虚拟机之后,获取所述视频管理服务器下发的第二客户端对所述目标摄像机的第二分析任务;

将所述第二分析任务下发至与所述第一虚拟机关联的目标算术逻辑单元资源进行处理,并将所述第二分析任务的第二分析结果发送至所述第二客户端。

本发明实施例所提供的GPU虚拟机的管理系统可执行本发明任意实施例所提供的GPU虚拟机的管理方法,具备执行方法相应的功能模块和有益效果。

本申请技术方案中对数据的获取、存储、使用、处理等均符合国家法律法规的相关规定,且不违背公序良俗。

实施例五

根据本公开的实施例,本公开还提供了一种电子设备、一种可读存储介质和一种计算机程序产品。

图5示出了可以用来实施本发明的实施例的电子设备10的结构示意图。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备(如头盔、眼镜、手表等)和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本发明的实现。

如图5所示,电子设备10包括至少一个处理器11,以及与至少一个处理器11通信连接的存储器,如只读存储器(ROM)12、随机访问存储器(RAM)13等,其中,存储器存储有可被至少一个处理器执行的计算机程序,处理器11可以根据存储在只读存储器(ROM)12中的计算机程序或者从存储单元18加载到随机访问存储器(RAM)13中的计算机程序,来执行各种适当的动作和处理。在RAM 13中,还可存储电子设备10操作所需的各种程序和数据。处理器11、ROM 12以及RAM 13通过总线14彼此相连。输入/输出(I/O)接口15也连接至总线14。

电子设备10中的多个部件连接至I/O接口15,包括:输入单元16,例如键盘、鼠标等;输出单元17,例如各种类型的显示器、扬声器等;存储单元18,例如磁盘、光盘等;以及通信单元19,例如网卡、调制解调器、无线通信收发机等。通信单元19允许电子设备10通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。

处理器11可以是各种具有处理和计算能力的通用和/或专用处理组件。处理器11的一些示例包括但不限于中央处理单元(CPU)、图形处理单元(GPU)、各种专用的人工智能(AI)计算芯片、各种运行机器学习模型算法的处理器、数字信号处理器(DSP)、以及任何适当的处理器、控制器、微控制器等。处理器11执行上文所描述的各个方法和处理,例如方法GPU虚拟机的管理。

在一些实施例中,方法GPU虚拟机的管理可被实现为计算机程序,其被有形地包含于计算机可读存储介质,例如存储单元18。在一些实施例中,计算机程序的部分或者全部可以经由ROM 12和/或通信单元19而被载入和/或安装到电子设备10上。当计算机程序加载到RAM 13并由处理器11执行时,可以执行上文描述的方法GPU虚拟机的管理的一个或多个步骤。备选地,在其他实施例中,处理器11可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行方法GPU虚拟机的管理。

本文中以上描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、现场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、芯片上系统的系统(SOC)、复杂可编程逻辑设备(CPLD)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。

用于实施本发明的方法的计算机程序可以采用一个或多个编程语言的任何组合来编写。这些计算机程序可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器,使得计算机程序当由处理器执行时使流程图和/或框图中所规定的功能/操作被实施。计算机程序可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。

在本发明的上下文中,计算机可读存储介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的计算机程序。计算机可读存储介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。备选地,计算机可读存储介质可以是机器可读信号介质。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、光纤、便捷式紧凑盘只读存储器(CD-ROM)、光学储存设备、磁储存设备、或上述内容的任何合适组合。

为了提供与用户的交互,可以在电子设备上实施此处描述的系统和技术,该电子设备具有:用于向用户显示信息的显示装置(例如,CRT(阴极射线管)或者LCD(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给电子设备。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。

可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(LAN)、广域网(WAN)、区块链网络和互联网。

计算系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。服务器可以是云服务器,又称为云计算服务器或云主机,是云计算服务体系中的一项主机产品,以解决了传统物理主机与VPS服务中,存在的管理难度大,业务扩展性弱的缺陷。

应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本发明中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本发明的技术方案所期望的结果,本文在此不进行限制。

上述具体实施方式,并不构成对本发明保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本发明的精神和原则之内所作的修改、等同替换和改进等,均应包含在本发明保护范围之内。

相关技术
  • 虚拟机应用程序管理方法、装置、设备及可读存储介质
  • 虚拟机操作系统安装方法、装置、设备及可读存储介质
  • 一种文件管理方法、系统及区块链节点设备和存储介质
  • 基于生物识别的访客管理方法、系统、计算机设备及存储介质
  • 版权文件管理方法、系统、设备及存储介质
  • 分布式环境中多GPU服务器的GPU卡管理方法、系统及存储介质
  • 一种GPU算力管理方法、介质、设备及系统
技术分类

06120115919721