CN102890643A - 基于应用效果即时反馈的显卡虚拟化下的资源调度系统 - Google Patents
基于应用效果即时反馈的显卡虚拟化下的资源调度系统 Download PDFInfo
- Publication number
- CN102890643A CN102890643A CN2012102618620A CN201210261862A CN102890643A CN 102890643 A CN102890643 A CN 102890643A CN 2012102618620 A CN2012102618620 A CN 2012102618620A CN 201210261862 A CN201210261862 A CN 201210261862A CN 102890643 A CN102890643 A CN 102890643A
- Authority
- CN
- China
- Prior art keywords
- video card
- scheduled
- resource
- executing device
- programming interfaces
- 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
- 230000000694 effects Effects 0.000 title claims abstract description 17
- 238000000034 method Methods 0.000 claims abstract description 89
- 230000008569 process Effects 0.000 claims description 48
- 238000012545 processing Methods 0.000 claims description 24
- 238000004891 communication Methods 0.000 claims description 22
- 238000005516 engineering process Methods 0.000 claims description 14
- 230000001105 regulatory effect Effects 0.000 claims description 10
- 238000009877 rendering Methods 0.000 claims description 7
- 238000012986 modification Methods 0.000 claims description 6
- 230000004048 modification Effects 0.000 claims description 6
- 238000012544 monitoring process Methods 0.000 claims description 4
- 238000009434 installation Methods 0.000 claims description 3
- 238000005259 measurement Methods 0.000 claims description 3
- 238000011022 operating instruction Methods 0.000 claims description 3
- 230000004913 activation Effects 0.000 claims description 2
- 238000001994 activation Methods 0.000 claims description 2
- 230000005540 biological transmission Effects 0.000 abstract description 3
- 230000003111 delayed effect Effects 0.000 abstract 1
- 230000008859 change Effects 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 201000004569 Blindness Diseases 0.000 description 1
- 230000001133 acceleration Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 230000006855 networking Effects 0.000 description 1
- 238000011378 penetrating method Methods 0.000 description 1
- 230000000737 periodic effect Effects 0.000 description 1
- 238000012552 review Methods 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
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/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/5011—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
-
- 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/5061—Partitioning or combining of resources
- G06F9/5077—Logical partitioning of resources; Management or configuration of virtualized resources
-
- 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3836—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
-
- 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/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
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T1/00—General purpose image data processing
- G06T1/20—Processor architectures; Processor configuration, e.g. pipelining
-
- 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/45575—Starting, stopping, suspending or resuming virtual machine instances
-
- 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/30072—Arrangements for executing specific machine instructions to perform conditional operations, e.g. using predicates or guards
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09G—ARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
- G09G5/00—Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
- G09G5/36—Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators characterised by the display of a graphic pattern, e.g. using an all-points-addressable [APA] memory
- G09G5/363—Graphics controllers
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Debugging And Monitoring (AREA)
- Processing Or Creating Images (AREA)
- Stored Programmes (AREA)
Abstract
本发明提供一种基于应用程序即时效果反馈的在虚拟机间的物理显卡资源调度系统和方法。本发明描述的系统通过函数钩子的方法在宿主机物理显卡指令发送器和宿主机物理显卡应用程序接口之间插入调度执行器,延迟宿主机物理显卡指令发送器中指令和数据的发送,同时监控虚拟机内显卡应用程序相关的显示性能情况和物理显卡资源使用情况,进而提供反馈给任何基于时间或时序的显卡资源调度算法。本发明无需对虚拟机应用程序、宿主机操作系统、虚拟机操作系统、显卡驱动、虚拟机管理器进行任何修改。本发明无需暂停机器的运行,在重大提升虚拟机间显卡资源调度能力时运行时整体性能损耗低于5%。
Description
技术领域
本发明涉及的是一种应用于计算机应用技术领域的系统及方法,尤其是一种基于应用程序即时效果反馈的在虚拟机间的物理显卡资源(Graphics Processing Unit,GPU)调度系统方法,具体涉及基于应用效果即时反馈的显卡虚拟化下的资源调度系统。
背景技术
显卡虚拟化技术(GPU Virtualization)正在被广泛应用于执行显卡计算(GPU Computing)的数据中心当中,这些计算包括但不限于:云游戏(Cloud Gaming),视频渲染(VideoRendering)和通用显卡计算(General Purpose GPU Computing)。
但是目前缺少一种有效的虚拟机间调度物理显卡资源的系统和方法,从而能够使并行运行于多个虚拟机内部的各个应用程序获得较好的显卡加速效果同时有高资源使用率。现有的显卡穿透方法(Video Graphics Array Passthrough,VGA Passthrough)将每块可用物理显卡赋予到运行的每个虚拟机当中。然而这种方法的缺点是:第一,一般商用主板仅支持两到三块显卡,因此需要特制的主板来同时运行多个需要显卡支持的虚拟机;第二,对每个虚拟机内部,在其运行期间通常不能用尽其拥有的物理显卡资源,而在这种技术中,剩余的显卡资源不能赋予给其它虚拟机,因此造成物理显卡资源的浪费。
另外一种办法是利用显卡半虚拟化技术(GPU Paravirtualization)使得多个虚拟机可以共享一块或多块物理显卡。在2009年SIGOPS Operating Systems Review的Volume43Issue3中发表了一篇名为GPU Virtualization on VMware's Hosted I/O Architecture的论文提出了这种方法和系统。之后,在2008年Multimedia Computing and Networking上Bautin M.等人在Graphic Engine Resource Management提出了物理显卡资源在多个应用间均分的调度策略。随后在2011年Usenix ATC上,Kato等人在Timegraph:GPU scheduling for real-timemulti-tasking environments论文中提出了通过引入显卡资源使用优先级并修改操作系统显卡驱动的方法来提升物理显卡加速关键用户程序的能力。
上述两个方法能够最大化利用可用的物理显卡资源,同时为多个虚拟机提供显卡加速的能力。然而,这些方法的缺点是:一方面,需要修改操作系统或者显卡驱动,当应用于虚拟机时甚至需要修改虚拟机监控器(Hypervisor)或虚拟机内的应用程序(Guest Application),因此存在开发难度大的问题;另一方面,由于已有方法不能获得被加速的Guest Application运行效果反馈数据,因此已有物理GPU资源的调度系统和方法存在盲目性,获得的资源调度效果一般。
发明内容
本发明针对现有技术存在的上述不足,提供一种基于应用程序即时效果反馈的在虚拟机间的物理显卡资源调度系统和方法。传统GPU虚拟化技术将虚拟机内的显卡命令和数据通过宿主机物理显卡指令发送器(GPU HostOps Dispatch)发送到宿主机物理显卡应用程序接口(HostGPUAPI)。在此基础上,本发明提供的方法通过函数钩子的方法在GPU HostOps Dispatch和Host GPUAPI之间插入调度执行器(Agent),延迟GPU HostOps Dispatch中指令和数据的发送,同时监控GuestApplication相关的显示性能情况和物理显卡资源使用情况,进而提供反馈给任何基于时间或时序的显卡资源调度算法。基于时间或时序的显卡资源调度算法是指显卡资源的开始使用、结束使用和使用持续均部分或完全基于绝对或相对时间。
此外,本发明描述的系统通过调度控制器(Scheduling Controller)即时接受用户启用或停止各Agent的决定,并对所采用调度方法的选择和参数改变,并据此即时改变各Agent的相应参数设置。同时Scheduling Controller显示或记录当前物理显卡资源调度和使用情况,各虚拟机内应用程序显卡资源使用情况等一项或多项内容。
本发明描述的系统和方法无需修改宿主机操作系统、宿主机显卡驱动、Hypervisor、虚拟机操作系统、虚拟机显卡驱动或虚拟机内的应用程序。此外,本发明描述的系统和方法在运行时带来的性能开销低于5%,启用或停止不致招致显著的虚拟机暂停时间(仅需毫秒级暂停时间)。
本发明是通过以下技术方案实现的:
根据本发明的一个方面,提供一种基于应用效果即时反馈的显卡虚拟化下的资源调度系统,包括宿主机物理显卡指令发送器、宿主机物理显卡应用程序接口,还包括如下模块:
调度执行器,其连接在宿主机物理显卡指令发送器与宿主机物理显卡应用程序接口之间;
调度控制器,其连接所述调度执行器,
其中,调度控制器接收用户命令,并将用户命令传递给调度执行器;调度执行器接收来自于调度控制器的用户命令,监控应用程序运行状态,并将应用程序显卡状态结果传输到调度控制器,同时根据调度控制器指定使用的调度算法,周期性/事件性计算要满足最低应用程序显卡状态所需的延迟时间,延迟宿主机物理显卡指令发送器中指令和数据发送到宿主机物理显卡应用程序接口;调度控制器接收并处理显示来自于调度执行器的调度结果和调度状态。
优选地,调度控制器接收用户命令,解析其中对各调度执行器的操作、调度算法的配置和相应参数,并将用户命令传递给调度执行器模块、接收来自于调度执行器模块的状态结果并显示给用户。
优选地,所述的调度控制器包括如下模块:
控制台,其用于接收用户命令,这些用户命令输入关于调度算法的配置和相应参数,并从调度通信器中获取调度结果并显示给用户;
调度通信器,其用于负责调度控制器与一个或多个调度执行器的通信,负责安装/卸载调度执行器、将用户命令传递给调度执行器、接收来自于调度执行器的应用程序显卡状态结果。
优选地,所述的调度执行器包括如下模块:
调度器,其用于接收用户命令中关于调度算法及其参数配置的指定,并负责查找相应调度算法的位置,配置调度算法并运行相应的调度算法,按需延迟宿主机物理显卡指令发送器中指令和数据发送到宿主机物理显卡应用程序接口;
应用程序显卡状态监控器,其用于采集来自宿主机物理显卡应用程序接口的显卡状态,并由此生成应用程序显卡状态结果,同时将应用程序显卡状态结果反馈给调度器,并传递给调度控制器中的调度通信器。
优选地,所述的应用程序显卡状态包括:与应用程序种类相关的显卡物理状态和/或逻辑状态测度。物理状态测度如显卡的负载率(GPU Load)、温度、电压等。逻辑状态测度如对于计算机三维游戏则相应显卡状态测度为每秒帧数(Frames per second,FPS),对于计算机通用GPU运算则相应显卡状态测度为计算数每秒(Operations per second,Ops)、本应用程序的显卡负载率(Application GPU Usage)等等。
根据本发明的一个方面,提供一种根据本发明所述的资源调度系统的显卡虚拟化下的显卡资源调度方法,通过函数钩子的方法在宿主机物理显卡指令发送器和宿主机物理显卡应用程序接口之间插入调度执行器(Agent),延迟宿主机物理显卡指令发送器中指令和数据发送到宿主机物理显卡应用程序接口,同时监控应用程序相关的显示性能情况和物理显卡资源使用情况,进而提供反馈给任何基于时间或时序的显卡资源调度算法,无需对虚拟机应用程序、宿主机操作系统、虚拟机操作系统、显卡驱动、虚拟机管理器进行任何修改且性能损耗低。
优选地,所述方法具体过程为:一个或多个虚拟机启动完成后,在客户需要安装所述资源调度系统时,通过应用程序运行的方法由调度控制器查找或按用户指定进程将调度执行器绑定到相应虚拟机;然后调度控制器中的调度通信器与各个被绑定的调度执行器建立通信;在对显卡资源进行调度的时候,客户发出指令选择调度算法(可以是第三方开发的调度算法)并提供相应参数,控制台在收到客户指令后由调度通信器将用户命令分发给各个调度执行器;调度执行器根据用户命令配置运行所选显卡资源调度算法,延迟宿主机物理显卡指令发送器中指令和数据发送到宿主机物理显卡应用程序接口;与此同时,应用程序显卡状态监控器采集来自宿主机物理显卡应用程序接口的显卡状态,并由此生成应用程序显卡状态,随后周期性/事件性将应用程序显卡状态结果反馈给调度器,并传递给调度控制器中的调度通信器;在客户需要卸载所述资源调度系统时,客户通过调度控制器发出卸载指令,控制台在收到客户指令后由调度通信器将用户命令分发给各个调度执行器,调度执行器收到卸载指令后停止自身运行。
优选地,所述的将调度执行器绑定到相应虚拟机的步骤,具体为:
步骤1.1,根据用户指定信息查找指定虚拟机图像渲染进程(根据虚拟机管理器设计不同,这些进程也可以是虚拟机进程),或选取全部相关虚拟机图像渲染进程,对这些中的每一个虚拟机进程执行步骤1.2到步骤1.6;
步骤1.2,在该进程中创建新的线程(Thread),并在其中加载调度执行器;
步骤1.3,访问调度执行器入口,初始化调度执行器;
步骤1.4,查找该进程加载的宿主机物理显卡应用程序接口地址集合,修改其中每一个宿主机物理显卡应用程序接口地址处的代码,使其指向调度执行器中相应处理函数的入口并保存各寄存器内容,使得进程以后在每次使用宿主机物理显卡应用程序接口时会运行处理函数(Handlers);
步骤1.5,设定处理函数返回地址为旧的宿主机物理显卡应用程序接口地址之后运行指令,恢复各寄存器内容,使得处理函数运行结束后能正确执行原有宿主机物理显卡应用程序接口;
步骤1.6,该线程不得结束。
优选地,所述的延迟宿主机物理显卡指令发送器中指令和数据发送到宿主机物理显卡应用程序接口的步骤,具体为:
-若使用猜测技术,则包含如下子步骤:
步骤2.1a,在资源调度算法指定的处理函数中,停止计时本次中央处理器(CentralProcessing Unit,CPU)消耗时间,开始计时物理显卡资源本次消耗时间;
步骤2.2a,根据物理显卡资源消耗时间历史记录猜测物理显卡资源本次消耗时间;
步骤2.3a,暂停中央处理器执行一段时间,这段时间的长度为调度算法根据中央处理器本次消耗时间和物理显卡资源本次消耗时间计算而成;
步骤2.4a,调用原有宿主机物理显卡应用程序接口;
步骤2.5a,停止计时物理显卡资源本次消耗时间,更新到物理显卡资源消耗时间历史记录;
-若不使用猜测技术,则包含如下子步骤:
步骤2.1b,在资源调度算法指定的处理函数中,停止计时本次中央处理器消耗时间,开始计时物理显卡资源本次消耗时间;
步骤2.2b,调用原有宿主机物理显卡应用程序接口;
步骤2.3b,停止计时物理显卡资源本次消耗时间;
步骤2.4b,暂停中央处理器执行一段时间,这段时间的长度为调度算法根据中央处理器本次消耗时间和物理显卡资源本次消耗时间计算而成。
优选地,所述的应用程序显卡状态监控器采集来自宿主机物理显卡应用程序接口的显卡状态的步骤,具体为:
步骤3.1,在资源调度算法指定的处理函数中,调用宿主机物理显卡应用程序接口、操作系统内核或显卡驱动提供的接口按照资源调度算法需求和用户命令采集显卡状态,如显卡的负载率(GPU Load)、温度、电压、FPS、Ops、本应用程序的显卡负载率等;
步骤3.2,在资源调度算法指定的处理函数中,调用原有宿主机物理显卡应用程序接口;
优选地,所述的生成应用程序显卡状态的步骤,具体为:
步骤4.1,用户指定状态汇报频率,在调度执行器中,获取该状态汇报频率;
步骤4.2,当状态汇报时间点到来时,调度执行器中的应用程序显卡状态监控器将累计的状态结果传送到调度控制器中的调度通信器中;
步骤4.3,调度执行器清空自身的状态结果缓冲区;
优选地,所述的调度执行器收到卸载指令后停止自身运行的步骤,具体为:
步骤5.1,每一个调度执行器收到卸载指令后,开始从步骤5.2到步骤5.3卸载过程;
步骤5.2,恢复该进程加载的宿主机物理显卡应用程序接口地址集合,修改其中每一个宿主机物理显卡应用程序接口地址处的代码为原应用程序接口地址处内容,使得进程以后在每次使用宿主机物理显卡应用程序接口时会运行原应用程序接口逻辑;
步骤5.3,将调度执行器绑定到相应虚拟机过程中插入的线程结束,从而卸载调度执行器;
优选地,所述的资源调度算法具体包括如下步骤:
步骤6.1,对于虚拟机群VM1,VM2…到VMn,每个虚拟机的调度执行器中的调度器解析用户方法配置,得到需要满足的最小显卡的负载率、最小每秒帧数(本专利适用范围不限于计算机游戏,对于其它显卡应用,可以针对不同的状态测量)、用户指定的检测周期T;
步骤6.2,在运行期间,处理函数会被多次调用,对于每次处理函数调用,使用猜测技术执行步骤2.1a到步骤2.5a;或不使用猜测技术执行步骤2.1b到步骤2.4b;
步骤6.3,对于每一个T周期,如果某个虚拟机VMm不满足状态测量,则寻找并降低拥有最大最小每秒帧数的虚拟机的最小每秒帧数设定;降低每秒帧数的数量取决于最近若干帧的应用程序的显卡负载率(Application GPU Load),每秒帧数和最近若干帧的应用显卡的负载率为线性关系;
步骤6.4,对于每一个T周期,如果物理显卡使用率不满足最小显卡负载率,则提高所有虚拟机的最小每秒帧数设定;提高每秒帧数的数量取决于最近若干帧的应用程序的显卡负载率,每秒帧数和最近若干帧的应用程序的显卡负载率为线性关系;
步骤6.5,步骤6.2到步骤6.4保持有效,直到用户指定方法结束或更换方法或卸载调度执行器。
在本发明的一个优选的具体实施方式中,每台虚拟机对应的GPU HostOps Dispatch在本发明中会被安装一个独自拥有的调度执行器。全局唯一的调度控制器与一个或多个调度执行器相连。本发明相对于现有技术具有以下优点:首先,无需对虚拟机应用程序、宿主机操作系统、虚拟机操作系统、显卡驱动、虚拟机管理器进行任何修改。已有系统通常需要大量改动以上部分中的一个来实现相近的调度能力,这种修改会导致已有系统必须不断进化来兼容最新的应用程序、操作系统或显卡驱动等。其次,本发明在安装或卸载时无需暂停机器的运行,这种特性使得本系统易于部署在商业系统中,尤其适用于需要达到7×24小时可用性的商业服务器上。最后,本发明在重大提升虚拟机间显卡资源调度能力时运行时性能极高,整体性能损耗低于5%。
附图说明
图1为本发明模块示意图。
图2为本发明架构示意图。
具体实施方式
下面对本发明的实施例作详细说明,本实施例在以本发明技术方案为前提下进行实施,给出了详细的实施方式和具体的操作过程,但本发明的保护范围不限于下述的实施例。
实施例
如图2所示,根据本发明提供的基于应用效果即时反馈的显卡虚拟化下的资源调度系统,包括:调度执行器模块和调度控制器模块,其中:调度控制器模块与调度执行器模块相连接,传送用户命令到调度执行器当中并接收其返回的显卡状态结果。调度执行器被插入到宿主机物理显卡指令发送器GPU HostOps Dispatch和宿主机物理显卡应用程序接口Host GPU API之间,延迟相应调用和数据的向下传输。调度执行器模块同时负责利用宿主机物理显卡应用程序接口Host GPU API采集显卡物理状态和/或逻辑状态测度。本实施例针对运行于虚拟机中的计算机游戏,因此采集的物理状态、逻辑状态包括:Application GPU Load和FPS。
如图1所示,所述的调度控制器模块包括:控制台子模块、调度通信器子模块,其中:控制台子模块用于接收用户命令,这些命令输入关于调度算法的配置和相应参数。此外,控制台子模块周期性/事件性从调度通信器子模块中获取调度结果并显示给用户。调度通信器子模块负责调度控制器模块与一个或多个调度执行器模块的通信,负责安装/卸载调度执行器、将用户命令传递给调度执行器子模块等操作。所述的事件性指目标事件一次或多次发生,但发生的时间间隔并不恒定,事件在时间上的分布在数学上可表达为非周期性质的时间序列。
如图1所示,所述的调度执行器模块包括:调度器子模块、应用程序显卡状态监控器子模块,其中:调度器子模块接收用户命令中关于调度算法及其参数配置的指定,并负责按照配置运行相应的调度算法,按需延迟GPU HostOps Dispatch中指令和数据发送到Host GPU API。应用程序显卡状态监控器子模块负责采集来自Host GPU API的显卡状态,并由此生成应用程序显卡状态,随后周期性/事件性将应用程序显卡状态结果反馈给调度器子模块,并传递给调度控制器模块中的调度通信器子模块。
所述的应用程序显卡状态指与应用程序种类相关的显卡物理状态和/或逻辑状态测度。在本实施例中,采集的物理状态、逻辑状态包括:Application GPU Load和FPS。
本实施例针对VMWare Player4.0虚拟机管理器系统,因此指定虚拟机图像渲染进程即虚拟机进程。在本实施例中,仅考虑用户选取全部相关虚拟机图像渲染进程情况。
本实施例应用的基于应用效果即时反馈的显卡虚拟化下的资源调度方法被配置为:最小GPU Load=80%、最小FPS=30、用户指定的检测周期T=1秒。
本实施例通过以下方式进行工作:
步骤一,用户选取全部相关虚拟机进程,对这些中的每一个虚拟机进程执行步骤二到步骤六:
步骤二,在该进程中创建新的线程(Thread),并在其中加载调度执行器模块。
步骤三,访问调度执行器模块入口,初始化调度执行器模块。
步骤四,查找该进程加载的宿主机物理显卡应用程序接口地址集合,修改其中每一个宿主机物理显卡应用程序接口地址处的代码,使其指向调度执行器模块中相应处理函数的入口并保存各寄存器内容。使得进程以后在每次使用宿主机物理显卡应用程序接口时会运行处理函数(Handlers)。
步骤五,设定处理函数返回地址为旧的宿主机物理显卡应用程序接口地址之后运行指令,恢复各寄存器内容,使得处理函数运行结束后能正确执行原有宿主机物理显卡应用程序接口。
步骤六,该线程不得结束。
通过以上步骤将调度执行器模块绑定到相应虚拟机,再经过调度控制器模块中的调度通信器子模块与各个被绑定的调度执行器模块建立通信后,调度执行器模块可传送状态结果到调度控制器模块,并对调度控制器模块发出的用户命令进行相应。当之后某一时刻需要对显卡资源进行调度时,具体过程如下:
步骤1,对于虚拟机群VM1,VM2…到VMn,每个虚拟机的调度执行器模块中的调度器模块解析用户算法配置,得到需要满足的最小GPU Load=80%、最小FPS=30、用户指定的检测周期T=1秒。
步骤2,在运行期间,Handlers会被多次调用,用于显卡状态采集和延迟GPU HostOpsDispatch中指令和数据发送到Host GPU API,对于每次Handlers调用,执行步骤2.1到步骤2.6。
步骤2.1,在资源调度算法指定的Handlers中,停止计时本次CPU消耗时间,
步骤2.2利用Host GPU API和显卡驱动接口,测量本次Application GPU Load和当前T时间内的FPS,开始计时GPU本次消耗时间。
步骤2.3,根据GPU消耗时间历史记录猜测GPU本次消耗时间。
步骤2.4,暂停CPU执行一段时间,这段时间的长度为调度算法根据CPU本次消耗时间和GPU本次消耗时间计算而成。
步骤2.5,调用原有宿主机物理显卡应用程序接口。
步骤2.6,停止计时GPU本次消耗时间,更新到GPU消耗时间历史记录。
步骤3,对于每一个T周期,如果某个虚拟机VMm不满足最小FPS,则寻找并降低拥有最大最小FPS的虚拟机的最小FPS设定。降低FPS的数量取决于最近若干帧的ApplicationGPU Load,FPS和最近若干帧的Application GPU Load为线性关系。
步骤4,对于每一个T周期,如果物理显卡使用率不满足最小GPU Load,则提高所有虚拟机的最小FPS设定。提高FPS的数量取决于最近若干帧的Application GPU Load,FPS和最近若干帧的Application GPU Load为线性关系。
步骤5,步骤2到步骤4保持有效,直到用户指定算法结束或更换算法或卸载调度执行器模块。
调度执行器模块卸载实施例如下:
步骤a,每一个调度执行器模块收到卸载指令后,开始从步骤b到步骤c卸载过程。
步骤b,恢复该进程加载的宿主机物理显卡应用程序接口地址集合,修改其中每一个宿主机物理显卡应用程序接口地址处的代码为原应用程序接口地址处内容。使得进程以后在每次使用宿主机物理显卡应用程序接口时会运行原应用程序接口逻辑。
步骤c,将调度执行器模块绑定到相应虚拟机过程中插入的线程结束,从而卸载调度执行器模块。
Claims (13)
1.一种基于应用效果即时反馈的显卡虚拟化下的资源调度系统,包括宿主机物理显卡指令发送器、宿主机物理显卡应用程序接口,其特征在于,还包括如下模块:
调度执行器,其连接在宿主机物理显卡指令发送器与宿主机物理显卡应用程序接口之间;
调度控制器,其连接所述调度执行器,
其中,调度控制器接收用户命令,并将用户命令传递给调度执行器;调度执行器接收来自于调度控制器的用户命令,监控应用程序运行状态,并将应用程序显卡状态结果传输到调度控制器,同时根据调度控制器指定使用的调度算法,周期性/事件性计算要满足最低应用程序显卡状态所需的延迟时间,延迟宿主机物理显卡指令发送器中指令和数据发送到宿主机物理显卡应用程序接口;调度控制器接收并处理显示来自于调度执行器的调度结果和调度状态。
2.根据权利要求1所述的基于应用效果即时反馈的显卡虚拟化下的资源调度系统,其特征在于,调度控制器接收用户命令,解析其中对各调度执行器的操作、调度算法的配置和相应参数,并将用户命令传递给调度执行器、接收来自于调度执行器的状态结果并显示给用户。
3.根据权利要求1所述的基于应用效果即时反馈的显卡虚拟化下的资源调度系统,其特征是,所述的调度控制器包括如下模块:
控制台,其用于接收用户命令,这些用户命令输入关于调度算法的配置和相应参数,并从调度通信器中获取调度结果并显示给用户;
调度通信器,其用于负责调度控制器与一个或多个调度执行器的通信,负责安装/卸载调度执行器、将用户命令传递给调度执行器、接收来自于调度执行器的应用程序显卡状态结果。
4.根据权利要求1所述的基于应用效果即时反馈的显卡虚拟化下的资源调度系统,其特征是,所述的调度执行器包括如下模块:
调度器,其用于接收用户命令中关于调度算法及其参数配置的指定,并负责查找相应调度算法的位置,配置调度算法并运行相应的调度算法,按需延迟宿主机物理显卡指令发送器中指令和数据发送到宿主机物理显卡应用程序接口;
应用程序显卡状态监控器,其用于采集来自宿主机物理显卡应用程序接口的显卡状态,并由此生成应用程序显卡状态结果,同时将应用程序显卡状态结果反馈给调度器,并传递给调度控制器中的调度通信器。
5.根据权利要求1所述的基于应用效果即时反馈的显卡虚拟化下的资源调度系统,其特征是,所述的应用程序显卡状态包括:与应用程序种类相关的显卡物理状态和/或逻辑状态测度。
6.一种根据上述任一权利要求所述的资源调度系统的显卡虚拟化下的显卡资源调度方法, 其特征在于,通过函数钩子的方法在宿主机物理显卡指令发送器和宿主机物理显卡应用程序接口之间插入调度执行器,延迟宿主机物理显卡指令发送器中指令和数据发送到宿主机物理显卡应用程序接口,同时监控应用程序相关的显示性能情况和物理显卡资源使用情况,进而提供反馈给任何基于时间或时序的显卡资源调度算法,无需对虚拟机应用程序、宿主机操作系统、虚拟机操作系统、显卡驱动、虚拟机管理器进行任何修改且性能损耗低。
7.根据权利要求6所述的显卡虚拟化下的显卡资源调度方法,其特征是,所述方法具体过程为:一个或多个虚拟机启动完成后,在客户需要安装所述资源调度系统时,通过应用程序运行的方法由调度控制器查找或按用户指定进程将调度执行器绑定到相应虚拟机;然后调度控制器中的调度通信器与各个被绑定的调度执行器建立通信;在对显卡资源进行调度的时候,客户发出指令选择调度算法并提供相应参数,控制台在收到客户指令后由调度通信器将用户命令分发给各个调度执行器;调度执行器根据用户命令配置运行所选显卡资源调度算法,延迟宿主机物理显卡指令发送器中指令和数据发送到宿主机物理显卡应用程序接口;与此同时,应用程序显卡状态监控器采集来自宿主机物理显卡应用程序接口的显卡状态,并由此生成应用程序显卡状态,随后周期性/事件性将应用程序显卡状态结果反馈给调度器,并传递给调度控制器中的调度通信器;在客户需要卸载所述资源调度系统时,客户通过调度控制器发出卸载指令,控制台在收到客户指令后由调度通信器将用户命令分发给各个调度执行器,调度执行器收到卸载指令后停止自身运行。
8.根据权利要求7所述的显卡虚拟化下的显卡资源调度方法,其特征是,所述的将调度执行器绑定到相应虚拟机的步骤,具体为:
步骤1.1,根据用户指定信息查找指定虚拟机图像渲染进程,或选取全部相关虚拟机图像渲染进程,对这些中的每一个虚拟机进程执行步骤1.2到步骤1.6;
步骤1.2,在该进程中创建新的线程,并在其中加载调度执行器;
步骤1.3,访问调度执行器入口,初始化调度执行器;
步骤1.4,查找该进程加载的宿主机物理显卡应用程序接口地址集合,修改其中每一个宿主机物理显卡应用程序接口地址处的代码,使其指向调度执行器中相应处理函数的入口并保存各寄存器内容,使得进程以后在每次使用宿主机物理显卡应用程序接口时会运行处理函数;
步骤1.5,设定处理函数返回地址为旧的宿主机物理显卡应用程序接口地址之后运行指令,恢复各寄存器内容,使得处理函数运行结束后能正确执行原有宿主机物理显卡应用程序接口;
步骤1.6,该线程不得结束。
9.根据权利要求6所述的显卡虚拟化下的显卡资源调度方法,其特征是,所述的延迟宿主机物理显卡指令发送器中指令和数据发送到宿主机物理显卡应用程序接口的步骤,具体为:
-若使用猜测技术,则包含如下子步骤:
步骤2.1a,在资源调度算法指定的处理函数中,停止计时本次中央处理器消耗时间,开始计时物理显卡资源本次消耗时间;
步骤2.2a,根据物理显卡资源消耗时间历史记录猜测物理显卡资源本次消耗时间;
步骤2.3a,暂停中央处理器执行一段时间,这段时间的长度为调度算法根据中央处理器本次消耗时间和物理显卡资源本次消耗时间计算而成;
步骤2.4a,调用原有宿主机物理显卡应用程序接口;
步骤2.5a,停止计时物理显卡资源本次消耗时间,更新到物理显卡资源消耗时间历史记录;
-若不使用猜测技术,则包含如下子步骤:
步骤2.1b,在资源调度算法指定的处理函数中,停止计时本次中央处理器消耗时间,开始计时物理显卡资源本次消耗时间;
步骤2.2b,调用原有宿主机物理显卡应用程序接口;
步骤2.3b,停止计时物理显卡资源本次消耗时间;
步骤2.4b,暂停中央处理器执行一段时间,这段时间的长度为调度算法根据中央处理器本次消耗时间和物理显卡资源本次消耗时间计算而成。
10.根据权利要求7所述的显卡虚拟化下的显卡资源调度方法,其特征是,所述的应用程序显卡状态监控器采集来自宿主机物理显卡应用程序接口的显卡状态的步骤,具体为:
步骤3.1,在资源调度算法指定的处理函数中,调用宿主机物理显卡应用程序接口、操作系统内核或显卡驱动提供的接口按照资源调度算法需求和用户命令采集显卡状态;
步骤3.2,在资源调度算法指定的处理函数中,调用原有宿主机物理显卡应用程序接口。
11.根据权利要求7所述的显卡虚拟化下的显卡资源调度方法,其特征是,所述的生成应用程序显卡状态的步骤,具体为:
步骤4.1,用户指定状态汇报频率,在调度执行器中,获取该状态汇报频率;
步骤4.2,当状态汇报时间点到来时,调度执行器中的应用程序显卡状态监控器将累计的状态结果传送到调度控制器中的调度通信器中;
步骤4.3,调度执行器清空自身的状态结果缓冲区。
12.根据权利要求7所述的显卡虚拟化下的显卡资源调度方法,其特征是,所述的调度执行器收到卸载指令后停止自身运行的步骤,具体为:
步骤5.1,每一个调度执行器收到卸载指令后,开始从步骤5.2到步骤5.3卸载过程;
步骤5.2,恢复该进程加载的宿主机物理显卡应用程序接口地址集合,修改其中每一个宿主机物理显卡应用程序接口地址处的代码为原应用程序接口地址处内容,使得进程以后在每次 使用宿主机物理显卡应用程序接口时会运行原应用程序接口逻辑;
步骤5.3,将调度执行器绑定到相应虚拟机过程中插入的线程结束,从而卸载调度执行器。
13.根据权利要求7所述的显卡虚拟化下的显卡资源调度方法,其特征是,所述的资源调度算法具体包括如下步骤:
步骤6.1,对于虚拟机群VM1,VM2…到VMn,每个虚拟机的调度执行器中的调度器解析用户方法配置,得到需要满足的最小显卡的负载率、最小每秒帧数、用户指定的检测周期T;
步骤6.2,在运行期间,处理函数会被多次调用,对于每次处理函数调用,使用猜测技术执行步骤2.1a到步骤2.5a;或不使用猜测技术执行步骤2.1b到步骤2.4b;
步骤6.3,对于每一个T周期,如果某个虚拟机VMm不满足状态测量,则寻找并降低拥有最大最小每秒帧数的虚拟机的最小每秒帧数设定;降低每秒帧数的数量取决于最近若干帧的应用程序的显卡负载率,每秒帧数和最近若干帧的应用显卡的负载率为线性关系;
步骤6.4,对于每一个T周期,如果物理显卡使用率不满足最小显卡的负载率,则提高所有虚拟机的最小每秒帧数设定;提高每秒帧数的数量取决于最近若干帧的应用程序的显卡负载率,每秒帧数和最近若干帧的应用程序的显卡负载率为线性关系;
步骤6.5,步骤6.2到步骤6.4保持有效,直到用户指定方法结束或更换方法或卸载调度执行器。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210261862.0A CN102890643B (zh) | 2012-07-26 | 2012-07-26 | 基于应用效果即时反馈的显卡虚拟化下的资源调度系统 |
PCT/CN2013/077457 WO2014015725A1 (zh) | 2012-07-26 | 2013-06-19 | 基于应用效果即时反馈的显卡虚拟化下资源调度系统、方法 |
US15/563,951 US10922140B2 (en) | 2012-07-26 | 2013-06-19 | Resource scheduling system and method under graphics processing unit virtualization based on instant feedback of application effect |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210261862.0A CN102890643B (zh) | 2012-07-26 | 2012-07-26 | 基于应用效果即时反馈的显卡虚拟化下的资源调度系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102890643A true CN102890643A (zh) | 2013-01-23 |
CN102890643B CN102890643B (zh) | 2015-01-21 |
Family
ID=47534151
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210261862.0A Active CN102890643B (zh) | 2012-07-26 | 2012-07-26 | 基于应用效果即时反馈的显卡虚拟化下的资源调度系统 |
Country Status (3)
Country | Link |
---|---|
US (1) | US10922140B2 (zh) |
CN (1) | CN102890643B (zh) |
WO (1) | WO2014015725A1 (zh) |
Cited By (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2014015725A1 (zh) * | 2012-07-26 | 2014-01-30 | 上海交通大学 | 基于应用效果即时反馈的显卡虚拟化下资源调度系统、方法 |
CN103645872A (zh) * | 2013-12-08 | 2014-03-19 | 侯丰花 | 一种显卡的优化计算方法 |
CN105164636A (zh) * | 2014-04-08 | 2015-12-16 | 华为技术有限公司 | 一种虚拟化环境中的数据通信的方法、装置及处理器 |
CN105426310A (zh) * | 2015-11-27 | 2016-03-23 | 北京奇虎科技有限公司 | 一种检测目标进程的性能的方法和装置 |
CN108073440A (zh) * | 2016-11-18 | 2018-05-25 | 中兴通讯股份有限公司 | 一种虚拟化环境下的显卡管理方法、装置及系统 |
CN109712060A (zh) * | 2018-12-04 | 2019-05-03 | 成都雨云科技有限公司 | 一种基于gpu容器技术的云桌面显卡共享方法及系统 |
CN109934327A (zh) * | 2019-02-18 | 2019-06-25 | 星汉智能科技股份有限公司 | 一种智能卡的计时方法及系统 |
CN111665927A (zh) * | 2020-07-20 | 2020-09-15 | 上海极算信息技术有限公司 | 一种gpu温度调控系统及调控方法 |
CN113674132A (zh) * | 2021-07-23 | 2021-11-19 | 中标软件有限公司 | 一种通过检测显卡能力切换窗口管理渲染后端的方法 |
CN113975816A (zh) * | 2021-12-24 | 2022-01-28 | 北京蔚领时代科技有限公司 | 一种基于hook的通过DirectX接口使用显卡的显卡分配方法 |
EP4009168A1 (en) * | 2020-12-07 | 2022-06-08 | INTEL Corporation | Efficient memory space sharing of resources for cloud rendering |
CN115686758A (zh) * | 2023-01-03 | 2023-02-03 | 麒麟软件有限公司 | 一种基于帧统计的VirtIO-GPU性能可控方法 |
Families Citing this family (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9690928B2 (en) * | 2014-10-25 | 2017-06-27 | Mcafee, Inc. | Computing platform security methods and apparatus |
JP6823251B2 (ja) * | 2016-10-13 | 2021-02-03 | 富士通株式会社 | 情報処理装置、情報処理方法及びプログラム |
US11144357B2 (en) * | 2018-05-25 | 2021-10-12 | International Business Machines Corporation | Selecting hardware accelerators based on score |
US10977098B2 (en) | 2018-08-14 | 2021-04-13 | International Business Machines Corporation | Automatically deploying hardware accelerators based on requests from users |
US10892944B2 (en) | 2018-11-29 | 2021-01-12 | International Business Machines Corporation | Selecting and using a cloud-based hardware accelerator |
CN109656714B (zh) * | 2018-12-04 | 2022-10-28 | 成都雨云科技有限公司 | 一种虚拟化显卡的gpu资源调度方法 |
TWI705377B (zh) * | 2019-02-01 | 2020-09-21 | 緯創資通股份有限公司 | 硬體加速方法及硬體加速系統 |
CN110532071B (zh) * | 2019-07-12 | 2023-06-09 | 上海大学 | 一种基于gpu的多应用调度系统和方法 |
CN111522692B (zh) * | 2020-04-20 | 2023-05-30 | 浙江大学 | 一种基于虚拟机的多操作系统输入及输出设备冗余保障系统 |
CN112230931B (zh) * | 2020-10-22 | 2021-11-02 | 上海壁仞智能科技有限公司 | 适用于图形处理器的二次卸载的编译方法、装置和介质 |
CN116157186A (zh) * | 2021-09-23 | 2023-05-23 | 谷歌有限责任公司 | 基于游戏交互状态的自动化帧调步 |
CN116777730B (zh) * | 2023-08-25 | 2023-10-31 | 湖南马栏山视频先进技术研究院有限公司 | 一种基于资源调度的gpu效能提高方法 |
CN117992237B (zh) * | 2024-03-18 | 2024-06-21 | 麒麟软件有限公司 | 一种基于virgl图形技术栈的渲染API转发方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101419558A (zh) * | 2008-11-13 | 2009-04-29 | 湖南大学 | Cuda图形子系统虚拟化方法 |
US20090150898A1 (en) * | 2007-12-11 | 2009-06-11 | Electronics And Telecommunications Research Institute | Multithreading framework supporting dynamic load balancing and multithread processing method using the same |
CN101706742A (zh) * | 2009-11-20 | 2010-05-12 | 北京航空航天大学 | 一种基于多核动态划分的非对称虚拟机i/o调度方法 |
CN101968749A (zh) * | 2010-09-26 | 2011-02-09 | 华中科技大学 | 虚拟机过度分配环境下的mpi消息接收方法 |
Family Cites Families (22)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7673304B2 (en) * | 2003-02-18 | 2010-03-02 | Microsoft Corporation | Multithreaded kernel for graphics processing unit |
US20050246453A1 (en) * | 2004-04-30 | 2005-11-03 | Microsoft Corporation | Providing direct access to hardware from a virtual environment |
US8274518B2 (en) * | 2004-12-30 | 2012-09-25 | Microsoft Corporation | Systems and methods for virtualizing graphics subsystems |
US8341624B1 (en) * | 2006-09-28 | 2012-12-25 | Teradici Corporation | Scheduling a virtual machine resource based on quality prediction of encoded transmission of images generated by the virtual machine |
US7650603B2 (en) * | 2005-07-08 | 2010-01-19 | Microsoft Corporation | Resource management for virtualization of graphics adapters |
US8310491B2 (en) * | 2007-06-07 | 2012-11-13 | Apple Inc. | Asynchronous notifications for concurrent graphics operations |
US8122229B2 (en) * | 2007-09-12 | 2012-02-21 | Convey Computer | Dispatch mechanism for dispatching instructions from a host processor to a co-processor |
US8284205B2 (en) * | 2007-10-24 | 2012-10-09 | Apple Inc. | Methods and apparatuses for load balancing between multiple processing units |
GB2462860B (en) * | 2008-08-22 | 2012-05-16 | Advanced Risc Mach Ltd | Apparatus and method for communicating between a central processing unit and a graphics processing unit |
US8368701B2 (en) * | 2008-11-06 | 2013-02-05 | Via Technologies, Inc. | Metaprocessor for GPU control and synchronization in a multiprocessor environment |
US8910153B2 (en) * | 2009-07-13 | 2014-12-09 | Hewlett-Packard Development Company, L. P. | Managing virtualized accelerators using admission control, load balancing and scheduling |
US20110102443A1 (en) * | 2009-11-04 | 2011-05-05 | Microsoft Corporation | Virtualized GPU in a Virtual Machine Environment |
US8669990B2 (en) * | 2009-12-31 | 2014-03-11 | Intel Corporation | Sharing resources between a CPU and GPU |
EP2383648B1 (en) * | 2010-04-28 | 2020-02-19 | Telefonaktiebolaget LM Ericsson (publ) | Technique for GPU command scheduling |
CN102262557B (zh) * | 2010-05-25 | 2015-01-21 | 运软网络科技(上海)有限公司 | 通过总线架构构建虚拟机监控器的方法及性能服务框架 |
US8463980B2 (en) * | 2010-09-30 | 2013-06-11 | Microsoft Corporation | Shared memory between child and parent partitions |
US8970603B2 (en) * | 2010-09-30 | 2015-03-03 | Microsoft Technology Licensing, Llc | Dynamic virtual device failure recovery |
US9170843B2 (en) * | 2011-09-24 | 2015-10-27 | Elwha Llc | Data handling apparatus adapted for scheduling operations according to resource allocation based on entitlement |
US9135189B2 (en) * | 2011-09-07 | 2015-09-15 | Microsoft Technology Licensing, Llc | Delivering GPU resources across machine boundaries |
US8941670B2 (en) * | 2012-01-17 | 2015-01-27 | Microsoft Corporation | Para-virtualized high-performance computing and GDI acceleration |
EP2742425A1 (en) * | 2012-05-29 | 2014-06-18 | Qatar Foundation | Graphics processing unit controller, host system, and methods |
CN102890643B (zh) * | 2012-07-26 | 2015-01-21 | 上海交通大学 | 基于应用效果即时反馈的显卡虚拟化下的资源调度系统 |
-
2012
- 2012-07-26 CN CN201210261862.0A patent/CN102890643B/zh active Active
-
2013
- 2013-06-19 US US15/563,951 patent/US10922140B2/en active Active
- 2013-06-19 WO PCT/CN2013/077457 patent/WO2014015725A1/zh active Application Filing
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090150898A1 (en) * | 2007-12-11 | 2009-06-11 | Electronics And Telecommunications Research Institute | Multithreading framework supporting dynamic load balancing and multithread processing method using the same |
CN101419558A (zh) * | 2008-11-13 | 2009-04-29 | 湖南大学 | Cuda图形子系统虚拟化方法 |
CN101706742A (zh) * | 2009-11-20 | 2010-05-12 | 北京航空航天大学 | 一种基于多核动态划分的非对称虚拟机i/o调度方法 |
CN101968749A (zh) * | 2010-09-26 | 2011-02-09 | 华中科技大学 | 虚拟机过度分配环境下的mpi消息接收方法 |
Cited By (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2014015725A1 (zh) * | 2012-07-26 | 2014-01-30 | 上海交通大学 | 基于应用效果即时反馈的显卡虚拟化下资源调度系统、方法 |
CN103645872A (zh) * | 2013-12-08 | 2014-03-19 | 侯丰花 | 一种显卡的优化计算方法 |
US10733687B2 (en) | 2014-04-08 | 2020-08-04 | Huawei Technologies Co., Ltd. | Method and apparatus for data communication in virtualized environment, and processor |
CN105164636A (zh) * | 2014-04-08 | 2015-12-16 | 华为技术有限公司 | 一种虚拟化环境中的数据通信的方法、装置及处理器 |
CN105164636B (zh) * | 2014-04-08 | 2018-02-13 | 华为技术有限公司 | 一种虚拟化环境中的数据通信的方法、装置及处理器 |
CN105426310A (zh) * | 2015-11-27 | 2016-03-23 | 北京奇虎科技有限公司 | 一种检测目标进程的性能的方法和装置 |
CN105426310B (zh) * | 2015-11-27 | 2018-06-26 | 北京奇虎科技有限公司 | 一种检测目标进程的性能的方法和装置 |
CN108073440A (zh) * | 2016-11-18 | 2018-05-25 | 中兴通讯股份有限公司 | 一种虚拟化环境下的显卡管理方法、装置及系统 |
CN108073440B (zh) * | 2016-11-18 | 2023-07-07 | 南京中兴新软件有限责任公司 | 一种虚拟化环境下的显卡管理方法、装置及系统 |
CN109712060B (zh) * | 2018-12-04 | 2022-12-23 | 成都雨云科技有限公司 | 一种基于gpu容器技术的云桌面显卡共享方法及系统 |
CN109712060A (zh) * | 2018-12-04 | 2019-05-03 | 成都雨云科技有限公司 | 一种基于gpu容器技术的云桌面显卡共享方法及系统 |
CN109934327A (zh) * | 2019-02-18 | 2019-06-25 | 星汉智能科技股份有限公司 | 一种智能卡的计时方法及系统 |
CN111665927A (zh) * | 2020-07-20 | 2020-09-15 | 上海极算信息技术有限公司 | 一种gpu温度调控系统及调控方法 |
EP4009168A1 (en) * | 2020-12-07 | 2022-06-08 | INTEL Corporation | Efficient memory space sharing of resources for cloud rendering |
CN113674132A (zh) * | 2021-07-23 | 2021-11-19 | 中标软件有限公司 | 一种通过检测显卡能力切换窗口管理渲染后端的方法 |
CN113674132B (zh) * | 2021-07-23 | 2024-05-14 | 中标软件有限公司 | 一种通过检测显卡能力切换窗口管理渲染后端的方法 |
CN113975816A (zh) * | 2021-12-24 | 2022-01-28 | 北京蔚领时代科技有限公司 | 一种基于hook的通过DirectX接口使用显卡的显卡分配方法 |
CN113975816B (zh) * | 2021-12-24 | 2022-11-25 | 北京蔚领时代科技有限公司 | 一种基于hook的通过DirectX接口使用显卡的显卡分配方法 |
CN115686758A (zh) * | 2023-01-03 | 2023-02-03 | 麒麟软件有限公司 | 一种基于帧统计的VirtIO-GPU性能可控方法 |
CN115686758B (zh) * | 2023-01-03 | 2023-03-21 | 麒麟软件有限公司 | 一种基于帧统计的VirtIO-GPU性能可控方法 |
Also Published As
Publication number | Publication date |
---|---|
WO2014015725A1 (zh) | 2014-01-30 |
US10922140B2 (en) | 2021-02-16 |
US20180246770A1 (en) | 2018-08-30 |
CN102890643B (zh) | 2015-01-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102890643B (zh) | 基于应用效果即时反馈的显卡虚拟化下的资源调度系统 | |
US9946563B2 (en) | Batch scheduler management of virtual machines | |
KR101057452B1 (ko) | 스마트카드 임베디드 조작 시스템 및 작업처리 방법 | |
CN102103516B (zh) | 基于虚拟cpu的频率和电压调节 | |
EP3866007B1 (en) | Intelligent gpu scheduling in a virtualization environment | |
CN102253857B (zh) | 一种多核环境下的Xen虚拟机调度控制方法 | |
CN102317917B (zh) | 热点域虚拟机cpu调度方法及虚拟机系统 | |
CN102073545B (zh) | 操作系统中防止用户界面卡屏的进程调度方法及装置 | |
JP2018190454A (ja) | 動的仮想マシンサイジング | |
CN101408853B (zh) | 一种虚拟机调度的装置及方法 | |
CN106250218A (zh) | 用于使用滑动时间窗口调度任务的系统和方法 | |
CN101452404A (zh) | 一种嵌入式操作系统的任务调度装置及方法 | |
CN101694633A (zh) | 计算机作业调度设备、方法及系统 | |
CN105487919A (zh) | 多核心处理器系统及任务分配方法 | |
JP5458998B2 (ja) | 仮想マシンシステムおよび仮想マシン管理方法 | |
US9104491B2 (en) | Batch scheduler management of speculative and non-speculative tasks based on conditions of tasks and compute resources | |
US10120721B2 (en) | Pluggable engine for application specific schedule control | |
CN101414270A (zh) | 硬件辅助的辅核任务动态优先级调度的实现方法 | |
CN107870800A (zh) | 虚拟机活跃性检测 | |
CN105068873A (zh) | 一种异构虚拟资源任务调度方法及系统 | |
CN115048216B (zh) | 一种人工智能集群的资源管理调度方法、装置和设备 | |
CN103823719A (zh) | 针对可执行程序的分布式云计算系统及针对可执行程序的分布式云计算方法 | |
US20120240111A1 (en) | Storage medium storing program for controlling virtual machine, computing machine, and method for controlling virtual machine | |
CN106453515A (zh) | 用于在主机系统上托管多任务宾客的方法和装置 | |
CN102487401B (zh) | 一种文件下载方法和装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |