CN112286644A - Gpu虚拟化算力的弹性调度方法、系统、设备和存储介质 - Google Patents
Gpu虚拟化算力的弹性调度方法、系统、设备和存储介质 Download PDFInfo
- Publication number
- CN112286644A CN112286644A CN202011566583.6A CN202011566583A CN112286644A CN 112286644 A CN112286644 A CN 112286644A CN 202011566583 A CN202011566583 A CN 202011566583A CN 112286644 A CN112286644 A CN 112286644A
- Authority
- CN
- China
- Prior art keywords
- container
- gpu
- inference
- computing power
- real
- 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.)
- Granted
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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- 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/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44505—Configuring for program initiating, e.g. using registry, configuration files
- G06F9/4451—User profiles; Roaming
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N5/00—Computing arrangements using knowledge-based models
- G06N5/04—Inference or reasoning models
-
- 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45562—Creating, deleting, cloning virtual machine instances
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Artificial Intelligence (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
- Supply And Distribution Of Alternating Current (AREA)
Abstract
本申请涉及GPU虚拟化算力的弹性调度方法、系统、设备和存储介质,属于GPU虚拟化技术领域,该方法包括:对AI推理容器进行自动压测,得到历史最大运行指标;根据历史最大运行指标,自动确定容器的算力配额;检测容器在业务场景下的实时运行指标;根据实时运行指标和预设的算力弹性调度条件,自动调整容器实例数。实现了自动化确定AI推理容器所分配的算力配额,提高了AI推理容器的部署效率,而且极大的提高了GPU算力的利用率。
Description
技术领域
本申请涉及GPU虚拟化技术领域,特别是涉及GPU虚拟化算力的弹性调度方法、系统、设备和存储介质。
背景技术
随着AI技术的迅猛发展,众多算法研发人员为深度学习的技术提供了最基础的保证,并且云计算的发展日趋成熟,云计算为AI技术的进步提供算力保障。GPU虚拟化技术以及容器技术逐渐成熟,提高了在线推理的资源利用率和业务部署的灵活度,进而促进了业务的蓬勃发展。其中,容器化是软件开发的一种方法,在这种方法中,程序和它所依赖的组件和集合包,以及相关的环境变量配置文件都会被完全打包成容器镜像,最后将这个容器部署到服务器的操作系统中。GPU主要实现计算机的图形呈现,具有高性能的多处理器阵列,随着GPU技术的发展,其在人工智能和大数据计算中起着越来越重要的作用。而AI推理正是基于训练模型完成一系列图像识别、文字识别、语音识别等技术的推理计算,可见AI推理类业务容器(以下简称“AI推理容器”)的调用依赖GPU算力(即GPU资源,在本申请中具体指“GPU虚拟化算力”)。
目前在AI项目中,大多时候开发者的关注点都集中在如何进行训练、如何调优模型、如何达到满意的识别率上面。然而,与拥有较固定计算周期和运行时长的AI训练不同,AI推理容器的调用会随着业务的涨落而涨落,经常出现周期性峰谷现象。因此,在大规模高并发的节点需求情况下,常规的部署方案明显无法满足此类需求。
现有的AI推理容器在部署前,针对GPU虚拟化算力的配额分配,需要经过一系列压测操作和人工分析监控日志才能最终确定,使用方法较为复杂。另外,AI推理容器在部署后,其算力配额和容器实例数就固定了,当出现突发流量时会出现无法应对的现象,工程师收到告警通知后进行手动扩容或者后续配额以调整,才能缓解流量高峰的影响,从而降低了业务的可用性。
因此,目前对于AI推理容器的GPU虚拟化算力配额的分配还是依赖人工操作和相关经验进行分配,不仅使用方法较为复杂,使得AI推理容器的部署效率低,而且,由于AI推理业务存在明显的峰谷效应,不能够较好的利用算力资源,对此,在相关技术中并无对应的解决方案。
发明内容
本申请实施例提供了一种GPU虚拟化算力的弹性调度方法、系统、设备和存储介质,以至少解决相关技术中如何提高AI推理容器的部署效率,同时提高GPU算力利用率的问题。
第一方面,本申请实施例提供了一种GPU虚拟化算力的弹性调度方法,包括:对AI推理容器进行自动压测,得到历史最大运行指标;根据所述历史最大运行指标,自动确定所述容器的算力配额;检测所述容器在业务场景下的实时运行指标;根据所述实时运行指标和预设的算力弹性调度条件,自动调整容器实例数。
在其中一些实施例中,所述运行指标包括延迟、QPS(Queries-Per-Second,每秒查询率)和GPU使用率。
在其中一些实施例中,所述的对AI推理容器进行自动压测,得到历史最大运行指标包括:以配置的QoS(Quality of Service,服务质量)要求的最小QPS为起点进行压测,并以配置的压测步长进行递增,同时检测所述容器响应请求的延迟,直至检测到的延迟超过配置的QoS要求的最大延迟的10%,停止压测,得到历史最大运行指标,其中,所述QoS要求是指在保证用户正常使用情况下的最小QPS和最大延迟。
在其中一些实施例中,所述的根据所述实时运行指标和预设的算力弹性调度条件,自动调整容器实例数包括:当实时GPU使用率高于预设的最大阈值,且所述延迟大于配置的QoS要求的最大延迟时,则增加所述容器实例数;当实时GPU使用率低于预设的最小阈值,且所述QPS低于历史均值时,则减少所述容器实例数。
在其中一些实施例中,所述的根据所述实时运行指标和预设的算力弹性调度条件,自动调整容器实例数包括:当实时运行指标满足所述算力弹性调度条件时,计算调整后的所述容器实例数;若计算出容器实例数大于预设的最大容器实例数或者小于预设的最小容器实例数,则不对所述容器实例数进行调整。
在其中一些实施例中,所述容器部署于Kubernetes平台上。
第二方面,本申请实施例提供了一种GPU虚拟化算力的弹性调度系统,包括:压测模块、配额计算模块、检测模块和算力弹性调度模块,其中,压测模块用于对AI推理容器进行自动压测,得到历史最大运行指标;配额计算模块用于根据所述历史最大运行指标,自动确定所述容器的算力配额;检测模块用于检测所述容器在业务场景下的实时运行指标;算力弹性调度模块用于根据所述实时运行指标和预设的算力弹性调度条件,自动调整容器实例数。
在其中一些实施例中,所述运行指标包括延迟、QPS和GPU使用率。
第三方面,本申请实施例提供了一种电子设备,包括处理器和存储有计算机程序的存储介质,所述计算机程序被所述处理器执行时实现如上述任一项所述的GPU虚拟化算力的弹性调度方法。
第四方面,本申请实施例提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如上述任一项所述的GPU虚拟化算力的弹性调度方法。
根据上述内容,本申请实施例的GPU虚拟化算力的弹性调度方法包括:对AI推理容器进行自动压测,得到历史最大运行指标;根据历史最大运行指标,自动确定容器的算力配额;检测容器在业务场景下的实时运行指标;根据实时运行指标和预设的算力弹性调度条件,自动调整容器实例数。由于AI推理类业务主要使用的计算资源为GPU资源,因此,相较于传统的分析CPU资源的使用情况,本申请实施例能够反应AI推理容器在运行时的健壮情况,从而,实现了自动化确定AI推理容器所分配的算力配额,提高了AI推理容器的部署效率,而且,能够在AI推理容器的实际运行场景下自动弹性调度GPU算力,从而能够应对AI推理业务的峰谷效应,极大的提高了GPU算力的利用率。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1是根据本申请实施例的GPU虚拟化算力的弹性调度方法的流程图;
图2是根据本申请实施例的GPU虚拟化算力的弹性调度系统的结构示意图;
图3是根据本申请实施例的压测模块和配额计算模块的关系示意图;
图4是根据本申请实施例的检测模块和算力弹性调度模块的关系示意图;
图5是根据本申请实施例的电子设备的结构框图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行描述和说明。应当理解,此处所描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。基于本申请提供的实施例,本领域普通技术人员在没有作出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。
而目前对GPU虚拟化算力配额的分配,都是通过手工的方式来完成的,没有系统的反馈流程,该方法存在两个问题:一是装置的使用复杂度较高,具有较长的人工操作流程,首先,需要手工压测,并观察监控的历史表现,然后以人工确定AI推理业务的合理的GPU虚拟化算力配额;二是因为通过人工操作,会出现一定的误差,例如:如果监控图上监控粒度过粗,会出现失真的情况,如果肉眼观察就会出现一定的偏差。
因此,上述方案均不能很好的解决AI推理容器的GPU资源利用率和易用性的问题。
为了解决上述问题,本申请实施例提供一种GPU虚拟化算力的弹性调度方法。需要说明的是,本申请中所记载的“算力”是指“GPU资源”,不因表述不同而产生限制性的歧义。所谓的GPU虚拟化算力配额(简称“算力配额”)是分配的GPU虚拟化资源,例如对一个完整GPU卡的资源进行切分成n份后,分配其中m份,其中m<n。图1是根据本申请实施例的GPU虚拟化算力的弹性调度方法的流程图,如图1所示,该流程包括以下步骤:
S100:对AI推理容器进行自动压测,得到历史最大运行指标;
S200:根据历史最大运行指标,自动确定容器的算力配额;
S300:检测容器在业务场景下的实时运行指标;
S400:根据实时运行指标和预设的算力弹性调度条件,自动调整容器实例数。
在其中一些实施例中,所述运行指标包括延迟、QPS和GPU使用率。
基于上述内容,实现了自动化确定AI推理容器所分配的算力配额,提高了装置的易用性,提高了AI推理容器的部署效率,同时避免了因人工操作导致的精度偏差。而且,在AI推理容器的业务场景下,可以自动调整容器实例数,实现了AI推理容器自动扩容或缩容,从而能够根据AI推理业务的峰谷效应,自动弹性调度GPU算力,极大的提高了GPU算力的利用率,提高了业务的可用性。
以下,将对本申请实施例的GPU虚拟化算力的弹性调度方法的各步骤进行更加详细的说明。
在本申请实施例中,上述方法主要分为两个阶段:GPU虚拟化算力配额确定阶段(包括步骤S100和步骤S200),和业务场景下的算力弹性调度阶段(包括步骤S300和S400)。
步骤S100:对AI推理容器进行自动压测,得到历史最大运行指标。首先,需要针对AI推理容器,预先给定GPU算力,例如为一个或多个完整的GPU卡的虚拟化算力或者一张GPU卡的部分算力,以确保压测过程中的GPU算力足够。然后,分别在不同并发和不同数据集场景下进行AI推理请求,与此同时,对容器的运行指标进行检测,该运行指标包括延迟、QPS和GPU使用率。具体的,接收配置的QoS要求(该QoS要求指标是指在保证用户正常使用情况下的最小QPS和最大延迟)和压测步长之后,以QoS要求的最小QPS为起点进行压测,并以配置的压测步长进行递增,同时检测容器响应请求的延迟,直至检测到的延迟超过QoS要求的最大延迟的10%,停止压测,得到上述历史最大运行指标,该历史最大运行指标包括最大延迟、最大QPS和历史最大GPU使用率(即maxGPU),该历史最大GPU使用率为使用到的虚拟化算力占预先给定的GPU虚拟化算力(例如一个或多个完整GPU卡的算力或者一张GPU卡的部分算力)的最大比例。
步骤S200:根据历史最大运行指标,自动确定容器的算力配额。上述步骤S100压测结束之后,例如得到历史最大GPU使用率maxGpu=0.3,那么在整张GPU卡的虚拟化算力被划分为100份的条件下,则自动确定容器的算力配额为30份。
步骤S300:检测容器在业务场景下的实时运行指标。此时,可以实时检测容器的CPU、内存和GPU的利用率,以及容器的最大延迟和QPS。当容器无法应对突发流量时,会出现QPS增加、延迟增大、CPU和GPU的利用率上升等现象。优选的,本申请实施例从AI推理业务的QoS要求角度出发,在保证服务质量的条件下,考量分配的算力配额是否够用,因此,需要检测的实时运行指标包括实时GPU使用率、延迟和QPS,其中,该实时GPU使用率为实时使用到的虚拟化算力占算力配额的比例,即,使用到的GPU资源占分配的GPU资源的比例,其中,分配的GPU资源有可能是一个或多个完整的GPU卡的资源,也可能是虚拟化的GPU算力切片,例如0.1个GPU卡的算力切片。
步骤S400:根据实时运行指标和预设的算力弹性调度条件,自动调整容器实例数。即,在容器的实际运行场景下,可以自动调整容器实例数,以实现容器自动扩容或缩容,从而能够根据AI推理业务的峰谷效应,自动弹性调度GPU算力,极大的提高了GPU算力的利用率。
作为一个示例,当实时GPU使用率高于预设的最大阈值(例如为90%),且实时检测到的延迟大于预设的QoS要求的最大延迟时,则表明基于现有算力配额下的容器业务压力较大,可能容器的调用处于高峰期,那么,自动决策对容器实例数进行增加以实现容器自动扩容。例如,经上述步骤S200确定容器的算力配额为30份算力(比如对应的容器实例数为3),那么当该容器处在请求高峰期时,若实时GPU使用率高于90%且延迟大于预设的QoS要求的最大延迟,此时容器的业务压力较大,则将容器实例数增加至4,即分配的算力大小增加至40份,以提高容器的业务处理能力。当实时GPU使用率低于预设的最小阈值(例如为10%),且QPS低于历史均值时,则表明目前容器的调用处于低谷期,那么,自动决策对实例数进行减少以实现容器自动缩容,以节约GPU资源。例如,经上述步骤S200确定容器的算力配额为30份算力(比如对应的容器实例数为3),当该容器处在请求低谷期时,若实时GPU使用率低于10%且QPS低于历史均值,此时容器的业务压力较小,则将容器实例数减少至2,即分配的算力大小减少至20份,以节约GPU资源。
需要说明的是,若不同业务场景下对CPU利用率和内存利用率有要求,也可以检测CPU利用率和内存利用率,以辅助容器的扩容或缩容。
基于上述内容,由于AI推理业务在时间上的峰谷效应,通过弹性调度策略,容器在请求高峰时进行扩容,在请求低谷时进行缩容,进而促使各个AI推理业务进行峰谷互补,从而显著提升GPU算力资源的利用率。
优选的,每次扩容或缩容时,容器实例数增加1或减小1,避免扩容过大或缩容过小,从而在应对AI推理业务的峰谷效应时,容器的表现更优,能够使GPU资源的利用率最大化。
每个AI推理容器还可以根据QoS要求来配置最大容器实例数和最小容器实例数,例如默认最大容器实例数为5,最小容器实例数为1。因此,当所述实时运行指标满足算力弹性调度条件时,可以计算扩容或缩容后的实例数,如果扩容后的容器实例数大于配置的最大值,或者缩容后的容器实例数小于最小容器实例数,则不进行扩容或缩容,能够在保证QoS要求的前提下,极大化提高GPU资源的利用率。
另外,由于目前大规模部署在Kubernetes平台上的业务容器无法满足资源弹性调度的需求,而Kubernetes作为一种标准化的容器运行管理平台,已经成为云计算领域的一种标准基础设施,具有完备的调度和管理功能。所以本申请实施例的AI推理通过容器化的方式部署到Kubernetes平台上,利用该平台提供的GPU虚拟化能力和管理能力,为用户提供服务。
本申请实施例还提供一种GPU虚拟化算力的弹性调度系统,图2是根据本申请实施例的GPU虚拟化算力的弹性调度系统的结构示意图,如图2所示,该系统包括配额计算装置、算力(即资源)弹性调度装置和GPU虚拟化管理装置,其中,配额计算装置包括压测模块和配额计算模块,算力弹性调度装置包括检测模块(也称侦测模块)和算力弹性调度模块,GPU虚拟化管理装置(也称GPU虚拟化管理模块)为AI推理容器提供GPU虚拟化算力,该GPU虚拟化管理装置在现有技术中已能够实现,且该装置不是本发明的核心,所以不做过多说明。
为了避免混淆,需要说明的是,该系统中包括两个检测模块,分别用于压测过程中的数据检测和业务场景下的数据检测。可见,在GPU虚拟化算力配额确定阶段所描述的检测模块,和在业务场景下算力弹性调度阶段所描述的检测模块明显是两个不同的检测模块。
作为一个示例,图3是根据本申请实施例的压测模块和配额计算模块的关系示意图,如图3所示,在GPU虚拟化算力配额确定阶段:压测模块的功能是根据输入的QoS要求和压测步长,采用线性增长的方式对AI推理容器进行业务压测,在压测阶段产生容器相关的性能指标供检测模块采集。检测模块的功能是在容器的压测期间检测容器的性能指标,例如包括CPU、内存和GPU的使用率、以及延迟、QPS等,并将相关的检测记录保存下来,供配额计算模块对这些性能指标进行分析和计算。具体的,上述压测过程包括:以输入的QoS要求的最小QPS为起点进行压测,并以配置的压测步长进行递增,同时检测容器响应请求的延迟,直至检测到的延迟超过输入的QoS要求的最大延迟的10%,停止压测,得到历史最大GPU使用率,例如为30%。配额计算模块的功能是在压测模块结束压测后被触发启动,从检测模块获取容器的CPU、内存和GPU的使用率、以及延迟、QPS等历史数据进行计算,最终输出容器的GPU算力配额,例如,在整张GPU卡的虚拟化算力被划分为100份的条件下,则自动确定容器的算力配额为30份。
图4是根据本申请实施例的检测模块和算力弹性调度模块的关系示意图,如图4所示,在业务场景下算力弹性调度阶段;资源(即算力)弹性调度模块的功能是根据侦测(即检测)模块检测到的指标来决策是否对容器进行扩容或者缩容。当实时GPU使用率高于预设的最大阈值(例如为90%),且检测到的延迟大于输入的QoS要求的最大延迟时,则自动决策对容器进行扩容;当实时GPU使用率低于预设的最小阈值(例如为10%),且QPS低于历史均值时,则自动决策对容器进行缩容。
基于上述的装置和模块,本申请实施例从AI推理的QoS要求角度,实现了GPU虚拟化算力配额的自动化分析决策,以及容器的自动弹性调度。第一方面,技术人员给定输入后,便可使用配额计算装置输出GPU算力配额,该配额计算装置具体执行的步骤如下:
步骤1:技术人员输入AI推理业务的QoS要求和压测步长,压测模块根据输入进行压测;
步骤2:压测结束后触发配额计算模块,配额计算模块从检测模块获取AI推理容器的历史检测数据,然后根据内置的计算算法进行计算生成GPU算力配额。
第二方面,在技术人员给定输入后,通过资源弹性调度装置自动执行容器的调度操作,后续无需技术人员再进行其他操作,该资源弹性调度装置具体执行的步骤如下:
步骤1:技术人员输入AI推理业务的QoS要求,然后启动资源弹性调度模块;
步骤2:资源弹性调度模块获取AI推理容器的实时检测数据,并根据输入的QoS要求,实时逻辑推导出AI推理容器是否进行扩容或者缩容;
步骤3:资源弹性调度模块根据计算结果进行容器的扩容和缩容操作。
下文结合具体实施例来对本申请的各模块和流程进行阐述,具体的,本实施例基于Kubernetes系统来实现整个方法:
首先,需要提取准备基本可运行环境,其中检测模块可以采用开源解决方案,例如cadvisor。GPU虚拟化管理模块和检测模块以DaemonSet方式部署Kubernetes系统的每个节点上。
然后,AI推理容器以Deployment的方式部署到Kubernetes系统上,在Deployment上,技术人员通过annotations形式标示业务的QoS和压测步长,这时并没有对AI推理容器进行资源限制。另外,技术人员可以配置AI推理容器运行的最大和最小实例数。
接下来分为两个阶段进行处理:GPU虚拟化算力配额确定阶段,和业务场景下的算力弹性调度阶段。
在GPU虚拟化算力配额阶段完成AI推理业务的GPU虚拟算力的配额确定。压测模块获取技术人员配置的QoS要求和压测步长,该QoS要求和压测步长作为输入来启动压测模块进行压测。压测过程中根据配置的步长增加压测的QPS,并且判断检测到的延迟是否超过QoS制定的延迟来决定是否结束压测。压测结束后,自动触发配额计算模块的启动。配额计算模块读取检测模块记录的历史数据并进行计算,然后,输出AI推理容器的GPU虚拟算力配额,将其修改到Deployment的资源申请参数上。
完成了以上GPU虚拟化算力配额的计算之后,AI推理容器会被Kubernetes系统重新调度,并完成容器的启动,从此时开始AI容器的GPU虚拟化算力将被限制在分配的配额以内。接下来进入业务场景下的算力弹性调度阶段,在该阶段会进行算力弹性调度决策。
算力弹性调度模块获取配置的QoS要求,然后开始弹性调度的侦测。算力弹性调度模块会实时获取检测模块实时检测的数据,运行逻辑计算。根据检测到的实时GPU利用率、延迟和QPS等指标进行容器的扩容或缩容。如果实时GPU利用率高于最大阈值,并且延迟大于QoS要求的最大延迟,容器将进行自动扩容;如果实时GPU利用率低于最低阈值,并且QPS低于历史均值,容器将进行自动缩容。每个AI推理业务根据QoS要求可以配置最大容器实例数和最小容器实例数,例如默认分别为5和1。如果扩容后容器实例数大于配置的最大值,或者缩容后容器实例数小于最小容器实例数,则不进行扩容或缩容。在保证QoS要求的前提下,极大化提高了GPU资源的利用率。
需要说明的是,本申请的GPU虚拟化算力的弹性调度系统用于实现上述实施例及优选实施方式。如本申请中所使用的术语“装置”、“模块”、“单元”、“子单元”等可以实现预定功能的软件和/或硬件的组合。尽管以上实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。即,上述各个模块可以是功能模块也可以是程序模块,既可以通过软件来实现,也可以通过硬件来实现。对于通过硬件来实现的模块而言,上述各个模块可以位于同一处理器中;或者上述各个模块还可以按照任意组合的形式分别位于不同的处理器中。
本申请实施例还提供一种电子设备,图5是根据本申请实施例的电子设备的结构框图,如图5所示,该电子设备可以包括处理器81以及存储有计算机程序指令的存储器82。
具体地,上述处理器81可以包括中央处理器(CPU),或者特定集成电路(Application Specific Integrated Circuit,简称为ASIC),或者可以被配置成实施本申请实施例的一个或多个集成电路。
其中,存储器82可以包括用于数据或指令的大容量存储器。举例来说而非限制,存储器82可包括硬盘驱动器(Hard Disk Drive,简称为HDD)、软盘驱动器、固态驱动器(SolidState Drive,简称为SSD)、闪存、光盘、磁光盘、磁带或通用串行总线(Universal SerialBus,简称为USB)驱动器或者两个或更多个以上这些的组合。在合适的情况下,存储器82可包括可移除或不可移除(或固定)的介质。在合适的情况下,存储器82可在数据处理装置的内部或外部。在特定实施例中,存储器82是非易失性(Non-Volatile)存储器。在特定实施例中,存储器82包括只读存储器(Read-Only Memory,简称为ROM)和随机存取存储器(RandomAccess Memory,简称为RAM)。在合适的情况下,该ROM可以是掩模编程的ROM、可编程ROM(Programmable Read-Only Memory,简称为PROM)、可擦除PROM(Erasable ProgrammableRead-Only Memory,简称为EPROM)、电可擦除PROM(Electrically Erasable ProgrammableRead-Only Memory,简称为EEPROM)、电可改写ROM(Electrically Alterable Read-OnlyMemory,简称为EAROM)或闪存(FLASH)或者两个或更多个以上这些的组合。在合适的情况下,该RAM可以是静态随机存取存储器(Static Random-Access Memory,简称为SRAM)或动态随机存取存储器(Dynamic Random Access Memory,简称为DRAM),其中,DRAM可以是快速页模式动态随机存取存储器(Fast Page Mode Dynamic Random Access Memory,简称为FPMDRAM)、扩展数据输出动态随机存取存储器(Extended Date Out Dynamic RandomAccess Memory,简称为EDODRAM)、同步动态随机存取内存(Synchronous Dynamic Random-Access Memory,简称SDRAM)等。
存储器82可以用来存储或者缓存需要处理和/或通信使用的各种数据文件,以及处理器81所执行的可能的计算机程序指令。
处理器81通过读取并执行存储器82中存储的计算机程序指令,以实现上述实施例中的任意一种GPU虚拟化算力的弹性调度方法。
在其中一些实施例中,电子设备还可包括通信接口83和总线80。其中,如图5所示,处理器81、存储器82、通信接口83通过总线80连接并完成相互间的通信。
通信接口83用于实现本申请实施例中各模块、装置、单元和/或设备之间的通信。通信接口83还可以实现与其他部件例如:外接设备、图像/数据采集设备、数据库、外部存储以及图像/数据处理工作站等之间进行数据通信。
总线80包括硬件、软件或两者,将电子设备的部件彼此耦接在一起。总线80包括但不限于以下至少之一:数据总线(Data Bus)、地址总线(Address Bus)、控制总线(ControlBus)、扩展总线(Expansion Bus)、局部总线(Local Bus)。举例来说而非限制,总线80可包括图形加速接口(Accelerated Graphics Port,简称为AGP)或其他图形总线、增强工业标准架构(Extended Industry Standard Architecture,简称为EISA)总线、前端总线(FrontSide Bus,简称为FSB)、超传输(Hyper Transport,简称为HT)互连、工业标准架构(Industry Standard Architecture,简称为ISA)总线、无线带宽(InfiniBand)互连、低引脚数(Low Pin Count,简称为LPC)总线、存储器总线、微信道架构(Micro ChannelArchitecture,简称为MCA)总线、外围组件互连(Peripheral Component Interconnect,简称为PCI)总线、PCI-Express(PCI-X)总线、串行高级技术附件(Serial AdvancedTechnology Attachment,简称为SATA)总线、视频电子标准协会局部(Video ElectronicsStandards Association Local Bus,简称为VLB)总线或其他合适的总线或者两个或更多个以上这些的组合。在合适的情况下,总线80可包括一个或多个总线。尽管本申请实施例描述和示出了特定的总线,但本申请考虑任何合适的总线或互连。
另外,结合上述实施例中的GPU虚拟化算力的弹性调度方法,本申请实施例可提供一种计算机可读存储介质来实现。该计算机可读存储介质上存储有计算机程序指令;该计算机程序指令被处理器执行时实现上述实施例中的任意一种GPU虚拟化算力的弹性调度方法。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。
Claims (10)
1.一种GPU虚拟化算力的弹性调度方法,其特征在于,包括:
对AI推理容器进行自动压测,得到历史最大运行指标;
根据所述历史最大运行指标,自动确定所述AI推理容器的算力配额;
检测所述AI推理容器在业务场景下的实时运行指标;
根据所述实时运行指标和预设的算力弹性调度条件,自动调整所述AI推理容器的容器实例数。
2.根据权利要求1所述的GPU虚拟化算力的弹性调度方法,其特征在于,所述运行指标包括延迟、QPS和GPU使用率。
3.根据权利要求1所述的GPU虚拟化算力的弹性调度方法,其特征在于,所述的对AI推理容器进行自动压测,得到历史最大运行指标包括:
以配置的QoS要求的最小QPS为起点进行压测,并以配置的压测步长进行递增,同时检测所述AI推理容器响应请求的延迟,直至检测到的延迟超过配置的QoS要求的最大延迟的10%,停止压测,得到历史最大运行指标,其中,所述QoS要求是指在保证用户正常使用情况下的最小QPS和最大延迟。
4.根据权利要求2所述的GPU虚拟化算力的弹性调度方法,其特征在于,所述的根据所述实时运行指标和预设的算力弹性调度条件,自动调整所述AI推理容器的容器实例数包括:
当实时GPU使用率高于预设的最大阈值,且所述延迟大于配置的QoS要求的最大延迟时,则增加所述容器实例数;
当实时GPU使用率低于预设的最小阈值,且所述QPS低于历史均值时,则减少所述容器实例数。
5.根据权利要求4所述的GPU虚拟化算力的弹性调度方法,其特征在于,所述的根据所述实时运行指标和预设的算力弹性调度条件,自动调整所述AI推理容器的容器实例数包括:
当实时运行指标满足所述算力弹性调度条件时,计算调整后的所述容器实例数;
若调整后的容器实例数大于预设的最大容器实例数或者小于预设的最小容器实例数,则不对所述容器实例数进行调整。
6.根据权利要求1所述的GPU虚拟化算力的弹性调度方法,其特征在于,所述AI推理容器部署于Kubernetes平台上。
7.一种GPU虚拟化算力的弹性调度系统,其特征在于,包括:
压测模块,用于对AI推理容器进行自动压测,得到历史最大运行指标;
配额计算模块,用于根据所述历史最大运行指标,自动确定所述AI推理容器的算力配额;
检测模块,用于检测所述AI推理容器在业务场景下的实时运行指标;
算力弹性调度模块,用于根据所述实时运行指标和预设的算力弹性调度条件,自动调整所述AI推理容器的容器实例数。
8.根据权利要求7所述的GPU虚拟化算力的弹性调度系统,其特征在于,所述运行指标包括延迟、QPS和GPU使用率。
9.一种电子设备,包括处理器和存储有计算机程序的存储介质,其特征在于,所述计算机程序被所述处理器执行时实现如权利要求1至6中任一项所述的GPU虚拟化算力的弹性调度方法。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至6中任一项所述的GPU虚拟化算力的弹性调度方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011566583.6A CN112286644B (zh) | 2020-12-25 | 2020-12-25 | Gpu虚拟化算力的弹性调度方法、系统、设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011566583.6A CN112286644B (zh) | 2020-12-25 | 2020-12-25 | Gpu虚拟化算力的弹性调度方法、系统、设备和存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112286644A true CN112286644A (zh) | 2021-01-29 |
CN112286644B CN112286644B (zh) | 2021-05-28 |
Family
ID=74426374
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011566583.6A Active CN112286644B (zh) | 2020-12-25 | 2020-12-25 | Gpu虚拟化算力的弹性调度方法、系统、设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112286644B (zh) |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113521753A (zh) * | 2021-07-21 | 2021-10-22 | 咪咕互动娱乐有限公司 | 系统资源调节方法、装置、服务器及存储介质 |
CN113553180A (zh) * | 2021-07-20 | 2021-10-26 | 唯品会(广州)软件有限公司 | 一种容器的调度方法、装置及电子设备 |
CN114613193A (zh) * | 2022-03-22 | 2022-06-10 | 重庆长安汽车股份有限公司 | 基于算力共享的停车位获取方法、存储介质、系统及车辆 |
CN115174619A (zh) * | 2022-06-30 | 2022-10-11 | 重庆长安汽车股份有限公司 | 一种车辆算力共享方法、系统、电子设备及可读存储介质 |
CN115617364A (zh) * | 2022-12-20 | 2023-01-17 | 中化现代农业有限公司 | Gpu虚拟化部署方法、系统、计算机设备和存储介质 |
WO2023207623A1 (zh) * | 2022-04-24 | 2023-11-02 | 阿里巴巴(中国)有限公司 | 任务处理方法 |
WO2023226545A1 (zh) * | 2022-05-25 | 2023-11-30 | 北京沃东天骏信息技术有限公司 | 算力分配、服务和测试方法,及系统和存储介质 |
CN117611425A (zh) * | 2024-01-17 | 2024-02-27 | 之江实验室 | 图形处理器算力配置方法、装置、计算机设备和存储介质 |
CN117873735A (zh) * | 2024-03-11 | 2024-04-12 | 湖南马栏山视频先进技术研究院有限公司 | 一种虚拟化环境下gpu调度系统 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106330576A (zh) * | 2016-11-18 | 2017-01-11 | 北京红马传媒文化发展有限公司 | 容器化微服务自动伸缩及迁移调度的方法、系统和设备 |
CN108920251A (zh) * | 2018-06-08 | 2018-11-30 | 郑州云海信息技术有限公司 | 一种容器的管理系统及方法 |
CN109144727A (zh) * | 2018-08-21 | 2019-01-04 | 郑州云海信息技术有限公司 | 云数据系统中资源的管理方法和装置 |
CN109885389A (zh) * | 2019-02-19 | 2019-06-14 | 山东浪潮云信息技术有限公司 | 一种基于容器的并行深度学习调度训练方法及系统 |
KR101998564B1 (ko) * | 2018-07-19 | 2019-07-10 | 나무기술 주식회사 | 클라우드 플랫폼에서의 멀티 클러스터 프로비저닝 및 관리 방법 |
CN111414233A (zh) * | 2020-03-20 | 2020-07-14 | 京东数字科技控股有限公司 | 一种在线模型推理系统 |
-
2020
- 2020-12-25 CN CN202011566583.6A patent/CN112286644B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106330576A (zh) * | 2016-11-18 | 2017-01-11 | 北京红马传媒文化发展有限公司 | 容器化微服务自动伸缩及迁移调度的方法、系统和设备 |
CN108920251A (zh) * | 2018-06-08 | 2018-11-30 | 郑州云海信息技术有限公司 | 一种容器的管理系统及方法 |
KR101998564B1 (ko) * | 2018-07-19 | 2019-07-10 | 나무기술 주식회사 | 클라우드 플랫폼에서의 멀티 클러스터 프로비저닝 및 관리 방법 |
CN109144727A (zh) * | 2018-08-21 | 2019-01-04 | 郑州云海信息技术有限公司 | 云数据系统中资源的管理方法和装置 |
CN109885389A (zh) * | 2019-02-19 | 2019-06-14 | 山东浪潮云信息技术有限公司 | 一种基于容器的并行深度学习调度训练方法及系统 |
CN111414233A (zh) * | 2020-03-20 | 2020-07-14 | 京东数字科技控股有限公司 | 一种在线模型推理系统 |
Cited By (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113553180A (zh) * | 2021-07-20 | 2021-10-26 | 唯品会(广州)软件有限公司 | 一种容器的调度方法、装置及电子设备 |
CN113553180B (zh) * | 2021-07-20 | 2023-10-13 | 唯品会(广州)软件有限公司 | 一种容器的调度方法、装置及电子设备 |
CN113521753A (zh) * | 2021-07-21 | 2021-10-22 | 咪咕互动娱乐有限公司 | 系统资源调节方法、装置、服务器及存储介质 |
CN113521753B (zh) * | 2021-07-21 | 2023-08-15 | 咪咕互动娱乐有限公司 | 系统资源调节方法、装置、服务器及存储介质 |
CN114613193A (zh) * | 2022-03-22 | 2022-06-10 | 重庆长安汽车股份有限公司 | 基于算力共享的停车位获取方法、存储介质、系统及车辆 |
WO2023207623A1 (zh) * | 2022-04-24 | 2023-11-02 | 阿里巴巴(中国)有限公司 | 任务处理方法 |
WO2023226545A1 (zh) * | 2022-05-25 | 2023-11-30 | 北京沃东天骏信息技术有限公司 | 算力分配、服务和测试方法,及系统和存储介质 |
CN115174619A (zh) * | 2022-06-30 | 2022-10-11 | 重庆长安汽车股份有限公司 | 一种车辆算力共享方法、系统、电子设备及可读存储介质 |
CN115617364A (zh) * | 2022-12-20 | 2023-01-17 | 中化现代农业有限公司 | Gpu虚拟化部署方法、系统、计算机设备和存储介质 |
CN117611425A (zh) * | 2024-01-17 | 2024-02-27 | 之江实验室 | 图形处理器算力配置方法、装置、计算机设备和存储介质 |
CN117873735A (zh) * | 2024-03-11 | 2024-04-12 | 湖南马栏山视频先进技术研究院有限公司 | 一种虚拟化环境下gpu调度系统 |
CN117873735B (zh) * | 2024-03-11 | 2024-05-28 | 湖南马栏山视频先进技术研究院有限公司 | 一种虚拟化环境下gpu调度系统 |
Also Published As
Publication number | Publication date |
---|---|
CN112286644B (zh) | 2021-05-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112286644B (zh) | Gpu虚拟化算力的弹性调度方法、系统、设备和存储介质 | |
US11302303B2 (en) | Method and device for training an acoustic model | |
TWI729606B (zh) | 用於一邊緣運算網路的負載平衡裝置及方法 | |
CN106406987A (zh) | 一种集群中的任务执行方法及装置 | |
CN110289994B (zh) | 一种集群容量调整方法及装置 | |
CN112068957B (zh) | 资源分配方法、装置、计算机设备及存储介质 | |
CN105607952B (zh) | 一种虚拟化资源的调度方法及装置 | |
WO2019232926A1 (zh) | 数据一致性校验流控方法、装置、电子设备及存储介质 | |
CN106713396A (zh) | 服务器调度方法和系统 | |
CN109558329A (zh) | 一种程序检测方法、装置、设备及可读存储介质 | |
CN113051054B (zh) | 调度人工智能平台资源的方法、设备和计算机可读存储介质 | |
CN109240802B (zh) | 请求处理方法和装置 | |
CN110750312A (zh) | 硬件资源配置方法、装置、云侧设备和存储介质 | |
CN114490078A (zh) | 一种微服务的动态缩扩容方法、装置及设备 | |
CN110750359B (zh) | 硬件资源配置方法、装置、云侧设备和存储介质 | |
CN117519905A (zh) | 一种基于迁移成本和资源均衡的虚拟机选择方法 | |
CN109992408B (zh) | 一种资源分配方法、装置、电子设备和存储介质 | |
CN113297071A (zh) | 基于uvm功能覆盖率驱动的验证方法、装置及设备 | |
WO2018098670A1 (zh) | 一种进行数据处理的方法和装置 | |
EP3046029A1 (en) | Method and device for determining program performance interference model | |
CN111683296B (zh) | 视频切分方法、装置、电子设备及存储介质 | |
CN114936089A (zh) | 资源调度方法、系统、设备及存储介质 | |
CN110493071B (zh) | 消息系统资源均衡装置、方法及设备 | |
CN116881016B (zh) | 服务器进程的处理方法及装置、存储介质及电子设备 | |
CN112540842A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
TR01 | Transfer of patent right | ||
TR01 | Transfer of patent right |
Effective date of registration: 20210922 Address after: 311121 room 210, building 18, No. 998, Wenyi West Road, Wuchang Street, Yuhang District, Hangzhou City, Zhejiang Province Patentee after: Hangzhou Bodun Xiyan Technology Co.,Ltd. Address before: Room 704, building 18, No. 998, Wenyi West Road, Wuchang Street, Yuhang District, Hangzhou City, Zhejiang Province Patentee before: TONGDUN HOLDINGS Co.,Ltd. |