CN116225643A - 基于共享资源的任务调度方法及装置、电子设备 - Google Patents
基于共享资源的任务调度方法及装置、电子设备 Download PDFInfo
- Publication number
- CN116225643A CN116225643A CN202211676723.4A CN202211676723A CN116225643A CN 116225643 A CN116225643 A CN 116225643A CN 202211676723 A CN202211676723 A CN 202211676723A CN 116225643 A CN116225643 A CN 116225643A
- Authority
- CN
- China
- Prior art keywords
- task
- resource
- video memory
- resource consumption
- value
- 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
Links
Images
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/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
-
- 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
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
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)
- Stored Programmes (AREA)
Abstract
本发明公开了一种基于共享资源的任务调度方法及装置、电子设备,涉及云计算领域,其中,该任务调度方法包括:接收视图解析任务,其中,视图解析任务中携带有:任务类型、任务权重以及至少一帧图片;基于任务权重和图片数量,计算视图解析任务所需的资源消耗值;查询每块显存资源的已知资源消耗值,并累加已知资源消耗值和视图解析任务所需的资源消耗值,得到显存资源的资源消耗评估值;基于资源消耗评估值,将视图解析任务分配至目标显存资源中。本发明解决了相关技术中对于GPU资源分配是让每个算法进程占用一块资源,容易造成资源闲置,导致算力成本的浪费的技术问题。
Description
技术领域
本发明涉及云计算技术领域,具体而言,涉及一种基于共享资源的任务调度方法及装置、电子设备。
背景技术
相关技术中,业内AI(人工智能)服务云较普遍采用的是独享GPU(图像处理器)卡的方案,例如,第一种,同一时刻在单张GPU卡上只加载1个AI算法的进程或服务;第二种,通过正统GPU虚拟化的方案和技术,将单卡GPU的算力资源切割成多个更小的固定GPU资源的算力单元,每个单元再去加载1个算法进程或服务。
但是这两种方式都存在弊端,无法极致地利用好GPU的算力资源。这是因为不管采用哪种模式,在每个AI算法加载的同时其进程或服务所绑定的GPU资源就已经以相互隔离的方式被固定住了,当每个GPU算力单元中所加载AI算法的业务量不大时,该单元中剩余的GPU算力资源将被闲置(无法被其他单元中的AI算法所使用),从而造成算力成本的浪费。
第三种,单张GPU卡上同时加载多个AI算法,随着GPU虚拟化技术的逐步成熟,不同公司推出了不同的云服务器,对AI服务云在GPU卡直通虚拟化和以独享GPU卡方式加载AI算法等云计算运营模式上的极大补充,进一步提升了GPU卡的利用率,也让整套云平台上有限的GPU卡资源能够同时加载更多的AI算法。例如,在申请号为CN202210627516.3的专利文本中,提供了一种Kubernetes容器共享GPU方法及系统,通过在Kubernetes中原有调度系统基础上增加GPU扩展调度参数,形成GPU扩展调度器,由GPU共享设备插件组件实现在Kubernetes上pod在使用GPU设备时显存级别的调度和绑定。
但是上述第三种GPU资源使用方式也存在很大的弊端:其共享GPU资源的解决方案基本上只能调度到pod也就是Kubernetes概念中的算法进程(算法容器)这一层面,且针对每个算法进程也必须分配固定显存的GPU资源,算法调度精细度较低,且GPU资源消耗量存在即将溢出趋势时无法调整GPU设备中算法进程。
针对上述的问题,目前尚未提出有效的解决方案。
发明内容
本发明实施例提供了一种基于共享资源的任务调度方法及装置、电子设备,以至少解决相关技术中对于GPU资源分配是让每个算法进程占用一块资源,容易造成资源闲置,导致算力成本的浪费的技术问题。
根据本发明实施例的一个方面,提供了一种基于共享资源的任务调度方法,应用于容器集群管理系统,所述容器集群管理系统包含多个容器节点,每个所述容器节点负责管理至少一块显存资源,所述显存资源共享加载不同算法进程的解析任务,任务调度方法包括:接收视图解析任务,其中,所述视图解析任务中携带有:任务类型、任务权重以及至少一帧图片;基于所述任务权重和图片数量,计算所述视图解析任务所需的资源消耗值;查询每块所述显存资源的已知资源消耗值,并累加所述已知资源消耗值和所述视图解析任务所需的资源消耗值,得到所述显存资源的资源消耗评估值;基于所述资源消耗评估值,将所述视图解析任务分配至目标显存资源中。
可选地,在累加所述已知资源消耗值和所述视图解析任务所需的资源消耗值,得到资源消耗评估值之后,基于共享资源的任务调度方法还包括:判断所述显存资源的资源消耗评估值是否超出第一级预警监控阈值;在所述显存资源的资源消耗评估值超出第一级预警监控阈值的情况下,将所述显存资源作为所述目标显存资源,并为所述目标显存资源设置任务关闭锁,其中,所述任务关闭锁用于阻止添加新的视图解析任务至所述目标显存资源中;在有新的视图解析任务到达所述目标显存资源的情况下,采用预设分流机制将所述新的视图解析任务转移至第一类其他显存资源中,其中,所述第一类其他显存资源中的空闲资源值大于所述新的视图解析任务所需的资源消耗值;在所述显存资源的资源消耗评估值未超出第一级预警监控阈值的情况下,将所述显存资源作为所述目标显存资源,并控制所述目标显存资源正常开启。
可选地,基于共享资源的任务调度方法还包括:判断所述显存资源的已知资源消耗值是否超出第二级预警监控阈值,其中,所述第二级预警监控阈值大于第一级预警监控阈值;在所述显存资源的已知资源消耗值超出第二级预警监控阈值的情况下,为所述显存资源设置任务关闭锁,其中,所述任务关闭锁用于阻止添加所述视图解析任务至所述显存资源中;采用预设调度机制将所述显存资源内已分配的部分视图解析任务转移至第二类其他显存资源中,其中,所述第二类其他显存资源中的空闲资源值大于所述已分配的部分视图解析任务所需的资源消耗值。
可选地,采用预设调度机制将所述显存资源内已分配的部分视图解析任务转移至第二类其他显存资源中的步骤,包括:获取所述显存资源内已分配的所述视图解析任务的任务调度分;对所有所述任务调度分进行排序,得到排序结果;提取所述排序结果中分数大于预设分数阈值的所述任务调度分所对应的所述视图解析任务,得到提取结果;将所述提取结果中任务权重低于预设权重阈值的所述视图解析任务作为所述已分配的部分视图解析任务;将所述已分配的部分视图解析任务转移至第二类其他显存资源中。
可选地,获取所述显存资源内已分配的所述视图解析任务的任务调度分的步骤,包括:获取所述显存资源内每个所述视图解析任务的任务权重以及任务推送数据量,其中,所述任务推送数据量用于表征所述视图解析任务中待解析的图片数量;确定与所述任务权重对应的第一调度分以及与所述任务推送数据量对应的第二调度分;累加所述第一调度分和所述第二调度分,确定已分配的所述视图解析任务的任务调度分。
可选地,在查询每块所述显存资源的已知资源消耗值之前,还包括:获取所述显存资源内已分配的所述视图解析任务的任务类型;在所述任务类型为视频解析任务的情况下,计算所述显存资源内关联所述视频解析任务的第一资源消耗值;在所述任务类型为图片解析任务的情况下,计算所述显存资源内关联所述图片解析任务的第二资源消耗值;累加每块所述显存资源内关联所述视频解析任务的第一资源消耗值和关联所述图片解析任务的第二资源消耗值,得到所述显存资源的已知资源消耗值。
可选地,计算所述显存资源内关联所述视频解析任务的第一资源消耗值的步骤,包括:在所述任务类型为视频解析任务的情况下,测量每个所述视频解析任务的资源消耗初始值;获取所述显存资源内同时加载的视频解析任务的总数量;基于所述同时加载的视频解析任务的总数量以及每个所述视频解析任务的资源消耗初始值,计算所述显存资源内关联所述视频解析任务的第一资源消耗值。
可选地,计算所述显存资源内关联所述图片解析任务的第二资源消耗值的步骤,包括:在所述任务类型为图片解析任务的情况下,获取所述图片解析任务的任务标识和并发接收的接口请求数;基于所述任务标识和所述并发接收的接口请求数,测量每个所述图片解析任务的资源消耗初始值;累加每帧图片对应的所述图片解析任务的资源消耗初始值,得到所述显存资源内关联所述图片解析任务的第二资源消耗值。
可选地,基于共享资源的任务调度方法还包括:统计每块显存资源在当天的平均资源利用率;计算所述当天的平均资源利用率与前一天的平均资源利用率之间的当前利用率差值;获取历史预设天数的显存资源的平均利用率,并基于所述历史预设天数的显存资源的平均利用率计算历史利用率差值;在所述历史利用率差值为正值且所述显存资源的当前利用率差值大于所述历史利用率差值的情况下,延长对所述显存资源的采样时长,其中,所述采样时长用于对每块所述显存资源在指定时间段内的资源消耗值进行采集;在所述历史利用率差值为负值且所述显存资源的当前利用率差值小于等于所述历史利用率差值的情况下,缩短对所述显存资源的采样时长。
根据本发明实施例的另一方面,还提供了一种基于共享资源的任务调度装置,应用于容器集群管理系统,所述容器集群管理系统包含多个容器节点,每个所述容器节点负责管理至少一块显存资源,所述显存资源共享加载不同算法进程的解析任务,任务调度装置包括:接收单元,用于接收视图解析任务,其中,所述视图解析任务中携带有:任务类型、任务权重以及至少一帧图片;计算单元,用于基于所述任务权重和图片数量,计算所述视图解析任务所需的资源消耗值;查询单元,用于查询每块所述显存资源的已知资源消耗值,并累加所述已知资源消耗值和所述视图解析任务所需的资源消耗值,得到所述显存资源的资源消耗评估值;分配单元,用于基于所述资源消耗评估值,将所述视图解析任务分配至目标显存资源中。
可选地,基于共享资源的任务调度装置还包括:第一判断单元,用于在累加所述已知资源消耗值和所述视图解析任务所需的资源消耗值,得到资源消耗评估值之后,判断所述显存资源的资源消耗评估值是否超出第一级预警监控阈值;第一确定单元,用于在所述显存资源的资源消耗评估值超出第一级预警监控阈值的情况下,将所述显存资源作为所述目标显存资源,并为所述目标显存资源设置任务关闭锁,其中,所述任务关闭锁用于阻止添加新的视图解析任务至所述目标显存资源中;在有新的视图解析任务到达所述目标显存资源的情况下,采用预设分流机制将所述新的视图解析任务转移至第一类其他显存资源中,其中,所述第一类其他显存资源中的空闲资源值大于所述新的视图解析任务所需的资源消耗值;第二确定单元,用于在所述显存资源的资源消耗评估值未超出第一级预警监控阈值的情况下,将所述显存资源作为所述目标显存资源,并控制所述目标显存资源正常开启。
可选地,基于共享资源的任务调度装置还包括:第二判断单元,用于判断所述显存资源的已知资源消耗值是否超出第二级预警监控阈值,其中,所述第二级预警监控阈值大于第一级预警监控阈值;第一设置单元,用于在所述显存资源的已知资源消耗值超出第二级预警监控阈值的情况下,为所述显存资源设置任务关闭锁,其中,所述任务关闭锁用于阻止添加所述视图解析任务至所述显存资源中;第一转移单元,用于采用预设调度机制将所述显存资源内已分配的部分视图解析任务转移至第二类其他显存资源中,其中,所述第二类其他显存资源中的空闲资源值大于所述已分配的部分视图解析任务所需的资源消耗值。
可选地,第一转移单元包括:第一获取模块,用于获取所述显存资源内已分配的所述视图解析任务的任务调度分;第一排序模块,用于对所有所述任务调度分进行排序,得到排序结果;第一提取模块,用于提取所述排序结果中分数大于预设分数阈值的所述任务调度分所对应的所述视图解析任务,得到提取结果;第一确定模块,用于将所述提取结果中任务权重低于预设权重阈值的所述视图解析任务作为所述已分配的部分视图解析任务;第一转移模块,用于将所述已分配的部分视图解析任务转移至第二类其他显存资源中。
可选地,第一获取模块包括:第一获取子模块,用于获取所述显存资源内每个所述视图解析任务的任务权重以及任务推送数据量,其中,所述任务推送数据量用于表征所述视图解析任务中待解析的图片数量;第一确定子模块,用于确定与所述任务权重对应的第一调度分以及与所述任务推送数据量对应的第二调度分;第一累加子模块,用于累加所述第一调度分和所述第二调度分,确定已分配的所述视图解析任务的任务调度分。
可选地,基于共享资源的任务调度装置还包括:第二获取单元,用于在查询每块所述显存资源的已知资源消耗值之前,获取所述显存资源内已分配的所述视图解析任务的任务类型;第一计算模块,用于在所述任务类型为视频解析任务的情况下,计算所述显存资源内关联所述视频解析任务的第一资源消耗值;第二计算模块,用于在所述任务类型为图片解析任务的情况下,计算所述显存资源内关联所述图片解析任务的第二资源消耗值;第一累加模块,用于累加每块所述显存资源内关联所述视频解析任务的第一资源消耗值和关联所述图片解析任务的第二资源消耗值,得到所述显存资源的已知资源消耗值。
可选地,第一计算模块包括:第一测量子模块,用于在所述任务类型为视频解析任务的情况下,测量每个所述视频解析任务的资源消耗初始值;第二获取子模块,用于获取所述显存资源内同时加载的视频解析任务的总数量;第三计算模块,用于基于所述同时加载的视频解析任务的总数量以及每个所述视频解析任务的资源消耗初始值,计算所述显存资源内关联所述视频解析任务的第一资源消耗值。
可选地,第二计算模块包括:第三获取子模块,用于在所述任务类型为图片解析任务的情况下,获取所述图片解析任务的任务标识和并发接收的接口请求数;第二测量子模块,用于基于所述任务标识和所述并发接收的接口请求数,测量每个所述图片解析任务的资源消耗初始值;第二累加子模块,用于累加每帧图片对应的所述图片解析任务的资源消耗初始值,得到所述显存资源内关联所述图片解析任务的第二资源消耗值。
可选地,基于共享资源的任务调度装置还包括:统计单元,用于统计每块显存资源在当天的平均资源利用率;第四计算模块,用于计算所述当天的平均资源利用率与前一天的平均资源利用率之间的当前利用率差值;第二获取模块,用于获取历史预设天数的显存资源的平均利用率,并基于所述历史预设天数的显存资源的平均利用率计算历史利用率差值;延长模块,用于在所述历史利用率差值为正值且所述显存资源的当前利用率差值大于所述历史利用率差值的情况下,延长对所述显存资源的采样时长,其中,所述采样时长用于对每块所述显存资源在指定时间段内的资源消耗值进行采集;缩短模块,用于在所述历史利用率差值为负值且所述显存资源的当前利用率差值小于等于所述历史利用率差值的情况下,缩短对所述显存资源的采样时长。
根据本发明实施例的另一方面,还提供了一种电子设备,包括:处理器;以及存储器,用于存储所述处理器的可执行指令;其中,所述处理器配置为经由执行所述可执行指令来执行上述任意一项所述的基于共享资源的任务调度方法。
根据本发明实施例的另一方面,还提供了一种计算机可读存储介质,所述计算机可读存储介质包括存储的计算机程序,其中,在所述计算机程序运行时控制所述计算机可读存储介质所在设备执行上述任意一项所述的基于共享资源的任务调度方法。
本公开中,在接收到视图解析任务后,基于任务权重和图片数量,计算视图解析任务所需的资源消耗值,查询每块显存资源的已知资源消耗值,并累加已知资源消耗值和视图解析任务所需的资源消耗值,得到显存资源的资源消耗评估值,基于资源消耗评估值,将视图解析任务分配至目标显存资源中。
在本公开中,不限定每个算法进程可使用显存资源GPU的资源配额,让每个算法进程之间都完全共享整块显存资源的算力资源,这样能够调度到单块显存资源每个算法进程内加载的算法任务,使得算法调度时达到更为精细的颗粒度,同时能够让显存资源的算力资源得到更灵活、更充分的利用,从而解决相关技术中对于GPU资源分配是让每个算法进程占用一块资源,容易造成资源闲置,导致算力成本的浪费的技术问题。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1是根据本发明实施例的一种可选的基于共享资源的任务调度方法的流程图;
图2是根据本发明实施例的一种可选的进行GPU资源共享调度的示意图;
图3是根据本发明实施例的一种可选的基于共享资源的任务调度装置的示意图;
图4是根据本发明实施例的一种基于共享资源的任务调度方法的电子设备(或移动设备)的硬件结构框图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
为便于本领域技术人员理解本发明,下面对本发明各实施例中涉及的部分术语或者名词做出解释:
GPU,Graphics Processing Unit,图形处理器,也可以称为显存资源,一般包括核心算力(如运行图像AI算法)和显示存储。
AI,Artificial Intelligence,人工智能,通过计算机程序呈现人类智能的产品,尤其是对于拍摄的大量视频帧和图像进行分析处理。
QPS,Query Per Second,为每秒查询率,确定服务器每秒能够响应的查询次数。
需要说明的是,本公开中的基于共享资源的任务调度方法及装置可用于云计算领域在对相机实时拍摄到的视频/图像进行分析的情况下,尤其是应用在视觉类AI算法云服务的领域,也可用于除云计算领域之外的任意领域在对相机实时拍摄到的视频/图像进行分析的情况下,本公开中基于共享资源的任务调度方法及装置的应用领域不做限定。
需要说明的是,本公开所涉及的相关信息(包括但不限于用户设备信息、用户个人信息等)和数据(包括但不限于用于展示的数据、分析的数据等),均为经用户授权或者经过各方充分授权的信息和数据。例如,本系统和相关用户或机构间设置有接口,在获取相关信息之前,需要通过接口向前述的用户或机构发送获取请求,并在接收到前述的用户或机构反馈的同意信息后,获取相关信息。
本公开可以应用于各种AI服务云或者视频分析/图像处理/AI算法的系统/装置/产品中(例如,各种移动终端(例如,手机、平板、IPAD等)、PC端、通信APP中),通过对相机实时拍摄传输过来的视频帧或者图像集合进行分析。在分析过程中,能够基于任务权重和图片数量,计算视图解析任务所需的资源消耗值,并基于资源消耗评估值,将视图解析任务分配至目标显存资源中,本实施例对于每个算法进程/视图解析任务不限定可使用显存资源GPU的资源配额,让每个算法进程/视图解析任务之间都完全共享整块显存资源的算力资源,使得算法调度时达到更为精细的颗粒度。
本公开中的算法调度机制可以调度到单个GPU设备(也就是单块显存资源GPU卡)上每个AI算法进程(算法容器)内加载的算法任务这个级别,算法调度时更精细的颗粒度可以让GPU卡的算力资源得到更灵活更充分的利用。
本公开中的任务调度机制能够做到不限定每个AI算法进程可使用GPU的资源配额,直接让它们都完全共享整张GPU卡的算力资源,这样相对于GPU虚拟化这种多算法共享GPU的方案来说,同一张GPU卡上加载的多个算法进程就不会被限定资源配额的算力单元给相互地隔离开来了,自然也就不存在算力单元A中剩余的GPU资源无法被算力单元B中的AI算法所使用的问题了,很显然这样的任务调度机制将让原先采用独享GPU卡和GPU虚拟化方案加载AI算法时被闲置下来的GPU资源得到进一步的减少。
本公开中的资源保护机制还能通过两级阈值监控调度的手段确保单个GPU设备(也就是单块显存资源GPU卡)的资源消耗不会溢出,并让所有涉及的算法进程和性能也都保持正常。
下面结合各个实施例对本发明进行详细说明。
实施例一
根据本发明实施例,提供了一种基于共享资源的任务调度方法实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
本发明实施例提供了一种基于共享资源的任务调度方法,应用于容器集群管理系统,容器集群管理系统包含多个容器节点(本实施例可以称为pod),每个容器节点负责管理至少一块显存资源,显存资源共享加载不同算法进程的解析任务。
其中,本实施例对容器集群管理系统中包含的容器节点的数量并未做具体限定,例如,可以包含N个,N可以是大于等于1的正整数,例如,20个。而每个容器节点中的显存资源GPU的数量也未做限定,例如,1块、2块个或三块。不同的容器节点所能够加载的算法进程的数量也不做限定,例如,某一块显存资源能够加载10个算法进程,每个算法进程对应一个视图解析任务。
本实施例中,在单块显存资源GPU卡上共享加载多个不同算法进程(算法容器)的分析业务,且不限定每个算法进程可使用GPU的资源配额,并通过对纯共享GPU卡配套的GPU资源(包括核心算力和显存)消耗情况进行实时全面的评估监控,让GPU卡算力资源的利用率达到极致,同时借助合理智能的监控策略及调度机制,确保GPU卡的资源消耗不会溢出,所有涉及在用的算法进程和性能也都保持正常。
同时,本实施例对于每块显存资源所加载的算法进程中的视图解析任务的任务类型也不做限定,每块显存资源所能够加载的任务的任务类型可以是随时调整。优选的,每块显存资源在某一固定时间段(例如,一天,12小时)内所加载的视图解析任务的任务类型是相同,便于显存资源对相同的任务类型的任务进行快速处理,提升GPU的处理速度。
图1是根据本发明实施例的一种可选的基于共享资源的任务调度方法的流程图,如图1所示,该方法包括如下步骤:
步骤S102,接收视图解析任务,其中,视图解析任务中携带有:任务类型、任务权重以及至少一帧图片。
本实施例中的视图解析任务的任务类型包括但不限于:视频解析任务和图像解析任务。本实施例中的共享显存资源GPU卡的任务调度方法,其能够分配/调度任务适用于加载低优先级(比如允许一定延迟)或业务量不大的长尾任务,例如,a.路数需求量较少的多个视频解析任务;b.QPS需求量较少的多个图像解析任务/图像分析算法请求;c.允许一定延迟(等于变相降低QPS)的多个图像解析任务/图像分析算法请求。
本实施例提供的视图解析任务在输入时,会携带有任务权重,该任务权重可以根据发送任务的主体、涉及图片数量(如果是视频,会拆分为多帧图片)、优先级设置不同的权重参数。权重参数的取值范围自行设置,例如取值可以在0-100之间,0为最低,100为最高。
本实施例中可以通过video_task_stab_weight标识视频解析任务重要性的任务权重,并通过video_task_push_amount标识视频解析任务推送的数据量。
每个视图分析任务对应有任务标识,该任务标识可以为名称或者ID号等,例如对于视频分析任务,其会分配有视频解析任务的ID号,通过video_algo_id标识;对于图片分析任务,其会分配有图片分析任务的ID号,通过image_algo_id标识。
每个算法进程同时加载的任务数量并不限定,本实施例中,可以通过video_algo_rtsp_task_num标识视频解析任务对应的算法进程同时加载的视频任务数,通过image_algo_concurrent_req_num标识图片分析任务对应的算法进程并发接收的接口请求数。
步骤S104,基于任务权重和图片数量,计算视图解析任务所需的资源消耗值。
每个视图解析任务中所包含的图片数量并不一致,例如,对于视频监控(如景区车辆监控和人流监控、商场人流监控、道路安全监控等)会存在大量的图片帧需要解析;而对于某一图片监控(例如,地下停车场的图片监控)会间隔很长时间才会出现一张图片。不同任务在不同时刻,可能发送的图片数量也不一致,例如,对于景区门口车辆监控,可能会在白天需要解析上万帧包含车辆的图片,而到了夜晚游玩景区人员大量减少,仅会产生几张图片。
步骤S106,查询每块显存资源的已知资源消耗值,并累加已知资源消耗值和视图解析任务所需的资源消耗值,得到显存资源的资源消耗评估值。
本实施例需要实时对每块显存资源的资源消耗值进行确定,得到资源消耗评估值,从而确保任何时候每块显存资源(也就是GPU设备)的资源消耗都不会溢出,并让所有涉及的算法进程和性能也都保持正常。
步骤S108,基于资源消耗评估值,将视图解析任务分配至目标显存资源中。
在分配视图解析任务时,会优先分配给资源消耗评估值未超出第一级预警监控阈值的显存资源,若是都超出第一级预警监控阈值,要么等待预定时长后,再分配任务,要么分配给未超出第二级预警监控阈值的显存资源。
对于资源消耗未超出第一级预警监控阈值的显存资源,表明当前该显存资源内的空闲资源占比很高,仍有很多空闲资源可以利用,此时可以无需看视图解析任务的资源消耗值,直接将视图解析任务分配给该显存资源;而对于超出第一级预警监控阈值的显存资源,表明当前该显存资源内的可利用空闲资源占比已经很低,虽然能够接纳部分视图解析任务,但是可接纳任务量较低,且随时需要开启任务锁。
通过上述步骤,可以在接收到视图解析任务后,基于任务权重和图片数量,计算视图解析任务所需的资源消耗值,查询每块显存资源的已知资源消耗值,并累加已知资源消耗值和视图解析任务所需的资源消耗值,得到显存资源的资源消耗评估值,基于资源消耗评估值,将视图解析任务分配至目标显存资源中。在该实施例中,不限定每个算法进程可使用显存资源GPU的资源配额,让每个算法进程之间都完全共享整块显存资源的算力资源,这样能够调度到单块显存资源每个算法进程内加载的算法任务,使得算法调度时达到更为精细的颗粒度,同时能够让显存资源的算力资源得到更灵活、更充分的利用,从而解决相关技术中对于GPU资源分配是让每个算法进程占用一块资源,容易造成资源闲置,导致算力成本的浪费的技术问题。
图2是根据本发明实施例的一种可选的进行GPU资源共享调度的示意图,如图2所示,对于不同类型的任务(图2包含视频解析任务和图片分析任务),需要通过调度层中的两级阈值监控查看是否超出某一块GPU的资源消耗占比阈值,进而将其分配至不同显存资源中。图2中示意了容器集群管理系统中包含多个容器节点(图2以节点1、节点2...节点N示意说明),每个节点中包含的显存资源GPU的数量也不相同。
如图2所示,每个GPU中可加载的任务量和任务类型未做明确限定,从节点1到节点2分配不同的任务(如图2所示,包括任务1至任务9以及其它任务),通过调度层中的两级阈值监控合理分配视图解析任务。
可选的,在累加已知资源消耗值和视图解析任务所需的资源消耗值,得到资源消耗评估值之后,基于共享资源的任务调度方法还包括:判断显存资源的资源消耗评估值是否超出第一级预警监控阈值;在显存资源的资源消耗评估值超出第一级预警监控阈值的情况下,将显存资源作为目标显存资源,并为目标显存资源设置任务关闭锁,其中,任务关闭锁用于阻止添加新的视图解析任务至目标显存资源中;在有新的视图解析任务到达目标显存资源的情况下,采用预设分流机制将新的视图解析任务转移至第一类其他显存资源中,其中,第一类其他显存资源中的空闲资源值大于新的视图解析任务所需的资源消耗值;在显存资源的资源消耗评估值未超出第一级预警监控阈值的情况下,将显存资源作为目标显存资源,并控制目标显存资源正常开启。
对于第一级预警监控阈值和下述的第二级预警监控阈值的具体数值,在本实施例不做具体限定,可以根据不同系统、不同产品和不同使用场景自行设置。例如,第一级预警监控阈值设置为80%,第二级预警监控阈值设置为95%;或者,第一级预警监控阈值设置为85%,第二级预警监控阈值设置为97%等。
设置显存资源GPU卡的资源消耗的第一级预警监控阈值,一旦触发则在接收当前发送过来的视图解析任务,并通过任务关闭锁阻止添加新的视频解析任务到该共享GPU卡上,但也不驱逐该显存资源GPU卡上现有的视图解析任务,同时还会自动通过智能化负载分流的机制把当下发送过来的视图解析任务(图片分析任务或视频解析任务)转移到其他剩余资源充足的显存资源GPU卡上。
可选的,基于共享资源的任务调度方法还包括:判断显存资源的已知资源消耗值是否超出第二级预警监控阈值,其中,第二级预警监控阈值大于第一级预警监控阈值;在显存资源的已知资源消耗值超出第二级预警监控阈值的情况下,为显存资源设置任务关闭锁,其中,任务关闭锁用于阻止添加视图解析任务至显存资源中;采用预设调度机制将显存资源内已分配的部分视图解析任务转移至第二类其他显存资源中,其中,第二类其他显存资源中的空闲资源值大于已分配的部分视图解析任务所需的资源消耗值。
设置(越过第一级预警监控阈值)显存资源GPU卡的资源消耗的第二级预警监控阈值,一旦触发则通过任务关闭锁阻止接收当前发送过来的视图解析任务,并通过任务关闭锁阻止新的视图解析任务(例如,图片分析请求或视频解析任务)到该共享显存资源GPU卡上,除了阻止新的视图解析任务同时系统内定时自动监控调度的机制还会自发主动地迁移走该显存资源GPU卡上部分现有的视频解析算法任务到其他剩余资源充足的卡上。
作为本实施例一种可选的实施方式,采用预设调度机制将显存资源内已分配的部分视图解析任务转移至第二类其他显存资源中的步骤,包括:获取显存资源内已分配的视图解析任务的任务调度分;对所有任务调度分进行排序,得到排序结果;提取排序结果中分数大于预设分数阈值的任务调度分所对应的视图解析任务,得到提取结果;将提取结果中任务权重低于预设权重阈值的视图解析任务作为已分配的部分视图解析任务;将已分配的部分视图解析任务转移至第二类其他显存资源中。
可选的,获取显存资源内已分配的视图解析任务的任务调度分的步骤,包括:获取显存资源内每个视图解析任务的任务权重以及任务推送数据量,其中,任务推送数据量用于表征视图解析任务中待解析的图片数量;确定与任务权重对应的第一调度分以及与任务推送数据量对应的第二调度分;累加第一调度分和第二调度分,确定已分配的视图解析任务的任务调度分。
本实施例中,在迁移资源占比较高的显存资源内的任务时,是根据调度分来迁移的,对显存资源内已知的所有任务的调度分进行排序,根据排序结果进行任务迁移。可选的,本实施例中根据视频解析任务重要性的权重评估出来的调度分使用video_task_sche_score_by_stab_weight进行标识,根据视频解析任务推送的数据量评估出来的调度分使用video_task_sche_score_by_push_amount进行标识。
由于不同视图解析任务实时推送的数据量是不断变化的,因此,其对应的视图解析任务的调度分也是实时变化的,在进行任务调度时,不同时刻需要迁移走的任务是不同的。
在计算调度分时,计算公式可以为:单个任务综合评估出来的调度分=根据视图解析任务重要性的权重评估出来的调度分(视图解析任务重要性的权重)+根据视图解析任务推送的数据量评估出来的调度分(视图解析任务推送的数据量)。
本实施例中,在查询每块显存资源的已知资源消耗值之前,还包括:获取显存资源内已分配的视图解析任务的任务类型;在任务类型为视频解析任务的情况下,计算显存资源内关联视频解析任务的第一资源消耗值;在任务类型为图片解析任务的情况下,计算显存资源内关联图片解析任务的第二资源消耗值;累加每块显存资源内关联视频解析任务的第一资源消耗值和关联图片解析任务的第二资源消耗值,得到显存资源的已知资源消耗值。
需要说明的是,单张GPU卡上所有视图解析任务的已知资源消耗值是通过指定算法测评系统压测出来的,通过测评系统计算GPU资源的实测消耗值或估算消耗值。该单张GPU卡上所有视图解析任务的已知资源消耗值之和=单张GPU卡上所有视频解析任务通过测评系统压测出来的GPU资源实测消耗值或估算消耗值之和+单张GPU卡上所有图片分析任务通过测评系统压测出来的GPU资源实测消耗值或估算消耗值之和。
可选的,计算显存资源内关联视频解析任务的第一资源消耗值的步骤,包括:在任务类型为视频解析任务的情况下,测量每个视频解析任务的资源消耗初始值;获取显存资源内同时加载的视频解析任务的总数量;基于同时加载的视频解析任务的总数量以及每个视频解析任务的资源消耗初始值,计算显存资源内关联视频解析任务的第一资源消耗值。
需要说明的是,单张GPU卡上所有视频解析任务通过测评系统压测出来的GPU资源实测消耗值或估算消耗值之和=通过测评系统压测出来的单个视频解析任务(包括当前接收到的视频解析任务与历史过程中尚未处理或正在处理的视频解析任务)GPU资源实测消耗值或估算消耗值(视频解析算法的ID号,视频解析算法进程同时加载的视频任务数)。
可选的,计算显存资源内关联图片解析任务的第二资源消耗值的步骤,包括:在任务类型为图片解析任务的情况下,获取图片解析任务的任务标识和并发接收的接口请求数;基于任务标识和并发接收的接口请求数,测量每个图片解析任务的资源消耗初始值;累加每帧图片对应的图片解析任务的资源消耗初始值,得到显存资源内关联图片解析任务的第二资源消耗值。
需要说明的是,单张GPU卡上所有图像分析任务通过测评系统压测出来的GPU资源实测消耗值或估算消耗值之和=通过测评系统压测出来的单个图像分析任务(包括当前接收到的图像分析任务与历史过程中尚未处理或正在处理的图像分析任务)GPU资源实测消耗值或估算消耗值(图片分析算法的ID号,图片分析算法进程并发接收的接口请求数)+通过测评系统压测出来的单个图像分析任务(包括当前接收到的图像分析任务与历史过程中尚未处理或正在处理的图像分析任务)GPU资源实测消耗值或估算消耗值+...。
另一种可选的,基于共享资源的任务调度方法还包括:统计每块显存资源在当天的平均资源利用率;计算当天的平均资源利用率与前一天的平均资源利用率之间的当前利用率差值;获取历史预设天数的显存资源的平均利用率,并基于历史预设天数的显存资源的平均利用率计算历史利用率差值;在历史利用率差值为正值且显存资源的当前利用率差值大于历史利用率差值的情况下,延长对显存资源的采样时长,其中,采样时长用于对每块显存资源在指定时间段内的资源消耗值进行采集;在历史利用率差值为负值且显存资源的当前利用率差值小于等于历史利用率差值的情况下,缩短对显存资源的采样时长。
本实施例中,可以通过gpu_used_resrc_extend_1_level_curr_sample_duration标识GPU资源消耗值当前的实际采样时长延长一级后的采样时长,通过gpu_used_resrc_shorten_1_level_curr_sample_duration标识对GPU资源消耗值当前的实际采样时长缩短一级后的采样时长。
对于历史预设天数,可以自行选取和调整,选取天数在此不做限定。例如,系统内部在每天结束前10分钟针对每张GPU卡都做判断和处理:判断是否连续3天该GPU卡资源的平均利用率都比前一天有所下降,若是,则针对该卡的采样时长缩短一级,若否,则采样时长保持不变。
对于采样时长,其用于采集显存资源GPU的消耗值,例如,采样时长内实际采集到GPU资源的消耗值=采样时长内实际采集GPU资源消耗值有序集合中居于90%位置的元素(采样时长内每次实际采集GPU资源消耗值从小到大排序后的有序集合(GPU资源消耗值采样的起始时间,GPU资源消耗值采样的结束时间),采样时长内实际采集GPU资源消耗值有序集合中居于90%位置的元素序号)。
需要说明的是,对于当天采集的资源消耗值与历史过程(例如,昨天)采集到的资源消耗值的计算方式是相同的,例如,昨天采集到GPU资源消耗的平均值=avg(采样时长内每次实际采集GPU资源消耗值从小到大排序后的有序集合(昨天的起始时间,昨天的结束时间))。今天采集到GPU资源消耗的平均值=avg(采样时长内每次实际采集GPU资源消耗值从小到大排序后的有序集合(今天的起始时间,今天的结束时间)),其中,avg为数值集合的平均值。
通过上述实施例,可以极致利用显存资源GPU卡的算力资源来加载更多的视觉类AI进程算法,通过任务调度方法,能够使得视觉类AI进程/视图解析任务/算法调度时能够调度的颗粒度达到更精细的程度,以此让显存资源GPU卡的算力资源得到更灵活更充分的利用。
同时,通过上述实施例,还可以让单张显存资源GPU卡能够同时加载多个视图解析任务/其他视觉类的AI算法进程,且每个算法进程都能完全共享整块GPU卡的算力资源,从而减少每块显存资源的资源闲置,减少显存资源的浪费。
并且,通过上述实施例,可以确保任何时候每个GPU设备(也就是每块显存资源GPU卡)的资源消耗都不会溢出,并让所有涉及的多个视图解析任务/视觉类AI算法进程和性能也都保持正常。
下面结合另一个可选的实施例来说明本发明。
实施例二
本发明实施例提供了一种基于共享资源的任务调度装置,应用于容器集群管理系统,容器集群管理系统包含多个容器节点,每个容器节点负责管理至少一块显存资源,显存资源共享加载不同算法进程的解析任务。
本发明实施例提供了一种基于共享资源的任务调度装置,其包含的多个实施单元对应于上述实施例一中的各个实施步骤。
图3是根据本发明实施例的一种可选的基于共享资源的任务调度装置的示意图,如图3所示,该任务调度装置包括:接收单元31、计算单元33、查询单元35、分配单元37,其中,
接收单元31,用于接收视图解析任务,其中,视图解析任务中携带有:任务类型、任务权重以及至少一帧图片;
计算单元33,用于基于任务权重和图片数量,计算视图解析任务所需的资源消耗值;
查询单元35,用于查询每块显存资源的已知资源消耗值,并累加已知资源消耗值和视图解析任务所需的资源消耗值,得到显存资源的资源消耗评估值;
分配单元37,用于基于资源消耗评估值,将视图解析任务分配至目标显存资源中。
上述基于共享资源的任务调度装置,可以通过接收单元31在接收到视图解析任务后,通过计算单元33基于任务权重和图片数量,计算视图解析任务所需的资源消耗值,通过查询单元35查询每块显存资源的已知资源消耗值,并累加已知资源消耗值和视图解析任务所需的资源消耗值,得到显存资源的资源消耗评估值,通过分配单元37基于资源消耗评估值,将视图解析任务分配至目标显存资源中。在该实施例中,不限定每个算法进程可使用显存资源GPU的资源配额,让每个算法进程之间都完全共享整块显存资源的算力资源,这样能够调度到单块显存资源每个算法进程内加载的算法任务,使得算法调度时达到更为精细的颗粒度,同时能够让显存资源的算力资源得到更灵活、更充分的利用,从而解决相关技术中对于GPU资源分配是让每个算法进程占用一块资源,容易造成资源闲置,导致算力成本的浪费的技术问题
可选地,基于共享资源的任务调度装置还包括:第一判断单元,用于在累加已知资源消耗值和视图解析任务所需的资源消耗值,得到资源消耗评估值之后,判断显存资源的资源消耗评估值是否超出第一级预警监控阈值;第一确定单元,用于在显存资源的资源消耗评估值超出第一级预警监控阈值的情况下,将显存资源作为目标显存资源,并为目标显存资源设置任务关闭锁,其中,任务关闭锁用于阻止添加新的视图解析任务至目标显存资源中;在有新的视图解析任务到达目标显存资源的情况下,采用预设分流机制将新的视图解析任务转移至第一类其他显存资源中,其中,第一类其他显存资源中的空闲资源值大于新的视图解析任务所需的资源消耗值;第二确定单元,用于在显存资源的资源消耗评估值未超出第一级预警监控阈值的情况下,将显存资源作为目标显存资源,并控制目标显存资源正常开启。
可选地,基于共享资源的任务调度装置还包括:第二判断单元,用于判断显存资源的已知资源消耗值是否超出第二级预警监控阈值,其中,第二级预警监控阈值大于第一级预警监控阈值;第一设置单元,用于在显存资源的已知资源消耗值超出第二级预警监控阈值的情况下,为显存资源设置任务关闭锁,其中,任务关闭锁用于阻止添加视图解析任务至显存资源中;第一转移单元,用于采用预设调度机制将显存资源内已分配的部分视图解析任务转移至第二类其他显存资源中,其中,第二类其他显存资源中的空闲资源值大于已分配的部分视图解析任务所需的资源消耗值。
可选地,第一转移单元包括:第一获取模块,用于获取显存资源内已分配的视图解析任务的任务调度分;第一排序模块,用于对所有任务调度分进行排序,得到排序结果;第一提取模块,用于提取排序结果中分数大于预设分数阈值的任务调度分所对应的视图解析任务,得到提取结果;第一确定模块,用于将提取结果中任务权重低于预设权重阈值的视图解析任务作为已分配的部分视图解析任务;第一转移模块,用于将已分配的部分视图解析任务转移至第二类其他显存资源中。
可选地,第一获取模块包括:第一获取子模块,用于获取显存资源内每个视图解析任务的任务权重以及任务推送数据量,其中,任务推送数据量用于表征视图解析任务中待解析的图片数量;第一确定子模块,用于确定与任务权重对应的第一调度分以及与任务推送数据量对应的第二调度分;第一累加子模块,用于累加第一调度分和第二调度分,确定已分配的视图解析任务的任务调度分。
可选地,基于共享资源的任务调度装置还包括:第二获取单元,用于在查询每块显存资源的已知资源消耗值之前,获取显存资源内已分配的视图解析任务的任务类型;第一计算模块,用于在任务类型为视频解析任务的情况下,计算显存资源内关联视频解析任务的第一资源消耗值;第二计算模块,用于在任务类型为图片解析任务的情况下,计算显存资源内关联图片解析任务的第二资源消耗值;第一累加模块,用于累加每块显存资源内关联视频解析任务的第一资源消耗值和关联图片解析任务的第二资源消耗值,得到显存资源的已知资源消耗值。
可选地,第一计算模块包括:第一测量子模块,用于在任务类型为视频解析任务的情况下,测量每个视频解析任务的资源消耗初始值;第二获取子模块,用于获取显存资源内同时加载的视频解析任务的总数量;第三计算模块,用于基于同时加载的视频解析任务的总数量以及每个视频解析任务的资源消耗初始值,计算显存资源内关联视频解析任务的第一资源消耗值。
可选地,第二计算模块包括:第三获取子模块,用于在任务类型为图片解析任务的情况下,获取图片解析任务的任务标识和并发接收的接口请求数;第二测量子模块,用于基于任务标识和并发接收的接口请求数,测量每个图片解析任务的资源消耗初始值;第二累加子模块,用于累加每帧图片对应的图片解析任务的资源消耗初始值,得到显存资源内关联图片解析任务的第二资源消耗值。
可选地,基于共享资源的任务调度装置还包括:统计单元,用于统计每块显存资源在当天的平均资源利用率;第四计算模块,用于计算当天的平均资源利用率与前一天的平均资源利用率之间的当前利用率差值;第二获取模块,用于获取历史预设天数的显存资源的平均利用率,并基于历史预设天数的显存资源的平均利用率计算历史利用率差值;延长模块,用于在历史利用率差值为正值且显存资源的当前利用率差值大于历史利用率差值的情况下,延长对显存资源的采样时长,其中,采样时长用于对每块显存资源在指定时间段内的资源消耗值进行采集;缩短模块,用于在历史利用率差值为负值且显存资源的当前利用率差值小于等于历史利用率差值的情况下,缩短对显存资源的采样时长。
上述的基于共享资源的任务调度装置还可以包括处理器和存储器,上述接收单元31、计算单元33、查询单元35、分配单元37等均作为程序单元存储在存储器中,由处理器执行存储在存储器中的上述程序单元来实现相应的功能。
上述处理器中包含内核,由内核去存储器中调取相应的程序单元。内核可以设置一个或以上,通过调整内核参数来基于资源消耗评估值,分配视图解析任务分配至目标显存资源中。
上述存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM),存储器包括至少一个存储芯片。
根据本发明实施例的另一方面,还提供了一种电子设备,包括:处理器;以及存储器,用于存储处理器的可执行指令;其中,处理器配置为经由执行可执行指令来执行上述任意一项的基于共享资源的任务调度方法。
图4是根据本发明实施例的一种基于共享资源的任务调度方法的电子设备(或移动设备)的硬件结构框图。如图4所示,电子设备可以包括一个或多个(图中采用402a、402b,……,402n来示出)处理器402(处理器402可以包括但不限于微处理器MCU或可编程逻辑器件FPGA等的处理装置)、用于存储数据的存储器404。除此以外,还可以包括:显示器、输入/输出接口(I/O接口)、通用串行总线(USB)端口(可以作为I/O接口的端口中的一个端口被包括)、网络接口、键盘、电源和/或相机。本领域普通技术人员可以理解,图4所示的结构仅为示意,其并不对上述电子装置的结构造成限定。例如,电子设备还可包括比图4中所示更多或者更少的组件,或者具有与图4所示不同的配置。
根据本发明实施例的另一方面,还提供了一种计算机可读存储介质,计算机可读存储介质包括存储的计算机程序,其中,在计算机程序运行时控制计算机可读存储介质所在设备执行上述任意一项的基于共享资源的任务调度方法。
本申请还提供了一种计算机程序产品,当在数据处理设备上执行时,适于执行初始化有如下方法步骤的程序:接收视图解析任务,其中,视图解析任务中携带有:任务类型、任务权重以及至少一帧图片;基于任务权重和图片数量,计算视图解析任务所需的资源消耗值;查询每块显存资源的已知资源消耗值,并累加已知资源消耗值和视图解析任务所需的资源消耗值,得到显存资源的资源消耗评估值;基于资源消耗评估值,将视图解析任务分配至目标显存资源中。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
在本发明的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的技术内容,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,可以为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
Claims (12)
1.一种基于共享资源的任务调度方法,其特征在于,应用于容器集群管理系统,所述容器集群管理系统包含多个容器节点,每个所述容器节点负责管理至少一块显存资源,所述显存资源共享加载不同算法进程的解析任务,任务调度方法包括:
接收视图解析任务,其中,所述视图解析任务中携带有:任务类型、任务权重以及至少一帧图片;
基于所述任务权重和图片数量,计算所述视图解析任务所需的资源消耗值;
查询每块所述显存资源的已知资源消耗值,并累加所述已知资源消耗值和所述视图解析任务所需的资源消耗值,得到所述显存资源的资源消耗评估值;
基于所述资源消耗评估值,将所述视图解析任务分配至目标显存资源中。
2.根据权利要求1所述的任务调度方法,其特征在于,在累加所述已知资源消耗值和所述视图解析任务所需的资源消耗值,得到资源消耗评估值之后,还包括:
判断所述显存资源的资源消耗评估值是否超出第一级预警监控阈值;
在所述显存资源的资源消耗评估值超出第一级预警监控阈值的情况下,将所述显存资源作为所述目标显存资源,并为所述目标显存资源设置任务关闭锁,其中,所述任务关闭锁用于阻止添加新的视图解析任务至所述目标显存资源中;在有新的视图解析任务到达所述目标显存资源的情况下,采用预设分流机制将所述新的视图解析任务转移至第一类其他显存资源中,其中,所述第一类其他显存资源中的空闲资源值大于所述新的视图解析任务所需的资源消耗值;
在所述显存资源的资源消耗评估值未超出第一级预警监控阈值的情况下,将所述显存资源作为所述目标显存资源,并控制所述目标显存资源正常开启。
3.根据权利要求2所述的任务调度方法,其特征在于,还包括:
判断所述显存资源的已知资源消耗值是否超出第二级预警监控阈值,其中,所述第二级预警监控阈值大于第一级预警监控阈值;
在所述显存资源的已知资源消耗值超出第二级预警监控阈值的情况下,为所述显存资源设置任务关闭锁,其中,所述任务关闭锁用于阻止添加所述视图解析任务至所述显存资源中;
采用预设调度机制将所述显存资源内已分配的部分视图解析任务转移至第二类其他显存资源中,其中,所述第二类其他显存资源中的空闲资源值大于所述已分配的部分视图解析任务所需的资源消耗值。
4.根据权利要求3所述的任务调度方法,其特征在于,采用预设调度机制将所述显存资源内已分配的部分视图解析任务转移至第二类其他显存资源中的步骤,包括:
获取所述显存资源内已分配的所述视图解析任务的任务调度分;
对所有所述任务调度分进行排序,得到排序结果;
提取所述排序结果中分数大于预设分数阈值的所述任务调度分所对应的所述视图解析任务,得到提取结果;
将所述提取结果中任务权重低于预设权重阈值的所述视图解析任务作为所述已分配的部分视图解析任务;
将所述已分配的部分视图解析任务转移至第二类其他显存资源中。
5.根据权利要求4所述的任务调度方法,其特征在于,获取所述显存资源内已分配的所述视图解析任务的任务调度分的步骤,包括:
获取所述显存资源内每个所述视图解析任务的任务权重以及任务推送数据量,其中,所述任务推送数据量用于表征所述视图解析任务中待解析的图片数量;
确定与所述任务权重对应的第一调度分以及与所述任务推送数据量对应的第二调度分;
累加所述第一调度分和所述第二调度分,确定已分配的所述视图解析任务的任务调度分。
6.根据权利要求1所述的任务调度方法,其特征在于,在查询每块所述显存资源的已知资源消耗值之前,还包括:
获取所述显存资源内已分配的所述视图解析任务的任务类型;
在所述任务类型为视频解析任务的情况下,计算所述显存资源内关联所述视频解析任务的第一资源消耗值;
在所述任务类型为图片解析任务的情况下,计算所述显存资源内关联所述图片解析任务的第二资源消耗值;
累加每块所述显存资源内关联所述视频解析任务的第一资源消耗值和关联所述图片解析任务的第二资源消耗值,得到所述显存资源的已知资源消耗值。
7.根据权利要求6所述的任务调度方法,其特征在于,计算所述显存资源内关联所述视频解析任务的第一资源消耗值的步骤,包括:
在所述任务类型为视频解析任务的情况下,测量每个所述视频解析任务的资源消耗初始值;
获取所述显存资源内同时加载的视频解析任务的总数量;
基于所述同时加载的视频解析任务的总数量以及每个所述视频解析任务的资源消耗初始值,计算所述显存资源内关联所述视频解析任务的第一资源消耗值。
8.根据权利要求6所述的任务调度方法,其特征在于,计算所述显存资源内关联所述图片解析任务的第二资源消耗值的步骤,包括:
在所述任务类型为图片解析任务的情况下,获取所述图片解析任务的任务标识和并发接收的接口请求数;
基于所述任务标识和所述并发接收的接口请求数,测量每个所述图片解析任务的资源消耗初始值;
累加每帧图片对应的所述图片解析任务的资源消耗初始值,得到所述显存资源内关联所述图片解析任务的第二资源消耗值。
9.根据权利要求1所述的任务调度方法,其特征在于,还包括:
统计每块显存资源在当天的平均资源利用率;
计算所述当天的平均资源利用率与前一天的平均资源利用率之间的当前利用率差值;
获取历史预设天数的显存资源的平均利用率,并基于所述历史预设天数的显存资源的平均利用率计算历史利用率差值;
在所述历史利用率差值为正值且所述显存资源的当前利用率差值大于所述历史利用率差值的情况下,延长对所述显存资源的采样时长,其中,所述采样时长用于对每块所述显存资源在指定时间段内的资源消耗值进行采集;
在所述历史利用率差值为负值且所述显存资源的当前利用率差值小于等于所述历史利用率差值的情况下,缩短对所述显存资源的采样时长。
10.一种基于共享资源的任务调度装置,其特征在于,应用于容器集群管理系统,所述容器集群管理系统包含多个容器节点,每个所述容器节点负责管理至少一块显存资源,所述显存资源共享加载不同算法进程的解析任务,任务调度装置包括:
接收单元,用于接收视图解析任务,其中,所述视图解析任务中携带有:任务类型、任务权重以及至少一帧图片;
计算单元,用于基于所述任务权重和图片数量,计算所述视图解析任务所需的资源消耗值;
查询单元,用于查询每块所述显存资源的已知资源消耗值,并累加所述已知资源消耗值和所述视图解析任务所需的资源消耗值,得到所述显存资源的资源消耗评估值;
分配单元,用于基于所述资源消耗评估值,将所述视图解析任务分配至目标显存资源中。
11.一种电子设备,其特征在于,包括:
处理器;以及
存储器,用于存储所述处理器的可执行指令;
其中,所述处理器配置为经由执行所述可执行指令来执行权利要求1至9中任意一项所述的基于共享资源的任务调度方法。
12.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质包括存储的计算机程序,其中,在所述计算机程序运行时控制所述计算机可读存储介质所在设备执行权利要求1至9中任意一项所述的基于共享资源的任务调度方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211676723.4A CN116225643A (zh) | 2022-12-26 | 2022-12-26 | 基于共享资源的任务调度方法及装置、电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211676723.4A CN116225643A (zh) | 2022-12-26 | 2022-12-26 | 基于共享资源的任务调度方法及装置、电子设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116225643A true CN116225643A (zh) | 2023-06-06 |
Family
ID=86579521
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211676723.4A Pending CN116225643A (zh) | 2022-12-26 | 2022-12-26 | 基于共享资源的任务调度方法及装置、电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116225643A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116863408A (zh) * | 2023-09-04 | 2023-10-10 | 成都智慧城市信息技术有限公司 | 基于监控摄像头ai算法的并行加速和动态调度实现方法 |
CN117170886A (zh) * | 2023-11-03 | 2023-12-05 | 北京邮电大学 | 一种面向大连接视频分析的连续学习资源调度方法及装置 |
-
2022
- 2022-12-26 CN CN202211676723.4A patent/CN116225643A/zh active Pending
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116863408A (zh) * | 2023-09-04 | 2023-10-10 | 成都智慧城市信息技术有限公司 | 基于监控摄像头ai算法的并行加速和动态调度实现方法 |
CN116863408B (zh) * | 2023-09-04 | 2023-11-21 | 成都智慧城市信息技术有限公司 | 基于监控摄像头ai算法的并行加速和动态调度实现方法 |
CN117170886A (zh) * | 2023-11-03 | 2023-12-05 | 北京邮电大学 | 一种面向大连接视频分析的连续学习资源调度方法及装置 |
CN117170886B (zh) * | 2023-11-03 | 2024-02-02 | 北京邮电大学 | 一种面向大连接视频分析的连续学习资源调度方法及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN116225643A (zh) | 基于共享资源的任务调度方法及装置、电子设备 | |
CN109783224B (zh) | 基于负载调配的任务分配方法、装置及终端设备 | |
CN108683720B (zh) | 一种容器集群服务配置方法及装置 | |
CN109343965A (zh) | 资源调整方法、装置、云平台和服务器 | |
CN109446041B (zh) | 一种服务器压力预警方法、系统及终端设备 | |
CN108052384B (zh) | 一种任务处理方法、服务平台及电子设备 | |
CN108920153A (zh) | 一种基于负载预测的Docker容器动态调度方法 | |
CN109962856B (zh) | 资源分配方法、装置以及计算机可读存储介质 | |
CN110046070B (zh) | 服务器集群系统的监控方法、装置、电子设备及存储介质 | |
CN111506434B (zh) | 一种任务处理方法、装置及计算机可读存储介质 | |
CN112817753A (zh) | 任务的处理方法及装置、存储介质、电子装置 | |
CN107948097B (zh) | 一种带宽调整方法及设备 | |
CN103765421A (zh) | 内容控制方法、内容控制装置以及程序 | |
CN107886424B (zh) | 结算数据处理方法和装置、计算机设备和存储介质 | |
CN106686081B (zh) | 一种数据库服务系统的资源分配方法和装置 | |
CN115665252A (zh) | 一种应用于视频监控中的云存储调度系统 | |
CN110232136A (zh) | 一种基于云计算的大数据处理系统 | |
CN116012067A (zh) | 资源分配方法、装置、计算机、可读存储介质及程序产品 | |
CN111158908A (zh) | 一种基于kubernetes的提高GPU利用率的调度方法及装置 | |
CN106878671B (zh) | 一种养殖场多目标视频分析方法及其系统 | |
CN115037968A (zh) | 视频的播放方法、装置、存储介质及电子装置 | |
CN114882986A (zh) | 一种信息分流处理方法、装置和计算机可读存储介质 | |
CN111160283A (zh) | 一种数据接入方法、装置、设备和介质 | |
CN112950077A (zh) | 一种停车场客服服务提供方法及相关设备 | |
CN107483532B (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 |