CN113064695A - 显存资源的处理方法和装置 - Google Patents
显存资源的处理方法和装置 Download PDFInfo
- Publication number
- CN113064695A CN113064695A CN202110322544.XA CN202110322544A CN113064695A CN 113064695 A CN113064695 A CN 113064695A CN 202110322544 A CN202110322544 A CN 202110322544A CN 113064695 A CN113064695 A CN 113064695A
- Authority
- CN
- China
- Prior art keywords
- video memory
- virtual machine
- host
- video
- rendering
- 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/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/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/45583—Memory management, e.g. access or allocation
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Controls And Circuits For Display Device (AREA)
Abstract
本发明公开了一种显存资源的处理方法和装置。其中,该方法包括:检测虚拟机的显存资源,得到至少一个目标虚拟机,其中,每个目标虚拟机的已使用显存大于预设显存;依据渲染主机的显存资源状态,调整至少一个目标虚拟机的显存资源,其中,渲染主机为每个目标虚拟机对应的物理显卡所在的主机。本发明解决了相关技术中虚拟机的显存资源不能够得到动态且合理的调配的技术问题。
Description
技术领域
本发明涉及云端虚拟化技术领域,具体而言,涉及一种显存资源的处理方法和装置。
背景技术
云端虚拟化技术当前发展非常迅速。随着公有云平台和私有云平台的进一步发展,对于虚拟桌面云平台提出了进一步的细分需求。当前在虚拟云桌面方向,根据用户的使用行为,逐步细化出云桌面办公用户、2D/3D设计开发用户、3D游戏娱乐用户。
在当前技术条件下,桌面云对于第一类用户有很多的解决方案,QEMU+spice协议开源项目,可以满足云桌面办公用户的需求。而对于2D/3D设计开发以及3D游戏娱乐两类用户,需要云端虚拟出来能够渲染3D应用的虚拟显卡。
针对虚拟机的3D渲染需求,当前的解决方案一般分为三种:
第一种是在云端HOST主机中安装多个物理的GPU显卡,并借助Passthrough技术将单个物理显卡映射到每个客户的虚拟机(Virtual Machine,简称为VM)中作为该虚拟机的物理显卡来使用,VM通过Passthrough到虚拟机的物理显卡实现对3D指令的渲染,如图1所示。
第二种是在云端HOST主机中,安装单个物理的GPU显卡,并借助vGPU技术将单个物理显卡虚拟成多张vGPU显卡,并逐个映射到客户的VM中作为虚拟显卡来使用,VM通过虚拟显卡vGPU实现对3D指令的渲染,如图2所示。
第三种是虚拟机虚拟显卡方案,如图3所示。图3是基于GPU POOL的虚拟化系统,GPU POOL集中管理多个GPU物理显卡资源,GPU POOL可向各VM分配GPU虚拟资源,也就是说,多个VM可以共享一个GPU物理显卡,这样,云端Host主机支持的VM的数量,不会受到GPU插槽的限制。同时GPU POOL使用X86架构的处理器和Windows/Linux操作系统,可以使用厂家优化的商业驱动,能够彻底释放GPU的处理能力,发挥出GPU的最佳性能。
显卡有两个重要的性能参数:主频高低和显存大小。下面从显存资源的角度来对比下三种方案的优缺。
第一种方案,GPU Passthrough方案,技术实现简单,不过每个虚拟机在启动时就要绑定好GPU硬件并独占使用。而实际运行当中可能根本不需要GPU,造成GPU资源的浪费。
第二种方案,vGPU方案技术实现相对复杂,需要GPU硬件支持,而且该功能一般限定在某些特定厂家的特定型号GPU,价格昂贵,使用成本高。
这两个方案的显存资源都不能动态调配。具体的,第一种方案,配置的GPU硬件显存多大,决定了虚拟机可以使用的显存多大。第二种方案也类似,在配置vGPU时,给每个虚拟机使用的显存就划分好了,运行时无法再改变。
第三种方案,最为灵活,虚拟机启动和运行中都不需要绑定至固定的GPU硬件,宿主机也不需要选择特定厂家特定型号的GPU硬件。
不过,灵活性也带来新的技术难题。比如,用于不同场景的虚拟机对显卡的显存需求不一样。轻度渲染的虚拟机A只需要使用显存为512MB的显卡,而重度渲染的虚拟机B则需要4GB的显存。而在本方案中,虚拟机A和虚拟机B可能会选择同一张物理显卡进行渲染,导致虚拟机A和B的显存资源无法得到合理调配。
针对上述的问题,目前尚未提出有效的解决方案。
发明内容
本发明实施例提供了一种显存资源的处理方法和装置,以至少解决相关技术中虚拟机的显存资源不能够得到动态且合理的调配的技术问题。
根据本发明实施例的一个方面,提供了一种显存资源的处理方法,包括:检测虚拟机的显存资源,得到至少一个目标虚拟机,其中,每个目标虚拟机的已使用显存大于预设显存;依据渲染主机的显存资源状态,调整所述至少一个目标虚拟机的显存资源,其中,所述渲染主机为每个目标虚拟机对应的物理显卡所在的主机。
可选地,依据渲染主机的显存资源状态,调整所述至少一个目标虚拟机的显存资源,包括:检测所述渲染主机是否存在未分配的显存资源;在所述渲染主机存在所述未分配的显存资源情况下,将所述未分配的显存资源调度给所述至少一个目标虚拟机使用。
可选地,在检测所述渲染主机是否存在未分配的显存资源之后,还包括:在所述渲染主机不存在所述未分配的显存资源情况下,则判断所述渲染主机是否存在已分配但未使用的显存资源;在所述渲染主机存在所述已分配但未使用的显存资源的情况下,抢占所述渲染主机分配给其他虚拟机的所述分配但未使用的显存资源。
可选地,在判断所述渲染主机是否存在已分配但未使用的显存资源之后,还包括:在所述渲染主机不存在所述已分配但未使用的显存资源的情况下,将所述至少一个目标虚拟机和所述渲染主机之间的会话拆除,并更新预设的显卡资源管理表。
可选地,在检测虚拟机的显存资源,得到至少一个目标虚拟机之前,所述方法还包括:依据虚拟机的配置参数和物理显卡的配置参数,更新预设的显卡资源管理表;将期望的显卡性能参数更新至所述预设的显卡资源管理表;依据预定匹配规则和更新后的所述预设的显卡资源管理表,为所述虚拟机分配渲染主机和物理显卡。
可选地,依据预定匹配规则和更新后的所述预设的显卡资源管理表,为所述虚拟机分配渲染主机和物理显卡,包括:依据所述预定匹配规则对更新后的所述预设的显卡资源管理表进行排序,得到排序结果;确定所述虚拟机的期望显存大小;依据所述期望显存大小与所述排序结果,确定分配给所述虚拟机的渲染主机和物理显卡。
可选地,在为所述虚拟机分配渲染主机和物理显卡之后,所述方法还包括:获取应用程序接口用于申请/释放显存的函数以及记录所述虚拟机的申请/释放显存的大小,并生成虚拟机显存管理表,其中,所述虚拟机显存管理表至少包括:应用程序接口、函数名、申请/释放以及申请/释放显存的大小;依据所述虚拟机显存管理表,确定所述虚拟机的已使用显存;将所述已使用显存更新至所述预设的显卡资源管理表。
根据本发明实施例的另一方面,还提供了一种显存资源的处理装置,包括:检测模块,用于检测虚拟机的显存资源,得到至少一个目标虚拟机,其中,每个目标虚拟机的已使用显存大于预设显存;调整单元,用于依据渲染主机的显存资源状态,调整所述至少一个目标虚拟机的显存资源,其中,所述渲染主机为每个目标虚拟机对应的物理显卡所在的主机。
根据本发明实施例的另一方面,还提供了一种计算机可读存储介质,所述计算机可读存储介质包括存储的程序,其中,在所述程序运行时控制所述计算机可读存储介质所在设备执行上述中任意一项所述的显存资源的处理方法。
根据本发明实施例的另一方面,还提供了一种处理器,所述处理器用于运行程序,其中,所述程序运行时执行上述中任意一项所述的显存资源的处理方法。
在本发明实施例中,采用检测虚拟机的显存资源,得到至少一个目标虚拟机,其中,每个目标虚拟机的已使用显存大于预设显存;依据渲染主机的显存资源状态,调整至少一个目标虚拟机的显存资源,其中,渲染主机为每个目标虚拟机对应的物理显卡所在的主机,通过渲染主机的显存资源状态对目标虚拟机的显存资源进行调整,达到了动态且合理的调整目标虚拟机的显存资源的目的,从而实现了显存资源利用率的最大化的技术效果,进而解决了相关技术中虚拟机的显存资源不能够得到动态且合理的调配的技术问题。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1是根据现有技术的一种采用GPU Passthrough技术的示意图;
图2是根据现有技术的一种采用GPU硬件虚拟化技术的示意图;
图3是根据现有技术的一种采用GPU POOL技术的示意图;
图4是根据本发明实施例的在GPU POOL技术中增加分配装置的示意图;
图5是根据本发明实施例的显存资源的处理方法的流程图;
图6是根据本发明可选实施例的分配虚拟机的渲染主机和物理显卡的流程图;
图7是根据本发明可选实施例的显存资源的处理方法的流程图;
图8是根据本发明实施例的显存资源的处理装置的示意图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
为了方便理解,下面对系统组成进行简单介绍,图4是根据本发明实施例的在GPUPOOL技术中增加分配装置的示意图,如图4所示,增加了分配装置,该分配装置可以是单独的设备,也可以再云端服务器或者在GPU POOL中集成,在具体实施过程中不作任何限制。
GPU POOL由一组管理着多张物理显卡的渲染主机组成,接收云服务器发送过来的渲染中间格式指令流,然后选择GPU POOL的某台渲染主机接收、解析、渲染。每台渲染主机管理着多张的物理显卡。
在一种可选的的实施方式中,云端服务器的操作系统之上运行多个虚拟机。虚拟机内部,运行着称为客户机操作系统的软件系统。虚拟机的操作系统运行在宿主机操作系统之上,使用的是由宿主机操作系统提供的虚拟化的CPU、内存、显卡vGPU、显存等资源,因此,虚拟机操作系统与云端服务器操作系统之间可以通过内存映射等方式进行数据交换。
云端服务器中的虚拟机负责数据的计算,GPU POOL对应的实体物理显卡则负责渲染。
虚拟机与宿主机之间的渲染通路通过软件虚拟显卡vGPU联通。每个虚拟机创建一张软件虚拟显卡。软件虚拟显卡最终输出的是平台无关的渲染中间格式指令流(Intermediate Representation,简称为IR)。
实施例1
根据本发明实施例,提供了一种显存资源的处理方法的实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
图5是根据本发明实施例的显存资源的处理方法的流程图,如图5所示,该显存资源的处理方法包括如下步骤:
步骤S502,检测虚拟机的显存资源,得到至少一个目标虚拟机,其中,每个目标虚拟机的已使用显存大于预设显存;
在一种可选的实施方式中,可以检测虚拟机的显存资源,将虚拟机的显存资源中已使用显存大于预设显存的虚拟机标记为目标虚拟机,其中,上述预设显存可以根据实际应用场景而设置,例如,在目标虚拟机的已使用显存大于预设显存时,该目标虚拟机的已使用显存占用其总显存的比例较大,例如,已使用显存占用总显存的占用比例可以在60%-100%之间。需要说明的是,由于目标虚拟机的已使用显存大于预设显存,表明该目标虚拟机的显存资源不够用,需要增加显存资源。可选的,通知分配装置进行资源的增加。
另外,对于不同配置的虚拟机而言,每个虚拟机的显存资源可能不同,则其对应的目标虚拟机的预设显存也是不同的。例如,虚拟机A的显存资源为4G,其预设显存可以设置为3G;虚拟机A的显存资源为8G,其预设显存可以设置为6G。
步骤S504,依据渲染主机的显存资源状态,调整至少一个目标虚拟机的显存资源,其中,渲染主机为每个目标虚拟机对应的物理显卡所在的主机。
上述渲染主机的显存资源状态包括但不限于未分配的显存资源、已分配但未使用的显存资源等,在具体实施过程中不做任何限定。
上述目标虚拟机的数量可以是一个或者多个。在目标虚拟机为一个时,可以根据目标虚拟机对应的物理显卡所在的主机对应的显存资源状态,调整该目标虚拟机的显存资源;在目标虚拟机为多个时,可以根据多个目标虚拟机对应的物理显卡所在的主机对应的显存资源状态,分别调整多个目标虚拟机的显存资源。
需要说明的是,上述实施方式应用于在GPU POOL技术中增加分配装置的场景中。
通过上述步骤,可以通过渲染主机的显存资源状态对目标虚拟机的显存资源进行调整,达到了动态且合理的调整目标虚拟机的显存资源的目的,从而实现了显存资源利用率的最大化的技术效果,进而解决了相关技术中虚拟机的显存资源不能够得到动态且合理的调配的技术问题。
可选地,依据渲染主机的显存资源状态,调整至少一个目标虚拟机的显存资源,包括:检测渲染主机是否存在未分配的显存资源;在渲染主机存在未分配的显存资源情况下,将未分配的显存资源调度给至少一个目标虚拟机使用。
在一种可选的实施方式中,在依据渲染主机的显存资源状态,调整目标虚拟机的显存资源的过程中,可以检测渲染主机是否存在未分配的显存资源,如果渲染主机存在未分配的显存资源,则将该未分配的显存资源调度给目标虚拟机使用。通过该实施方式,可以将渲染主机中未分配的显存资源调度给目标虚拟机使用,从而实现对目标虚拟机的显存资源的灵活调整,以避免目标虚拟机的显存资源不够用的情况。
可选地,在检测渲染主机是否存在未分配的显存资源之后,还包括:在渲染主机不存在未分配的显存资源情况下,则判断渲染主机是否存在已分配但未使用的显存资源;在渲染主机存在已分配但未使用的显存资源的情况下,抢占渲染主机分配给其他虚拟机的分配但未使用的显存资源。
在一种可选的实施方式中,在依据渲染主机的显存资源状态,调整目标虚拟机的显存资源的过程中,还可以检测渲染主机是否存在未分配的显存资源,如果渲染主机不存在未分配的显存资源,则判断渲染主机是否存在已分配但未使用的显存资源,并在渲染主机存在已分配但未使用的显存资源时,抢占渲染主机分配给其他虚拟机的分配但未使用的显存资源。通过该实施方式,可以利用抢占的渲染主机分配给其他虚拟机的分配但未使用的显存资源,从而实现对目标虚拟机的显存资源的灵活调整,以避免目标虚拟机的显存资源不够用的情况。
可选地,在判断渲染主机是否存在已分配但未使用的显存资源之后,还包括:在渲染主机不存在已分配但未使用的显存资源的情况下,将至少一个目标虚拟机和渲染主机之间的会话拆除,并更新预设的显卡资源管理表。
在一种可选的实施方式中,在依据渲染主机的显存资源状态,调整目标虚拟机的显存资源的过程中,还可以检测渲染主机是否存在未分配的显存资源,如果渲染主机不存在未分配的显存资源,则判断渲染主机是否存在已分配但未使用的显存资源,并在渲染主机不存在已分配但未使用的显存资源时,将目标虚拟机和渲染主机之间的会话拆除,并更新预设的显卡资源管理表。需要说明的是,上述会话拆除主要目的为释放目标虚拟机对应的渲染主机的显存资源,但是同时目标虚拟机还可以向别的渲染主机申请显存资源;另外,在会话拆除以后,可将释放目标虚拟机对应的渲染主机的显存资源更新至预设的显卡资源管理表,便于后续的分配使用。通过该实施方式,可以将目标虚拟机和渲染主机之间的会话拆除,并更新预设的显卡资源管理表,从而实现对目标虚拟机的显存资源的灵活调整,以避免目标虚拟机的显存资源不够用的情况。
可选地,在检测虚拟机的显存资源,得到至少一个目标虚拟机之前,上述方法还包括:依据虚拟机的配置参数和物理显卡的配置参数,更新预设的显卡资源管理表;将期望的显卡性能参数更新至预设的显卡资源管理表;依据预定匹配规则和更新后的预设的显卡资源管理表,为虚拟机分配渲染主机和物理显卡。
在一种可选的实施方式中,在检测虚拟机的显存资源之前,还可以获取虚拟机的配置参数和物理显卡的配置参数,利用虚拟机的配置参数和物理显卡的配置参数,更新预设的显卡资源管理表;另外,还需要将期望的显卡性能参数更新至预设的显卡资源管理表,然后,按照预定匹配规则和更新后的预设的显卡资源管理表,实现对虚拟机对应的渲染主机和物理显卡的分配。通过该实施方式,可以为虚拟机分配到更合适的渲染主机和物理显卡。
可选地,依据预定匹配规则和更新后的预设的显卡资源管理表,为虚拟机分配渲染主机和物理显卡,包括:依据预定匹配规则对更新后的预设的显卡资源管理表进行排序,得到排序结果;确定虚拟机的期望显存大小;依据期望显存大小与排序结果,确定分配给虚拟机的渲染主机和物理显卡。
在一种可选的实施方式中,上述预定匹配规则包括但不限于:按照物理显卡的显存大小排序对物理显卡进行排序,物理显存小的,排在前面;对于同样物理显存规格的显卡,则按剩余显存多少排序,剩余少的排在前面。另外,还可以根据虚拟机的期望显存大小从排序后的物理显卡中选择出虚拟机的渲染主机和物理显卡。
可选地,在为虚拟机分配渲染主机和物理显卡之后,上述方法还包括:获取应用程序接口用于申请/释放显存的函数以及记录虚拟机的申请/释放显存的大小,并生成虚拟机显存管理表,其中,虚拟机显存管理表至少包括:应用程序接口、函数名、申请/释放以及申请/释放显存的大小;依据虚拟机显存管理表,确定虚拟机的已使用显存;将已使用显存更新至预设的显卡资源管理表。
上述虚拟机显存管理表包括但不限于应用程序接口、函数名、申请/释放以及申请/释放显存的大小等。在具体实施过程中,可以需要获取应用程序接口用于申请/释放显存的函数以及记录虚拟机的申请/释放显存的大小,再生成对应的虚拟机显存管理表,然后,基于该虚拟机显存管理表计算出虚拟机的已使用显存,并将已使用显存更新至预设的显卡资源管理表。
下面对本发明一种可选的实施方式进行详细说明。
在本发明可选实施例的显存资源的处理方法中,可以对在GPU POOL环境下虚拟机的虚拟显存资源进行管理。具体的,首先,在虚拟机启动时,通过配置参数通知宿主机的显卡管理模块,按照预定义规则,选择匹配的物理显卡供虚拟机渲染使用;然后,通过在虚拟机中安装钩子函数,截获3D应用程序接口(Application Programming Interface,简称为API)中用于申请和释放显存的函数,实时维护当前虚拟机的显存使用情况;当虚拟机使用的显存资源达到约定最大值时,在钩子函数这一层返回显存不足的错误提示。因此,通过上述实施方式可以有效地对虚拟机的虚拟显存资源进行统一管理,通过钩子函数机制,在用户API层面进行显存资源的统计,更轻量便捷。
可选地,分配装置一方面要监控虚拟机期望分配的资源信息,另一方面要监控GPUPOOL中物理显卡的资源分配信息,资源分配信息包括:物理显卡的分配情况,物理显卡的使用情况以及每个GPU POOL的物理显卡未使用情况。
图6是根据本发明可选实施例的分配虚拟机的渲染主机和物理显卡的流程图,如图6所示。在具体实施过程中,分配虚拟机的渲染主机和物理显卡的实施步骤如下:
步骤601,GPU POOL根据从宿主机中获取的虚拟机的基本信息,以及自身物理显卡的配置情况,更新预设的显卡资源管理表。
需要说明的是,GPU POOL在虚拟机启动之前,可以更新显卡资源管理表中的前4列。
步骤602,虚拟机在启动后,将期望的显卡性能参数更新至显卡资源管理表。
其中,期望的显卡性能参数可以更新至显卡资源管理表的第6列。
步骤603,GPU POOL中的3D Render Host Dispatcher模块,参考显卡资源管理表,按照下面的匹配规则,为虚拟机分配合适的渲染主机和物理显卡。
需要说明的是,任意一个虚拟机在启动时,可以将期望的显卡性能参数发送给分配装置。
在一种可选的实施方式中,期望的显卡性能参数可以基于该虚拟机当前运行的应用程序,按照预设的规则进行分配。确定虚拟机中启动的应用程序,通过查询预设的应用程序分类表,确定该应用程序的类别标识符。其中,预设的应用程序分类表可以如表1所示。
表1 预设的应用程序分类表
此外,若应用程序不存在预设的应用程序分类表中,则可以获取该应用程序的预先加载数据包,根据该预先加载数据包的大小来确定该应用程序的类型,进而确定该应用程序的类型标识符。
通常情况下,3D游戏或3D互动类软件存在预先加载的数据包,而预先加载的数据包能够反映该软件的规模,也即对GPU资源的消耗情况,因此,可以根据应用程序预先加载的数据包的大小,通过查询数据包大小与应用程序的类型的对应关系,来确定该应用程序的类型。其中,数据包大小与应用程序的类型的对应关系可以如表2所示。
表2 数据包大小与应用程序的类型的对应关系
序号 | 数据包的大小 | 应用程序的类型 |
1 | 20G | 大型3D游戏 |
2 | 10G | 小型3D游戏 |
3 | 5G | 3D绘图软件 |
例如,应用程序为新发布的大型3D游戏,不存在预设的对应关系表中,那么,获取该3D游戏预先加载的数据包的大小,可以通过查询如表2所示的数据包大小与应用程序的类型的对应关系,进而确定该应用程序的类型标识符。
在启动后,虚拟机内部运行着3D API Hook模块,截获3D API中用于申请和释放显存的函数,实时记录当前虚拟机的显存使用量,并将当前虚拟机的显存使用量更新至分配装置。
可选地,分配装置还实时更新有GPU POOL的资源分配情况。
在一种可实现的方式中,分配装置中存储有显卡资源管理表,显卡资源管理表如表3所示。需要说明的是,显卡资源管理表是选择渲染主机和显卡的依据。
表3 显卡资源管理表
在GPU POOL上,显卡资源管理表记录了所有渲染主机管理的所有物理显卡的使用情况。
虚拟机在起动时,通过显卡性能配置参数,分配装置可以参照显卡资源管理表,匹配合适的渲染主机和物理显卡,作为该虚拟机的目标物理显卡。
具体的,对匹配规则说明如下:
首先,所有物理显卡先按物理显存大小排序,物理显存小的,排在前面。同样物理显存规格的显卡,则按剩余显存多少排序,剩余少的排在前面;
然后,根据虚拟机期望的显存大小,依次从排序后的物理显卡中选择。
以上述表3参数为例,应用标识A,B,C,D对应的期望显存分别为4G,2G,1G和512M。这个也是可以修改的。如果虚拟机D启动,期望显存大小为512MB或1GB,则优先匹配渲染主机一的显卡一;如果期望显存大小为2GB,则优先匹配渲染主机一的显卡二。
进一步地,还可以基于本发明的GPU POOL技术架构,后续在资源的分配和动态调整过程,可以抢占其他虚拟机暂时不用的资源,也可以跨服务器进行物理显卡资源的分配,弹性更大。
此外,为了进一步跟踪和维护虚拟机的显存使用,虚拟机内的3D API Hook模块,可以截获3D API中用于申请和释放显存的函数,实时记录当前虚拟机的显存使用量(申请/释放),记为虚拟机显存管理表,虚拟机显存管理表如表4所示。虚拟机显存管理表记录了每一个3D API申请和释放显存的细节(通过3D API Hook模块实现)。
表4 虚拟机显存管理表
API | 函数名 | 动作 | 大小 |
OpenGL | glBindBuffer/glBufferData | 申请 | 4MB |
OpenGL | glTexImage2D | 申请 | 16MB |
OpenGL | glDeleteBuffers | 释放 | 4MB |
根据表4中记录的申请和释放情况,可以计算出虚拟机已使用的显存数目,可以将计算出的虚拟机已使用的显存数目更新到表1中的最后一列。
通过表4,记录了虚拟机的显存使用详细情况,并能计算出当前已使用的显存总量,定时同步至表3显卡资源管理表。
图7是根据本发明可选实施例的显存资源的处理方法的流程图,如图7所示,该显存资源的处理方法包括如下步骤:
S701、检测每个虚拟机的显存资源是否充足。
虚拟机的显存资源如果不够(比如显存资源在一定的时间段内一直是95%以上),这种情况下的用户体验比较差,比如会造成卡顿等显示问题。需要通知分配装置进行资源的增加;
S702、配置装置首先检测该虚拟机对应的物理显卡所在的GPU POOL(也就是渲染主机)是否还存在未分配的资源,如果有,执行步骤S703,如果没有,执行步骤S704。
步骤S703、直接将未分配的资源调度给该虚拟机使用,后续继续执行步骤S701。
步骤S704、判断该渲染主机是否存在已分配但未使用的资源;
如果是,执行步骤S705,如果否,执行步骤S706。
步骤S705、抢占该渲染主机分配的虚拟机2分配的未使用的资源;
如果虚拟机2要使用该资源,则执行步骤S703。
步骤S706,将虚拟机1和GPU POOL1之间的会话拆除,直接分配其他GPU POOL能满足该更新期望显存后的虚拟机对应的显卡。
在上述过程中,所有的资源分配和使用情况全部更新到资源分配表中。
具体的示例如下:
虚拟机A,本来分配显存1G,目前使用了512M,则虚拟机A维持1G的分配显存不变,如表5所示。
表5 GPU POOL A中的显卡一显存充足对应的虚拟机显存管理表
如果虚拟机A要从1G显存变更为分配2G显存,或者虚拟机A的显存资源已经全部被使用,则同样需要将虚拟机A的显存分配为2G。
首先检测GPU POOL A是否有未分配的显存,如表6所示,4G已分配3G,则代表还有资源,则直接将剩余的1G显存调配给虚拟机A。
表6 GPU POOL A中的显卡一存在未分配的显存对应的虚拟机显存管理表
检测GPU POOL A是否有未分配的显存,如表7所示,4G已分配4G,虚拟机C分配了1GB,但是没有使用,可以先把虚拟机C的资源分配给虚拟机A使用。待虚拟机A的资源释放后再重新配置给虚拟机C。如果虚拟机C使用时虚拟机A还没有释放,则重新给虚拟机C分配显卡二的资源。
表7 GPU POOL A中的显卡一存在已分配但未使用显存对应的虚拟机显存管理表
检测GPU POOL A是否有未分配的显存,如表8所示,显卡一的资源已经没有额外可以使用或者分配的,则选择该渲染主机GPU POOL A下另外的显卡二进行资源的分配。
表8 GPU POOL A中的显卡一没有显存与显卡二有显存对应的虚拟机显存管理表
需要理解的是,如果该渲染主机也不存在资源,则选择GPU POOL B对应的显卡进行资源分配,如表9所示,。
表9 GPU POOL B中的显卡三有显存对应的虚拟机显存管理表
通过上述实施方式可以随时根据具体的需求进行资源的分配和调节,实现资源利用率的最大化。另外,基于GPU POOL的架构,资源的可调整范围更加宽泛,可以跨服务器,弹性更大,效率更高。
实施例2
根据本发明实施例的另一方面,还提供了一种显存资源的处理装置,图8是根据本发明实施例的显存资源的处理装置的示意图,如图8所示,该显存资源的处理装置包括:检测模块802和调整单元804。下面对该显存资源的处理装置进行详细说明。
检测模块802,用于检测虚拟机的显存资源,得到至少一个目标虚拟机,其中,每个目标虚拟机的已使用显存大于预设显存;调整单元804,连接至上述检测模块802,用于依据渲染主机的显存资源状态,调整至少一个目标虚拟机的显存资源,其中,渲染主机为每个目标虚拟机对应的物理显卡所在的主机。
在上述实施例中,该显存资源的处理装置可以通过渲染主机的显存资源状态对目标虚拟机的显存资源进行调整,达到了动态且合理的调整目标虚拟机的显存资源的目的,从而实现了显存资源利用率的最大化的技术效果,进而解决了相关技术中虚拟机的显存资源不能够得到动态且合理的调配的技术问题。
需要说明的是,上述各个模块是可以通过软件或硬件来实现的,例如,对于后者,可以通过以下方式实现:上述各个模块可以位于同一处理器中;和/或,上述各个模块以任意组合的方式位于不同的处理器中。
此处需要说明的是,上述检测模块802和调整单元804对应于实施例1中的步骤S502至S504,上述模块与对应的步骤所实现的示例和应用场景相同,但不限于上述实施例1所公开的内容。
实施例3
根据本发明实施例的另一方面,还提供了一种计算机可读存储介质,该计算机可读存储介质包括存储的程序,其中,在程序运行时控制计算机可读存储介质所在设备执行上述中任意一项的显存资源的处理方法。
可选地,在本实施例中,上述计算机可读存储介质可以位于计算机网络中计算机终端群中的任意一个计算机终端中,和/或位于移动终端群中的任意一个移动终端中,上述计算机可读存储介质包括存储的程序。
可选地,在程序运行时控制计算机可读存储介质所在设备执行以下功能:检测虚拟机的显存资源,得到至少一个目标虚拟机,其中,每个目标虚拟机的已使用显存大于预设显存;依据渲染主机的显存资源状态,调整至少一个目标虚拟机的显存资源,其中,渲染主机为每个目标虚拟机对应的物理显卡所在的主机。
实施例4
根据本发明实施例的另一方面,还提供了一种处理器,该处理器用于运行程序,其中,程序运行时执行上述中任意一项的显存资源的处理方法。
本发明实施例提供了一种设备,该设备包括处理器、存储器及存储在存储器上并可在处理器上运行的程序,处理器执行程序时实现以下步骤:检测虚拟机的显存资源,得到至少一个目标虚拟机,其中,每个目标虚拟机的已使用显存大于预设显存;依据渲染主机的显存资源状态,调整至少一个目标虚拟机的显存资源,其中,渲染主机为每个目标虚拟机对应的物理显卡所在的主机。
本发明还提供了一种计算机程序产品,当在数据处理设备上执行时,适于执行初始化有如下方法步骤的程序:检测虚拟机的显存资源,得到至少一个目标虚拟机,其中,每个目标虚拟机的已使用显存大于预设显存;依据渲染主机的显存资源状态,调整至少一个目标虚拟机的显存资源,其中,渲染主机为每个目标虚拟机对应的物理显卡所在的主机。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
在本发明的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的技术内容,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,可以为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
Claims (10)
1.一种显存资源的处理方法,其特征在于,包括:
检测每个虚拟机的显存资源,得到至少一个目标虚拟机,其中,每个目标虚拟机的已使用显存大于预设显存;
依据渲染主机的显存资源状态,调整所述至少一个目标虚拟机的显存资源,其中,所述渲染主机为每个目标虚拟机对应的物理显卡所在的主机。
2.根据权利要求1所述的方法,其特征在于,依据渲染主机的显存资源状态,调整所述至少一个目标虚拟机的显存资源,包括:
检测所述渲染主机是否存在未分配的显存资源;
在所述渲染主机存在所述未分配的显存资源情况下,将所述未分配的显存资源调度给所述至少一个目标虚拟机使用。
3.根据权利要求2所述的方法,其特征在于,在检测所述渲染主机是否存在未分配的显存资源之后,还包括:
在所述渲染主机不存在所述未分配的显存资源情况下,则判断所述渲染主机是否存在已分配但未使用的显存资源;
在所述渲染主机存在所述已分配但未使用的显存资源的情况下,抢占所述渲染主机分配给其他虚拟机的所述分配但未使用的显存资源。
4.根据权利要求3所述的方法,其特征在于,在判断所述渲染主机是否存在已分配但未使用的显存资源之后,还包括:
在所述渲染主机不存在所述已分配但未使用的显存资源的情况下,将所述至少一个目标虚拟机和所述渲染主机之间的会话拆除,并更新预设的显卡资源管理表。
5.根据权利要求1至4中任意一项所述的方法,其特征在于,在检测虚拟机的显存资源,得到至少一个目标虚拟机之前,所述方法还包括:
依据虚拟机的配置参数和物理显卡的配置参数,更新预设的显卡资源管理表;
将期望的显卡性能参数更新至所述预设的显卡资源管理表;
依据预定匹配规则和更新后的所述预设的显卡资源管理表,为所述虚拟机分配渲染主机和物理显卡。
6.根据权利要求5所述的方法,其特征在于,依据预定匹配规则和更新后的所述预设的显卡资源管理表,为所述虚拟机分配渲染主机和物理显卡,包括:
依据所述预定匹配规则对更新后的所述预设的显卡资源管理表进行排序,得到排序结果;
确定所述虚拟机的期望显存大小;
依据所述期望显存大小与所述排序结果,确定分配给所述虚拟机的渲染主机和物理显卡。
7.根据权利要求6所述的方法,其特征在于,在为所述虚拟机分配渲染主机和物理显卡之后,所述方法还包括:
获取应用程序接口用于申请/释放显存的函数以及记录所述虚拟机的申请/释放显存的大小,并生成虚拟机显存管理表,其中,所述虚拟机显存管理表至少包括:应用程序接口、函数名、申请/释放以及申请/释放显存的大小;
依据所述虚拟机显存管理表,确定所述虚拟机的已使用显存;
将所述已使用显存更新至所述预设的显卡资源管理表。
8.一种显存资源的处理装置,其特征在于,包括:
检测模块,用于检测虚拟机的显存资源,得到至少一个目标虚拟机,其中,每个目标虚拟机的已使用显存大于预设显存;
调整单元,用于依据渲染主机的显存资源状态,调整所述至少一个目标虚拟机的显存资源,其中,所述渲染主机为每个目标虚拟机对应的物理显卡所在的主机。
9.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质包括存储的程序,其中,在所述程序运行时控制所述计算机可读存储介质所在设备执行权利要求1至7中任意一项所述的显存资源的处理方法。
10.一种处理器,其特征在于,所述处理器用于运行程序,其中,所述程序运行时执行权利要求1至7中任意一项所述的显存资源的处理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110322544.XA CN113064695A (zh) | 2021-03-25 | 2021-03-25 | 显存资源的处理方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110322544.XA CN113064695A (zh) | 2021-03-25 | 2021-03-25 | 显存资源的处理方法和装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113064695A true CN113064695A (zh) | 2021-07-02 |
Family
ID=76563763
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110322544.XA Pending CN113064695A (zh) | 2021-03-25 | 2021-03-25 | 显存资源的处理方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113064695A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113867961A (zh) * | 2021-09-30 | 2021-12-31 | 中国矿业大学(北京) | 一种异构gpu集群深度学习混合负载调度优化方法 |
CN116932230A (zh) * | 2023-09-15 | 2023-10-24 | 湖南马栏山视频先进技术研究院有限公司 | 一种基于动态任务调度的视频渲染方法 |
-
2021
- 2021-03-25 CN CN202110322544.XA patent/CN113064695A/zh active Pending
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113867961A (zh) * | 2021-09-30 | 2021-12-31 | 中国矿业大学(北京) | 一种异构gpu集群深度学习混合负载调度优化方法 |
CN113867961B (zh) * | 2021-09-30 | 2022-07-22 | 中国矿业大学(北京) | 一种异构gpu集群深度学习混合负载调度优化方法 |
CN116932230A (zh) * | 2023-09-15 | 2023-10-24 | 湖南马栏山视频先进技术研究院有限公司 | 一种基于动态任务调度的视频渲染方法 |
CN116932230B (zh) * | 2023-09-15 | 2023-12-08 | 湖南马栏山视频先进技术研究院有限公司 | 一种基于动态任务调度的视频渲染方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10362101B2 (en) | Mechanism for providing load balancing to an external node utilizing a clustered environment for storage management | |
US10365942B2 (en) | Automated scaling of application in virtual data centers | |
US10152340B2 (en) | Configuring cache for I/O operations of virtual machines | |
TWI696952B (zh) | 資源處理方法及裝置 | |
US20120054740A1 (en) | Techniques For Selectively Enabling Or Disabling Virtual Devices In Virtual Environments | |
US20070006227A1 (en) | Method, apparatus and system for bi-directional communication between a virtual machine monitor and an ACPI-compliant guest operating system | |
US20140250439A1 (en) | Systems and methods for provisioning in a virtual desktop infrastructure | |
CN113312142B (zh) | 虚拟化处理系统、方法、装置及设备 | |
CN113064695A (zh) | 显存资源的处理方法和装置 | |
KR20210095690A (ko) | 리소스 관리 방법과 장치, 전자 디바이스 및 기록 매체 | |
CN101482832A (zh) | 用于支持具有众核的计量客户端的系统和方法 | |
WO2022041507A1 (zh) | 3d渲染方法及系统 | |
CN113204428A (zh) | 资源调度方法、装置、电子设备以及计算机可读存储介质 | |
WO2023000673A1 (zh) | 硬件加速器设备管理方法、装置及电子设备和存储介质 | |
CN109471725A (zh) | 资源分配方法、装置和服务器 | |
WO2023221844A1 (zh) | 资源调度方法、设备及存储介质 | |
CN115617364A (zh) | Gpu虚拟化部署方法、系统、计算机设备和存储介质 | |
US8839241B2 (en) | Virtual appliance deployment | |
CN112506646A (zh) | 显存分配的方法及装置 | |
US20150220442A1 (en) | Prioritizing shared memory based on quality of service | |
CN116467043A (zh) | 一种基于k8s容器化差异化自动部署方法、装置及介质 | |
US11983576B2 (en) | Accessing topological mapping of cores | |
CN109002347B (zh) | 一种虚拟机内存分配方法、装置及系统 | |
CN114942846A (zh) | Gpu资源调度方法、装置、设备及存储介质 | |
CN114637473A (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 |