一种GPU虚拟化画面显示的方法及装置制造方法及图纸

技术编号:20362646 阅读:33 留言:0更新日期:2019-02-16 16:25
本发明专利技术公开了一种GPU虚拟化画面显示的方法,主机先启动ivshmem‑server,之后启动虚拟机时指定ivshmem设备、QXL设备、物理GPU设备,ivshmem设备及QXL设备连接到ivshmem‑server上;虚拟机捕获物理GPU的桌面数据和鼠标数据并且写入ivshmem设备;主机确定ivshmem‑server中的数据是桌面数据或者鼠标数据,将所述桌面数据写入QXL设备的VGA显存,将所述鼠标数据写入QXL设备内嵌的spice显示对象中,输出显示;还公开了一种GPU虚拟化画面显示的装置,本发明专利技术在现有虚拟化协议的基础上集成了GPU的显示,以实现GPU的虚拟化画面显示。

【技术实现步骤摘要】
一种GPU虚拟化画面显示的方法及装置
本专利技术涉及云桌面系统GPU虚拟化领域,画面显示的方法及系统。尤其是需要桌面云系统的3D软件设计行业,3D游戏行业。
技术介绍
随着云计算技术的发展,GPU虚拟化需求越来越多,基于直通技术的GPU虚拟化越来越完善。在桌面云领域,直通GPU到虚拟机内后,需要配合显示技术,终端才能看到显卡的输出画面。目前的远程显示技术,如:VNC,RDP,TeamViewer等都需要虚拟机连接网络后才能看到画面,其中基于SPICE的显示技术则只能利用QXL设备来显示,没办法显示GPU的输出。因此需要在现有的SPICE显示技术的基础上,集成GPU的显示。如何把GPU的显示集成到SPICE协议上是本专利技术的重点。
技术实现思路
为解决上述的问题,本专利技术提供了一种在现有的SPICE协议显示技术的基础上,集成GPU虚拟化画面显示的方法及装置。为达到上述目的,本专利技术的技术方案是这样实现的:主机启动ivshmem-server;主机启动虚拟机时,指定ivshmem设备、QXL设备、物理GPU设备,并且ivshmem设备和QXL设备连接到ivshmem-server;虚拟机捕获物理GPU的桌面数据和鼠标数据写入ivshmem设备中;主机确定ivshmem-server中的数据是桌面数据或者鼠标数据将所述桌面数据写入QXL设备的VGA显存,将所述鼠标数据写入QXL设备内嵌的spice显示对象中,输出显示。在上述方案中,所述虚拟机确定写入ivshmem设备的数据是桌面数据或者鼠标数据,具体地,在ivshmem设备内设置桌面事件和cursor数据事件;所述的桌面数据触发桌面事件;所述的鼠标数据触发cursor事件。在上述方案中,所述主机确定ivshmem-server中的数据是桌面数据还是鼠标数据,并确定该次的桌面数据或鼠标数据处理完成中断,具体地,QXL设备中设置桌面数据处理完成和cursor数据处理完成的中断信号;桌面数据写入QXL设备后触发桌面数据处理完成中断;鼠标数据写入QXL设备后触发cursor数据处理完成中断。在上述方案中,所述的虚拟机捕获物理GPU的桌面数据和鼠标数据并且写入ivshmem设备中,具体的物理GPU首先获取单次的桌面数据和鼠标数据并且写入ivshmem设备,确定该次的桌面数据和鼠标数据处理完成之后,物理GPU再次获取桌面数据和鼠标数据并且写入ivshmem设备。在上述方案中,主机确定该次的桌面数据和鼠标数据处理完成之后,主机通知虚拟机以继续获取桌面数据和鼠标数据。在上述方案中,进一步,通过虚拟机捕获的桌面数据,具体可以是全局画面或者局部变化区域的画面。本专利技术实施例还提供一种GPU虚拟化画面显示的装置,应用了上述的GPU虚拟化画面显示的方法,该装置包括物理GPU、ivshmem设备模块和QXL设备模块;所述的ivshmem设备模块用于写入虚拟机捕获的数据;所述的QXL设备模块用于存储ivshmem设备模块处理的数据。在上述方案中,所述的ivshmem设备模块还用于设置不同的事件以区分数据。在上述方案中,所述的QXL设备模块还用于发送中断信号给所述的ivshmem设备模块。本专利技术具有如下有益效果:1、本方案完全可以在主机实现,不需要修改终端的源码,普通的VDI终端(包括HTML5终端)即可被用于登录有GPU的虚拟机,看到GPU的输出桌面。其他的一些实现往往需要修改终端的源码。2、由于本专利技术兼容虚拟化管理工具中的截屏功能,使得截屏可以截取到GPU的输出。3、由于捕获的GPU画面都是无损的,数据量非常大,使用共享内存可以显著提升性能。无损数据也不会损失任何细节,保证3D软件画面质量。4、由于可以只捕获画面的变化区域,可以减少数据量,节省网络带宽。附图说明图1是本专利技术的原理图;图2是本专利技术的服务程序运行流程图;图3是本专利技术的主机中QXL设备的运行流程图。具体实施方式下面结合附图对本专利技术作进一步详细的说明。本专利技术实施例提供一种GPU虚拟化画面显示的方法:如图1所示为本专利技术的原理图。主机启动ivshmem-server;主机启动虚拟机时,指定ivshmem设备、QXL设备、物理GPU设备,并且ivshmem设备和QXL设备连接到ivshmem-server;虚拟机捕获物理GPU的桌面数据和鼠标数据写入ivshmem设备中;主机确定ivshmem-server中的数据是桌面数据或者鼠标数据,将所述桌面数据写入QXL设备的VGA显存,将所述鼠标数据写入QXL设备内嵌的spice显示对象中,输出显示。spice协议即SimpleProtocolforIndependentComputingEnvironments,独立计算环境简单协议。spice协议架构包括客户端、spice服务端和相应的QXL设备、QXL驱动、spiceAgent。QEMU是可以图形化管理虚拟机的一个工具,常被应用于spice协议中。QXL设备为spice架构中负责控制图形输出的虚拟设备。对于windows7虚拟机来说,把QXL设备和物理GPU显卡同时给虚拟机后,win7虚拟机会选择物理GPU显卡来工作,加载GPU显卡驱动,而QXL设备未加载,依然留在了VGA模式,所以可以利用该VGA模式的显示来驱动GPU的显示。本专利技术使用ivshmem设备作为共享内存设备。ivshmem是虚拟机和主机共享内存的PCI设备。本专利技术虚拟机都需要启动一个ivshmem-server管理共享内存。ivshmem-server为共享内存的管理程序。主机启动虚拟机时把QXL设备,ivshmen设备,物理GPU显卡,作为参数启动,GPU显卡以pass-through方式传递给虚拟机。pass-through是把某一个设备直接分配给一个虚拟机,让虚拟机可以直接访问该物理设备而不需要通过虚拟机监视器或被虚拟机监视器截获。其中启动添加QXL设备是为了利用QXL的VGA显示。其中的QXL设备需要扩展,以实现ivshmemclient的功能。这样QXL设备才能读共享内存的数据,才可以驱动其VGA显示。QXL设备还需要扩充一个chardev的参数。通过chardev来连接到ivshmem-server。具体地,实现如下:#qemu-system_x86_64-vgaqxl-globalqxl-vga.chardev=qxlivsh-chardevsocket,id=qxlivsh,nowait,path=/tmp/vmid1_socket-deviceivshmem-doorbell,chardev=civsh,vectors=2–chardevsocket,id=civsh,nowait,path=/tmp/vmid1_socket–devicevfio-pci,host=01:00.0其中:-vgaqxl:给虚拟机指定QXL设备,QXL设备需要指定连接到ivshmem-server上,这里扩充QEMU功能使QXL具备了ivshmemclient的功能;-deviceivshmem-doorbell:给虚拟机指定ivshmem设备,做为ivshmemclient,并指定连接到ivshmem-server上;-devicevfio-pci:pass-thro本文档来自技高网...

【技术保护点】
1.一种GPU虚拟化画面显示的方法,其特征在于,该方法为:主机启动ivshmem‑server;主机启动虚拟机时,指定ivshmem设备、QXL设备、物理GPU设备,并且ivshmem设备和QXL设备连接到ivshmem‑server;虚拟机捕获物理GPU的桌面数据和鼠标数据写入ivshmem设备中;主机确定ivshmem‑server中的数据是桌面数据或者鼠标数据,将所述桌面数据写入QXL设备的VGA显存,将所述鼠标数据写入QXL设备内嵌的spice显示对象中,输出显示。

【技术特征摘要】
1.一种GPU虚拟化画面显示的方法,其特征在于,该方法为:主机启动ivshmem-server;主机启动虚拟机时,指定ivshmem设备、QXL设备、物理GPU设备,并且ivshmem设备和QXL设备连接到ivshmem-server;虚拟机捕获物理GPU的桌面数据和鼠标数据写入ivshmem设备中;主机确定ivshmem-server中的数据是桌面数据或者鼠标数据,将所述桌面数据写入QXL设备的VGA显存,将所述鼠标数据写入QXL设备内嵌的spice显示对象中,输出显示。2.根据权利要求1所述的一种GPU虚拟化画面显示的方法,其特征在于:所述虚拟机确定写入ivshmem设备的数据是桌面数据或者鼠标数据,具体地,在ivshmem设备内设置桌面事件和cursor数据事件;所述的桌面数据触发桌面事件;所述的鼠标数据触发cursor事件。3.根据权利要求1所述的一种GPU虚拟化画面显示的方法,其特征在于:所述主机确定ivshmem-server中的数据是桌面数据还是鼠标数据,并确定该次的桌面数据或鼠标数据处理完成中断,具体地,QXL设备中设置桌面数据处理完成和cursor数据处理完成的中断信号;桌面数据写入QXL设备后触发桌面数据处理完成中断;鼠标数据写入QXL设备后触发cursor数据处理完成中断。4.根据权利要求1所述的一种GP...

【专利技术属性】
技术研发人员:段永超
申请(专利权)人:广东微云科技股份有限公司
类型:发明
国别省市:广东,44

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

1