因为每篇blog字数限制,所以我们分四章节来介绍这个vGPU专题。这是第一篇。

一:3D虚拟化技术透析及竞争分析

sVGA、vSGA、vDGA、vGPU、GPUPass-through,天哪,太多的缩写了,我要疯掉了!

小伙伴们别急,让我们一个一个来分析这些所写的含义。

1名词解释

lsVGAVMware公司技术缩写,意思是:软件3D模拟渲染技术;

lvSGAVMware公司技术缩写,意思是:虚拟共享图形加速技术

lvDGAVMware公司技术缩写,意思是:虚拟专用图形加速技术

lGPUPass-throughCitrix公司技术缩写,意思是:GPU透传技术

lSharedGPUCitrix公司技术缩写,意思是:GPU共享技术;

lvGPU业内统一术语,意思是:以类似于服务器虚拟化上将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(前向接口)功能:

lGPU操作的API拦截,包括:

nparameterspassed传递过来的GPU调用参数

nordersemantics传递过来的GPU调用语义

l包装以上的函数调用,并将数据传给后向接口

l终结虚拟仿真的显卡驱动的GPU调用,并提供向真实显卡的互操作和执行结果

2)BackEnd(后向接口)功能:

l负责将前向接口传来的数据交给真实的GPUdriver进行处理

l解包前向接口传来的函数调用

l映射内存指针

l执行真实的GPU操作

l返回执行结果

l将执行结果返回前向接口

下图就是这个API的原理示意图:

好吧,按照VMware的说法,这种技术是用户共享GPU处理能力,貌似确实实现了类似vGPU的能力,但是事实如此吗?

我们上面分析了vSGA的实际工作原理,了解到这种技术实际上是欺骗应用程序API的虚拟显卡驱动程序。那么结果也就一目了然了,做过图形设计的码农们应该更清楚:

l“APIRemoting”看似很简单,但它的处理是极其复杂,需要消耗大量的额外资源来做驱动的模拟仿真、API截获、API传递、API队列等待、API真实驱动处理、结果回传等多种复杂的软件计算过程

l虚拟显卡驱动的设计需要对所支持的所有GPU的API进行仿真,但行业标准的API规范也在不断改进和更新,这种设计需要不断持续的支持.

l另外,还需要面对不同的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

lDirectX是DirecteXtension的简写,可以进一步简写成DX。为微软公司开发的多媒体编程接口,目前只支持Windows平台。

lDirectX发展到现在已经有11代产品了,目前最常用的有两个DirectX11.1和Direct9.0c。前者是Windows7/8的标准配置,后者是WindowsXP的标准。对于很多新游戏而言都以DirectX11为接口。

2)OpenGL

lOpenGL是由开源社区提供的免费开源的多媒体编程接口,全称是OpenGraphicsLibrary。OpenGL功能非常强大,但是使用起来也是相当的复杂,开源社区为任何操作系统提供OpenGL支持,所以适用范围也是相当的广。很多游戏开发采用OpenGL作为渲染方式,这样可以方便的向Linux和OSX等平台移植。

l在非Windows平台下,目前仅能使用OpenGL进行加速,而在Windows平台下视频功能可以由DirectX或者OpenGL完成。由于开发商的选择不同,通常的硬件都是支持者两种加速方式的。客观的来说在超高端硬件上对OpenGL的支持更好。

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

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

OK,真相大白,我们继续。

2.6vGPU技术出场:将GPU卡资源切片分给Hypervisor之上运行的VM

概念不做解释了,理解什么是vCPU就知道什么是vGPU。

正如第一节的名词解释所述,vGPU不是哪家公司的专有名字,而是业内通用术语。在去年NVIDIA公司宣布与Citrix公司合作后,最早现身的时间点是今年5月份在CitrixSynergy2013大会上,CitrixCEOMarkB.Templeton演示了NVIDIA的vGPU技术如何和CitrixXenDesktop产品结合,其流畅的渲染技术获得了满堂喝彩。此后NVIDIACEO黄仁勋也登台介绍了NVIDIA的GRID图形虚拟化处理平台以及vGPU技术。

在这次会议上,双方宣布思杰与NVIDIA将会在今年下半年推出业界首个为主机共享应用提供直接GPU共享的方案,并配合支持最新的OpenGL标准,此外还为开发提供远程性能的新代码。

有兴趣的朋友可以看看下面几个视频:

http://v.youku.com/v_show/id_XNjEyMTA2OTUy.html

Citrix营销副总裁-KrishnaSubramanian说明CitrixXenServer如何透过NVIDIAGRIDVGPU提供最棒的服务。

也可以从NVIDIA主页上找到相关信息:

http://www.nvidia.cn/object/xendesktop-vgpu-cn.html

回到正题,在本月1日,哈,也就是我们的国庆节,Citrix发布了第一个技术预览版的vGPU解决方案,也是目前全球第一个真正实现该技术的商业化产品。大家可以访问下面的网址获取第一手的信息:

CitrixVirtualGPUSolutionTechPreview

这次发布的ReleaseNotes请参见下面的链接地址:

vGPUTechPreviewReleaseNotes

让我们也来看看它的原理图吧:

看到了吗?这才是真正的vGPU技术,虚拟机通过NVIDIADriver直接访问切片后的GPU资源,而不是像vSGA技术那样,通过欺骗应用程序API的虚拟显卡驱动程序来调用GPU,后者白白消耗掉大量的计算能力。

从图中我们可以看出,vGPU技术是需要Hypervisor层面支持的,目前就只有XenServer支持。vSphere?好像还要等不少时间吧。

3竞争分析

那到底我用那个技术好呢?VMware也说好,Citrix也说好?怎么办?

在2.4章节介绍CitrixGPU透传技术和2.5章节介绍SharedGPU技术时我们都分别针对这两项技术和VMware的对应方案作了onebyone的对比。有需要可以往上翻页看看细则。现在我们来一个大餐,看一个放大的图,把所有的技术中放在一起,看看各有什么优缺点。

你如果看不清楚,可以访问我的ShareFile云盘空间直接下载这个jpg文件:

https://citrix.sharefile.com/d/s49dcfead9f74e168

从上面的具体分析可以看出以下几点:

1.Citrix是真正的跨平台技术,无论是那种3D解决方案,不但支持自己的XenServer,也支持VMware的Hypervisor平台;

2.就目前的技术来看,即使没有刚发布的vGPU技术,Citrix在GPU共享领域的能力都要远胜于VMware的技术;

3.Citrix的3D虚拟化技术无论是在操作系统支持层面还是显存支持,又或者是在对渲染技术的支持版本上,要远优于VMware的解决方案;

4.在实施能力上,Citrix的PVS技术能帮助用户批量实施,而不用像VMware那样只有预览技术而没有实施能力;

5.现在有了真正的vGPU技术,将会给设计行业的客户带来更多更好的选择!

转载于:https://blog.51cto.com/virtualworld/1308627

Part1:3D虚拟化技术透析及竞争分析相关推荐

  1. 3D虚拟化技术透析及竞争分析

    标签: sVGA vSGA vDGA GPU vGPU citrix vmware 原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任. http: ...

  2. 设计行业 + 三维软件 + 3D虚拟化

    对于设计行业来说,经常会有核心设计图纸外泄,外出办公无法访问公司零件库等问题,计算机一旦出现问题损失通常都非常惨重.CLDMIND桌面云解决方案实现了设计数据安全集中存储,核心研发资产受到保护. 客户 ...

  3. 多视角3D重建技术市场现状研究分析报告-

    辰宇信息咨询市场调研公司最近发布-<2022-2028中国多视角3D重建技术市场现状研究分析与发展前景预测报告> 内容摘要 本文研究中国市场多视角3D重建技术现状及未来发展趋势,侧重分析在 ...

  4. 透析CCNP路由知识五大技术4

    透析CCNP路由知识五大技术4 路由选择原理       1.1路由选择基础知识       路由是将对象从一个地方转达发到另一个地方的一个中继过程       学习和维持网络拓朴结构知识的机制被认为 ...

  5. 深入浅出学习透析Nginx服务器的架构分析及原理分析「底层技术原理+运作架构机制」

    Nginx再次回顾 也许你已经忘记了Nginx是做什么的?我来再次给你夯实一下概念. 多协议反向代理 Nginx是个高性能的Web和反向代理服务器及HTTP服务器,它能反向代理HTTP,HTTPS和邮 ...

  6. java本质_Java深入解析 透析Java本质的36个话题_源雷技术空间

    资源名称:Java深入解析  透析Java本质的36个话题 内容简介: 本书分为5 章,分别为"基本概念","运算符与表达式","String 类&q ...

  7. 千米感知误差低于5%,嬴彻发布全球领先的超长距精准3D感知技术

    鱼羊 发自 凹非寺 量子位 报道 | 公众号 QbitAI 行驶在高速公路上的自动驾驶重卡,时速保持在 80-100 km/h,即每秒移动大约 25 米. 刹车距离,就会是乘用车的 2 倍. 这样的情 ...

  8. 中国生物医药行业供需形势透析及未来投资风险评估报告2022-2027年版

    中国生物医药行业供需形势透析及未来投资风险评估报告2022-2027年版   第一章 生物医药产业概述 16 第一节 生物医药产业概述 16 一.生物医药产业概念 16 二.生物医药产业特点 16 三 ...

  9. 2021-2025年中国一次性透析装置行业市场供需与战略研究报告

    一次性透析装置市场的企业竞争态势 该报告涉及的主要国际市场参与者有B.Braun.Thermo Fisher.Wallach surgical device.Sfm medial devices.Ar ...

最新文章

  1. CORS漏洞利用检测和利用方式
  2. QIIME 2教程. 29参考数据库DataResources(2021.2)
  3. jvm性能调优 - 11J线上VM调优案例分享
  4. 记一则神秘JDK版本引发的hadoop集群慢性崩溃”血案“
  5. 讲解SQL Server定时作业job的设置方法
  6. Linux 守护进程的启动方法
  7. Objective-C ,ios,iphone开发基础:ios数据库(The SQLite Database),使用终端进行简单的数据库操作...
  8. linux pm2 权限,pm2 部署 node的三种方法示例
  9. Mac上终端的命令总结
  10. matlab多图形相交,用MATLAB作出柱面x^2+y^2=4 和柱面x^2+z^2=4 相交的图形.
  11. spring boot 设置启动时初始化DispatcherServlet
  12. VS2012 注册密钥
  13. 分享一款挡字幕小工具,自带翻译功能,方便看剧学英语、日语
  14. SSD目标检测论文简读
  15. MATLAB中取整函数一览表
  16. 数据结构课程设计 重言式判别
  17. 微信小程序加载效果和取消加载效果
  18. uniapp 评价应用_uniapp打开应用市场(APP端)
  19. java里面出生日期_java出生日期格式
  20. IP代理池检测代理可用性

热门文章

  1. 社交游戏?OR游戏社交!
  2. foxmail保存已发送邮件和已收取的邮件,使得多个终端的信息同步
  3. OPPO VOOC快充原理
  4. 对C#装箱和拆箱的理解
  5. 使用jxls分页导出excel
  6. shopify 应用对接电商示例
  7. python未读邮件_urllib2模块学习--爬虫读取163邮箱未读邮件
  8. linux win10 cpu性能,Windows 10拖了后腿,Linux下Threadripper 2990WX性能多达50%
  9. 如何新建PDF空白页的几个方法
  10. REACT HOOKS实现离开页面、刷新页面的时候,强制提醒