3D渲染方法及系统技术方案

技术编号:26766972 阅读:22 留言:0更新日期:2020-12-18 23:44
本申请提供一种3D渲染方法及系统,涉及虚拟云桌面技术领域,能够解决多个3D渲染任务访问同一公共资源时因虚拟GPU需要频繁地进行渲染上下文切换、同步、排队等操作而影响系统性能的问题。具体技术方案为:虚拟机获取至少一个3D应用发送的3D渲染指令,将每个3D渲染指令发送给与3D应用对应的虚拟GPU,其中,每个3D应用对应有一个独立的虚拟GPU;虚拟GPU对接收到的3D渲染指令进行解析,得到IR数据,并将该IR数据发送给宿主机;宿主机根据IR数据生成目标渲染指令并将目标渲染指令发送给目标物理GPU,以便目标物理GPU执行目标渲染指令。本发明专利技术用于3D渲染。

【技术实现步骤摘要】
3D渲染方法及系统
本申请涉及虚拟云桌面
,尤其涉及3D渲染方法及系统。
技术介绍
随着云端虚拟化技术的迅速发展,公有云平台和私有云平台得到了进一步的发展,这便对虚拟桌面云平台提出了进一步的细分需求。当前,根据用户的使用行为,虚拟云桌面逐步细化出了云桌面办公用户、2D/3D设计开发用户以及3D游戏娱乐用户。在当前的技术条件下,针对云桌面办公用户的需求,桌面云提出了许多解决方案,比如QEMU(虚拟操作系统模拟器)结合spice协议开源项目。而对于2D/3D设计开发以及3D游戏娱乐这两类用户,则需要云端虚拟出来能够渲染3D应用的虚拟显卡。目前,针对虚拟机的3D渲染需求一般有如下的三种解决方案:第一种是在云端宿主机中安装多个物理GPU(GraphicsProcessingUnit,图形处理器)显卡,并借助Passthrough技术将单个物理GPU显卡映射到每个客户的虚拟机中作为该虚拟机的物理显卡来使用,其原理示意图可参见图1,虚拟机通过Passthrough到虚拟机的物理显卡实现对3D指令的渲染。第二种是在云端宿主机中安装单个物理GPU显卡,并借助vGPU(虚拟GPU)技术将单个物理GPU显卡虚拟成多张vGPU显卡,并将这多张vGPU逐个映射到客户的虚拟机中作为虚拟显卡来使用,其原理示意图可参见图2,虚拟机通过vGPU显卡实现对3D指令的渲染。第三种是虚拟机虚拟显卡方案,每个虚拟机通过各自的虚拟GPU显卡将渲染请求发送给宿主机,宿主机利用物理GPU显卡完成真正的渲染,其原理示意图可参见图3。在上述的解决方案中,第一种方案实现简单,但每个虚拟机在启动时就要绑定好GPU硬件并独占使用,而实际运行当中可能根本不需要使用到GPU,从而造成GPU资源的浪费。第二种方案的技术实现相对复杂,需要GPU硬件支持,而且该功能一般限定在某些特定厂家的特定型号的GPU,价格昂贵,使用成本高。第三种方案最为灵活,虚拟机启动和运行中都不需要绑定至固定的GPU硬件,宿主机也不需要选择特定厂家特定型号的GPU硬件,从成本考虑也最优,因此,第三种方案得到了广泛的应用。但对于第三种方案,虚拟机同时运行多个3D应用时,虚拟GPU要管理多个渲染上下文环境,每个3D应用都需要独占使用虚拟GPU,而在虚拟GPU内部,所有资源都是公共的,每个3D应用通过各自的渲染上下文向虚拟GPU发起渲染请求,虚拟GPU通过识别不同的渲染上下文环境,响应不同应用的渲染请求。这样,多个渲染任务在访问同一公共资源时,虚拟GPU就需要频繁地进行渲染上下文切换、同步、排队等操作,从而影响系统的性能。
技术实现思路
本申请实施例提供一种3D渲染方法及系统,能够解决多个3D渲染任务访问同一公共资源时因虚拟GPU需要频繁地进行渲染上下文切换、同步、排队等操作而影响系统性能的问题。所述技术方案如下:根据本申请实施例的第一方面,提供一种3D渲染方法,该方法包括:虚拟机获取至少一个3D应用发送的3D渲染指令;所述虚拟机将每个3D渲染指令发送给与所述3D应用对应的虚拟图形处理器GPU,其中,每个所述3D应用对应有一个独立的虚拟GPU;虚拟GPU对接收到的3D渲染指令进行解析,得到中间表示IR数据,并将所述IR数据发送给宿主机;宿主机根据所述IR数据生成目标渲染指令,并将所述目标渲染指令发送给目标物理GPU,以便所述目标物理GPU执行所述目标渲染指令。本申请实施例提供的3D渲染方法,为每个3D应用设置一个独立的虚拟GPU,虚拟机可以将每个3D应用发送的3D渲染指令发送给该3D应用唯一对应的虚拟GPU,虚拟GPU对接收到的3D渲染指令进行解析,并将得到的IR数据发送给宿主机,宿主机根据该IR数据生成目标渲染指令,并将该目标渲染指令发送给目标物理GPU,以便目标物理GPU执行该目标渲染指令。这样,一个虚拟GPU只负责管理一个3D应用的渲染上下文,从而避免了一个虚拟GPU管理多个渲染上下文环境而导致虚拟GPU需要频繁地进行上下文切换、同步、排队等影响性能的问题。在一个实施例中,所述虚拟机将每个3D渲染指令发送给与所述3D应用对应的虚拟图形处理器GPU包括:所述虚拟机判断是否为所述3D应用创建了对应的虚拟GPU;若已创建,则将所述3D渲染指令发送给所述3D应用对应的虚拟GPU。在一个实施例中,所述虚拟机在判断是否为所述3D应用创建了对应的虚拟GPU之后,所述方法还包括:若未为所述3D应用创建对应的虚拟GPU,则为所述3D应用创建对应的虚拟GPU;将所述3D渲染指令发送给所述3D应用对应的虚拟GPU。本申请实施例提供的3D渲染方法,虚拟机在获取到3D应用发送的3D渲染指令后,先判断是否为该3D应用创建了对应的虚拟GPU,若已创建,则将3D渲染指令发送给3D应用对应的虚拟GPU,若未创建,则先为该3D应用创建对应的虚拟GPU,然后将3D渲染指令发送给3D应用对应的虚拟GPU。可以保证每个3D应用都有一个独立的虚拟GPU。在一个实施例中,所述将所述目标渲染指令发送给目标物理GPU之前,所述方法还包括:宿主机根据预设规则从至少一个物理GPU中选定目标物理GPU。在一个实施例中,所述宿主机根据预设规则从至少一个物理GPU中选定目标物理GPU包括:宿主机从其管理的至少一个物理GPU中选择利用率最低的物理GPU作为目标物理GPU。本申请实施例提供的3D渲染方法,宿主机能够从其管理的至少一个物理GPU中选择利用率最低的物理GPU作为目标物理GPU,然后将目标渲染指令发送给该目标物理GPU,以便该目标物理GPU执行该目标渲染指令。这样,能够以3D应用为最小颗粒进行区分,并将各3D的渲染指令分发至不同的物理GPU硬件,从而避免了一个虚拟机仅对应一个物理GPU,且该虚拟机同时运行多个3D应用时造成的该虚拟机对应物理GPU负担过重的问题。根据本申请实施例的第二方面,提供一种3D渲染系统,该3D渲染系统包括虚拟机、宿主机、至少一个虚拟图形处理器GPU和至少一个物理GPU,所述虚拟机上运行有至少一个3D应用,每个3D应用对应一个独立的虚拟GPU,所述宿主机包括至少一个物理GPU;所述虚拟机,用于获取至少一个3D应用发送的3D渲染指令,将每个3D渲染指令发送给与所述3D应用对应的虚拟GPU;所述虚拟GPU,用于对接收到的3D渲染指令进行解析,得到中间表示IR数据,并将所述IR数据发送给所述宿主机;所述宿主机,用于根据所述IR数据生成目标渲染指令,并将所述目标渲染指令发送给目标物理GPU;所述物理GPU,用于执行接收到的目标渲染指令。本申请实施例提供的3D渲染系统,包括虚拟机、宿主机、至少一个虚拟GPU和至少一个物理GPU,虚拟机上运行有至少一个3D应用,每个3D应用对应一个独立的虚拟GPU,宿主机包括至少一个物理GPU。该系统为每个3D应用设置了一个独立的虚拟GPU,虚拟机可以将每个3D应用发送的3D渲染指令发送本文档来自技高网
...

【技术保护点】
1.一种3D渲染方法,其特征在于,所述方法包括:/n虚拟机获取至少一个3D应用发送的3D渲染指令;/n所述虚拟机将每个3D渲染指令发送给与所述3D应用对应的虚拟图形处理器GPU,其中,每个所述3D应用对应有一个独立的虚拟GPU;/n虚拟GPU对接收到的3D渲染指令进行解析,得到中间表示IR数据,并将所述IR数据发送给宿主机;/n宿主机根据所述IR数据生成目标渲染指令,并将所述目标渲染指令发送给目标物理GPU,以便所述目标物理GPU执行所述目标渲染指令。/n

【技术特征摘要】
1.一种3D渲染方法,其特征在于,所述方法包括:
虚拟机获取至少一个3D应用发送的3D渲染指令;
所述虚拟机将每个3D渲染指令发送给与所述3D应用对应的虚拟图形处理器GPU,其中,每个所述3D应用对应有一个独立的虚拟GPU;
虚拟GPU对接收到的3D渲染指令进行解析,得到中间表示IR数据,并将所述IR数据发送给宿主机;
宿主机根据所述IR数据生成目标渲染指令,并将所述目标渲染指令发送给目标物理GPU,以便所述目标物理GPU执行所述目标渲染指令。


2.根据权利要求1所述的3D渲染方法,其特征在于,所述虚拟机将每个3D渲染指令发送给与所述3D应用对应的虚拟图形处理器GPU包括:
所述虚拟机判断是否为所述3D应用创建了对应的虚拟GPU;
若已创建,则将所述3D渲染指令发送给所述3D应用对应的虚拟GPU。


3.根据权利要求2所述的3D渲染方法,其特征在于,所述虚拟机在判断是否为所述3D应用创建了对应的虚拟GPU之后,所述方法还包括:
若未为所述3D应用创建对应的虚拟GPU,则为所述3D应用创建对应的虚拟GPU;
将所述3D渲染指令发送给所述3D应用对应的虚拟GPU。


4.根据权利要求1所述的3D渲染方法,其特征在于,所述将所述目标渲染指令发送给目标物理GPU之前,所述方法还包括:
宿主机根据预设规则从至少一个物理GPU中选定目标物理GPU。


5.根据权利要求4所述的3D渲染方法,其特征在于,所述宿主机根据预设规则从至少一个物理GPU中选定目标物理GPU包括:
宿主机从其管理的至少一个物理GPU中选择利用率最低的物理GPU作为目标物理GPU。


6.一种3D渲染系统,其特征在于,包括虚拟机、宿主机、至少一个虚...

【专利技术属性】
技术研发人员:刘威卢涛
申请(专利权)人:西安万像电子科技有限公司
类型:发明
国别省市:陕西;61

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1