0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

GPU虚拟化的4个主要指标和4种实现策略

汽车玩家 来源:CSDN 作者:YuanruiZJU 2020-05-03 12:04 次阅读

GPU虚拟化的评价标准

4个主要指标用于评价GPU虚拟化的方法:

性能(performance)

保真度(fidelity)

资源复用(multiplexing)

是否支持虚拟化的特性(interposition)

其中性能和保真度强调减小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硬件加速的程度从小到大分别为分为设备模拟(Device Emulation)、API转发(API Forwarding)、中介传递(Mediated Pass-through)和直接传递(Direct Pass-through也被称为Fixed Pass-through),如图所示。

下面对这四种实现策略分别介绍:

设备模拟(Device Emulation)

设备模拟是指通过软件的方法来为虚拟机模拟GPU设备,这种方法的好处是虚拟机内部都可以调用GPU命令,可以完全记录GPU设备的状态,保证虚拟化技术的全部特性,满足四个标准中的资源复用和支持虚拟化特性的标准。QEMU 通过软件模拟实现了传统的VGA设备,但是该设备的性能很低,只能支持基础的功能。软件模拟设备的方法几乎不会使用硬件加速,因此其实现的GPU性能已经无法满足现在虚拟机的图形图像处理和高性能计算的需求。而且正如前文提到的,现代GPU架构具有很高的复杂性,而且缺少文档,因此很难实现对一个真实的物理GPU进行软件模拟。这意味着设备模拟方法只能模拟少量的API,只能保证少量的GPU特性提供给虚拟机。由于设备模拟的方法在性能和支持的GPU特性上和真实的GPU相差过大,设备模拟的技术已经不再应用到GPU虚拟化技术中。

API转发(API Forwarding)

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

中介传递(Mediated Pass-through)

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

直接传递(Direct Pass-through)

直接传递是指给一台虚拟机使用一个物理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
    gpu
    +关注

    关注

    27

    文章

    4507

    浏览量

    127513
  • 虚拟机
    +关注

    关注

    1

    文章

    870

    浏览量

    27574
收藏 人收藏

    评论

    相关推荐

    一文看懂电感的指标主要有哪些

    电感作为电子设备产品中非常重要的一种电子元器件,它对电子设备电路运行的稳定性有着直接的影响。我们在做电感选型的时候要考虑很多因素。那么,你知道电感的主要指标都哪些吗?下面就带大家了解一些关于电感
    的头像 发表于 05-14 09:39 263次阅读

    射频放大器的主要指标包括 射频放大器的作用

    射频放大器是一种电子器件,主要用于放大射频信号。它在无线通信、雷达、卫星通信等领域中起着重要的作用。射频放大器的主要指标包括增益、功率、带宽、线性度和噪声系数等。 增益是射频放大器最基本的指标之一
    的头像 发表于 02-18 11:14 586次阅读

    OpenHarmony开源GPU库Mesa3D适配说明

    : Dayu200-rk3568 一、背景介绍 OpenHarmony对图形的渲染,支持CPU和GPU方式。为了支持流畅的用户体现,GPU适配是必不可少的。OpenHarmony使用GPU
    发表于 12-25 11:38

    现代处理器的主要指令集架构

    ​ ​现代处理器的主要指令集架构(ISA)包括:x86指令集架构、RISC指令集架构。
    的头像 发表于 12-11 09:55 1654次阅读
    现代处理器的<b class='flag-5'>主要指</b>令集架构

    射频连接器的6个主要指标

    射频连接器的6个主要指标  射频连接器是一类用于电子设备和通信系统中的连接器,用于连接射频信号的传输。射频连接器的性能直接影响着设备的信号传输质量和系统的整体性能。在选择和设计射频连接器时,需要考虑
    的头像 发表于 11-27 17:08 833次阅读

    什么是虚拟GPU虚拟GPU的优势有哪些?

    虚拟 GPU,也称为 vGPU,是通过将数据中心 GPU 进行虚拟化,用户可在多个虚拟机中共享该 GPU
    的头像 发表于 11-10 09:48 1015次阅读
    什么是<b class='flag-5'>虚拟</b><b class='flag-5'>GPU</b>?<b class='flag-5'>虚拟</b><b class='flag-5'>GPU</b>的优势有哪些?

    运放关于带宽和增益的主要指标以及定义

    运放关于带宽和增益的主要指标以及定义 在电子电路中,运放是一个重要的组件,其作用是放大电压信号。要了解运放的性能,我们需要了解两个重要的指标:带宽和增益。 带宽是指运放能够放大的频率范围。具体
    的头像 发表于 10-25 11:07 2367次阅读

    虚拟仪器及LabVIEW的入门教程资料

    智能的仪器。随着计算机功能的日益强大以及其体积的日趋缩小,这类仪器功能也越来越强大,目前已经出现含嵌入式系统的仪器。另一方式是将仪器装入计算机。以通用的计算机硬件及操作系统为依托,实现各种仪器功能。
    发表于 09-27 07:32

    Σ-ΔADC的设计指标有哪些?

    。但是,要实现一个好的Σ-ΔADC,需要考虑多方面的设计指标。下面将介绍几个常见的设计指标。 一、精度 Σ-ΔADC的最主要指标就是精度。精度通常用ENOB(Effective Num
    的头像 发表于 09-17 16:44 579次阅读

    GPU发起的Rowhammer攻击常见问题

    任意虚拟内存位置的指针。 该方法使用来自远程JavaScript的侧通道和所谓的“Rowhammer”攻击。 所谓的“Rowhammer”攻击已经存在了几年,但最近的研究表明,这种攻击可能是从GPU发起的。
    发表于 08-25 06:41

    深入了解AArch64虚拟

    大多数主流操作系统都是基于这样的假设构建的:系统具有单个 运行多个非特权应用程序的特权操作系统。然而,ARM虚拟支持更多功能 而不是一操作系统共存并在同一系统上操作。实现这些
    发表于 08-02 12:52

    Arm通用中断控制器GICv3和GICv4虚拟的支持

    本指南描述了GICv3和GICv4体系结构中对虚拟的支持。它涵盖了管理程序可用于生成和管理虚拟中断的控件。指南是对于任何需要了解中断控制器功能的人来说编写软件来管理
    发表于 08-02 10:43

    Armv8-R架构中的虚拟概念和可能性

    ,您将能够: •描述基本的虚拟概念 •构建和运行示例代码来演示Armv8-R的虚拟特性 体系结构 本指南中的源代码和注册表图是特定于Cortex-R52处理器的是第一
    发表于 08-02 09:27

    NVIDIA虚拟GPU技术推动快速无痛的牙科治疗

    NVIDIA虚拟GPU技术推动快速无痛的牙科治疗
    的头像 发表于 08-01 14:46 367次阅读