一种基于图形处理器虚拟化的远程可视化应用方法

文档序号:8342842阅读:535来源:国知局
一种基于图形处理器虚拟化的远程可视化应用方法
【技术领域】
[0001]本发明涉及云计算领域,尤其涉及一种基于GPU虚拟化的远程可视化应用方法。
【背景技术】
[0002]云计算是一种动态的、易扩展的、基于虚拟化的资源计算方式,通常是通过互联网提供,用户不需要了解云内部的细节。云计算服务包括3层,即基础设施即服务(IaaS)、基础平台即服务(PaaS)和软件即服务(SaaS)。基础设施即服务(IaaS)是针对网络、主机、存储等基础资源进行管理,是云计算体系的基石,是实现云计算的第一步;基础平台即服务(PaaS)是针对中间件、数据库等进行管理;软件即服务(SaaS)针对用户应用进行管理。
[0003]目前大部分基础设施即服务(IaaS)的成熟技术是针对CPU的虚拟化,而在工程设计领域,更多需要的是主机GPU (Graphic Processing Unit,图形处理器,GPU是显卡上的图形处理器)的资源而非CPU资源。CPU虚拟化带来的好处已为市场认可和接受,需要将类似的技术延伸扩展到其他领域和范围。而大型制造类企业、科研院所等行业对GPU虚拟化有着巨大的需求。

【发明内容】

[0004]本发明提供一种基于图形处理器虚拟化的远程可视化应用方法,通过虚拟化层对GPU资源进行虚拟化,形成GPU资源池,达到GPU资源共享的目的,在实现远程可视化应用时,将传统技术的前端处理方式转移到后端进行处理,所有的数据处理工作都由服务器完成,不需要客户端设备进行处理,节省了客户端设备的投资,同时在远程数据传输时,采用加密技术和优化的传输协议,提高了安全性和传输效率。
[0005]为了达到上述目的,本发明提供一种基于图形处理器虚拟化的远程可视化应用方法,包含以下步骤:
步骤S1、在服务器上部署虚拟化层,将服务器的显卡上的图形处理器资源池化,形成图形处理器资源池;
步骤S2、如果远程客户端设备发起的可视化应用请求是3D应用,则与发起可视化应用请求的远程客户端设备对应连接的虚拟机使用图形处理器资源池对3D应用进行处理;步骤S3、服务器采用映像流传输协议将3D应用处理结果发送给客户端设备,在客户端设备上进行可视化显示。
[0006]如权利要求1所述的基于图形处理器虚拟化的远程可视化应用方法,其特征在于,所述的步骤Si包含以下步骤:
步骤S1.1、在服务器上安装虚拟化层;
步骤S1.2、虚拟化层将图形处理器逻辑虚拟出若干虚拟图形处理器。
[0007]所述的服务器上具有一个或多个图形处理器。
[0008]一个图形处理器对应多个虚拟图形处理器。
[0009]所述的步骤S2包含以下步骤: 步骤S2.1、虚拟机申请使用图形处理器资源池内的虚拟图形处理器,虚拟化层分配一个虚拟图形处理器给虚拟机,作为虚拟机的虚拟硬件;
步骤S2.2、虚拟机利用虚拟图形处理器对3D应用做OpenGL渲染,获得二维或三维图像数据;
步骤S2.3、处理结束后,虚拟机释放虚拟图形处理器的资源到图形处理器资源池。
[0010]所述的步骤3中,所述的映像流传输协议包含:
主通道,其用于传输控制和配置命令;
显示通道,其用于传送绘图命令、图像以及视频流;
输入通道,其用于向服务器发送鼠标或键盘的操作消息;
光标通道,其用于服务器向客户端设备传送光标的形状、颜色和可见性;
声音下行通道,其用于服务器到客户端设备的声音传送;
声音上行通道,其用于客户端设备到服务器的声音传送;
USB通道,其作为USB重定向通道,把客户端设备的USB设备携带到服务器;
摄像头通道,将获得的二维或三维图像逐帧压缩为jpeg格式后发送给虚拟机中的虚拟摄像头。
[0011]对数据传输进行带宽动态优化调整,将需要先处理的数据先行传输,后处理的数据后续传输。
[0012]所述的步骤S2中,如果远程客户端设备发起的可视化应用请求是2D应用,则服务器上的CPU对2D应用进行装载、运行和画面渲染处理,包括对应用程序的,将处理得到的2D应用画面数据发送给客户端设备,在客户端设备上进行可视化显示。
[0013]所述的服务器通过传统的传输协议将处理结果发送给客户端设备。
[0014]所述的服务器和客户端设备之间的传输链路采用加密传输。
[0015]本发明通过虚拟化层对GPU资源进行虚拟化,形成GPU资源池,达到GPU资源共享的目的,在实现远程可视化应用时,将传统技术的前端处理方式转移到后端进行处理,所有的数据处理工作都由服务器完成,不需要客户端设备进行处理,节省了客户端设备的投资,同时在远程数据传输时,采用加密技术和优化的传输协议,提高了安全性和传输效率。
【附图说明】
[0016]图1是本发明的流程图。
[0017]图2是GPU虚拟化的示意图。
【具体实施方式】
[0018]以下根据图1?图2,具体说明本发明的较佳实施例。
[0019]如图1所示,本发明提供一种基于图形处理器虚拟化的远程可视化应用方法,包含以下步骤:
步骤1、在服务器上部署虚拟化层,将服务器的显卡上的图形处理器(GPU)资源池化,形成图形处理器(GPU)资源池。
[0020]步骤2、服务器判断远程客户端设备发起的可视化应用请求是2D应用还是3D应用,如果是3D应用,则进行步骤3,如果是2D应用,则进行步骤5。
[0021]步骤3、与发起可视化应用请求的远程客户端设备对应连接的虚拟机使用图形处理器(GPU)资源池对3D应用进行处理。
[0022]步骤4、服务器采用映像流传输协议将3D应用处理结果发送给客户端设备,在客户端设备上进行可视化显示。
[0023]步骤5、服务器上的CPU对2D应用进行处理,将处理得到的2D应用画面数据发送给客户端设备,在客户端设备上进行可视化显示。
[0024]如图2所示,所述的步骤I包含以下步骤:
步骤1.1、在服务器上安装虚拟化层。
[0025]所述的虚拟化层即是虚拟化管理器(Hypervisor),是一种运行在物理服务器和操作系统之间的中间软件层,可允许多个操作系统和应用共享一套基础物理硬件,因此也可以看作是虚拟环境中的“元”操作系统,类似传统的操作系统,例如Windows,其可以接管对底层硬件设备的控制权。
[0026]所述的服务器上具有一个或多个图形处理器(GPU)。
[0027]步骤1.2、虚拟化层将图形处理器(GPU)逻辑虚拟出若干虚拟图形处理器(vGPU)。
[0028]一个图形处理器(GPU)对应多个虚拟图形处理器(vGPU)。
[0029]虚拟化层是根据IT技术里的常用技术“时间片”来对多个虚拟图形处理器(vGPU)进行任务排队的,虚拟化层将图形处理器(GPU)的计算能力按时钟频率进行分解,每个虚拟图形处理器(vGPU)对应一个频率范围。
[0030]所述的步骤3包含以下步骤:
步骤3.1、虚拟机(虚拟机是通过虚拟化层实现的)申请使用图形处理器(GPU)资源池内的虚拟图形处理器(vGPU),虚拟化层分配一个虚拟图形处理器(vGPU)给虚拟机,作为虚拟机的虚拟硬件。
[0031]步骤3.2、虚拟机利用虚拟图形处理器(vGPU)对3D应用做OpenGL (开放的图形程序接口,Open Graphics Library,是行业领域中最为广泛接纳的跨编程语言、跨平台二维/三维图像编程接口库)渲染,获得二维或三维图像数据。步骤3.3、处理结束后,虚拟机释放虚拟图形处理器(vGPU)的资源到图形处理器(GPU)资源池。
[0032]所述的虚拟化层根据虚拟机申请的频率范围,分配该频率范围对应的虚拟图形处理器(vGPU)给虚拟机,使用结束后的虚拟图形处理器(vGPU)被释放到图形处理器(GPU)资源池,又可供其他虚拟机申请使用。所述的虚拟图形处理器(vGPU)作为虚拟硬件提供给上层应用使用,对上层应用来说,该虚拟图形处理器(vGPU)是透明的,上层应用并不清楚其使用
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1