GPU虚拟化

在嵌入式虚拟化中,常遇到能移植hypervisor,能启动虚拟机,如果要显示图形界面有两种方案:
    一是GPU设备透传,虚拟机加载原生图形栈
    二是GPU虚拟化,其中GPU虚拟化又分为硬件辅助的GPU虚拟化和软件的GPU虚拟化
    方案一不属于严格意义上的GPU虚拟化,本文主要分析方案二GPU虚拟化。
对比 GPU透传 GPU虚拟化
功能 一个GPU仅支持一个OS 一个GPU支持多OS显示
性能 接近原生 弱于原生

1. 概述

1.1 GPU子系统分层

GPU典型架构

GPU主要用于通用计算和图形渲染。上图GPU子系统抽象了几层概念:
      应用程序:调用图形API,如OpenGLES,Vulkan
      底层库:图形用户态驱动,一般为GPU厂商闭源实现
      内核和硬件:包括GPU硬件驱动,最底层为GPU硬件

1.2 GPU虚拟化需求

多虚拟机对GPU资源共享的需求,应用场景如:
    多屏车机(IVI/Cluster共用GPU)
    本地桌面虚拟机(Vmvare,Virtualbox,Qemu-kvm)
    远程桌面虚拟机(云桌面多租户)
    云手机

1.3 GPU虚拟化分类

根据GPU子系统实现分层,虚拟化技术也可以实现在三个层次,即用户层、内核层和硬件层:
    用户层:API 拦截和 API forwarding
    内核层:GPU 驱动拦截; GPU 驱动半虚拟化(Para Virtualization)
    硬件层:硬件辅助虚拟化; SRIOV(Single Root I/O Virtualization); Nvidia MIG(Multi-Instance GPU)

2. 用户层

在用户态图形API函数库(如libopenglES)进行拦截和转发,可以在本地转发,也可以转发到别的系统

2.1 本地 API 拦截和 API forwarding

  • 2
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值