一种通用图形处理器虚拟化方法及系统与流程

文档序号:36507834发布日期:2023-12-28 23:11阅读:33来源:国知局
一种通用图形处理器虚拟化方法及系统与流程

本发明属于虚拟化,更具体地,涉及一种通用图形处理器虚拟化方法及系统。


背景技术:

1、计算机领域中虚拟化技术一般指通过软硬件技术将物理机资源通过切分,复用给虚拟机使用的资源管理方案。通过抽象、模拟计算机的各种实体资源(cpu、图形处理器、磁盘空间、内存等),将其切分或组合为一个或多个电脑组态环境(主要指虚拟机),从而打破实体结构间的不可切割的障碍,实现多用户(一般指多虚拟机)可以高效便捷地共享使用计算机硬体资源的目的。

2、当下以虚拟化技术为代表的云计算应用与环境飞速发展,其中以cpu+gpu(graphics processing units,图形处理器)为代表异构计算系统成为虚拟化技术发展的关键。cpu虚拟化目前技术较为成熟。而gpu虚拟化方式则起步较晚,目前实际采用的gpu虚拟化方案以应用层转发或硬件虚拟化支持的gpu切片方案为主,存在转发命令效率低,依赖特定硬件虚拟化模块等问题。


技术实现思路

1、针对现有技术的缺陷,本发明的目的在于提供一种通用图形处理器虚拟化方法及系统,旨在解决现有gpu虚拟化方案存在转发命令效率低,依赖特定硬件虚拟化模块的问题。

2、为实现上述目的,第一方面,本发明提供了一种通用图形处理器虚拟化方法,所述方法应用于物理机,所述物理机包括多个虚拟机,gpu后端驱动,设置有gpu驱动的图形框架以及gpu;每个虚拟机包括图形应用以及gpu前端驱动;

3、所述方法包括以下步骤:

4、步骤s101,任一虚拟机的图形应用接收cpu发送的图形命令;

5、步骤s102,所述任一虚拟机的gpu前端驱动捕获图形应用的图形命令,并将图形命令写入到共享内存的环形队列中;所述共享内存为所述gpu前端驱动在初始化过程中所申请的;

6、步骤s103,gpu后端驱动以零拷贝的方式读取共享内存的环形队列中的图形命令,并调用图形框架操作gpu驱动,以使gpu执行图形命令。

7、在一个可选的示例中,步骤s102中gpu前端驱动将图形命令写入到共享内存的环形队列中,具体包括:

8、gpu前端驱动将图形命令写入环形队列中前端标志位对应的空间,并在写入成功后,将加一后的前端标志位作为更新后的前端标志位;

9、对应地,步骤s103中gpu后端驱动以零拷贝的方式读取共享内存的环形队列中的图形命令,具体包括:

10、gpu后端驱动从环形队列中后端标志位对应的空间中读取图形命令,并在读取成功后,将加一后的后端标志位作为更新后的后端标志位;所述后端标志位与前端标志位的初始值相同。

11、在一个可选的示例中,所述环形队列中具体存储的是所述图形命令的指针。

12、在一个可选的示例中,所述任一虚拟机的gpu前端驱动包括调度控制器,gpu后端驱动包括调度监视器;

13、所述方法还包括:

14、调度监视器基于图形帧率,计算图形命令所需的帧周期;

15、调度监视器将所述帧周期发送给调度控制器;

16、调度控制器基于所述帧周期,控制图形命令写入环形队列的时间,以实现分配所述任一虚拟机使用gpu的时间。

17、第二方面,本发明提供了一种通用图形处理器虚拟化系统,包括cpu和物理机,所述物理机包括多个虚拟机,gpu后端驱动,设置有gpu驱动的图形框架以及gpu;每个虚拟机包括图形应用以及gpu前端驱动;

18、任一虚拟机的图形应用用于接收cpu发送的图形命令;

19、所述任一虚拟机的gpu前端驱动用于捕获图形应用的图形命令,并将图形命令写入到共享内存的环形队列中;所述共享内存为所述gpu前端驱动在初始化过程中所申请的;

20、所述gpu后端驱动用于以零拷贝的方式读取共享内存的环形队列中的图形命令,并调用图形框架操作gpu驱动,以使gpu执行图形命令。

21、在一个可选的示例中,所述任一虚拟机的gpu前端驱动具体用于将图形命令写入环形队列中前端标志位对应的空间,并在写入成功后,将加一后的前端标志位作为更新后的前端标志位;

22、对应地,所述gpu后端驱动具体用于gpu后端驱动从环形队列中后端标志位对应的空间中读取图形命令,并在读取成功后,将加一后的后端标志位作为更新后的后端标志位;所述后端标志位与前端标志位的初始值相同。

23、在一个可选的示例中,所述环形队列中具体存储的是所述图形命令的指针。

24、在一个可选的示例中,所述任一虚拟机的gpu前端驱动包括调度控制器,gpu后端驱动包括调度监视器;

25、调度监视器用于基于图形帧率,计算图形命令所需的帧周期;

26、调度监视器用于将所述帧周期发送给调度控制器;

27、调度控制器用于基于所述帧周期,控制图形命令写入环形队列的时间,以实现分配所述任一虚拟机使用gpu的时间。

28、第三方面,本发明提供一种电子设备,包括:至少一个存储器,用于存储程序;至少一个处理器,用于执行存储器存储的程序,当存储器存储的程序被执行时,处理器用于执行第一方面或第一方面的任一种可能的实现方式所描述的方法。

29、第四方面,本发明提供一种计算机可读存储介质,计算机可读存储介质存储有计算机程序,当计算机程序在处理器上运行时,使得处理器执行第一方面或第一方面的任一种可能的实现方式所描述的方法。

30、总体而言,通过本发明所构思的以上技术方案与现有技术相比,具有以下有益效果:

31、本发明提供一种通用图形处理器虚拟化方法及系统,通过虚拟机中新增gpu前端驱动,物理机中新增gpu后端驱动,gpu前端驱动捕获虚拟机中图形应用的图形命令并写入共享内存,gpu后端驱动利用共享内存直接以零拷贝的形式从共享内存中读取命令后,再调用图形框架操作gpu驱动,以最终实现在gpu上执行图形命令,从而在不依赖硬件虚拟化支持的情况下,实现gpu虚拟化功能,无需修改现有应用程序,适配性强,具备通用性,并且,虚拟化方式采用在驱动层零拷贝方式转发命令,相比普通命令转发方式虚拟化效率高。



技术特征:

1.一种通用图形处理器虚拟化方法,其特征在于,所述方法应用于物理机,所述物理机包括多个虚拟机,gpu后端驱动,设置有gpu驱动的图形框架以及gpu;每个虚拟机包括图形应用以及gpu前端驱动;

2.根据权利要求1所述的方法,其特征在于,步骤s102中gpu前端驱动将图形命令写入到共享内存的环形队列中,具体包括:

3.根据权利要求2所述的方法,其特征在于,所述环形队列中具体存储的是所述图形命令的指针。

4.根据权利要求1所述的方法,其特征在于,所述任一虚拟机的gpu前端驱动包括调度控制器,gpu后端驱动包括调度监视器;

5.一种通用图形处理器虚拟化系统,其特征在于,包括cpu和物理机,所述物理机包括多个虚拟机,gpu后端驱动,设置有gpu驱动的图形框架以及gpu;每个虚拟机包括图形应用以及gpu前端驱动;

6.根据权利要求5所述的系统,其特征在于,所述任一虚拟机的gpu前端驱动具体用于将图形命令写入环形队列中前端标志位对应的空间,并在写入成功后,将加一后的前端标志位作为更新后的前端标志位;

7.根据权利要求6所述的系统,其特征在于,所述环形队列中具体存储的是所述图形命令的指针。

8.根据权利要求5所述的系统,其特征在于,所述任一虚拟机的gpu前端驱动包括调度控制器,gpu后端驱动包括调度监视器;

9.一种电子设备,其特征在于,包括:

10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序,当所述计算机程序在处理器上运行时,使得所述处理器执行如权利要求1-4任一项所述的方法。


技术总结
本发明提供了一种通用图形处理器虚拟化方法及系统,方法应用于物理机,物理机包括多个虚拟机,GPU后端驱动,设置有GPU驱动的图形框架以及GPU;每个虚拟机包括图形应用以及GPU前端驱动;方法包括:任一虚拟机的图形应用接收CPU发送的图形命令;该虚拟机的GPU前端驱动捕获图形应用的图形命令,并将图形命令写入到共享内存的环形队列中;GPU后端驱动以零拷贝的方式读取环形队列中的图形命令,并调用图形框架操作GPU驱动,以使GPU执行图形命令。本发明在不依赖硬件虚拟化支持的情况下,实现GPU虚拟化功能,适配性强,具备通用性,并且,采用在驱动层零拷贝方式转发命令,相比普通命令转发方式虚拟化效率高。

技术研发人员:何德威,余学俊,付席席,王攀攀
受保护的技术使用者:中国船舶集团有限公司第七〇九研究所
技术研发日:
技术公布日:2024/1/15
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1