加入收藏 | 设为首页 | 会员中心 | 我要投稿 湖南网 (https://www.hunanwang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长百科 > 正文

详解GPU虚拟化技术

发布时间:2019-04-17 17:41:00 所属栏目:站长百科 来源:陶菘
导读:GPU英文名称为Graphic Processing Unit,GPU中文全称为计较机图形处理赏罚器,1999年由NVIDIA公司提出。 一、GPU概述 GPU这一观念也是相对付计较机体系中的CPU而言的,因为人们对图形的需求越来越大,尤其是在家用体系和游戏发热友,而传统的CPU不能满意近况,

XEN假造帧缓存是指XEN提供的一个假造的表现装备。该假造表现装备回收特权域的VNC处事器,因此该假造表现装备具有相似的VNC接口。客户机在XEN假造帧缓存中写入数据,然后通过VNC 协议来传输已修改的图片,最后关照前端举办响应地区的更新。这个假造帧缓存装备的源码是来自开源的Qemu。我们在XenServer上望见假造机的操纵体系桌面界面,等于这种技能的表现。

假造收集计较机VNC 和XEN 假造帧缓存这两种模式至今在假造机中仍未提供必然的硬件图形加快手段。因为今朝仍没有一个机制能使假造机举办会见图形硬件的手段,因此这些假造的表现装备都是通过行使CPU以及内存的方法对图形数据举办响应处理赏罚。并没有回收物理表现装备的成果。

然而VMGL这种模式已经实现了这种机制,这个机制凡是被称为前端-后端假造化机制(Front-end virtualization)。VMGL这种模式回收这个机制将必要图形处理赏罚的数据发送到一个拥有硬件图形加快成果的假造监控机长举办响应的图形数据处理赏罚。今朝存在的较量主流可用于GPU应用措施开拓的图形处理赏罚接口有两类:OpenGL和Direct3D。

在这两类图形处理赏罚接口中,OpenGL是独逐一类可以或许在主流操纵体系中跨平台操纵的图形API接口。在假造机平台中,VMGL是首个针对OpenGL API举办假造化的项目。VMGL的事变道理是,它在客户端操纵体系中陈设了一个伪库(Fake Library)用来代替尺度的OpenGL 库,伪库(Fake Library)拥有与尺度的OpenGL库沟通的接口,在客户端操纵体系中的伪库也实现了指向长途处事器的宿主机操纵体系的长途挪用。

这样一来,全部的当地OPENGL挪用都将被表明为对长途处事器的一次处事哀求,长途处事器的宿主机操纵体系拥有真正的OPENGL库、显卡驱动和物理硬件GPU,它认真完成OPENGL哀求并将执行功效表现到屏幕上。因为VMGL在整个进程操纵中都是完全透明的,因此挪用OPENGL的应用措施不必要修改源代码也不必要举办二进制改写,无需为假造机平台作任何窜改。

2.2、显卡直通

显卡直通也叫做显卡穿透(Pass-Through),是指绕过假造机打点体系,将GPU 单独分派给某一假造机,只有该假造机拥有行使GPU的权限,这种独有装备的要领分派方法生涯了GPU的完备性和独立性,在机能方面与非假造化前提下靠近,且可以用来举办通用计较。可是显卡直通必要操作显卡的一些非凡细节,同时兼容性差,仅在部门GPU 中装备可以行使。

Xen 4.0增进了VGA Passthrough技能,因此XenServer也拥有了该技能,XenServer的Passthrough 就是操作英特尔装备假造化(Intel VT-d)技能将表现装备袒露给某一个客户假造机,不只其余客户假造机不能会见,就连宿主假造机也失去了行使该GPU的手段。它在客户假造机中实现了显卡的一些非凡细节,如VGA BIOS、文本模式、IO 端口、内存映射、VESA模式等,以支持直接会见。行使Xen Server的 VGA Pass-Through 技能的GPU执行服从高,成果全,但只能被单一体系独有行使,失去了装备复用的成果。VMware ESXi 中包罗一个VM Direct Path I/O框架,行使该技能也可以将我们的显卡装备直通给某一假造机举办行使。

XenServer和VMware行使的是差异的技能可是实现的结果都是一样的,即将物理显卡装备直通给个中的某一假造机行使,以到达假造机举办3D表现和渲染的结果。

因为显卡直通现实上是由客户操纵体系行使原生驱动和硬件,穷乏须要的中间层来跟踪和维护GPU 状态,它不支持及时迁徙等假造机高级特征。如XenServer Passthrough榨取执行Save/Restore/Migration 等操纵。VMware的假造机中,一旦开启VMDirectPath I/O成果,其对应的假造机将失去执行挂起/规复、及时迁徙的手段。

2.3、显卡假造化(GPU假造化)

显卡假造化就是将显卡举办切片,并将这些显卡时刻片分派给假造机行使的进程。因为支持显卡假造化的显卡一样平常可以按照必要切分成差异的规格的时刻片,因此可以分派给多台假造机行使。着实现道理着实就是操作应用层接口假造化(API remoting),API重定向是指在应用层举办拦截与GPU相干的应用措施编程接口(API),通过重定向(如故行使GPU)的方法完成响应成果,再将执行功效返回应用措施。

我们此刻行使Citrix的3D桌面假造化办理方案中,大部门是行使NVIDIA公司提供的显卡假造化技能,等于vCUDA(virtual CUDA)技能,前面我们说过了CUDA框架,再此不在声名。vCUDA回收在用户层拦截和重定向CUDA API的要领,在假造机中成立物理GPU的逻辑映像——假造GPU,实现GPU资源的细粒度分别、重组和再操作,支持多机并发、挂起规复等假造机高级特征。

其vCUDA的实现道理或许包罗三个模块:CUDA客户端、CUDA处事端和CUDA打点端。以XenServer为例,在物理硬件资源上运行着一个VMM用于向上提供硬件映像,在VMM上运行着多少个假造机。个中一个假造机为特权假造机(Host VM),即为XenServer中的Domain 0,在假造机中运行的操纵体系称为Host OS。

Host OS可以或许直接节制硬件,体系内安装着原生的CUDA库以及GPU驱动,使得Host OS可以直接会见GPU和行使CUDA。其余的假造机属于非特权假造机(Guest VM),其上运行的操纵体系(Guest OS)不能直接哄骗GPU。在这里我们将CUDA客户端称之为客户端驱动,CUDA处事端称之为宿主机的驱动,CUDA打点端称之为GPU打点器。

2.3.1、客户端

客户端驱动着实质就是我们安装在假造机好比Windows 7上的显卡驱动措施。首要的成果是在用户层提供针对CUDA API的库以及一个维护CUDA相干软硬件状态的假造GPU(vGPU)。客户端驱动直接面向CUDA应用措施,其浸染包罗:

  • 1)拦截应用措施中CUDA API挪用;
  • 2)选择通讯计策,为假造化提供更高层语义的支持;
  • 3)对换用的接口和参数举办封装、编码;
  • 4)对处事端返回的数据举办解码,并返回给应用。

另外,客户端驱动在第一个API挪用到来之前,起首到打点端索取GPU资源。每一个独立的挪用进程都必需到宿主打点端驱动申请资源,以实现对GPU资源和使命的及时调治。

(编辑:湖南网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读