
技术摘要:
本发明涉及GPU虚拟化与虚拟机技术,并具体公开了一种基于图形库API的GPU虚拟化方法、系统及介质。该方法不仅配置不具有GPU硬件资源的虚拟机,使其需要处理渲染任务时,调用其图形代理库的API并发出相应的调用通知;而且,还配置具有GPU硬件资源的虚拟机或主机,接收由 全部
背景技术:
Hypervisor叫做虚拟机监视器(Virtual Machine Monitor),是一种运行其他操 作系统的操作系统。Hypervisor运行在物理硬件和操作系统之间的中间层操作系统,可允 许多个操作系统和应用共享一套基础物理硬件,运行在Hypervisor之上的操作系统称之为 客户机操作系统(Guest OS)。 由于多个Guest OS共享一套基础物理硬件,在硬件资源充足的情况下,每个Guest OS可单独使用一个独立的物理硬件资源,如每个Guest OS各自使用一块GPU硬件。当硬件资 源不足的情况下,则需要将一个物理硬件进行虚拟化,供给多个Guest OS使用,即实际上是 多个Guest OS竞争一个GPU硬件资源。 目前,市场上的部分高端GPU一般会自带有硬件虚拟化的功能,该功能的实现是通 过硬件指令将一块GPU硬件虚拟化为多个独立的GPU供多个Guest OS使用,然而大部分低端 GPU并不具有硬件虚拟化的功能,现有针对低端GPU的其他虚拟化方法,设计复杂、硬件性能 损失大且通用性差。 因此,有必要设计一种硬件性能损失小且通用性好的GPU虚拟化方法。
技术实现要素:
本发明的目的在于:提供一种硬件性能损失小且通用性好的GPU虚拟化方法。 为了达到上述目的,本发明解决技术问题所采用的技术方案如下:一种基于图形 库API代理的GPU虚拟化方法,其包括: 配置不具有GPU硬件资源的虚拟机在其需要处理渲染任务时,调用其图形代理库 的API并发出相应的调用通知;以及配置具有GPU硬件资源的虚拟机或主机,接收由其它虚 拟机的所述调用通知,以及根据其接收到的所述调用通知,调用与所述图形代理库的API相 对应的硬件加速图形库的API,以通过其具有的GPU硬件资源处理其它虚拟机的渲染任务。 根据一种具体的实施方式,本发明基于图形库API代理的GPU虚拟化方法还包括, 配置Hypervisor提供的虚拟机之间的进程间通信为Socket通信。 根据一种具体的实施方式,本发明基于图形库API代理的GPU虚拟化方法中,所述 调用通知包含其对应虚拟机的内存地址数据。 根据一种具体的实施方式,本发明基于图形库API代理的GPU虚拟化方法中,所述 图形代理库的API集合与所述硬件加速图形库的API集合的函数命名与参数均一致。 进一步地,配置不具有GPU硬件资源的虚拟机使其无法创建硬件加速图形库运行 的上下文;以及配置具有GPU硬件资源的虚拟机或主机根据其接收到的所述调用通知,创建 硬件加速图形库运行的上下文。 3 CN 111552554 A 说 明 书 2/5 页 基于与本发明公开的基于图形库API代理的GPU虚拟化方法相同的发明构思,在具 体实施的一方面,本发明还提供一种基于图形库API代理的GPU虚拟化系统,其包括虚拟机 和主机;其中,所述主机用于运行Hypervisor,为虚拟机之间提供进程间通信; 不具有GPU硬件资源的虚拟机,用于在需要处理渲染任务时,调用其图形代理库的 API并发出相应的调用通知; 具有GPU硬件资源的虚拟机或所述主机,用于接收由其它虚拟机的所述调用通知, 以及根据接收到的所述调用通知,调用与所述图形代理库的API相对应的硬件加速图形库 的API,以通过其具有的GPU硬件资源处理其它虚拟机的渲染任务。 基于与本发明公开的基于图形库API代理的GPU虚拟化方法相同的发明构思,在具 体实施的一方面,本发明还提供一种图像渲染方法,包括以下步骤: 虚拟机接收到渲染任务后,若该虚拟机不具有GPU硬件资源,则调用其图形代理库 的API并发出相应的调用通知; 具有GPU硬件资源的虚拟机或主机接收到所述调用通知后,则根据接收到的所述 调用通知,调用与所述图形代理库的API相对应的硬件加速图形库的API;并利用其GPU硬件 资源处理其它虚拟机的渲染任务。 此外,本发明在具体实施的一方面,还提供一种可读存储介质,其上存储有一个或 多个程序,其特征在于,该一个或多个程序被一个或多个处理器执行时实现本发明基于图 形库API代理的GPU虚拟化方法或本发明的图像渲染方法。 综上所述,与现有技术相比,本发明的有益效果是: 本发明基于图形库API代理的GPU虚拟化方法,不仅配置不具有GPU硬件资源的虚 拟机,使其需要处理渲染任务时,调用其图形代理库的API并发出相应的调用通知;而且,还 配置具有GPU硬件资源的虚拟机或主机,接收由其它虚拟机的调用通知,并根据接收到的调 用通知,调用与图形代理库的API相对应的硬件加速图形库的API,从而通过GPU硬件资源处 理其它虚拟机的渲染任务。因此,本发明能够将多个虚拟机共用一个GPU的虚拟化场景,转 换为在一个虚拟机上的多个进程使用GPU的简单场景,具有硬件性能损失小且通用性好的 优点。 附图说明: 图1为本发明基于图形库API代理的GPU虚拟化系统的架构图; 图2为本发明基于图形库API代理的GPU虚拟化的流程图。