GPU虚拟化

编辑
本词条由“匿名用户” 建档。
使用GPU来加速在虚拟机上运行的图形或GPGPU应用程序的技术。GPU虚拟化用于各种应用,例如桌面虚拟化、云游戏和计算科学(例如流体动力学模拟)。 GPU虚拟化实现通常涉及以下一种或多种技术:设备仿真、API远程处理、固定传递和中介传递。每种技术在虚拟机与GPU的整合率、图形加速、渲染保真度和功能支持、不同硬件的可移植性、虚拟机之间的隔离以及对挂起/恢复和实时迁移的支持方面都有不同的权衡...

什么是GPU虚拟化

编辑

使用GPU来加速在虚拟机上运行的图形或GPGPU应用程序的技术GPU虚拟化用于各种应用,例如桌面虚拟化、云游戏和计算科学(例如流体动力学模拟)。

GPU虚拟化实现通常涉及以下一种或多种技术:设备仿真、API远程处理、固定传递和中介传递。每种技术在虚拟机与GPU的整合率、图形加速、渲染保真度和功能支持、不同硬件的可移植性、虚拟机之间的隔离以及对挂起/恢复和实时迁移的支持方面都有不同的权衡。

API远程处理

编辑

在API远程处理或API转发中,来宾应用程序对图形API的调用通过远程过程调用转发到主机,然后主机使用主机的GPU作为单个用户执行来自多个来宾的图形命令。当与设备仿真结合使用时,它可能被视为一种半虚拟化形式。当GPU不支持硬件辅助虚拟化时,该技术允许在多个客户机和主机之间共享GPU资源。它在概念上实现起来很简单,但它有几个缺点:

  • 在纯API远程处理中,访问图形API时虚拟机之间几乎没有隔离;使用半虚拟化可以改善隔离
  • 在每帧发出大量绘图调用的应用程序中,性能范围从本机性能的86%到低至12%
  • 必须转发大量API入口点,部分实现入口点可能会降低保真度
  • 客户机上的应用程序可能仅限于少数可用的API

管理程序通常使用来宾和主机之间的共享内存来最大化性能并最小化延迟。使用网络接口代替(分布式渲染中的一种常用方法),第三方软件可以添加对特定API的支持(例如rCUDA用于CUDA)或添加对典型API的支持(例如VMGL用于OpenGL)当虚拟机管理程序的软件包不支持它时,尽管网络延迟和序列化开销可能会超过好处。

中介传递

编辑

在中介设备直通或全GPU虚拟化中,GPU硬件通过IOMMU为每个来宾提供具有虚拟内存范围的上下文,并且管理程序将来自来宾的图形命令直接发送到GPU。该技术是硬件辅助虚拟化的一种形式,可实现接近原生的性能和高保真度。如果硬件将上下文公开为完整的逻辑设备,那么客人可以使用任何API。否则,API和驱动程序必须管理GPU上下文的额外复杂性。作为一个缺点,在访问GPU资源时,虚拟机之间可能几乎没有隔离。

以下软件和硬件技术实现了中介传递:

  • VMware虚拟共享直通图形加速与NvidiavGPU或AMDMxGPU
  • CitrixXenServer与NvidiavGPU、AMDMxGPU或IntelGVT-g共享GPU
  • Xen和KVM与IntelGVT-g
  • Thincast工作站-虚拟3D功能(DirectX12和Vulkan3DAPI)

GPU虚拟化

设备仿真

编辑

GPU架构非常复杂且变化迅速,其内部细节往往保密。完全虚拟化新一代GPU通常是不可行的,只能虚拟化较旧和更简单的几代。例如,IBMPC架构的专用仿真器PCem可以仿真支持Direct3D3的S3ViRGE/DX图形设备和支持Glide的3dfxVoodoo2等。

当使用VGA或SVGA虚拟显示适配器时,来宾可能没有3D图形加速,仅提供允许通过图形终端访问机器的最小功能。模拟设备可能只向客人展示基本的2D图形模式。虚拟机管理器还可以使用软件渲染提供通用API实现,以在客户机上启用3D图形应用程序,尽管速度可能低至硬件加速本机性能的3%。以下软件技术使用软件渲染实现图形API:

  • VMwareSVGA3D软件渲染器
  • VirtualBoxVMSVGA图形控制器
  • CitrixXenServerOpenGL软件加速器
  • Windows高级光栅化平台
  • 核心OpenGL软件渲染器
  • Mesa软件渲染器

内容由匿名用户提供,本内容不代表vibaike.com立场,内容投诉举报请联系vibaike.com客服。如若转载,请注明出处:https://vibaike.com/132065/

(3)
词条目录
  1. 什么是GPU虚拟化
  2. API远程处理
  3. 中介传递
  4. 设备仿真

轻触这里

关闭目录

目录