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

gpu虚拟化执行标准是什么


一、GPU虚拟化概述图形处理单元(GPU)的核心功能是执行高效的浮点运算和并行处理。与CPU相比,GPU的计算速度可以快数百倍。GPU虚拟化技术的进步巧妙地利用了这种强大的性能。在数据中心服务器中,虚拟机实例可以通过图形计算任务虚拟化的方式共享物理GPU资源。这种方法提供了用户喜爱的安全、高效的桌面访问体验。
通过这些技术创新,用户无需购买昂贵的独立图形工作站,只需向云服务器分配必要的GPU资源即可执行复杂的图形处理任务。这无疑降低了运营成本,提高了工作效率,使其在行业中得到广泛应用。然而,对于图形工作站硬件制造商来说,这种虚拟化趋势可能会对他们的市场份额产生一些影响,并且由于市场竞争加剧,他们将面临新的挑战。尽管如此,从整体技术进步的角度来看,这种变化也是合理的发展趋势。


二、虚拟化/超融合中的GPU直通与vGPU在虚拟化和超融合环境中,GPU直通和vGPU的使用是现代企业数据中心的关键。随着大数据、区块链和人工智能技术的快速发展,对GPU算力的需求日益增大,传统数据中心对GPU的依赖程度越来越高。本文将深入分析GPU技术的能力,探讨虚拟化/超融合架构中的应用原理,并介绍SMTXOS对GPU的最新支持。
过去,人们对GPU的传统理解主要局限于图像处理,但实际上,在AI、大数据分析等场景中,GPU的并行计算能力尤为重要。CPU和GPU有显着的区别:CPU强调单核性能,适合串行任务,而GPU拥有多核,适合并行处理,在处理大量并行任务时具有优势。
GPU广泛应用于企业数据中心,包括图像处理、AI训练推理、高性能计算等。例如,通过对比测试,GPU在金融风险分析方面比传统CPU表现出8.9倍的性能提升。在虚拟化/超融合环境中,面对GPU资源的稀缺和高成本,GPU直通、vGPU等虚拟化技术成为提高资源利用率和灵活性的关键解决方案。
GPU直通采用PCIePass-through技术,直接在Souda虚拟机上使用物理GPU,虽然直观、高效,但受到IOMMU支持的限制。vGPU技术比较复杂,允许多个虚拟机通过GPU切片来共享资源,比如NVIDIA的Time-sliced和MIG模式。内存分区和vGPU系列的选择也必须仔细选择,以确保其与工作负载相匹配。
SMTXOS5.1版本的发布引入了GPU直通和vGPU功能,可以轻松在超融合平台中启用GPU应用。用户只需几个简单的步骤即可将vGPU配置并安装到CloudTower上的虚拟机,以满足实时渲染和AI训练等需求。
值得注意的是,使用GPU功能需要确认硬件支持,例如CPU的IOMMU功能和GPU的SR-IOV支持。目前,SMTXOS5.1支持多种GPU型号,未来支持列表将持续更新。不同GPU型号的vGPU共享模式请参考NVIDIA官方文档。


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