您当前的位置:首页 > 文章摘抄 > 正文

gpu虚拟化的4个主要指标和4种实现策略的区别(GPU虚拟化的4个主要指标和4种实现策略)

gpu虚拟化的4个主要指标和4种实现策略的区别(GPU虚拟化的4个主要指标和4种实现策略)

GPU虚拟化的评估标准

四个主要指标用于评估GPU虚拟化方法:

性能(性能)

保真度(保真度)

资源复用(多路复用)

你支持虚拟化的特性吗?

其中性能和保真强调降低GPU虚拟化的成本。性能指的是执行操作的速度,保真度指的是支持多少GPU提供的功能,以及对这些功能的支持质量。资源复用的特点,是否支持虚拟化,强调虚拟化给我们带来价值。资源重用是指让多个虚拟机共享同一个物理GPU的能力。资源复用要求虚拟机之间安全隔离,GPU资源复用提高了GPU资源的利用率。在保持虚拟机中GPU性能不变的情况下,复用一个GPU的虚拟机越多,对应的GPU虚拟化方案越符合资源复用的要求。是否支持虚拟化是指GPU虚拟化方案能否支持虚拟化技术提供的虚拟机与物理机之间的中间过程,比如要求虚拟机创建系统还原点或挂起,以及更高级的功能,比如热迁移、容错执行等。这些标准往往是相对的。例如,为了提高性能,需要牺牲虚拟化的其他功能。

GPU虚拟化技术的实现策略分类

GPU虚拟化的目标是为虚拟机提供虚拟的GPU设备支持,使虚拟机调用的GPU相关指令或GPU相关API(如OpenCL或CUDA)能够正常执行。

为了提高GPU虚拟化的性能,虚拟机需要使用GPU硬件来实现加速,也就是说,与GPU相关的命令或者虚拟机内部调用的与GPU相关的API都可以在硬件GPU上运行。GPU虚拟化技术的所有实现策略和GPU虚拟化技术的发展都是围绕这个目标展开的。

下面列出了GPU虚拟化技术的四种实现策略,根据GPU硬件加速的程度分为设备仿真、API转发、中介直通和直接直通,如图所示。

下面分别介绍四种实施策略:

设备仿真(设备仿真)

设备模拟是指软件对虚拟机的GPU设备进行模拟。这种方式的优点是可以在虚拟机内部调用GPU命令,可以完整记录GPU设备的状态,保证虚拟化技术的所有特性,满足四大标准中资源重用和支持虚拟化特性的要求。QEMU通过软件仿真实现了传统的VGA设备,但是这种设备性能很低,只能支持基本功能。软件模拟器件的方法几乎不使用硬件加速,所以用它实现的GPU性能可以无法满足图形图像处理和虚拟机高性能计算的需求。而且如前所述,现代GPU架构复杂度高,缺乏文档,很难用软件模拟一个真实的物理GPU。这意味着设备模拟方法只能模拟少量的API,并且只能保证向虚拟机提供少量的GPU特性。由于设备模拟方法的性能和支持的GPU特性与真实GPU相差太大,因此设备模拟的技术不再适用于GPU虚拟化技术。

API转发(API转发)

API转发指的是包装图形API的库的实现。当虚拟机调用相关API时,这些库通过远程过程调用将这些图形API转发给主机,然后调用主机上图形驱动提供的API支持来完成调用。通过实现高级API的包库,客户端可以支持CUDA等高级API。vCUDA、vGRIS等虚拟化方案都是使用API的转发方式。这种方法的优点是实现简单,并且在一定程度上利用了GPU硬件实现加速。同时可以让多个虚拟机调用的GPU相关指令和API在物理GPU上执行。但是API转发的主要问题是这种方式失去了语言和库选择的灵活性,包库和支持的API不匹配会导致GPU虚拟化不成功。但是在迁移过程中,如果目标主机和源主机的包库版本不一致,迁移后GPU虚拟化可能会不成功,所以API转发会影响虚拟化提供的特性。

中介传递

GPU已经可以支持多个独立的上下文,中介的方法使得虚拟机只占用这些上下文中的一个或者一个子集。高带宽操作(指令缓存提交、帧缓存提交)需要使用映射到物理GPU的内存或MMIO资源,而低带宽操作(资源分配、传统特性)可能通过使用完全虚拟化的资源来实现。

直接传递

直接交付是指给予虚拟机对物理GPU的完全访问权限。Intel提供Intel VT-d硬件助理技术,让研究人员在不了解GPU编程接口的情况下,直接实现一个虚拟机占用物理GPU的所有访问权限。这种方法的优点是它可以提供与真实机器相似的性能和保真度。亚马逊的Amazon EC2提供的GPU资源就采用了这种虚拟化策略。但这种方法的问题是一个物理GPU只能被一个虚拟机使用,牺牲了GPU资源在多台机器间共享的条件。而且虚拟化的迁移功能也会受到影响,因为不同架构的GPU之间可能会出现不兼容的情况。

完全虚拟化和半虚拟化

根据是否需要修改客户操作系统内部的驱动程序代码,GPU虚拟化实现策略分为GPU全虚拟化和GPU半虚拟化。完全GPU虚拟化意味着在多个虚拟机之间共享GPu资源,而无需修改虚拟机内部的图形驱动程序。GPU半虚拟化是一种理想的设备模型,它向虚拟机提供软件实现,并在底层控制客户端的图形驱动程序。使用GPU半虚拟化方法比API转发消耗更少的性能,但是客户端的设备驱动必须重写。主流的GPU虚拟化方案GPUvm采用半虚拟化的实现策略,显著提升虚拟机GPU的性能。

标签:GPU虚拟机虚拟化


声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,谢谢。

上一篇: 索爱t618(为什么说 手机 t618 挽救了 整个 索爱公司)

下一篇: 华硕的显卡为什么比其他显卡贵那么多?华硕显卡怎么区别档次



推荐阅读