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
    +关注

    关注

    28

    文章

    4709

    浏览量

    128781
  • 虚拟机
    +关注

    关注

    1

    文章

    908

    浏览量

    28127
收藏 人收藏

    评论

    相关推荐

    GPU虚拟现实中的表现 低功耗GPU的优缺点

    数据,以实现沉浸式的体验。以下是GPU虚拟现实中的几个关键表现: 图像渲染能力 :GPU需要快速渲染复杂的三维场景,以保持高帧率,这对于减少运动模糊和晕动症至关重要。 实时光线追踪
    的头像 发表于 11-19 10:58 248次阅读

    虚拟数据恢复—XenServer虚拟机数据恢复案例

    服务器虚拟数据恢复环境: 某品牌720服务器中有一组通过同品牌、型号为H710P的RAID卡+4块STAT硬盘组建的RAID10磁盘阵列。上层部署XenServer虚拟
    的头像 发表于 11-08 10:32 119次阅读
    <b class='flag-5'>虚拟</b><b class='flag-5'>化</b>数据恢复—XenServer<b class='flag-5'>虚拟</b>机数据恢复案例

    【一文看懂】大白话解释“GPUGPU算力”

    随着大模型的兴起,“GPU算力”这个词正频繁出现在人工智能、游戏、图形设计等工作场景中,什么是GPU,它与CPU的区别是什么?以及到底什么是GPU算力?本篇文章主要从以下5
    的头像 发表于 10-29 08:05 335次阅读
    【一文看懂】大白话解释“<b class='flag-5'>GPU</b>与<b class='flag-5'>GPU</b>算力”

    GPU与VR技术结合应用

    同时处理大量数据,从而实现高速的图形渲染。 VR技术的基本概念 虚拟现实(VR)技术是一通过计算机生成的三维环境,让用户能够沉浸在虚拟世界中的技术。VR技术通过头戴式显示器、手柄等设
    的头像 发表于 10-27 11:23 307次阅读

    Aigtek:衡量功率放大器性能的主要指标有哪些

    功率放大器 是系统中至关重要的组件,其性能直接影响信号的质量和对负载的驱动效果。为了全面评估功率放大器的性能,有一些关键指标需要被考虑。以下是这些主要指标的详细介绍: 1.输出功率 输出功率
    的头像 发表于 10-24 11:30 182次阅读
    Aigtek:衡量功率放大器性能的<b class='flag-5'>主要指标</b>有哪些

    云计算中的虚拟技术应用

    : 一、虚拟技术的核心原理 虚拟技术通过引入一虚拟
    的头像 发表于 10-24 09:22 433次阅读

    AURIX™ TC4x免费开发环境介绍

    TC4x的开发工具主要指集成开发环境/编译器和调试器,分为商用版和免费评估版两
    的头像 发表于 08-22 16:24 618次阅读
    AURIX™ TC<b class='flag-5'>4</b>x免费开发环境介绍

    虚拟数据恢复—XenServer虚拟平台数据恢复案例

    虚拟数据恢复环境: 某品牌R720服务器,4块STAT硬盘通过H710P阵列卡组建了一组raid10磁盘阵列。服务器上部署XenServer虚拟
    的头像 发表于 07-30 13:18 237次阅读
    <b class='flag-5'>虚拟</b><b class='flag-5'>化</b>数据恢复—XenServer<b class='flag-5'>虚拟</b><b class='flag-5'>化</b>平台数据恢复案例

    Aigtek电压放大器的主要指标是什么

    电压放大器是电子设备中常用的一放大器电路,其主要功能是将输入信号的电压放大到期望的输出电压水平,用于增强信号的强度或改变信号的幅度。电压放大器的主要指标包括增益、带宽、输入阻抗和输出阻抗等。 增益
    的头像 发表于 07-15 11:34 282次阅读
    Aigtek电压放大器的<b class='flag-5'>主要指标</b>是什么

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

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

    虚拟机数据恢复—EXT4文件系统下KVM虚拟机数据恢复案例

    虚拟数据恢复环境&故障: KVM是Kernel-based Virtual Machine的简称,是一开源的系统虚拟模块,自Linu
    的头像 发表于 04-17 14:22 352次阅读
    <b class='flag-5'>虚拟</b>机数据恢复—EXT<b class='flag-5'>4</b>文件系统下KVM<b class='flag-5'>虚拟</b>机数据恢复案例

    pcb绝缘耐压的4主要作用

    pcb绝缘耐压的4主要作用
    的头像 发表于 02-21 16:44 1988次阅读

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

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

    如何选择NVIDIA GPU虚拟软件的组合方案呢?

    NVIDIA vGPU 解决方案能够将 NVIDIA GPU 的强大功能带入虚拟桌面、应用程序和工作站,加速图形和计算,使在家办公或在任何地方工作的创意和技术专业人员能够访问虚拟化工作空间。
    的头像 发表于 01-12 09:26 1030次阅读
    如何选择NVIDIA <b class='flag-5'>GPU</b>和<b class='flag-5'>虚拟</b><b class='flag-5'>化</b>软件的组合方案呢?

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

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