当前位置:文档之家› 虚拟化桌面3D虚拟化 GPU技术详解

虚拟化桌面3D虚拟化 GPU技术详解

VDI 桌面3D虚拟化技术详解目录一.3D虚拟化技术透析及竞争分析 (2)1名词解释 (2)2不同技术的适用场景分析 (2)2.1sVGA的原理:VMware设计的虚拟的WDDM驱动程序 (3)2.2vSGA的原理:多个虚拟机均分安装在物理服务器上的显卡资源 (3)2.3vDGA的原理:为每个虚拟机分配独立的安装在物理服务器上的物理显卡 (6)2.4GPUPass-through的原理:为每个虚拟机分配独立的安装在物理服务器上的物理显卡 (8)2.5SharedGPU的原理:将GPU卡透传给Hypervisor之上的XenApp平台 (8)2.6vGPU技术出场:将GPU卡资源切片分给Hypervisor之上运行的VM (12)3竞争分析 (14)二、vGPU技术详解及配置要求 (16)1vGPU的实现条件 (16)1.1 Citrix组件包括如下: (16)1.2NVidia组件包括如下: (17)1.3硬件使用需求: (18)GRIDK1 (18)GRIDK (18)1.4操作系统支持: (19)2 vGPU相关文档 (19)3 NVidiaKeplerGRID卡支持的vGPU数量和适用场景 (19)4 vGPU配置步骤 (21)5 vGPU配置注意事项 (22)三、Citrix3D解决方案一览 (22)1客户群体分类 (23)2不同使用者对应3D处理技术 (24)2.1图形工作站级别用户 (25)2.2中度图形用户对应的3D虚拟化技术 (28)2.3知识型用户对应的3D虚拟化技术 (30)四、Citrix3D技术StepbyStep配置指导手册 (31)一.3D虚拟化技术透析及竞争分析sVGA、vSGA、vDGA、vGPU、GPUPass-through,的含义。

1名词解释●sVGA:VMware公司技术缩写,意思是:软件3D模拟渲染技术;●vSGA:VMware公司技术缩写,意思是:虚拟共享图形加速技术●vDGA:VMware公司技术缩写,意思是:虚拟专用图形加速技术●GPUPass-through:Citrix公司技术缩写,意思是:GPU透传技术●SharedGPU:Citrix公司技术缩写,意思是:GPU共享技术;●vGPU:业内统一术语,意思是:以类似于服务器虚拟化上将CPU虚拟化的技术,将GPU卡虚拟化后,提供给虚拟机使用。

目前,Citrix公司和NVIDIA公司合作,开发出了业界首个vGPU技术!2不同技术的适用场景分析2.1sVGA的原理:VMware设计的虚拟的WDDM驱动程序(WindowsDisplayDriverModel)1.1版本兼容驱动。

原理图如下:简单地说,就是通过软件模拟出软件GPU卡的能力,实际上还是消耗CPU的负荷,只能;目前sVGA技术只能支持到DirectX9.0和OpenGL2.1的渲染技术,利用服务器内存模拟技术最大只能虚拟512M显存。

这种技术只适用于改善普通用户桌面使用体验。

至于渲染技术只支持DirectX9.0和OpenGL2.1有什么问题,请参见2.5章节的解释。

2.2vSGA的原理:多个虚拟机均分安装在物理服务器上的显卡资源原理图如下:事实上,vSGA的工作原理上是基于API的共享,即用于欺骗应用程序API的虚拟显卡驱动程序安装于guestOS中并运行于内核模式。

这个vGPUDriverAPI事实上功能分为前向接口和后向接口两个功能,他们的功能分别是:1)FrontEnd(前向接口)功能:●GPU操作的API拦截,包括:⏹parameterspassed传递过来的GPU调用参数⏹ordersemantics传递过来的GPU调用语义●包装以上的函数调用,并将数据传给后向接口●终结虚拟仿真的显卡驱动的GPU调用,并提供向真实显卡的互操作和执行结果2)BackEnd(后向接口)功能:●负责将前向接口传来的数据交给真实的GPUdriver进行处理●解包前向接口传来的函数调用●映射内存指针●执行真实的GPU操作●返回执行结果●将执行结果返回前向接口下图就是这个API的原理示意图:好吧,按照VMware的说法,这种技术是用户共享GPU处理能力,貌似确实实现了类似vGPU的能力,但是事实如此吗?我们上面分析了vSGA的实际工作原理,了解到这种技术实际上是欺骗应用程序API的虚拟显卡驱动程序。

那么结果也就一目了然了,做过图形设计的码农们应该更清楚:●“APIRemoting”看似很简单,但它的处理是极其复杂,需要消耗大量的额外资源来做驱动的模拟仿真、API截获、API传递、API队列等待、API真实驱动处理、结果回传等多种复杂的软件计算过程●虚拟显卡驱动的设计需要对所支持的所有GPU的API进行仿真,但行业标准的API规范也在不断改进和更新,这种设计需要不断持续的支持.●另外,还需要面对不同的API标准,如:OpenGL,DirectX,CUDA,OpenCL…就目前该技术的实际应用来看,vSGA和sVGA一样,也只是支持DirectX9.0和OpenGL2.1的渲染技术,已经够旧了吧。

此外,vSGA支持的最大虚拟显存听起来是是512M,事实上虚拟的GPU显存,其中一半为GPU提供,一半为服务器内存模拟,因此,最大只能使用到256M 的真实GPU显存。

从用户反馈来看,vSGA对改善部分情形图形软件体验还是有所帮助的。

至于和Citrix的对比,请参见2.5章节。

2.3vDGA的原理:为每个虚拟机分配独立的安装在物理服务器上的物理显卡这个技术和我们后文中介绍的来自Citrix的GPUPass-Through技术是类似的,只是我弄不明白,V公司非要弄这么多简写差不多的名词吗?下图就是vDGA的技术原理图:关于这种技术的原理,我们在Citrix的GPUPass-Through部分也介绍过很多次了,此处不再详述它的原理。

从功能上两者是高度相似的,毕竟V公司是抄袭Citrix的,想当年,Citrix 的GPUPass-Through都发布多久了,vDGA才姗姗来迟。

功能相似,但是易用性就不一定了,去问问VMware,vDGA能把显卡透传给上面运行的什么操作系统平台上,如果回答者够老实,他就只能回答你说,只能运行在Windows764-bit 平台。

如果你的开发软件只能跑在XP上怎么办?I’msorry.够清楚了吧。

好了,V公司看到vDGA发布时间远晚于CitrixGPUPass-Through,功能也PK不过GPUPass-Through,他们只好说《VMware在性能上目前领先于竞争对手》(百度文库上可以找到这个ppt,名字就叫做VMwareGPU虚拟化技术介绍)。

对于他们这种做法,就好象一个巨人和一个矮子,明明在外形上矮子已经落败,他偏偏嘴硬说:“他那么大个有什么用,我的力气比他大”。

哈哈,谁更威武,不是已经一目了然了嘛。

当然,你有难处,我表示理解。

2.4GPUPass-through的原理:为每个虚拟机分配独立的安装在物理服务器上的物理显卡这部分的原理我就不再详述了,基本上Citrix的GPUPass-through技术和VMware的vDGA 技术如出一辙,但是在具体的功能上,双方还是有明显差距,Citrix功能更全面,也是被业界证明真正具有生产环境下实施能力的解决方案。

下图标就是两者技术的功能性对比。

2.5SharedGPU的原理:将GPU卡透传给Hypervisor之上的XenApp平台SharedGPU技术实际上是将CitrixGPUPass-Through和CitrixXenApp技术完美结合的产物。

大家都知道CitrixXenApp的原理,我以一张简图为例再次解释一下:XenApp的优势在于虽然只在一个操作系统上安装过一次应用程序,但是这个应用程序却可以被多个用户同时使用,如果GPU资源也能被这么分享,岂不是完美。

这就是SharedGPU 的原理。

这就实现了多个用户同时分享一个GPU卡的能力。

我们看看下面的原理图:在上面这张图中,底层服务器安装了一块GPU卡,在硬件平台之上我们安装了Hypervisor层,随机我们在此之上安装了三个XenApp虚拟机(都是WindowsServer操作系统),每个虚拟机上面都安装了CitrixVDA客户端软件,此外还有供最终用户使用的应用程序。

随后运行在Hypervisor平台上的NVIDIA驱动程序直接将GPU资源发布给虚拟机使用。

请注意我上面使用的一个单词是:“直接”。

为什么这么说?请注意2.2章节的vSGA 是如何做到的?vSGA要消耗大量的额外资源来做驱动的模拟仿真,说到底,真正能使用到多少百分比的GPU资源还是个未知数。

我们首先来看看VMwarevSGA和CitrixSharedGPU技术在功能上的对比:是骡子是马,拉出来溜溜就知道孰强孰弱了。

我们还有必要就上面的DirectX和OpenGL 技术做一个解释,在介绍2.1的sVGA和2.2的vSGA技术时我们都提到了这两种技术都是只支持DirectX9.0和OpenGL2.1的渲染技术,那么这有什么意义吗?我们来看看DirectX和OpenGL是干什么用的。

1)DirectX●DirectX是DirecteXtension的简写,可以进一步简写成DX。

为微软公司开发的多媒体编程接口,目前只支持Windows平台。

●DirectX发展到现在已经有11代产品了,目前最常用的有两个DirectX11.1和Direct9.0c。

前者是Windows7/8的标准配置,后者是WindowsXP的标准。

对于很多新游戏而言都以DirectX11为接口。

2)OpenGL●OpenGL是由开源社区提供的免费开源的多媒体编程接口,全称是OpenGraphicsLibrary。

OpenGL功能非常强大,但是使用起来也是相当的复杂,开源社区为任何操作系统提供OpenGL支持,所以适用范围也是相当的广。

很多游戏开发采用OpenGL作为渲染方式,这样可以方便的向Linux和OSX等平台移植。

●在非Windows平台下,目前仅能使用OpenGL进行加速,而在Windows平台下视频功能可以由DirectX或者OpenGL完成。

由于开发商的选择不同,通常的硬件都是支持者两种加速方式的。

客观的来说在超高端硬件上对OpenGL的支持更好。

好吧,看完DirectX和OpenGL的解释后你应该知道2.1的sVGA和2.2的vSGA技术有多弱了吧。

VMware自吹vSGA技术可以支持多少种3D设计软件,还有一个办法戳破他们的谎言就是去Nvidia主页上看看有多少种应用程序是在vSGA技术下得到认证的,我这里有个图可以分享一下:OK,真相大白,我们继续。

相关主题