云游戏中虚拟gpu资源自主管理与控制方法
【专利摘要】本发明提供了一种云游戏中虚拟GPU资源自主管理与控制方法,包括步骤:构建Auto-vGPU框架;使用基于LASS0的降维算法以选择关键指标数据作为系统输入,来支持AutoiGPU框架拟合低维的输入输出模型;利用PI控制器参数自动配置算法,自动控制Auto-vGPU框架中vGASA模块中的参数配置,减少人工操作,支持Auto-vGPU框架在动态复杂的云环境中保持良好的性能。本发明实现了虚拟GPU资源的自动化管理,并使用LASS0/LARS降维技术,自动化减少虚拟机中每个游戏的输入量,还通过采用根据期望性能自动化配置PI参数的方法,设计在线控制器。
【专利说明】云游戏中虚拟GPU资源自主管理与控制方法
【技术领域】
[0001] 本发明涉及虚拟GPU管理和控制方法,具体地,涉及云游戏中虚拟GPU资源自主管 理与控制方法。
【背景技术】
[0002] 云游戏是以云计算为基础的游戏方式,在云游戏的运行模式下,所有游戏都在服 务器端运行,并将渲染完毕后的游戏画面压缩后通过网络传送给用户。在云游戏的概念中, 玩家的游戏客户端被看作为瘦客户端,玩家在没有高端处理器和显卡的条件下,依然可以 方便的玩新游戏。云游戏可依赖合理的资源分配实现经济利益的最大化,但这要解决资源 调度和管理方面的难题。
[0003] 当前,有一种自适应的虚拟GPU资源调度方案vGASA。该方案运行在虚拟化环境 中,利用GPU虚拟化技术实现资源的共享。调度虚拟化资源所面临的一个挑战是,如何在存 在运行时间(如CPU、GPU执行时间)不确定的情况下,让调度方案的设计拥有鲁棒性。为 了克服这一挑战,vGASA使用了基于线性单输入单输出模型(SIS0)的反馈控制方法,其中 的SIS0使用模型拟合技术离线建立。
[0004] 但是,在不确定、大规模、复杂的云环境中,这种模型和控制器的离线设计不能满 足快速自动化设计的需求,同时也不能满足真实云游戏服务的可靠性需求,原因有以下几 占·
[0005] (1)这种离线设计使用试验性质的PI控制调节方法,需要进行大量的实验来达到 系统期望的性能;
[0006] (2)未知的变化可能导致系统的性能降级,这会使整个系统(包括模型和控制器) 需要被重新设计;
[0007] (3)在综合的虚拟化环境中,手工的离线设计将花费大量的时间在日常的大数量 的主机和虚拟机的操作上;
[0008] (4)给定的控制器只能在主机和虚拟机的配置是特定不变的情况下发挥作用,而 在在线的云游戏平台中,经常会出现虚拟机迁移的动态云环境现象。
[0009] 因此,需要设计一种自动化管理虚拟GPU资源的框架,以减少在系统管理中的人 为误操作,从而提供可靠的云游戏服务。
【发明内容】
[0010] 针对现有技术中的缺陷,本发明的目的是提供一种云游戏中虚拟GPU资源自主管 理与控制方法。
[0011] 本发明主要涉及三个主要的发明点:Aut〇-VGPU框架,基于LASSO的降维算法,PI 控制器参数自动配置算法。
[0012] Auto-vGPU框架是系统的整体架构,使用基于LASSO的降维算法,对运行在虚拟机 中的游戏,在线学习设计一种低维模型,并运用PI调节器的自动化调节理论,实现在线自 动配置控制器的参数,Auto-vGPU是一种新型的自动化管理GPU资源,提供可靠云游戏服务 的架构。
[0013] 基于LASSO的降维算法,主要用以选择关键指标数据作为系统输入,支持 Auto-vGPU框架拟合低维的输入输出模型。
[0014] PI控制器参数自动配置算法,主要用以自动控制VGASA模块中的参数配置,减少 人工操作,支持Auto-vGPU框架在动态复杂的云环境中保持良好的性能。
[0015] 通过这3个发明点的共同作用,我们能够得到的效果为:在动态的虚拟机操作环 境中,在无需人工干预的条件下,Auto-vGPU能够自动管理虚拟化的GPU资源。通过我们的 实验可以看出,用于测试的工作负载的FPS波动范围都很小,仅从29到30,并且当有新的工 作负载加入时,Auto-vGPU框架能够维持原先已有工作负载的性能以及它们占有的资源,同 时,对新工作负载的最相关输入设置相应的睡眠时间,不会严重影响到其他工作负载的运 行。这些都说明,我们的框架具有良好的可靠性和可扩展性。
[0016] 本发明采用的技术方案如下:
[0017] 根据本发明提供的一种云游戏中虚拟GPU资源自主管理与控制方法,包括:
[0018] 构建 Auto-vGPU 框架;
[0019] 使用基于LASS0的降维算法以选择关键指标数据作为系统输入,来支持 Auto-vGPU框架拟合低维的输入输出模型;
[0020] 利用PI控制器参数自动配置算法,以自动控制Auto-vGPU框架中vGASA模块中的 参数配置,减少人工操作,支持Auto-vGPU框架在动态复杂的云环境中保持良好的性能;
[0021] 其中,Auto-vGPU框架包括:传感器模块、建模模块、vGASA模块、自控配置模块;
[0022] 传感器模块用于收集操作系统和应用的参数,并将所述操作系统和应用的参数集 成为数据集发送到建模模块;其中,所述操作系统和应用的参数包括GPU的执行时间、CPU 的执行时间、睡眠时间、帧率FPS ;
[0023] 建模模块用于自动化分析传感器模块传来的数据集,合成一个输入输出模型,该 输入输出模型用于捕获游戏应用性能和系统资源之间的关系;
[0024] vGASA模块包括监视器、调度控制器、调度程序、虚拟机列表和图形API分析器。监 视器和调度程序包含各个虚拟机对应的代理,监视器将虚拟机的实时性能输送到调度控制 器,调度控制器从所有运行的虚拟机中获取反馈的性能数据,然后发送命令触发自控配置 模块工作;图形API分析器预测GPU命令的执行代价;虚拟机列表记录当前正在运行的虚 拟机,从而将所有运行着的虚拟机编入索引;当一个新的虚拟机启动时,该新的虚拟机自动 被添加到vGASA模块的虚拟机列表中;vGASA模块截取虚拟机发送给主机图形函数库的库 调用;若某个游戏客户端应用调用GPU的API,此调用会被重定向到Auto-vGPU框架,并根 据当前所有运行中的虚拟机的FPS,进行资源的调度;
[0025] 自控配置模块用于自动控制vGASA模块中的参数配置。
[0026] 优选地,通过如下方式建立传感器模块:
[0027] 方式(1):针对操作系统性能指标,封装一个命名为Request的函数,以用于获取 操作系统的参数,操作系统的参数包括GPU的执行时间、CPU的执行时间,从而计算不同游 戏在固定的时间周期内所占用的资源量;
[0028] 方式(2):针对游戏运行性能指标,获取游戏客户端内部的参数数据,游戏客户端 内部的参数数据包括睡眠时间、帧率,将游戏客户端内部的参数数据发送到建模模块做进 一步的分析。
[0029] 优选地,为了简化输入输出模型,只选择所述数据集中的关键指标测量数据作为 输入,并使用降维方法建立低维的输入输出模型,更具体地说,输入输出模型的建立使用了 能够实现降维的LARS-LASS0方法,从而实现选择关键指标测量数据作为输入的功能。
[0030] 优选地,建立低维的输入输出模型的过程中包括离线模型的分析,具体实现过程 如下:
[0031] 使用库干预方法,即在GPU计算模型的环路中插入一个Sle印函数,这样,通过 Sleep函数调整各个虚拟机的睡眠时间,来控制游戏的帧率;
[0032] 通过下式(1)算出睡眠时间Tsleep,式(1)中帧率F已知:
【权利要求】
1. 一种云游戏中虚拟GPU资源自主管理与控制方法,其特征在于,包括: 构建Auto-vGPU框架; 使用基于LASSO的降维算法以选择关键指标数据作为系统输入,来支持Auto-vGPU框 架拟合低维的输入输出模型; 利用PI控制器参数自动配置算法,以自动控制Auto-vGPU框架中vGASA模块中的参数 配置,减少人工操作,支持Auto-vGPU框架在动态复杂的云环境中保持良好的性能; 其中,Auto-vGPU框架包括:传感器模块、建模模块、vGASA模块、自控配置模块; 传感器模块用于收集操作系统和应用的参数,并将所述操作系统和应用的参数集成为 数据集发送到建模模块;其中,所述操作系统和应用的参数包括GPU的执行时间、CPU的执 行时间、睡眠时间、帧率FPS ; 建模模块用于自动化分析传感器模块传来的数据集,合成一个输入输出模型,该输入 输出模型用于捕获游戏应用性能和系统资源之间的关系; vGASA模块包括监视器、调度控制器、调度程序、虚拟机列表和图形API分析器。监视器 和调度程序包含各个虚拟机对应的代理,监视器将虚拟机的实时性能输送到调度控制器, 调度控制器从所有运行的虚拟机中获取反馈的性能数据,然后发送命令触发自控配置模块 工作;图形API分析器预测GPU命令的执行代价;虚拟机列表记录当前正在运行的虚拟机, 从而将所有运行着的虚拟机编入索引;当一个新的虚拟机启动时,该新的虚拟机自动被添 加到vGASA模块的虚拟机列表中;vGASA模块截取虚拟机发送给主机图形函数库的库调用; 若某个游戏客户端应用调用GPU的API,此调用会被重定向到Auto-vGPU框架,并根据当前 所有运行中的虚拟机的FPS,进行资源的调度; 自控配置模块用于自动控制vGASA模块中的参数配置。
2. 根据权利要求1所述的云游戏中虚拟GPU资源自主管理与控制方法,其特征在于,通 过如下方式建立传感器模块: 方式(1):针对操作系统性能指标,封装一个命名为Request的函数,以用于获取操作 系统的参数,操作系统的参数包括GPU的执行时间、CPU的执行时间,从而计算不同游戏在 固定的时间周期内所占用的资源量; 方式(2):针对游戏运行性能指标,获取游戏客户端内部的参数数据,游戏客户端内部 的参数数据包括睡眠时间、帧率,将游戏客户端内部的参数数据发送到建模模块做进一步 的分析。
3. 根据权利要求1所述的云游戏中虚拟GPU资源自主管理与控制方法,其特征在于, 为了简化输入输出模型,只选择所述数据集中的关键指标测量数据作为输入,并使用降维 方法建立低维的输入输出模型,更具体地说,输入输出模型的建立使用了能够实现降维的 LARS-LASSO方法,从而实现选择关键指标测量数据作为输入的功能。
4. 根据权利要求3所述的云游戏中虚拟GPU资源自主管理与控制方法,其特征在于,建 立低维的输入输出模型的过程中包括离线模型的分析,具体实现过程如下: 使用库干预方法,即在GPU计算模型的环路中插入一个Sleep函数,这样,通过Sleep 函数调整各个虚拟机的睡眠时间,来控制游戏的帧率; 通过下式⑴算出睡眠时间TslMP,式⑴中帧率F已知: Cl) 1000 其中,7是当帧率F满足期望值时每一帧显示的时间,和Tgpu分别是一个周期内 r CPU和GPU的执行时间;计算出睡眠时间Tsleep后,Sle印函数被调用,让虚拟机睡眠 Tsleep长 的时间; 定义
羑示睡眠时间,得到线性模型如式(2): Yi = ui; (2)
每个虚拟机的睡眠时间取决于GPU计算模型环路中的Sleep函数;对于所有的游戏,有 大量的函数在虚拟机中运行;但是,睡眠哪一函数会影响到虚拟机的图像性能是不确定的; 为了不失一般性,假设有η个函数作为备选,使用一个线性组合来近似表示 Ui,如式(3)所 示: (3) 其中,表示回归系数,?·· %<为系统中对应各个函数的输入。
5. 根据权利要求3所述的云游戏中虚拟GPU资源自主管理与控制方法,其特征在于,建 立低维的输入输出模型的过程中包括使用基于LASSO的降维算法对模型进行降维,具体步 骤如下: 步骤A1 :收集作为输入测量值的集合的Direct3D库中函数的睡眠时间I? j = 1,···,η,1,45和作为输出测量值的集合的帧率yi(t+k);其中,i表示第i个工作负载,j 表示第j个函数,k表示第k组测量值集合,η表示共有η个函数,m表示共有m组测量值; 步骤A2 :对输入测量值的集合+ 和输出测量值的集合+岣进行标准化,使 + 〇满足零均值和单位长度,yi(t+k)满足零均值; 步骤A3 :对回归系数绝对值之和进行约束,使一部分计算得到的回归系数变为0,从而 达到降维的目的。
6. 根据权利要求1所述的云游戏中虚拟GPU资源自主管理与控制方法,其特征在于,在 vGASA模块中使用PI控制器。
7. 根据权利要求1所述的云游戏中虚拟GPU资源自主管理与控制方法,其特征在于,利 用PI控制器参数自动配置算法,以自动控制Auto-vGPU框架中vGASA模块中的参数配置, 具体实现过程如下: 确保闭环控制的全部极点都在单位圆内,在PI控制器内使用整数,使用PI控制器参数 自动配置算法,计算出恰当的参数卜和匕; PI控制器的自我配置采用极点配置法; 步骤B1 :基于期望的控制性能,计算出闭环系统的期望极点; 步骤B2 :构建闭环系统期望的特征多项式; 步骤B3 :算出kp和ki,以使期望特征多项式相似于模型特征多项
这一 步的完成需要将期望特征多项式的系数z转变为同模型特征多项式系数z -样的形式; 接下来,分析系统的稳态误差;开环转换函数记作?;(Ζ);当z = 1时,系统变为I型系 统,此时如果系统是稳定的,那么受控变量FPS会收敛到阶跃响应。
【文档编号】G06F9/455GK104216783SQ201410412054
【公开日】2014年12月17日 申请日期:2014年8月20日 优先权日:2014年8月20日
【发明者】姚建国, 徐鑫, 管海兵 申请人:上海交通大学