当前位置:首页 > 虚拟化 > 正文

虚拟化gpu详解(虚拟机调用gpu)


一、VMware和Citrix的GPU虚拟化方式有何不同?比较Citrix和VMware之间的虚拟GPU功能
目前,两种最流行的企业VDI产品都基于NvidiaGRID技术。它们之间有什么区别?
Citrix在CitrixXenDesktop7.1中,Citrix提供了对vGPU技术的本机支持,包括使用NvidiaGRID技术的直通和GPU共享。但需要注意的是,NVIDIA主板不支持多服务器,并且GRIDvGPU功能仅在安装了ServicePack1的XenServer6.2上可用。
将vGPU部署到XenDesktop虚拟机(VM)后,主要关心的是如何分配GPU。您可以将物理GPU一对一地分配给虚拟GPU,这样可以减少每个物理GPU的负载,实现高性能的应用性能;或者,您可以将一个物理GPU共享为多个虚拟GPU,这会提供更高的GPU密度,但会降低性能。同样,这一切都取决于应用程序和用户需求。
GRID卡可以提供四种不同类型的vGPU。每个都在需要支持的共享用户数量和所需的内存量方面有所不同。GRID卡提供GPU旁路模式,这是XenApp可以使用的唯一GPU类型。
VMwarevSGA和vDGA
VMware技术基于Nvidia,包含不同的GPU虚拟化解决方案:Soft3D、虚拟共享映像加速(vSGA)和虚拟专用映像加速(vDGA)。
Soft3D使用GPU模拟软件,适合特定的3D图像处理需求。由于vSGA将GPU划分为多个共享并为每个虚拟机分配内存,因此vSGA可以支持高用户密度。它还可以提供故障转移功能,使用与Soft3D相同的驱动程序,并在必要时自动切换到Soft3D模式。您可以选择仅使用硬件GPU或允许自动转换为Soft3D。
如果您想获得最佳性能,可以使用VMwarevDGA,它将每个GPU仅分配给特定的虚拟桌面。还使用DirectX和OpenGL的高实现标准。
值得注意的是,由于CitrixVDI可以在多个虚拟机管理程序上运行,因此如果在VMwareESXi上运行,CitrixXenDesktop也可以使用vSGA和vDGA。
新的GPU功能
Nvidia的vGPUCitrix
XenServer过去已经支持很长时间了,但Nvidia已经宣布将在2015年之前扩展到VMwarevSphere。>虚拟机管理程序支持。对于在云中运行且需要大量图形处理能力的应用程序,VMware和Nvidia合作向Horizo​​nDaaS(桌面即服务)平台添加GRID支持。
Nvidia继续改进其GPU产品,提高用户密度,升级适用于GPU加速的NvidiaTegra处理器的CitrixReceiver软件客户端,并更新对Windows8.1和WindowsServer2012R2的vGPU支持。


二、GPU虚拟化的VGX功能特色

VGXCouncil旨在以节能的方式容纳大量用户。第一款NvidiaVGX卡配置有四个GPU和16GB内存,并与服务器中的行业标准PCIExpress接口兼容。
VGXGPU的虚拟机管理程序该软件层集成到商业虚拟机管理程序中,例如Citrix虚拟化、图形处理器等。
用户可选机器(USM)该管理选项允许企业根据客户需求配置图形功能,以通过网络传送给个人用户。从真实的PC体验到适应Nvidia标准并由NVIDIAQuadro或NVIDIANVSGPU或制药公司的GPU仪器提供支持的专业3D设计和工程体验,一切都在其能力范围内。NVIDIAVGX显卡是全球首款专为数据中心设计的显卡。最初的NVIDIAVGX显卡配备四个GPU,每个GPU具有192个基于NVIDIA®CUDA架构的核心和4GB显存。该显卡采用主动冷却,适用于各种现有的基于服务器的平台。该显卡采用了多项先进技术,其中包括硬件虚拟化技术,可以让运行虚拟桌面的多个用户共享单个GPU,体验丰富的交互式图形体验,以更高的能效显着减少图像滞后技术。
NVIDIAVGXGPUHypervisor
NVIDIAVGXGPUHypervisor是集成到商业虚拟机管理程序中的软件层,可提供对虚拟化GPU资源的访问。这允许多个用户共享通用硬件,从而允许在单个服务器上运行的虚拟机安全地访问关键资源。这使得单个服务器能够以较低的成本支持更多的用户,同时提供本地图形和GPU计算。
Citrix等业界领先的虚拟化技术公司正在将这项新技术集成到其全系列VDI产品中,以添加全硬件图形加速。
NVIDIA用户可选PC
NVIDIA用户可选PC使NVIDIAVGX平台能够为有迫切需求的业务人员提供可与专业GPU相媲美的体验。这使得IT部门只需一台服务器即可轻松支持多个用户。
用户可选择的桌面可以更好地利用硬件资源,并根据不断变化的业务需求更灵活地配置和部署新用户的桌面。这对于提供基础设施服务的公司来说非常有价值,因为他们可以在一天、一周或一个季度重新部署GPU加速服务器,以满足不断变化的需求。


三、GPU虚拟化上一篇文章讲解了计算机虚拟化的CPU虚拟化和内存虚拟化。从某种意义上来说,GPU也是用来计算的。但相比CPU用于常规计算的应用,GPU主要用于图形和视觉要求较高的场景,例如高清视频编解码、游戏3D、物理模拟等。本文将带您了解GPU虚拟化技术。
在芯片行业,GPU技术的发展与CPU技术一样迅速,越来越多的用户开始部署虚拟桌面解决方案。因此,GPU技术与虚拟化技术的融合是近年来虚拟化行业的热门技术话题,这样可以显着降低图形和可视化用户的成本,提高数据处理效率和数据安全性。。。所谓GPU虚拟化,就是将GPU卡的算力划分为多个合理的虚拟GPU,即vGPU,并以vGPU为单位分配GPU的算力。一张GPU卡可以分配给vGPU单元中的多个虚拟机,让虚拟机可以运行3D软件、播放高清视频等,大大提升用户体验。
目前GPU虚拟化主要有以下技术:
设备模拟
API转发
GPUPass-Through
FullGPUVVisualization
设备模拟直接将设备分配给指定的虚拟机。使用类似于CPU虚拟化中使用的二进制转换方法来执行模拟。然而,与CPU相比,GPU具有复杂的特性。不同设备厂商的GPU规格差异较大,难以细分,仿真效率低。因此,常规的QEMU软件仅模拟VGA设备的基本功能。它专门通过虚拟化图像缓存来加速2D图像访问,无法满足共享和高效的虚拟化需求。由于设备模拟没有一定的机制允许虚拟机访问图形硬件,因此这些虚拟显示设备使用CPU和内存来处理相应的图形数据。
转发API将OpenGL等图形指令从Guest虚拟机转发到VMM虚拟机桌面,实现虚拟化环境中的GPU共享。这种方法目前广泛应用于VMWare、VirutalBox等软件中。基于Chrome的VMGL和Oracle的VirtualBox,使用自定义的OpenGL库来替代原来的OpenGL库,并将虚拟机中的OpenGL指令转发给hypervisor执行。对于生成计算中的GPU应用,rCUDA、vCUDA和gVirtuS都利用CUDA命令转发和OpenGL来解决在虚拟化环境中运行GPU生成计算程序的问题。然而,API转发受到平台的限制。例如,Windows使用的接口是DirectX,它与OpenGL或CUDA不兼容。因此,Linux服务器无法执行从Windows客户端中继的DirectX命令。同时,API转发会导致大量的上下文切换,导致较大的性能损失。
显卡直通又称显卡直通,是指绕过虚拟机管理系统,将GPU分配给给定的虚拟机。只有虚拟机才有访问权限。GPU这种专有的设备分配方法保持了GPU的完整性和独立性,接近非虚拟化条件下的性能,可用于通用计算。但通过显卡传输需要使用一些特殊的显卡细节,兼容性较差。它只能在某些GPU设备上使用。同时,GPU透传只能将GPU分配给一台虚拟机,不能在多个其他虚拟机之间共享。其他虚拟机无法使用GPU提供的计算能力。由于图形直通实际上使用的是来宾操作系统的本机硬件和驱动程序,因此它缺少监视和维护GPU状态所需的中间层,并且不支持虚拟机实时迁移等高级功能。
显卡虚拟化就是将显卡进行划分,并将该显卡的时间片分配给虚拟机使用的过程。由于显卡支持虚拟化,如果需要的话,显卡往往可以被划分为不同规格的时间片,分配给多个虚拟机使用。GPU全虚拟化允许虚拟机直接访问性能敏感的资源(例如GPU访问显存),从本质上解决了透传和共享之间的矛盾。例如,SR-IOV技术类似于IO虚拟化,通过影子页表隔离每个虚拟GPU的访问空间,因此大多数命令执行不会受到虚拟机监视器的干扰,从而虚拟GPU可以实现几乎零-最佳条件下的虚拟性能。
不同的显卡厂商实现全虚拟化的方式不同。例如,AMD使用SR-IOV(单根虚拟化)技术在其最新的GPU上实现;Intel采用KVMGT技术来实现,Nvidia采用GPUvm/GRID技术来实现。