内页横幅
联系我们
当前位置:首页  >  行业新闻

GPU虚拟化技术

2016-03-29 阅读:971

一、GPU概述

GPU的英文名称为Graphic Processing Unit,GPU中文全称为计算机图形处理器,由1999 年NVIDIA 公司提出。GPU这一概念也是相对于计算机系统中的CPU而言的,由于人们对图形的需求越来越大,尤其是在家用系统和游戏发烧友,而传统的CPU不能满足现状,因此需要提供一个专门处理图形的核心处理器。GPU 作为硬件显卡的“心脏”,地位等同于CPU在计算机系统中的作用。同时GPU也可以用来作为区分2D硬件显卡和3D硬件显卡的重要依据。2D硬件显卡主要通过使用CPU 来处理特性和3D 图像,将其称作“软加速”。3D 硬件显卡则是把特性和3D 图像的处理能力集中到硬件显卡中,也就是“硬件加速”。目前市场上流行的显卡多半是由NVIDIA 及ATI这两家公司生产的。

二、GPU虚拟化

目前虚拟机系统中的图形处理方式有三种:一种是采用虚拟显卡的方式,另一种是直接采用物理显卡,最后是采用GPU虚拟化。

2.1、虚拟显卡

第一种采用虚拟显卡是现在主流的虚拟化系统的选择,因为专业的显卡硬件价格不菲。目前采用虚拟显卡的这些技术包括:虚拟网络计算机VNC(Virtual Network Computing),Xen 虚拟帧缓存,VMware虚拟图形显示处理器GPU(Graphics Processing Unit)以及独立于虚拟机管理器的图形加速系统VMGL(VMM-Independent Graphics Acceleration)。

基本上是属于一种显示系统,也就是说它能将完整的窗口界面通过网络,传输到另一台计算机的屏幕上。Windows 服务器中包含的"Terminal Server"即是属于这种原理的设计。VNC 是由AT&T 实验室所开发的,其采用GPL(General PublicLicense)授权条款,任何人都可免费取得该软件。VNC软件要由两个部分组成:VNC server 及VNC viewer。用户需先将VNC server安装在被远程操控的计算机上后,才能在主控端执行VNC viewer 进行远程操控。

2.2、显卡直通

显卡直通也叫做显卡穿透(pass-through),是指绕过虚拟机管理系统,将GPU 单独分配给某一虚拟机,只有该虚拟机拥有使用GPU的权限,这种独占设备的方法分配方式保存了GPU的完整性和独立性,在性能方面与非虚拟化条件下接近,且可以用来进行通用计算。但是显卡直通需要利用显卡的一些特殊细节,同时兼容性差,仅在部分GPU 中设备可以使用。Xen 4.0增加了VGA passthrough技术,因此XenServer也拥有了该技术,XenServer的Passthrough 就是利用英特尔设备虚拟化(Intel VT-d)技术将显示设备暴露给某一个客户虚拟机,不仅其它客户虚拟机不能访问,就连宿主虚拟机也失去了使用该GPU的能力。它在客户虚拟机中实现了显卡的一些特殊细节,如VGA BIOS、文本模式、IO 端口、内存映射、VESA模式等,以支持直接访问。使用XenServer的 VGA Passthrough 技术的GPU执行效率高,功能全,但只能被单一系统独占使用,失去了设备复用的功能。VMwareESX 中包括一个VMDirectPath I/O框架,使用该技术也可以将我们的显卡设备直通给某一虚拟机进行使用。

2.3、显卡虚拟化(GPU虚拟化)

显卡虚拟化就是将显卡进行切片,并将这些显卡时间片分配给虚拟机使用的过程。由于支持显卡虚拟化的显卡一般可以根据需要切分成不同的规格的时间片,因此可以分配给多台虚拟机使用。其实现原理其实就是利用应用层接口虚拟化(API remoting),API重定向是指在应用层进行拦截与GPU相关的应用程序编程接口(Application ProgrammingInterface,API),通过重定向(仍然使用GPU)的方式完成相应功能,再将执行结果返回应用程序。

我们现在使用Citrix的3D桌面虚拟化解决方案中,大部分是使用NVIDIA公司提供的显卡虚拟化技术,即是vCUDA(virtual CUDA)技术,前面我们说过了CUDA框架,再此不在说明。vCUDA采用在用户层拦截和重定向CUDA API的方法,在虚拟机中建立物理GPU的逻辑映像——虚拟GPU,实现GPU资源的细粒度划分、重组和再利用,支持多机并发、挂起恢复等虚拟机高级特性。