云桌面GPU虚拟化方案技术解析

2018-08-28 09:54:29 58

摘要:

在虚拟桌面场景中,很多行业都需要用到3D图形设计,如建筑、汽车、船舶、飞机、动漫设计等,3D设计需要消耗大量的运算资源,应用 GPU (Graphics Processing Unit) 可以大大加速 3D 渲染的速度,提高3D设计的效率。


一、GPU与CPU性能比较

  理解GPU和CPU之间区别的一种简单方式是比较它们如何处理任务。CPU由专为顺序串行处理而优化的几个核心组成,而GPU(图形处理器单元)主要进行浮点运算和并行运算,这和CPU有本质的区别,一般GPU都内置了数百个内核,甚至上千个,GPU的工作原理就是并行计算,在并行处理特定数据的时候,GPU比CPU更加高效。

===========================================

举例:如果CPU具有多核,按照当前最为通用的2 Socket结构,也就是具有了20个物理核心,然而GPU P100和V100分别具有4000+个核心和5000+个核心。在这些核心都能被充分利用的情况下,核心越多计算能力也越强。

===========================================

CPU主要用来处理通用任务,因此具有复杂的控制单元。但在复杂指令计算方面,GPU远远不及CPU,GPU主要用来处理计算性强而逻辑性不强的计算任务,GPU中可利用的处理单元可以更多的作为执行单元。


上图是CPU和GPU物理设备的详细逻辑结构图,CPU是由控制器和运算器两部分构成,可以处理操作系统上的复杂任务,除了计算之外,还可以进行资源管理调度等。而GPU,是通过CPU将大量并行任务移交到GPU,GPU对重复任务进行并行执行,来提高了整体的性能。而GPU的数以千计的核,虽具有高性能计算能力,但是仍然离不开CPU这个大脑神经中枢。这就是为什么GPU具有特定的一些优势应用领域的原因。

所以GPU和CPU是一种互补的关系,而不是互相代替的关系。只有CPU和GPU协同运算,各自去处理最擅长的任务,才能发挥出计算机最强的效能。

3D设计是GPU很重要的使用领域,该任务具有高度的并行性,CPU是无法达到使用户满意的效果的,而采用GPU可仅仅通过增加并行处理单元和存储器控制单元便可有效的提高处理能力和存储器带宽。因此,在VDI架构中,相较于CPU,GPU方案在具备大量重复数据集运算和频繁内存访问等特点的应用场景(3D渲染、VR/AR沉浸式教室、视频编辑等)中具有无可比拟的优势。


3D设计指的是需要显卡辅助来支持的3D应用,通常是符合DirectX或OpenGL图形技术规范的应用。近些年普通办公场景下的VDI技术日趋成熟,云桌面3D图形设计方面的技术开始加速发展,各厂商都加大了研发投入并推出了相应的解决方案,如Microsoft的RemoteFX、VMWare的vSGA(Virtual Shared Graphics Acceleration)和vDGA(Virtual Dedicated Graphics Adaptor)、Citrix 的 HDX 3D Pro、Nvidia的GPU硬件虚拟化。

通过这些技术可有效支持多种3D软件,包括主流CAD(Computer Aided Design)软件、常用GIS(Geographic Information System)、3D游戏软件、全媒体视频编辑软件等,能满足多领域客户(如设计院、工程、制造、医疗、游戏、媒资、高校设计类专业教室等行业)对3D制图处理的需求。


二、软件GPU方案

  顾名思义,软件GPU就是完全用软件来模拟GPU的功能,对于3D设计软件来说还是可以在虚机中调用3D图形驱动程序来实现各种3D运算,但这些运算都是由宿主机的CPU来完成的,当然速度比GPU差远了,而且会占用CPU资源。这种方式只是作为一种权宜之计,作为GPU资源不够(或根本没有)时的一种补充,但对用户来说好歹可以在虚拟桌面中运行那些3D设计软件了,目前这种技术比较适用于轻量级3D软件环境中


    Windows系统下的软件GPU方案可以基于WDDM驱动框架开发。WDDM,是Windows Display Driver Model的缩写,顾名思义这是一个与显示芯片密切相关的模块。总体来说在Windows中开始启用WDDM规范,一方面是让GPU参与到Windows 操作系统的3D界面中来、其次在播放HD视频以及版权保护视频时,显卡和GPU要发挥相应的作用;另外,WDDM相对以往显卡驱动将让操作系统更加稳定。最为有趣的是,根据微软多年统计,在WindowsXP时代有20%的系统蓝屏机会是因为显卡驱动造成的。WDDM 显示器驱动程序在技术水平上有两个组件:一个非常先进的内核模式驱动程序 (KMD) 和一个执行大部分密集计算的用户模式驱动程序(UMD)。

    

    由于在云桌面的软件GPU解决方案中,没有真实的GPU与虚拟机关联,所以需要使用CPU模拟原先由GPU硬件支持的3D算法,实现3D功能的支持。因此通过WDDM过滤驱动的修改,需要对其用户态驱动和内核态驱动都要进行过滤,两个模式的过滤驱动分别实现不同的功能: 

(1)WDDM内核态过滤驱动用来实现虚拟显示器、普通类型图片(无需进行GPU硬件加速或渲染的图片,如桌面、文件窗口等)、鼠标位置、鼠标形状的捕获。

(2)WDDM用户态过滤驱动用来实现3D全屏、Aero、GPU硬件加速或渲染类型图片(如窗口化3D、视频等)的捕获。 增加过滤驱动后,整个WDDM显示框架变成了下图的结构:


    软件GPU方案对中轻量级3D软件支持较好,相比于GPU直通与vGUP等方案能有效简化硬件配置。在对3D要求不高的云桌面办公场景上,如普通office办公、基础教学等,是解决轻量级图形处理软件的高性价比解决方案。


三、GPU直通

显卡直通也叫做显卡穿透(pass-through),是指绕过虚拟机管理系统,将每个物理GPU绑定给一个虚拟机,只有该虚拟机拥有使用GPU的权限,通过驱动直接访问物理GPU,这种独占设备的方法分配方式保存了GPU的完整性和独立性,在性能方面与非虚拟化条件下接近,且可以用来进行通用计算。但是显卡直通需要利用显卡的一些特殊细节,同时兼容性差,仅在部分GPU 中设备可以使用。目前业内很多厂家均已支持GPU直通技术,比如:VMWare PCoIP、Citrix HDX、HP RGS、H3C VDP协议,使得终端用户通过终端远程接入用户虚拟桌面获取GPU的3D加速能力。本特性支持多种类型显卡,兼容性好,支持符合最新DirectX、OpenGL规范的3D应用。


    XenServer和KVM的Passthrough 就是利用Intel设备虚拟化(Intel VT-d)技术将显示设备透传给某一个虚拟机,不仅其它虚拟机不能访问,就连虚拟化主机也失去了使用该GPU的能力。它在该虚拟机中实现了显卡的一些特殊细节,如VGA BIOS、文本模式、IO 端口、内存映射、VESA模式等,以支持直接访问。由于GPU直通实际上是由虚拟机操作系统使用原生的驱动和硬件,缺少必要的中间层来跟踪和维护GPU状态,所以不支持实时迁移、快照等虚拟机高级特性。如XenServer Passthrough禁止执行restore/migration 等操作。VMware的虚拟机中,一旦开启VMDirectPath I/O功能,其对应的虚拟机将失去执行挂起/恢复、实时迁移的能力。


四、图形工作站纳管

    “图形工作站”是一种专业从事图形、图像(静态)、图像(动态)与视频工作的高档次专用电脑的总称。从工作站的用途来看,无论是三维动画、数据可视化处理乃至CAD/CAM 和EDA,都要求系统具有很强的图形处理能力,从这个意义上来说,可以认为大部分工作站都用作图形工作站。通过图形工作站纳管方式,可以把图形工作站导入到云桌面管理平台中,并向终端用户提供桌面连接协议接入图形工作站获取GPU的3D加速能力。该技术支持NVIDIA多种类型的显卡,兼容性好,支持符合最新DirectX、OpenGL规范的3D应用。下图是HP Moonshot微卡系列的图形工作站托管方案:

    ——摘录于新华三云计算




标签: GPU 云桌面