一种GPU虚拟桌面动态切换显示的方法及装置与流程

专利2022-06-29  82


本发明属于虚拟桌面技术领域,尤其是云桌面领域需要gpu硬件加速和渲染的3d设计、3d游戏行业,具体涉及一种gpu虚拟桌面动态切换显示的方法及装置,用于提升gpu虚拟桌面显示效果和体验。



背景技术:

在虚拟桌面技术领域,图形显示一直以来仅能满足基本的办公需求,难以适应高清视频、3d设计、三维模型、3d游戏等需要硬件加速和渲染的场景。

当前主流的解决方案为gpu虚拟桌面,gpu虚拟桌面基于服务器端显卡直通和显卡虚拟化以及结合基于h.264编码的远程桌面协议为虚拟桌面提供原生的显卡能力,虽然能够有效降低虚拟化所带来的硬件性能损耗,但远程桌面协议依赖于常驻在gpu虚拟桌面里的代理程序,代理程序实时编码并传输图像,不可避免地占用系统资源产生负载,另外网络传输必然存在网络延迟导致性能损失和影响用户体验,而且在并发量较多时带宽抢占非常严重。除此之外,由于代理程序需要等待系统启动和显卡驱动就绪后才能正常工作,所以往往看不到gpu虚拟桌面的引导和启动过程,一旦异常断电关机触发安全机制进入系统维护模式将失去对gpu虚拟桌面的控制。另外有一些解决方案基于客户机端显卡直通以及外接显示器来实现本地显示,虽然能够有效避免远程桌面协议和代理程序引入的性能损耗、系统负载、网络延迟和带宽占用等问题,但往往需要额外增加一台显示器给显卡直通专用,这样会呈现给用户两套桌面环境,其中一套是物理机系统、集成显卡和配套显示器构成的,另一套是gpu虚拟桌面、直通的显卡和专用显示器构成的,鼠标和键盘则以互斥的方式共享,同时只能操作其中一个桌面环境,多余的桌面环境和显示器会给用户带来极大的困扰。

甚至有通过延长线缆的方式把本地显示器和远在机房服务器上的显卡物理连接起来,极大地增加了部署难度,应用场景也非常有限,多用于网吧。上述方案在性能损耗、用户体验和适用场景上都有明显不足,如何做到兼顾,是目前还有待解决的问题。



技术实现要素:

本发明要解决的技术问题:针对上述现有技术中存在的显卡性能损耗、系统负载、网络延迟、带宽占用、部署困难和用户体验等问题,提供一种无性能损耗、体验良好的gpu虚拟桌面动态切换显示的方法及装置,本发明不需要远程桌面协议和代理程序、不需要额外的专用显示器,而且支持动态切换显示,既避免了性能损耗,又保证了用户体验。

为了解决上述技术问题,本发明采用的技术方案为:

一种gpu虚拟桌面动态切换显示的方法,实施步骤包括:

1)检测gpu虚拟桌面的启动状态,如果检测gpu虚拟桌面启动则跳转执行下一步;

2)把备用显示模块直通给gpu虚拟桌面并激活备用显示模块输出;

3)关闭默认显示模块的显示输出;

4)检测gpu虚拟桌面的关机状态,如果检测gpu虚拟桌面关机则跳转执行下一步;

5)关闭备用显示模块的显示输出;

6)激活默认显示模块的显示输出。

可选地,所述默认显示模块为集成显卡,所述备用显示模块为独立显卡。

此外,本发明还提供一种gpu虚拟桌面动态切换显示的装置,包括:

虚拟桌面启动检测程序单元,用于检测gpu虚拟桌面的启动状态,如果检测gpu虚拟桌面启动则跳转执行可选显示激活程序单元;

可选显示激活程序单元,用于把备用显示模块直通给gpu虚拟桌面并激活备用显示模块输出;

默认显示关闭程序单元,用于关闭默认显示模块的显示输出;

虚拟桌面关机检测程序单元,用于检测gpu虚拟桌面的关机状态,如果检测gpu虚拟桌面关机则跳转执行可选显示关闭程序单元;

可选显示关闭程序单元,用于关闭备用显示模块的显示输出;

默认显示激活程序单元,用于激活默认显示模块的显示输出。

可选地,所述默认显示模块为集成显卡,所述备用显示模块为独立显卡。

此外,本发明还提供一种gpu虚拟桌面动态切换显示的装置,包括主机和显示器,所述主机具有默认显示模块和备用显示模块,且所述默认显示模块和备用显示模块分别通过不同的显示输出电缆和显示器相连,所述主机包括:

第一切换程序模块,用于执行默认显示模块的动态激活和关闭;

第二切换程序模块,用于执行备用显示模块的直通、动态激活和关闭;

所述第二切换程序模块为虚拟机程序模块,在主机的物理操作系统启动后,所述第一切换程序模块首先检测gpu虚拟桌面的启动状态,如果检测gpu虚拟桌面启动则调用第二切换程序模块把备用显示模块直通给gpu虚拟桌面并激活备用显示模块输出;然后关闭默认显示模块的显示输出,再检测gpu虚拟桌面的关机状态,若检测gpu虚拟桌面关机则调用第二切换程序模块关闭备用显示模块的显示输出并激活默认显示模块的显示输出。

可选地,所述默认显示模块为集成显卡,所述备用显示模块为独立显卡。

此外,本发明还提供一种gpu虚拟桌面动态切换显示的装置,包括计算机设备,该计算机设备被编程或配置以执行所述gpu虚拟桌面动态切换显示的方法的步骤。

此外,本发明还提供一种gpu虚拟桌面动态切换显示的装置,包括计算机设备,该计算机设备至少包括微处理器和存储器,且该存储器上存储有被编程或配置以执行所述gpu虚拟桌面动态切换显示的方法的计算机程序。

此外,本发明还提供一种计算机可读存储介质,该计算机可读存储介质上存储有被编程或配置以执行所述gpu虚拟桌面动态切换显示的方法的计算机程序。

和现有技术相比,本发明具有下述优点:

1、本发明所使用的本地显卡直通和显示动态切换技术既避免了显卡性能的损耗,能全面支持物理gpu的硬件加速和所有原生能力,又杜绝了代理程序额外占用cpu和gpu资源,有效降低gpu虚拟桌面的系统负载,同时还达到了零延迟的显示输出效果,避免了网络传输带来的延迟和带宽,而且仅需一台主机和一台显示器,没有改变传统的使用模式,极大简化了gpu虚拟桌面的部署难度,并能提供良好的用户体验。

2、本发明的gpu虚拟桌面能够动态地在默认显示模块、备用显示模块这两种显示输出中切换,显示切换是由程序根据实际需要自动检测和触发,实现了用户无感知的体验效果。

附图说明

图1为本发明实施例方法的基本流程示意图。

图2为本发明实施例中的设备连接结构示意图。

图3为本发明实施例中的显示切换过程示意图。

图4为本发明实施例中装置的系统架构示意图。

具体实施方式

如图1所示,本实施例gpu虚拟桌面动态切换显示的方法的实施步骤包括:

1)检测gpu虚拟桌面的启动状态,如果检测gpu虚拟桌面启动则跳转执行下一步;

2)把备用显示模块直通给gpu虚拟桌面并激活备用显示模块输出;

3)关闭默认显示模块的显示输出;

4)检测gpu虚拟桌面的关机状态,如果检测gpu虚拟桌面关机则跳转执行下一步;

5)关闭备用显示模块的显示输出;

6)激活默认显示模块的显示输出。

作为一种可选的实施方式,本实施例中的默认显示模块为集成显卡,备用显示模块为独立显卡,该方式结构成本最低。此外,还可以采用两个独立显卡,一张独立显卡上作为默认显示模块,另一张独立显卡作为备用显示模块。

作为和图1所示本实施例gpu虚拟桌面动态切换显示的方法步骤一一对应的程序模块,本实施例还提供一种gpu虚拟桌面动态切换显示的装置,包括:

虚拟桌面启动检测程序单元,用于检测gpu虚拟桌面的启动状态,如果检测gpu虚拟桌面启动则跳转执行可选显示激活程序单元;

可选显示激活程序单元,用于把备用显示模块直通给gpu虚拟桌面并激活备用显示模块输出;

默认显示关闭程序单元,用于关闭默认显示模块的显示输出;

虚拟桌面关机检测程序单元,用于检测gpu虚拟桌面的关机状态,如果检测gpu虚拟桌面关机则跳转执行可选显示关闭程序单元;

可选显示关闭程序单元,用于关闭备用显示模块的显示输出;

默认显示激活程序单元,用于激活默认显示模块的显示输出。

如图2所示,本实施例中的gpu虚拟桌面动态切换显示的装置,包括主机1和显示器2,其特征在于:主机1具有默认显示模块和备用显示模块,且默认显示模块和备用显示模块分别通过不同的显示输出电缆3和显示器2相连,主机1包括:

第一切换程序模块,用于执行默认显示模块的动态激活和关闭;

第二切换程序模块,用于执行备用显示模块的直通、动态激活和关闭;

第二切换程序模块为虚拟机程序模块,在主机1的物理操作系统启动后,第一切换程序模块首先检测gpu虚拟桌面的启动状态,如果检测gpu虚拟桌面启动则调用第二切换程序模块把备用显示模块直通给gpu虚拟桌面并激活备用显示模块输出;然后关闭默认显示模块的显示输出,再检测gpu虚拟桌面的关机状态,若检测gpu虚拟桌面关机则调用第二切换程序模块关闭备用显示模块的显示输出并激活默认显示模块的显示输出。

参见图2,本实施例中的gpu虚拟桌面动态切换显示的装置即为vde(virtualdesktopendpoint虚拟桌面端点,是指具备本地虚拟化和显卡直通能力的云终端)。包括一台同时有集成显卡和独立显卡的主机,一台至少提供两个以上输入接口的显示器,以及两根专用的显示线缆,其中一根显示线缆连接集成显卡和显示器的第一个接口(例如vga),用于物理机系统和客户端程序的显示输出,另外一根显示线缆则连接独立显卡和显示器的第二个接口(例如hdmi),用于给gpu虚拟桌面系统的显示输出。

如图3和图4所示,本实施例中第一切换程序模块集成于启动gpu虚拟桌面客户端程序的方式实现,第二切换程序模块为虚拟机应用程序,gpu虚拟桌面为基于qemu虚拟机的gpu虚拟桌面。显示的动态切换包括对集成显卡和独立显卡显示输出的统一控制,集成显卡的动态激活和关闭由客户端程序负责,独立显卡的动态激活和关闭由虚拟化模块负责。客户端程序启动gpu虚拟桌面时,先关闭集成显卡的输出,同时虚拟化模块把独立显卡直通给gpu虚拟桌面激活独立显卡的输出,显示切换到独立显卡和gpu虚拟桌面系统。gpu虚拟桌面系统关机时,客户端程序检测到虚拟化模块已经停止,独立显卡输出关闭,自动激活集成显卡输出,显示切换到集成显卡和客户端程序界面。整个切换过程由程序自动检测和判断,无需用户干预,提高了效率和体验。

参见图3可知,开机执行启动gpu虚拟桌面并关闭的显卡工作状态如下:

s1)上电启动物理机系统后通过集成显卡输出,此时仅集成显卡工作;

s2)打开客户端程序后,仍然为仅集成显卡工作;

s3)启动gpu虚拟桌面,直通独立显卡激活独立显卡输出后,该步骤命令为qemu-kvm-vganone-devicevfio-pci,host=01:00.0,x-vga=on,然后集成显卡和独立显卡同时工作;

s4)关闭集成显卡输出,切换显示,其命令为:vde-ctlstart,此时仅独立显卡工作;

s5)gpu虚拟桌面使用独立显卡输出,此时仅独立显卡工作;

s6)关闭gpu虚拟桌面关闭独立显卡输出后,集成显卡和独立显卡都不工作;

s7)激活集成显卡输出,切换显示,其命令为:vde-ctlstop,返回客户端程序。

本实施例中关闭集成显卡输出和激活集成显卡输出分别采用程序vde-ctl携带不同执行参数实现,程序vde-ctl用于集成显卡显示信号的控制/切换,其使用方法如下:

关闭集成显卡输出:vde-ctlstart(注:start表示检测到gpu虚拟桌面启动)

激活集成显卡输出:vde-ctlstop(注:stop表示检测到gpu虚拟桌面关机)

程序vde-ctl的基本原理是实现对dpms(displaypowermanagementsignaling,显示电源管理信号)的编程以控制集成显卡的显示信号,dpms是vesa(videoelectronicsstandardsassociation,视频电子标准协会)制定的通过显示卡对显示器电源管理的标准。其中,关键技术是通过lrmi(linuxrealmodeinterface,linux实模式接口)进行实模式(realmode)bios调用,直接运行集成显卡bios中的代码,包括重新初始化硬件、更改硬件状态、更改dpms状态等。但是当前主流处理器的机制只有在刚刚开机启动的时候是实模式,等到操作系统运行起来以后就切换到了保护模式,当处理器进入保护模式后,基于实模式的应用和程序就不能直接运行了,所以进一步使用虚拟8086模式(virtual8086mode)技术,使得这些实模式的应用和程序能够运行在基于保护模式的操作系统上。

此外,本实施例还提供一种gpu虚拟桌面动态切换显示的装置,包括计算机设备,该计算机设备被编程或配置以执行权利要求前述gpu虚拟桌面动态切换显示的方法的步骤。

此外,本实施例还提供一种gpu虚拟桌面动态切换显示的装置,包括计算机设备,该计算机设备至少包括微处理器和存储器,且该存储器上存储有被编程或配置以执行权利要求前述gpu虚拟桌面动态切换显示的方法的计算机程序。

此外,本实施例还提供一种计算机可读存储介质,该计算机可读存储介质上存储有被编程或配置以执行权利要求前述gpu虚拟桌面动态切换显示的方法的计算机程序。

本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

以上所述仅是本发明的优选实施方式,本发明的保护范围并不仅局限于上述实施例,凡属于本发明思路下的技术方案均属于本发明的保护范围。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理前提下的若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。


技术特征:

1.一种gpu虚拟桌面动态切换显示的方法,其特征在于实施步骤包括:

1)检测gpu虚拟桌面的启动状态,如果检测gpu虚拟桌面启动则跳转执行下一步;

2)把备用显示模块直通给gpu虚拟桌面并激活备用显示模块输出;

3)关闭默认显示模块的显示输出;

4)检测gpu虚拟桌面的关机状态,如果检测gpu虚拟桌面关机则跳转执行下一步;

5)关闭备用显示模块的显示输出;

6)激活默认显示模块的显示输出。

2.根据权利要求1所述的gpu虚拟桌面动态切换显示的方法,其特征在于,所述默认显示模块为集成显卡,所述备用显示模块为独立显卡。

3.一种gpu虚拟桌面动态切换显示的装置,其特征在于包括:

虚拟桌面启动检测程序单元,用于检测gpu虚拟桌面的启动状态,如果检测gpu虚拟桌面启动则跳转执行可选显示激活程序单元;

可选显示激活程序单元,用于把备用显示模块直通给gpu虚拟桌面并激活备用显示模块输出;

默认显示关闭程序单元,用于关闭默认显示模块的显示输出;

虚拟桌面关机检测程序单元,用于检测gpu虚拟桌面的关机状态,如果检测gpu虚拟桌面关机则跳转执行可选显示关闭程序单元;

可选显示关闭程序单元,用于关闭备用显示模块的显示输出;

默认显示激活程序单元,用于激活默认显示模块的显示输出。

4.根据权利要求3所述的gpu虚拟桌面动态切换显示的装置,其特征在于,所述默认显示模块为集成显卡,所述备用显示模块为独立显卡。

5.一种gpu虚拟桌面动态切换显示的装置,包括主机(1)和显示器(2),其特征在于:所述主机(1)具有默认显示模块和备用显示模块,且所述默认显示模块和备用显示模块分别通过不同的显示输出电缆(3)和显示器(2)相连,所述主机(1)包括:

第一切换程序模块,用于执行默认显示模块的动态激活和关闭;

第二切换程序模块,用于执行备用显示模块的直通、动态激活和关闭;

所述第二切换程序模块为虚拟机程序模块,在主机(1)的物理操作系统启动后,所述第一切换程序模块首先检测gpu虚拟桌面的启动状态,如果检测gpu虚拟桌面启动则调用第二切换程序模块把备用显示模块直通给gpu虚拟桌面并激活备用显示模块输出;然后关闭默认显示模块的显示输出,再检测gpu虚拟桌面的关机状态,若检测gpu虚拟桌面关机则调用第二切换程序模块关闭备用显示模块的显示输出并激活默认显示模块的显示输出。

6.根据权利要求5所述的gpu虚拟桌面动态切换显示的装置,其特征在于,所述默认显示模块为集成显卡,所述备用显示模块为独立显卡。

7.一种gpu虚拟桌面动态切换显示的装置,包括计算机设备,其特征在于,该计算机设备被编程或配置以执行权利要求1或2所述gpu虚拟桌面动态切换显示的方法的步骤。

8.一种gpu虚拟桌面动态切换显示的装置,包括计算机设备,其特征在于,该计算机设备至少包括微处理器和存储器,且该存储器上存储有被编程或配置以执行权利要求1或2所述gpu虚拟桌面动态切换显示的方法的计算机程序。

9.一种计算机可读存储介质,其特征在于,该计算机可读存储介质上存储有被编程或配置以执行权利要求1或2所述gpu虚拟桌面动态切换显示的方法的计算机程序。

技术总结
本发明公开了一种无性能损耗、体验良好的GPU虚拟桌面动态切换显示的方法及装置,本发明方法包括:检测GPU虚拟桌面的启动状态,如果检测GPU虚拟桌面启动则跳转执行下一步;把备用显示模块直通给GPU虚拟桌面并激活备用显示模块输出;关闭默认显示模块的显示输出;检测GPU虚拟桌面的关机状态,如果检测GPU虚拟桌面关机则跳转执行下一步;关闭备用显示模块的显示输出;激活默认显示模块的显示输出。本发明不需要远程桌面协议和代理程序、不需要额外的专用显示器,而且支持动态切换显示,既避免了性能损耗,又保证了用户体验。

技术研发人员:胡智峰;孙利杰;杨鹏举;欧阳殷朝;夏华;陈松政;刘文清;杨涛
受保护的技术使用者:湖南麒麟信安科技有限公司
技术研发日:2020.02.20
技术公布日:2020.06.09

转载请注明原文地址: https://bbs.8miu.com/read-28721.html

最新回复(0)