一种通用图形处理器虚拟化方法及系统技术方案

技术编号:39894151 阅读:12 留言:0更新日期:2023-12-30 13:07
本发明专利技术提供了一种通用图形处理器虚拟化方法及系统,方法应用于物理机,物理机包括多个虚拟机,

【技术实现步骤摘要】
一种通用图形处理器虚拟化方法及系统


[0001]本专利技术属于虚拟化
,更具体地,涉及一种通用图形处理器虚拟化方法及系统


技术介绍

[0002]计算机领域中虚拟化技术一般指通过软硬件技术将物理机资源通过切分,复用给虚拟机使用的资源管理方案

通过抽象

模拟计算机的各种实体资源
(CPU、
图形处理器

磁盘空间

内存等
)
,将其切分或组合为一个或多个电脑组态环境
(
主要指虚拟机
)
,从而打破实体结构间的不可切割的障碍,实现多用户
(
一般指多虚拟机
)
可以高效便捷地共享使用计算机硬体资源的目的

[0003]当下以虚拟化技术为代表的云计算应用与环境飞速发展,其中以
CPU+GPU(graphics processing units
,图形处理器
)
为代表异构计算系统成为虚拟化技术发展的关键
。CPU
虚拟化目前技术较为成熟


GPU
虚拟化方式则起步较晚,目前实际采用的
GPU
虚拟化方案以应用层转发或硬件虚拟化支持的
GPU
切片方案为主,存在转发命令效率低,依赖特定硬件虚拟化模块等问题


技术实现思路

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

[0005]为实现上述目的,第一方面,本专利技术提供了一种通用图形处理器虚拟化方法,所述方法应用于物理机,所述物理机包括多个虚拟机,
GPU
后端驱动,设置有
GPU
驱动的图形框架以及
GPU
;每个虚拟机包括图形应用以及
GPU
前端驱动;
[0006]所述方法包括以下步骤:
[0007]步骤
S101
,任一虚拟机的图形应用接收
CPU
发送的图形命令;
[0008]步骤
S102
,所述任一虚拟机的
GPU
前端驱动捕获图形应用的图形命令,并将图形命令写入到共享内存的环形队列中;所述共享内存为所述
GPU
前端驱动在初始化过程中所申请的;
[0009]步骤
S103

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

[0010]在一个可选的示例中,步骤
S102

GPU
前端驱动将图形命令写入到共享内存的环形队列中,具体包括:
[0011]GPU
前端驱动将图形命令写入环形队列中前端标志位对应的空间,并在写入成功后,将加一后的前端标志位作为更新后的前端标志位;
[0012]对应地,步骤
S103

GPU
后端驱动以零拷贝的方式读取共享内存的环形队列中的图形命令,具体包括:
[0013]GPU
后端驱动从环形队列中后端标志位对应的空间中读取图形命令,并在读取成功后,将加一后的后端标志位作为更新后的后端标志位;所述后端标志位与前端标志位的初始值相同

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

[0015]在一个可选的示例中,所述任一虚拟机的
GPU
前端驱动包括调度控制器,
GPU
后端驱动包括调度监视器;
[0016]所述方法还包括:
[0017]调度监视器基于图形帧率,计算图形命令所需的帧周期;
[0018]调度监视器将所述帧周期发送给调度控制器;
[0019]调度控制器基于所述帧周期,控制图形命令写入环形队列的时间,以实现分配所述任一虚拟机使用
GPU
的时间

[0020]第二方面,本专利技术提供了一种通用图形处理器虚拟化系统,包括
CPU
和物理机,所述物理机包括多个虚拟机,
GPU
后端驱动,设置有
GPU
驱动的图形框架以及
GPU
;每个虚拟机包括图形应用以及
GPU
前端驱动;
[0021]任一虚拟机的图形应用用于接收
CPU
发送的图形命令;
[0022]所述任一虚拟机的
GPU
前端驱动用于捕获图形应用的图形命令,并将图形命令写入到共享内存的环形队列中;所述共享内存为所述
GPU
前端驱动在初始化过程中所申请的;
[0023]所述
GPU
后端驱动用于以零拷贝的方式读取共享内存的环形队列中的图形命令,并调用图形框架操作
GPU
驱动,以使
GPU
执行图形命令

[0024]在一个可选的示例中,所述任一虚拟机的
GPU
前端驱动具体用于将图形命令写入环形队列中前端标志位对应的空间,并在写入成功后,将加一后的前端标志位作为更新后的前端标志位;
[0025]对应地,所述
GPU
后端驱动具体用于
GPU
后端驱动从环形队列中后端标志位对应的空间中读取图形命令,并在读取成功后,将加一后的后端标志位作为更新后的后端标志位;所述后端标志位与前端标志位的初始值相同

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

[0027]在一个可选的示例中,所述任一虚拟机的
GPU
前端驱动包括调度控制器,
GPU
后端驱动包括调度监视器;
[0028]调度监视器用于基于图形帧率,计算图形命令所需的帧周期;
[0029]调度监视器用于将所述帧周期发送给调度控制器;
[0030]调度控制器用于基于所述帧周期,控制图形命令写入环形队列的时间,以实现分配所述任一虚拟机使用
GPU
的时间

[0031]第三方面,本专利技术提供一种电子设备,包括:至少一个存储器,用于存储程序;至少一个处理器,用于执行存储器存储的程序,当存储器存储的程序被执行时,处理器用于执行第一方面或第一方面的任一种可能的实现方式所描述的方法

[0032]第四方面,本专利技术提供一种计算机可读存储介质,计算机可读存储介质存储有计算机程序,当计算机程序在处理器上运行时,使得处理器执行第一方面本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.
一种通用图形处理器虚拟化方法,其特征在于,所述方法应用于物理机,所述物理机包括多个虚拟机,
GPU
后端驱动,设置有
GPU
驱动的图形框架以及
GPU
;每个虚拟机包括图形应用以及
GPU
前端驱动;所述方法包括以下步骤:步骤
S101
,任一虚拟机的图形应用接收
CPU
发送的图形命令;步骤
S102
,所述任一虚拟机的
GPU
前端驱动捕获图形应用的图形命令,并将图形命令写入到共享内存的环形队列中;所述共享内存为所述
GPU
前端驱动在初始化过程中所申请的;步骤
S103

GPU
后端驱动以零拷贝的方式读取共享内存的环形队列中的图形命令,并调用图形框架操作
GPU
驱动,以使
GPU
执行图形命令
。2.
根据权利要求1所述的方法,其特征在于,步骤
S102

GPU
前端驱动将图形命令写入到共享内存的环形队列中,具体包括:
GPU
前端驱动将图形命令写入环形队列中前端标志位对应的空间,并在写入成功后,将加一后的前端标志位作为更新后的前端标志位;对应地,步骤
S103

GPU
后端驱动以零拷贝的方式读取共享内存的环形队列中的图形命令,具体包括:
GPU
后端驱动从环形队列中后端标志位对应的空间中读取图形命令,并在读取成功后,将加一后的后端标志位作为更新后的后端标志位;所述后端标志位与前端标志位的初始值相同
。3.
根据权利要求2所述的方法,其特征在于,所述环形队列中具体存储的是所述图形命令的指针
。4.
根据权利要求1所述的方法,其特征在于,所述任一虚拟机的
GPU
前端驱动包括调度控制器,
GPU
后端驱动包括调度监视器;所述方法还包括:调度监视器基于图形帧率,计算图形命令所需的帧周期;调度监视器将所述帧周期发送给调度控制器;调度控制器基于所述帧周期,控制图形命令写入环形队列的时间,以实现分配所述任一虚拟机使用
GPU
的时间
。5.
一种通用图形处理器虚拟化系统,其特征在于,包括

【专利技术属性】
技术研发人员:何德威余学俊付席席王攀攀
申请(专利权)人:中国船舶集团有限公司第七
类型:发明
国别省市:

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

1