支持OpenGL的GPU的仿真与集成方法及系统技术方案

技术编号:38007072 阅读:9 留言:0更新日期:2023-06-30 10:24
本发明专利技术提供了一种支持OpenGL的GPU的仿真与集成方法及系统,涉及GPU虚拟化技术领域,包括:步骤S1:制作虚拟GPU驱动库;步骤S2:根据所述虚拟GPU驱动库,重新编译在虚拟机上运行的应用程序;步骤S3:制作虚拟GPU接口转发库;步骤S4:虚拟机软件集成所述虚拟GPU接口转发库。本发明专利技术能够实现同时仿真多个GPU,提高仿真效率。率。率。

【技术实现步骤摘要】
支持OpenGL的GPU的仿真与集成方法及系统


[0001]本专利技术涉及GPU虚拟化
,具体地,涉及一种支持OpenGL的GPU的仿真与集成方法及系统。

技术介绍

[0002]当前的GPU仿真领域主要包含三种仿真方案:
[0003]1、软件直接模拟。由于GPU中包含大量并行计算处理单元,而宿主机CPU的包含大量的逻辑控制单元。两者的用途分工不同,设计架构不同。因而使用通用宿主机CPU来仿真虚拟机GPU效率较低。但该方案可用于多GPU的计算机系统仿真。
[0004]2、显卡直通。利用不同显卡厂家提供的特殊接口实现虚拟机直接利用GPU硬件,这种方案虚拟GPU效率高,但GPU不能共享,不适用于仿真多GPU的计算机系统的场景。
[0005]3、API转发。这种方案是通过时间片将GPU硬件分配给虚拟机使用即实现了虚拟的多系统共享GPU,同时虚拟机也有较高的仿真运行效率。
[0006]公开号为CN111399976A的专利技术专利,公开了一种基于API重定向技术的GPU虚拟化实现系统及方法,其中:位于客户端的指令代理模块截获客户端的图像应用程序中与OpenGL相关的API调用指令,并对该指令进行处理后,发送至远程服务器端执行渲染任务;任务调度模块将客户端发来的指令数据进行相应处理得到指令流,并分配给各个微GPU模块;微GPU模块完成指令流的渲染任务,并回传至客户端。该专利中宿主机为远程的服务器,虚拟机为本地的客户端,且网络传输带了性能的损失,性能不如本地应用程序直接数据引用的方式。
>[0007]公开号为CN111552554A的专利技术专利,公开了一种基于图形库API代理的GPU虚拟化方法、系统及介质,该方法不仅配置不具有GPU硬件资源的虚拟机,使其需要处理渲染任务时,调用其图形代理库的API并发出相应的调用通知;而且,还配置具有GPU硬件资源的虚拟机或主机,接收由其它虚拟机的调用通知,并根据接收到的调用通知,调用与图形代理库的API相对应的硬件加速图形库的API,从而通过GPU硬件资源处理其它虚拟机的渲染任务。该专利中虚拟机使用进程间通信的方式传递API信息到宿主机,也有一定的性能损失。并且查找API的方式也有性能损失。

技术实现思路

[0008]针对现有技术中的缺陷,本专利技术提供一种支持OpenGL的GPU的仿真与集成方法及系统。
[0009]根据本专利技术提供的一种支持OpenGL的GPU的仿真与集成方法及系统,所述方案如下:
[0010]第一方面,提供了一种支持OpenGL的GPU的仿真与集成方法,所述方法包括:
[0011]步骤S1:制作虚拟GPU驱动库;
[0012]步骤S2:根据所述虚拟GPU驱动库,重新编译在虚拟机上运行的应用程序;
[0013]步骤S3:制作虚拟GPU接口转发库;
[0014]步骤S4:虚拟机软件集成所述虚拟GPU接口转发库。
[0015]优选地,所述步骤S1包括:
[0016]步骤S1.1:虚拟GPU驱动库API接口与OpenGL接口一致,采用所述API接口使虚拟方案适用于多种GPU和多种操作系统;
[0017]步骤S1.2:编写实现所有的虚拟GPU驱动库API函数;
[0018]步骤S1.3:使用待虚拟化的目标机的开发工具链,将所有API接口函数编译成对应的OpenGL链接库。
[0019]优选地,所述步骤S1.2包括:
[0020]步骤S1.2.1:填充约定好的数据结构:其中包括API函数索引值、API函数传入参数的数目、API函数的各个参数以及返回值结构体指针;
[0021]步骤S1.2.2:填充完成触发虚拟机转发接口函数的运行;
[0022]步骤S1.2.3:读取转发接口函数的运行结果;
[0023]步骤S1.2.4:如果运行成功,继续运行,运行不成功则重新开始步骤S1.2.1;
[0024]步骤S1.2.5:如果有返回值,则将返回值返回给虚拟驱动API。
[0025]优选地,所述步骤S2包括:
[0026]步骤S2.1:利用所述虚拟GPU驱动库替换应用程序所引用的OpenGL驱动库;
[0027]步骤S2.2:使用待虚拟化的目标机的开发工具链重新链接应用程序。
[0028]优选地,所述步骤S3包括:
[0029]步骤S3.1:对应于虚拟GPU驱动库中的每个API函数都有对应的虚拟GPU接口转发库函数,实现每个虚拟GPU接口转发库函数的流程如下:
[0030]步骤S3.1.1:读取约定好的数据结构:其中包括API函数索引值、API函数传入参数的数目以及API函数的各个参数;
[0031]步骤S3.1.2:建立能够通过API函数索引值作为索引查找宿主机的GPU驱动库的HASH表;
[0032]步骤S3.1.3:使用HASH表查找GPU驱动库;
[0033]步骤S3.1.4:将传入数据结构中的参数填入运行宿主机GPU驱动API函数;
[0034]步骤S3.1.5:如果有返回值,将返回值放到数据结构中的指定位置;
[0035]步骤S3.2:使用开发虚拟机的开发工具链,将所有的API接口转发库编译成虚拟机软件可引用的链接库。
[0036]优选地,所述步骤S4包括:
[0037]步骤S4.1:虚拟机软件按照步骤S3集成后运行步骤S2得到虚拟机上的应用;
[0038]步骤S4.2:步骤S2的虚拟机上的应用程序运行时调用虚拟GPU驱动库;
[0039]步骤S4.3:虚拟GPU驱动库在虚拟机中通过步骤S3的API转发库调用真实物理机的GPU驱动库从而在宿主机的物理GPU上进行图形运算处理。
[0040]第二方面,提供了一种支持OpenGL的GPU的仿真与集成系统,所述系统包括:
[0041]模块M1:制作虚拟GPU驱动库;
[0042]模块M2:根据所述虚拟GPU驱动库,重新编译在虚拟机上运行的应用程序;
[0043]模块M3:制作虚拟GPU接口转发库;
[0044]模块M4:虚拟机软件集成所述虚拟GPU接口转发库。
[0045]优选地,所述模块M1包括:
[0046]模块M1.1:虚拟GPU驱动库API接口与OpenGL接口一致,采用所述API接口使虚拟方案适用于多种GPU和多种操作系统;
[0047]模块M1.2:编写所有用到的API接口的虚拟GPU驱动库函数即API函数;
[0048]模块M1.3:实现每个虚拟驱动API函数;
[0049]模块M1.4:使用待虚拟化的目标机的开发工具链,将所有API函数编译成对应的OpenGL链接库;
[0050]所述模块M1.3包括:
[0051]模块M1.3.1:填充约定好的数据结构:其中包括API函数索引值、API函数传入参数的数目、API函数的各个参数以及返回值结构体指针;
[0052]模块M1本文档来自技高网...

【技术保护点】

【技术特征摘要】
1.一种支持OpenGL的GPU的仿真与集成方法,其特征在于,包括:步骤S1:制作虚拟GPU驱动库;步骤S2:根据所述虚拟GPU驱动库,重新编译在虚拟机上运行的应用程序;步骤S3:制作虚拟GPU接口转发库;步骤S4:虚拟机软件集成所述虚拟GPU接口转发库。2.根据权利要求1所述的支持OpenGL的GPU的仿真与集成方法,其特征在于,所述步骤S1包括:步骤S1.1:虚拟GPU驱动库API接口与OpenGL接口一致,采用所述API接口使虚拟方案适用于多种GPU和多种操作系统;步骤S1.2:编写实现所有的虚拟GPU驱动库API函数;步骤S1.3:使用待虚拟化的目标机的开发工具链,将所有API函数编译成对应的OpenGL链接库。3.根据权利要求2所述的支持OpenGL的GPU的仿真与集成方法,其特征在于,所述步骤S1.2包括:步骤S1.2.1:填充约定好的数据结构:其中包括API函数索引值、API函数传入参数的数目、API函数的各个参数以及返回值结构体指针;步骤S1.2.2:触发运行虚拟GPU接口转发库函数;步骤S1.2.3:读取运行虚拟GPU接口转发库函数的结果;步骤S1.2.4:如果运行成功,继续运行,运行不成功则重新开始步骤S1.2.1;步骤S1.2.5:如果有返回值,则将返回值返回给虚拟驱动API。4.根据权利要求1所述的支持OpenGL的GPU的仿真与集成方法,其特征在于,所述步骤S2包括:步骤S2.1:利用所述虚拟GPU驱动库替换应用程序所引用的OpenGL驱动库;步骤S2.2:使用待虚拟化的目标机的开发工具链重新链接应用程序。5.根据权利要求1所述的支持OpenGL的GPU的仿真与集成方法,其特征在于,所述步骤S3包括:步骤S3.1:对应于虚拟GPU驱动库中的每个API函数都有对应的虚拟GPU接口转发库函数,实现每个虚拟GPU接口转发库函数的流程如下:步骤S3.1.1:读取约定好的数据结构:其中包括API函数索引值、API函数传入参数的数目以及API函数的各个参数;步骤S3.1.2:建立能够通过API函数索引值作为索引查找宿主机的GPU驱动库的HASH表;步骤S3.1.3:使用HASH表查找GPU驱动库;步骤S3.1.4:将传入数据结构中的参数填入运行宿主机GPU驱动API函数;步骤S3.1.5:如果有返回值,将返回值放到数据结构中的指定位置;步骤S3.2:使用开发虚拟机的开发工具链,将所有的API接口转发库编译成虚拟机软件可引用的链接库。6.根据权利要求1所述的支持OpenGL的GPU的仿真与集成方法,其特征在于,所述步骤S4包括:
步骤S4.1:虚拟机软件按照步骤S3集成后运行步骤S2得到虚拟机上的应用;步骤S4.2:步骤S2的虚拟机上的应用程序运行时调用虚拟GPU驱动库;步骤S4.3:虚拟GPU驱动库在虚拟机中通过步骤S3的AP...

【专利技术属性】
技术研发人员:王耀林凤少波邢逢峰
申请(专利权)人:上海创景信息科技有限公司
类型:发明
国别省市:

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

1