本发明专利技术实施例提供一种GPU虚拟化资源限制处理方法及装置,方法包括:捕获虚拟化渲染指令;将虚拟化渲染指令发送给OpenglES渲染器,使得所述OpenglES渲染器根据虚拟化渲染资源限制策略调用物理GPU资源执行渲染操作;OpenglES渲染器运行在独立于虚拟化引擎进程外的进程中,虚拟化渲染资源限制策略预先设置在所述OpenglES渲染器中。本发明专利技术实施例由于渲染指令的处理由独立的OpenglES渲染器控制,因而使得渲染指令的处理存在了控制基础,基于此,在OpenglES渲染器内添加虚拟化渲染资源限制策略,可实现对云操作系统和/或客户端占用虚拟渲染资源的约束,从而实现了对GPU虚拟化资源的限制。
GPU virtualization resource limitation processing method and device
【技术实现步骤摘要】
GPU虚拟化资源限制处理方法及装置
本专利技术涉及计算机
,尤其涉及一种GPU虚拟化资源限制处理方法及装置。
技术介绍
当前操作系统领域对CPU、硬盘、网络等计算机组成单元的虚拟化支持较好,但在GPU相关的虚拟化方面工作尚处于早期阶段,仅有的可查GPU虚拟化相关的技术主要在Google公司的Android模拟器中,Android模拟器采用emulator程序通过emulator内封装的QemuPipe,实现了Android系统OpenglES指令向Qemu虚拟化引擎的传输,并且在Qemu内实现了OpenglES指令的拆解渲染。OpenglES指令的拆解分发在Qemu虚拟化引擎中实现,导致需要强稳定性的底层渲染引擎不得不调用并不稳定的OpenglES渲染库,易发生未知的Qemu虚拟化引擎崩溃。此外,这种虚拟化引擎执行渲染的方法同样存在无法对单Android实例的GPU计算资源进行限制的问题,即先启动的Android实例可占用全部GPU计算资源,后启动的Android实例则只能等待GPU出现空闲的情况下使用计算资源,这导致对GPU计算资源限制的无力。
技术实现思路
针对现有技术中的问题,本专利技术实施例提供一种GPU虚拟化资源限制处理方法及装置。第一方面,本专利技术实施例提供了一种GPU虚拟化资源限制处理方法,包括:捕获虚拟化渲染指令;将所述虚拟化渲染指令发送给OpenglES渲染器,使得所述OpenglES渲染器根据虚拟化渲染资源限制策略调用物理GPU资源执行渲染操作;其中,所述OpenglES渲染器运行在独立于虚拟化引擎进程外的进程中,所述虚拟化渲染资源限制策略预先设置在所述OpenglES渲染器中。进一步地,将所述虚拟化渲染指令发送给OpenglES渲染器,使得所述OpenglES渲染器根据虚拟化渲染资源限制策略调用物理GPU资源执行渲染操作,具体包括:将所述虚拟化渲染指令发送给OpenglES渲染器,使得所述OpenglES渲染器在判断获知所述虚拟化渲染指令所需的渲染流量是否超过预设渲染流量阈值时,将超过所述预设渲染流量阈值的渲染指令存储至内存缓存中并根据所述预设渲染流量阈值从内存缓存中读取渲染数据流并调用物理GPU资源执行渲染操作,同时将渲染结果进行缓存,否则,根据所述渲染指令所需的渲染流量调用物理GPU资源执行渲染操作,并将渲染结果进行缓存;接收所述OpenglES渲染器按照预设渲染结果回传流量阈值发送的渲染结果缓存数据。进一步地,将所述虚拟化渲染指令发送给OpenglES渲染器,使得所述OpenglES渲染器根据虚拟化渲染资源限制策略调用物理GPU资源执行渲染操作,具体包括:将所述虚拟化渲染指令发送给OpenglES渲染器,使得所述OpenglES渲染器在判断获知所述虚拟化渲染指令欲构建的渲染上下文数量超过预设渲染上下文数量阈值时,通过OpenglES渲染上下文句柄,根据所述预设渲染上下文数量阈值读回不活跃的渲染上下文存储至内存缓存中,并对未被读回的渲染上下文进行渲染操作,同时在判断获知欲对已读回的渲染上下文使用时,通过读取内存缓存中的渲染上下文将内存缓存中的渲染上下文恢复并在GPU中构建该渲染上下文,在恢复渲染上下文时,若恢复出的渲染上下文数量超过预设渲染上下文数量阈值,则需要重新从恢复出的渲染上下文中读回不活跃的渲染上下文并对未被读回的渲染上下文进行渲染操作。进一步地,所述捕获虚拟化渲染指令,具体包括:捕获云操作系统和/或客户端对GPU用户态驱动和OpenglES动态库调用的虚拟化渲染指令。第二方面,本专利技术实施例还提供了一种GPU虚拟化资源限制处理装置,包括:捕获模块,用于捕获虚拟化渲染指令;处理模块,用于将所述虚拟化渲染指令发送给OpenglES渲染器,使得所述OpenglES渲染器根据虚拟化渲染资源限制策略调用物理GPU资源执行渲染操作;其中,所述OpenglES渲染器运行在独立于虚拟化引擎进程外的进程中,所述虚拟化渲染资源限制策略预先设置在所述OpenglES渲染器中。进一步地,所述处理模块,具体用于:将所述虚拟化渲染指令发送给OpenglES渲染器,使得所述OpenglES渲染器在判断获知所述虚拟化渲染指令所需的渲染流量是否超过预设渲染流量阈值时,将超过所述预设渲染流量阈值的渲染指令存储至内存缓存中并根据所述预设渲染流量阈值从内存缓存中读取渲染数据流并调用物理GPU资源执行渲染操作,同时将渲染结果进行缓存,否则,根据所述渲染指令所需的渲染流量调用物理GPU资源执行渲染操作,并将渲染结果进行缓存;接收所述OpenglES渲染器按照预设渲染结果回传流量阈值发送的渲染结果缓存数据。进一步地,所述处理模块,具体用于:将所述虚拟化渲染指令发送给OpenglES渲染器,使得所述OpenglES渲染器在判断获知所述虚拟化渲染指令欲构建的渲染上下文数量超过预设渲染上下文数量阈值时,通过OpenglES渲染上下文句柄,根据所述预设渲染上下文数量阈值读回不活跃的渲染上下文存储至内存缓存中,并对未被读回的渲染上下文进行渲染操作,同时在判断获知欲对已读回的渲染上下文使用时,通过读取内存缓存中的渲染上下文将内存缓存中的渲染上下文恢复并在GPU中构建该渲染上下文,在恢复渲染上下文时,若恢复出的渲染上下文数量超过预设渲染上下文数量阈值,则需要重新从恢复出的渲染上下文中读回不活跃的渲染上下文并对未被读回的渲染上下文进行渲染操作。第三方面,本专利技术实施例还提供了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如第一方面所述GPU虚拟化资源限制处理方法的步骤。第四方面,本专利技术实施例还提供了一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如第一方面所述GPU虚拟化资源限制处理方法的步骤。第五方面,本专利技术实施例还提供了一种计算机程序产品,其上存储有可执行指令,该指令被处理器执行时使处理器实现如第一方面所述GPU虚拟化资源限制处理方法的步骤。由上面技术方案可知,本专利技术实施例提供的GPU虚拟化资源限制处理方法及装置,由于在独立于Qemu虚拟化引擎的进程外的进程中设置OpenglES渲染器,使得OpenglES渲染器能够独立承接多个云操作系统的渲染指令进行渲染操作,也即本专利技术实施例通过在独立于Qemu虚拟化引擎的进程外的进程中设置OpenglES渲染器,实现了多个云操作系统的并行独立渲染功能,同时,由于渲染处理过程在独立于Qemu虚拟化引擎之外的OpenglES渲染器中实现,因而使得渲染指令的处理存在了控制基础,基于此,在OpenglES渲染器内添加渲染资源限制条件,可实现对云操作系统和/或客户端占用渲染资源的约束,从而实现了对GPU虚拟化资源的限制。附图说明为了更清楚地说明本专利技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使本文档来自技高网...
【技术保护点】
1.一种GPU虚拟化资源限制处理方法,其特征在于,包括:/n捕获虚拟化渲染指令;/n将所述虚拟化渲染指令发送给OpenglES渲染器,使得所述OpenglES渲染器根据虚拟化渲染资源限制策略调用物理GPU资源执行渲染操作;/n其中,所述OpenglES渲染器运行在独立于虚拟化引擎进程外的进程中,所述虚拟化渲染资源限制策略预先设置在所述OpenglES渲染器中。/n
【技术特征摘要】
1.一种GPU虚拟化资源限制处理方法,其特征在于,包括:
捕获虚拟化渲染指令;
将所述虚拟化渲染指令发送给OpenglES渲染器,使得所述OpenglES渲染器根据虚拟化渲染资源限制策略调用物理GPU资源执行渲染操作;
其中,所述OpenglES渲染器运行在独立于虚拟化引擎进程外的进程中,所述虚拟化渲染资源限制策略预先设置在所述OpenglES渲染器中。
2.根据权利要求1所述的GPU虚拟化资源限制处理方法,其特征在于,将所述虚拟化渲染指令发送给OpenglES渲染器,使得所述OpenglES渲染器根据虚拟化渲染资源限制策略调用物理GPU资源执行渲染操作,具体包括:
将所述虚拟化渲染指令发送给OpenglES渲染器,使得所述OpenglES渲染器在判断获知所述虚拟化渲染指令所需的渲染流量是否超过预设渲染流量阈值时,将超过所述预设渲染流量阈值的渲染指令存储至内存缓存中并根据所述预设渲染流量阈值从内存缓存中读取渲染数据流并调用物理GPU资源执行渲染操作,同时将渲染结果进行缓存,否则,根据所述渲染指令所需的渲染流量调用物理GPU资源执行渲染操作,并将渲染结果进行缓存;
接收所述OpenglES渲染器按照预设渲染结果回传流量阈值发送的渲染结果缓存数据。
3.根据权利要求1所述的GPU虚拟化资源限制处理方法,其特征在于,将所述虚拟化渲染指令发送给OpenglES渲染器,使得所述OpenglES渲染器根据虚拟化渲染资源限制策略调用物理GPU资源执行渲染操作,具体包括:
将所述虚拟化渲染指令发送给OpenglES渲染器,使得所述OpenglES渲染器在判断获知所述虚拟化渲染指令欲构建的渲染上下文数量超过预设渲染上下文数量阈值时,通过OpenglES渲染上下文句柄,根据所述预设渲染上下文数量阈值读回不活跃的渲染上下文存储至内存缓存中,并对未被读回的渲染上下文进行渲染操作,同时在判断获知欲对已读回的渲染上下文使用时,通过读取内存缓存中的渲染上下文将内存缓存中的渲染上下文恢复并在GPU中构建该渲染上下文,在恢复渲染上下文时,若恢复出的渲染上下文数量超过预设渲染上下文数量阈值,则需要重新从恢复出的渲染上下文中读回不活跃的渲染上下文并对未被读回的渲染上下文进行渲染操作。
4.根据权利要求1所述的GPU虚拟化资源限制处理方法,其特征在于,所述捕获虚拟化渲染指令,具体包括:
捕获云操作系统和/或客户端对GPU用户态驱动和OpenglES动态库调用的虚拟化渲染指令。
5.一种GPU虚拟化资源限制处理装置,其特征在于,包...
【专利技术属性】
技术研发人员:刘博,赵春雷,路轶,
申请(专利权)人:奇安信科技集团股份有限公司,网神信息技术北京股份有限公司,
类型:发明
国别省市:北京;11
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。