本发明涉及图形处理技术领域,特别涉及一种图形处理系统及虚拟化方法。
背景技术:
GPU虚拟化技术(GPU,即Graphics Processing Unit,图形处理器)是桌面云的重要支撑技术之一,也是解决用户虚拟机3D图形处理能力不足这一问题的关键。当前典型的GPU虚拟化技术包括设备独占使用法、设备仿真法以及应用层接口重定向方法。
然而,上述三种GPU虚拟化技术中均存在图形加速功能较差的问题。如何进一步提升GPU虚拟化技术中的图形加速功能是目前有待解决的问题。
技术实现要素:
有鉴于此,本发明的目的在于提供一种图形处理系统及虚拟化方法,进一步提升了GPU虚拟化技术中的图形加速功能。其具体方案如下:
一种图形处理系统,包括第一类虚拟机、共享内存和第二类虚拟机;其中,
所述第一类虚拟机,用于通过远程桌面协议,获取远程客户端发送的图像处理请求,根据获取到的图像处理请求创建相应的GPU资源调用指令,然后将创建的GPU资源调用指令发送至所述共享内存,并通过所述远程桌面协议,将所述共享内存传送的处理后图像发送至相应的远程客户端;
所述共享内存,用于对所述第一类虚拟机发送的GPU资源调用指令进行保存,并将所述第二类虚拟机发送的处理后图像传送至所述第一类虚拟机;
所述第二类虚拟机,用于从所述共享内存中提取GPU资源调用指令,然后利用提取到的GPU资源调用指令,从物理GPU中调取相应的GPU资源,以利用调取到的GPU资源对相应图像进行处理,并将处理后图像发送至所述共享内存。
可选的,所述图形处理系统,包括至少一个所述第一类虚拟机和一个所述第二虚拟机。
可选的,所述共享内存,包括:
第一指令保存单元,用于按照指令创建时间的先后顺序,对接收到的GPU资源调用指令进行依次保存;
第一图像传送单元,用于将所述第二类虚拟机发送的处理后图像传送至所述第一类虚拟机。
可选的,所述第二类虚拟机,包括:
第一指令提取单元,用于按照所述共享内存中GPU资源调用指令保存的先后顺序,依次从所述共享内存中提取GPU资源调用指令;
第一资源调取单元,用于利用所述第一指令提取单元提取到的GPU资源调用指令,从物理GPU中调取相应的GPU资源,以利用调取到的GPU资源对相应图像进行处理;
第一图像发送单元,用于将通过所述第一资源调取单元得到的处理后图像发送至所述共享内存。
可选的,所述共享内存,包括:
第二指令保存单元,用于以远程客户端的等级作为分类依据,对接收到的GPU资源调用指令进行分类保存;
第二图像传送单元,用于将所述第二类虚拟机发送的处理后图像传送至所述第一类虚拟机。
可选的,所述第二类虚拟机,包括:
第二指令提取单元,用于按照所述共享内存中指令类别的等级高低顺序,依次从所述共享内存中提取GPU资源调用指令;
第二资源调取单元,用于利用所述第二指令提取单元提取到的GPU资源调用指令,从物理GPU中调取相应的GPU资源,以利用调取到的GPU资源对相应图像进行处理;
第二图像发送单元,用于将通过所述第二资源调取单元得到的处理后图像发送至所述共享内存。
本发明还公开了一种图形处理虚拟化方法,包括:
利用第一类虚拟机,并通过远程桌面协议,获取远程客户端发送的图像处理请求,然后根据获取到的图像处理请求创建相应的GPU资源调用指令;
利用所述第一类虚拟机,将创建的GPU资源调用指令保存至共享内存;
利用第二类虚拟机,从所述共享内存中提取GPU资源调用指令,然后利用提取到的GPU资源调用指令,从物理GPU中调取相应的GPU资源,以利用调取到的GPU资源对相应图像进行处理,并将处理后图像发送至所述共享内存;
利用所述第一类虚拟机,并通过所述远程桌面协议,将所述共享内存接收到的所述处理后图像传送至相应的远程客户端。
可选的,所述将创建的GPU资源调用指令保存至共享内存的过程,包括:
按照指令创建时间的先后顺序,将创建的GPU资源调用指令依次保存至所述共享内存。
可选的,所述从所述共享内存中提取GPU资源调用指令的过程,包括:
按照所述共享内存中GPU资源调用指令保存的先后顺序,依次从所述共享内存中提取GPU资源调用指令。
可选的,所述将创建的GPU资源调用指令保存至共享内存的过程,包括:
以远程客户端的等级作为分类依据,将创建的GPU资源调用指令分类保存至所述共享内存。
本发明中,图形处理系统,包括第一类虚拟机、共享内存和第二类虚拟机;其中,第一类虚拟机,用于通过远程桌面协议,获取远程客户端发送的图像处理请求,根据获取到的图像处理请求创建相应的GPU资源调用指令,然后将创建的GPU资源调用指令发送至共享内存,并通过远程桌面协议,将共享内存传送的处理后图像发送至相应的远程客户端;共享内存,用于对第一类虚拟机发送的GPU资源调用指令进行保存,并将第二类虚拟机发送的处理后图像传送至第一类虚拟机;第二类虚拟机,用于从共享内存中提取GPU资源调用指令,然后利用提取到的GPU资源调用指令,从物理GPU中调取相应的GPU资源,以利用调取到的GPU资源对相应图像进行处理,并将处理后图像发送至共享内存。
可见,本发明中,第一类虚拟机负责获取图像处理请求,而第二类虚拟机则负责调取GPU资源,在第一类虚拟机和第二类虚拟机之间,设有共享内存。当第一类虚拟机根据图像处理请求创建了相应的GPU资源调用指令之后,只需将该指令保存至上述共享内存即可,而当第二类虚拟机利用调取到的GPU资源完成对相应的图像进行处理后,只需把处理后图像保存至上述共享内存即可,上述两个过程中无需对GPU相关指令进行拦截,也无需对信息数据进行特殊处理,从而有助于加快图形处理速度,也即提升了GPU虚拟化技术中的图形加速功能。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本发明实施例公开的一种图形处理系统应用示意图;
图2为本发明实施例公开的一种图形处理方法流程图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例公开了一种图形处理系统,参见图1所示,该系统包括第一类虚拟机11、共享内存12和第二类虚拟机13;其中,
第一类虚拟机11,用于通过远程桌面协议,获取远程客户端发送的图像处理请求,根据获取到的图像处理请求创建相应的GPU资源调用指令,然后将创建的GPU资源调用指令发送至共享内存12,并通过远程桌面协议,将共享内存12传送的处理后图像发送至相应的远程客户端;
共享内存12,用于对第一类虚拟机11发送的GPU资源调用指令进行保存,并将第二类虚拟13机发送的处理后图像传送至第一类虚拟机11;
第二类虚拟机13,用于从共享内存12中提取GPU资源调用指令,然后利用提取到的GPU资源调用指令,从物理GPU中调取相应的GPU资源,以利用调取到的GPU资源对相应图像进行处理,并将处理后图像发送至共享内存12。
需要说明的是,上述第一类虚拟机和第二类虚拟机均可以利用Hypervisor来进行创建,其中,Hypervisor在创建第二类虚拟机时,具体可以基于设备独占使用法(即VMM Pass-Through)来进行创建。由于采用了设备独占使用的虚拟化实施方式,所以上述第二类虚拟机可以获得与物理GPU相似的图形处理性能。而上述由Hypervisor创建的第一类虚拟机是分配给远程客户端使用的虚拟机,通过共享内存与上述第二类虚拟机进行交互,以借助第二类虚拟机来间接获取其在图形处理过程中所需的GPU资源。
本实施例中,一个物理GPU对应于一个第二类虚拟机,而一个第二类虚拟机可以对应于一个或多个的第一类虚拟机,也即,本实施例的图形处理系统中,可以包括包括至少一个第一类虚拟机和一个第二虚拟机。例如,上述图形处理系统中可以包括1个第二类虚拟机、1个共享内存以及10个第一类虚拟机,这10个第一类虚拟机可以分别分配给10个不同的远程客户端使用。
可见,本发明实施例中,第一类虚拟机负责获取图像处理请求,而第二类虚拟机则负责调取GPU资源,在第一类虚拟机和第二类虚拟机之间,设有共享内存。当第一类虚拟机根据图像处理请求创建了相应的GPU资源调用指令之后,只需将该指令保存至上述共享内存即可,而当第二类虚拟机利用调取到的GPU资源完成对相应的图像进行处理后,只需把处理后图像保存至上述共享内存即可,上述两个过程中无需对GPU相关指令进行拦截,也无需对信息数据进行特殊处理,从而有助于加快图形处理速度,也即提升了GPU虚拟化技术中的图形加速功能。
本发明实施例公开了一种具体的图形处理系统,具体包括第一类虚拟机、共享内存和第二类虚拟机;其中,
第一类虚拟机,用于通过远程桌面协议,获取远程客户端发送的图像处理请求,根据获取到的图像处理请求创建相应的GPU资源调用指令,然后将创建的GPU资源调用指令发送至共享内存,并通过远程桌面协议,将共享内存传送的处理后图像发送至相应的远程客户端;
共享内存,用于对第一类虚拟机发送的GPU资源调用指令进行保存,并将第二类虚拟机发送的处理后图像传送至第一类虚拟机;
第二类虚拟机,用于从共享内存中提取GPU资源调用指令,然后利用提取到的GPU资源调用指令,从物理GPU中调取相应的GPU资源,以利用调取到的GPU资源对相应图像进行处理,并将处理后图像发送至共享内存。
其中,上述共享内存,具体可以包括第一指令保存单元和第一图像传送单元;其中,
第一指令保存单元,用于按照指令创建时间的先后顺序,对接收到的GPU资源调用指令进行依次保存;
第一图像传送单元,用于将第二类虚拟机发送的处理后图像传送至第一类虚拟机。
相应的,上述第二类虚拟机,包括第一指令提取单元、第一资源调取单元和第一图像发送单元;其中,
第一指令提取单元,用于按照共享内存中GPU资源调用指令保存的先后顺序,依次从共享内存中提取GPU资源调用指令;
第一资源调取单元,用于利用第一指令提取单元提取到的GPU资源调用指令,从物理GPU中调取相应的GPU资源,以利用调取到的GPU资源对相应图像进行处理;
第一图像发送单元,用于将通过第一资源调取单元得到的处理后图像发送至共享内存。
本发明实施例公开了另一种具体的图形处理系统,具体包括第一类虚拟机、共享内存和第二类虚拟机;其中,
第一类虚拟机,用于通过远程桌面协议,获取远程客户端发送的图像处理请求,根据获取到的图像处理请求创建相应的GPU资源调用指令,然后将创建的GPU资源调用指令发送至共享内存,并通过远程桌面协议,将共享内存传送的处理后图像发送至相应的远程客户端;
共享内存,用于对第一类虚拟机发送的GPU资源调用指令进行保存,并将第二类虚拟机发送的处理后图像传送至第一类虚拟机;
第二类虚拟机,用于从共享内存中提取GPU资源调用指令,然后利用提取到的GPU资源调用指令,从物理GPU中调取相应的GPU资源,以利用调取到的GPU资源对相应图像进行处理,并将处理后图像发送至共享内存。
其中,上述共享内存,具体可以包括第二指令保存单元和第二图像传送单元;其中,
第二指令保存单元,用于以远程客户端的等级作为分类依据,对接收到的GPU资源调用指令进行分类保存;
第二图像传送单元,用于将第二类虚拟机发送的处理后图像传送至第一类虚拟机。
相应的,上述第二类虚拟机,具体可以包括第二指令提取单元、第二资源调取单元和第二图像发送单元;其中,
第二指令提取单元,用于按照共享内存中指令类别的等级高低顺序,依次从共享内存中提取GPU资源调用指令;
第二资源调取单元,用于利用第二指令提取单元提取到的GPU资源调用指令,从物理GPU中调取相应的GPU资源,以利用调取到的GPU资源对相应图像进行处理;
第二图像发送单元,用于将通过第二资源调取单元得到的处理后图像发送至共享内存。
相应的,本发明实施例还公开了一种图形处理虚拟化方法,参见图2所示,该方法包括:
步骤S11:利用第一类虚拟机,并通过远程桌面协议,获取远程客户端发送的图像处理请求,然后根据获取到的图像处理请求创建相应的GPU资源调用指令;
步骤S12:利用第一类虚拟机,将创建的GPU资源调用指令保存至共享内存;
步骤S13:利用第二类虚拟机,从共享内存中提取GPU资源调用指令,然后利用提取到的GPU资源调用指令,从物理GPU中调取相应的GPU资源,以利用调取到的GPU资源对相应图像进行处理,并将处理后图像发送至共享内存;
步骤S14:利用第一类虚拟机,并通过远程桌面协议,将共享内存接收到的处理后图像传送至相应的远程客户端。
需要说明的是,上述第一类虚拟机和第二类虚拟机均可以利用Hypervisor来进行创建,其中,Hypervisor在创建第二类虚拟机时,具体可以基于设备独占使用法来进行创建。由于采用了设备独占使用的虚拟化实施方式,所以上述第二类虚拟机可以获得与物理GPU相似的图形处理性能。而上述由Hypervisor创建的第一类虚拟机是分配给远程客户端使用的虚拟机,通过共享内存与上述第二类虚拟机进行交互,以借助第二类虚拟机来间接获取其在图形处理过程中所需的GPU资源。
本实施例中,一个物理GPU对应于一个第二类虚拟机,而一个第二类虚拟机可以对应于一个或多个的第一类虚拟机。
可见,本发明实施例中,第一类虚拟机负责获取图像处理请求,而第二类虚拟机则负责调取GPU资源,在第一类虚拟机和第二类虚拟机之间,设有共享内存。当第一类虚拟机根据图像处理请求创建了相应的GPU资源调用指令之后,只需将该指令保存至上述共享内存即可,而当第二类虚拟机利用调取到的GPU资源完成对相应的图像进行处理后,只需把处理后图像保存至上述共享内存即可,上述两个过程中无需对GPU相关指令进行拦截,也无需对信息数据进行特殊处理,从而有助于加快图形处理速度,也即提升了GPU虚拟化技术中的图形加速功能。
具体的,上述步骤S12中,将创建的GPU资源调用指令保存至共享内存的过程,可以包括:按照指令创建时间的先后顺序,将创建的GPU资源调用指令依次保存至共享内存。相应的,上述步骤S13中,从共享内存中提取GPU资源调用指令的过程,具体可以包括:按照共享内存中GPU资源调用指令保存的先后顺序,依次从共享内存中提取GPU资源调用指令。
当然,上述步骤S12中的将创建的GPU资源调用指令保存至共享内存的过程,也可以为:以远程客户端的等级作为分类依据,将创建的GPU资源调用指令分类保存至共享内存。相应的,上述步骤S13中,从共享内存中提取GPU资源调用指令的过程,具体可以包括:按照共享内存中指令类别的等级高低顺序,依次从共享内存中提取GPU资源调用指令。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上对本发明所提供的一种图形处理系统及虚拟化方法进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。