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

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

3天内不再提示

5种GPU虚拟化技术的详细资料讲解

Wildesbeast 来源:21IC 作者:21IC 2021-02-08 17:48 次阅读

GPU,也即图形处理单元。不论在手机中,还是在电脑、笔记本上,GPU都发挥着不可替代的作用。往期文章中,小编对GPU加速原理、GPU服务器选择、GPU存储性能提升等均有所介绍。为增进大家对GPU的认识,本文将对GPU的5种虚拟化技术的实现策略予以介绍。如果你对GPU具有兴趣,不妨继续往下阅读哦。

一、设备模拟(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

    文章

    4403

    浏览量

    126564
  • VGA
    VGA
    +关注

    关注

    5

    文章

    508

    浏览量

    61979
  • 虚拟机
    +关注

    关注

    1

    文章

    852

    浏览量

    27344
收藏 人收藏

    评论

    相关推荐

    PCIE总线详细资料

    PCIE总线详细资料
    发表于 02-15 15:23

    技术系列】浅谈GPU虚拟技术(第一章)

    摘要: GPU深度好文系列,阿里云技术专家分享第一章GPU虚拟发展史GPU
    发表于 04-16 10:51

    GPU虚拟在哪里发生?

    GPU虚拟在哪里发生?它是否出现在GRID卡中,然后将vGPU呈现给管理程序然后呈现给客户?或者,GPU虚拟
    发表于 09-28 16:45

    HMC349AMS8GE详细资料

    SOT-26 T/RHMC-C011详细资料RF Switch SPDT 0MHz to 20GHz 25dB Case C-5 TrayHMC544AE详细资料RF Switch SPDT 0MHz
    发表于 10-28 23:34

    ADRF5132BCPZN-R7详细资料

    /RHMC-C011详细资料RF Switch SPDT 0MHz to 20GHz 25dB Case C-5 TrayHMC544AE详细资料RF Switch SPDT 0MHz to 4GHz
    发表于 11-25 09:55

    kinect虚拟仪器控制技术详细资料概述

    本文档的主要内容详细介绍了kinect虚拟仪器控制技术详细资料概述包括了数据处理,和语音操作
    发表于 06-08 08:00 12次下载
    kinect<b class='flag-5'>虚拟</b>仪器控制<b class='flag-5'>技术</b><b class='flag-5'>详细资料</b>概述

    C语言教程之数组讲解详细资料免费下载

    本文档的主要内容详细介绍的是C语言教程之数组讲解详细资料免费下载。
    发表于 10-12 17:17 19次下载
    C语言教程之数组<b class='flag-5'>讲解</b>的<b class='flag-5'>详细资料</b>免费下载

    PPT教程之伺服电机及其驱动技术详细资料讲解

    本文档的主要内容详细介绍的是PPT教程之伺服电机及其驱动技术详细资料讲解
    的头像 发表于 03-09 11:14 6275次阅读
    PPT教程之伺服电机及其驱动<b class='flag-5'>技术</b>的<b class='flag-5'>详细资料</b><b class='flag-5'>讲解</b>

    STM8 GPIO入门的详细资料讲解笔记免费下载

    本文档的主要内容详细介绍的是STM8 GPIO入门的详细资料讲解笔记免费下载。
    发表于 07-16 17:09 22次下载

    Proteus元器件封装的详细资料讲解

    本文档的主要内容详细介绍的是Proteus元器件封装的详细资料讲解
    发表于 08-15 17:09 0次下载
    Proteus元器件封装的<b class='flag-5'>详细资料</b><b class='flag-5'>讲解</b>

    标准CANBUS协议链路的详细资料讲解

    本文档的主要内容详细介绍的是标准CANBUS协议链路的详细资料讲解
    发表于 07-02 08:00 2次下载

    Arduino的语法详细资料讲解

    本文档的主要内容详细介绍的是Arduino的语法详细资料讲解
    发表于 04-26 08:00 4次下载
    Arduino的语法<b class='flag-5'>详细资料</b><b class='flag-5'>讲解</b>

    无人机的飞控系统详细资料讲解

    本文档的主要内容详细介绍的是无人机的飞控系统详细资料讲解
    发表于 07-06 08:00 75次下载
    无人机的飞控系统<b class='flag-5'>详细资料</b><b class='flag-5'>讲解</b>

    MOS管的电路符号详细资料讲解

    本文档的主要内容详细介绍的是MOS管的电路符号详细资料讲解
    发表于 07-06 18:11 49次下载
    MOS管的电路符号<b class='flag-5'>详细资料</b><b class='flag-5'>讲解</b>

    RS485通信的详细资料讲解

    本文档的主要内容详细介绍的是RS485通信的详细资料讲解包括了:RS485基础,通讯协议,通讯案例,超级终端
    发表于 11-09 08:00 31次下载
    RS485通信的<b class='flag-5'>详细资料</b><b class='flag-5'>讲解</b>