浅谈gpu虚拟化技术转自郑晓

本文涉及的产品
云服务器 ECS,每月免费额度200元 3个月
云服务器ECS,u1 2核4GB 1个月
简介: +关注简介: 注:本系列第一章推送门:阿里云郑晓:浅谈GPU虚拟化技术(第一章) GPU虚拟化发展史 第二章 GPU虚拟化方案之——GPU直通模式 目前流行的商用GPU虚拟化方案可以分为以下几类:GPU 直通模式,GPU SRIO模注:本系列第一章推送门:阿里云郑晓:浅谈GPU虚拟化技术(第一章) GPU虚拟化发展史

0
0
0
191
阿里云郑晓:浅谈GPU虚拟化技术(第二章)
来自:云服务器ECS 2018-05-08 11934
郑晓
+关注
简介: 注:本系列第一章推送门:阿里云郑晓:浅谈GPU虚拟化技术(第一章) GPU虚拟化发展史 第二章 GPU虚拟化方案之——GPU直通模式 目前流行的商用GPU虚拟化方案可以分为以下几类:GPU 直通模式,GPU SRIOV 模式,GPU 半虚拟化(mediated passthrough:包括Intel GVT-g和Nvidia GRID vGPU),VMWare的GPU全虚拟化(vSGA)。
注:本系列第一章推送门:阿里云郑晓:浅谈GPU虚拟化技术(第一章)
第二章 GPU虚拟化方案之——GPU直通模式

目前流行的商用GPU虚拟化方案可以分为以下几类:GPU 直通模式,GPU SRIOV 模式,GPU 半虚拟化(mediated passthrough:包括Intel GVT-g和Nvidia GRID vGPU),VMWare的GPU全虚拟化(vSGA)。当然也有尚未成熟处于玩票性质的virtio GPU等等。
各种方案的架构如下图,相信大家简单看图表也不会有什么大感觉:)

接下来我们简单介绍下GPU直通虚拟化(passthrough)方案的方方面面,并会在后续章节介绍vGPU分片虚拟化和SRIOV方案技术框架结构。

GPU直通模式是最早采用也最成熟的方案。三家(Nvidia Tesla,AMD FirePro,Intel Gen8/Gen9)都有支持。

直通模式的实现依赖于IOMMU的功能。VTD对IOVA的地址转换使得直通设备可以在硬件层次直接使用GPA(Guest Physical Address)地址。
直通模式的技术方案与其他任何PCI直通没有任何区别。由于GPU的复杂性和安全隔离的要求,GPU直通技术相对于任何其他设备来说,会有额外的PCI 配置空间模拟和MMIO的拦截(参见QEMU VFIO quirk机制)。比如Hypervisor或者Device Module 不会允许虚拟机对GPU硬件关键寄存器的完全的访问权限,一些高权限的操作会被直接拦截。大家或许已经意识到原来直通设备也是有MMIO模拟和拦截的。这对于我们理解GPU 半虚拟化很有帮助。

PCI 直通的技术实现:所有直通设备的PCI 配置空间都是模拟的。而且基本上都只模拟256 Bytes的传统PCI设备,很少有模拟PCIE设备整个4KB大小的。而对PCI设备的PCI bars则绝大部分被mmap到qemu进程空间,并在虚拟机首次访问设备PCI bars的时候建立EPT 页表映射,从而保证了设备访问的高性能。想了解细节的同学可以去参考Linux kernel document: vfio.txt

PCI 直通架构详见下图。

直通模式是对比物理机性能损耗最小,硬件驱动无需修改的方案,被各大公用云厂商广泛采用。对于支持直通的GPU而言,直通模式没有对可支持的GPU数量做限制,也没有对GPU功能性做阉割。GPU厂家的绝大多数新功能可以在直通模式下无修改地支持。

直通模式的优点:

1.性能:如前所述,直通模式是性能损耗最小的

对于公有云厂商来说吸引租客上云的关键就是性能。用户在把业务搬迁上云之后的第一件事永远是作对比:业务在云端的处理能力与尚未上云的本地业务处理能力作对比。相当多的客户甚至因为1%的性能损失而拒绝采用GPU云服务器。

Nvidia GPU 直通模式下与物理机的性能对比见下图:(大部分单GPU应用场景的性能对比可以达到96%左右)

大家或许会很好奇这4%的性能损失跑哪里去了?我们可以在介绍GPU分片虚拟化的时候继续讨论。

2.功能兼容性好

GPU的技术一直在发展。从原先的只针对3D图形加速渲染,到后续视频硬件编解码的支持,再到后续人工智能,机器学习的大规模运用,以及最新的多GPU互联互通等,直通设备对新功能的兼容性很好得力于对虚拟机GPU驱动的兼容性。GPU厂商开发的针对物理机的驱动,一般情况下可以不做任何修改地放到虚拟机内部执行。而随着GPU虚拟化的影响力逐渐扩大,一个GPU驱动同时支持物理机和虚拟机直通已经变成出厂的基本要求。

3.技术简单,运维成本低,对GPU厂商没有依赖
降低运维成本是提高云计算公司成本的有效方法。技术越简单,运行越稳定,一直是至理名言。

如果一个公司需要搬迁GPU服务器到云端的话,那么依赖于GPU直通技术,或许在几天之内就可以搭建一个原型出来。

最关键的是,直通技术完全不依赖于GPU的开发厂家。有些GPU的厂商甚至都不知道自家的GPU被用到数据中心,直到对方发布了GPU云服务器。

直通模式的缺点:

1.不支持热迁移(Live Migration)

与任何直通虚拟化的设备一样,直通设备的一个明显缺点是不支持热迁移。事实上在GPU硬件层面是完全支持热迁移技术的。现代GPU的设计理念都有一个上下文切换的概念(context switch or world switch),一个context在执行的过程中是完全可以被硬件中断,并切换到另外一个context上执行,比如Windows GPU workload的抢占功能。大家如果打开windows右下角的时钟表盘,可以看到秒表的跳动,每一次秒表的跳动都是一次GPU抢占。无论当前应用程序在做什么样规格的渲染,Windows都会挂起当前渲染任务,并切换到表盘显示的上下文,待表盘更新完毕再切换回之前被挂起的任务继续做渲染。(扯远了,关于GPU虚拟化的热迁移技术,我会放到高阶技术介绍章节中。)

既然GPU 硬件是支持热迁移的,那么主流虚拟化(KVM/Xen)为什么不去支持呢?因为GPU实在是太复杂,各厂实现又大相径庭。要实现一个GPU的热迁移,没有GPU硬件厂商的协助是绝无不可能的。而且GPU硬件研发属于厂家的核心竞争力,驱动开发也基本上属于闭源状态。只有Intel的核显GPU 有公开版的一部分硬件规范和开源i915驱动。其他厂家只提供二进制驱动。

2.不支持GPU资源的分割
不支持GPU资源的分割算不上GPU直通的缺点。此缺点完全是对比SRIOV和GPU半虚拟化来说。有一些应用场景,客户或许对GPU高并行计算性能并不关心,反而对GPU虚拟化的多虚拟机支持有很高要求。比如对于VDI应用,每一个虚拟机对GPU渲染计算能力的要求都非常小,相反应用场景需要一个GPU去支持多达32个虚拟机,那么直通设备就完全没办法适用。成本上考虑不可能让每个虚拟机分配一个GPU硬件,实现上也不可能有一个主板插上多达32个GPU的。

3.监控缺失

云计算公司对运维的基本要求就是能图表化当前资源的各种状态。比如GPU虚拟机是否正常,GPU 当前负荷,GPU当前温度,GPU的内存使用率等等。由于GPU直通是让虚拟机直接访问GPU硬件,在宿主机上只有一个Pseudo PCI驱动,从而无法拿到有效信息。没有这些监控数据的支持,GPU云服务器就是一个个孤岛而不能形成统一调度和运维。对运维人员来说,维护这样成千上万GPU的集群就是一个灾难。

下图是阿里云ECS GPU团队通过其他手段实现的GPU云监控图表:

本文只介绍了GPU直通技术。其他几个GPU虚拟化方案将会后续继续。

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

运维 监控 虚拟化 异构计算 Windows 云计算 KVM 并行计算 数据中心 调度
gpu执行 gpu执行任务 gpu数据库 gpu函数 gpu通信技术
开发者社区 > 云服务器ECS
云服务器 ECS 云虚拟主机 轻量应用服务器
作者高分内容
更多
浅谈GPU虚拟化技术(四)- GPU分片虚拟化
14247
浅谈GPU虚拟化技术(五):GPU图形渲染虚拟化的业界难题-VDI的用户体验
6824
阿里云郑晓:浅谈GPU虚拟化技术(第三章)
12536
阿里云郑晓:浅谈GPU虚拟化技术(第二章)
11853
阿里云郑晓:浅谈GPU虚拟化技术(第一章)
10482
评论

写下你的评论,字数限制为500字...
评论
来源圈子
更多

云服务器ECS
411152

  • 订阅

相关文档: 云服务器 ECS 云虚拟主机 轻量应用服务器
文章排行榜
最热
最新
1
万字长文带你玩转阿里云ECS云服务器(涵盖ECS产品购买、ECS管理、ECS快速部署云盘服务、ECS快照原理)
79678
2
凌晨三点评测——IT小白之神兵利器ECS初体验
74745
3
如何在云端重塑内容生产?来看这场虚拟人主持的发布会
73966
4
【ECS测评大赛】ECS C5全方位对比测评、服务搭建(含Alinux 3)
36290
5
为天猫精灵开发一个日程小秘书
17769
6
阿里云RemoteShuffleService新功能:AQE和流控
14551
7
天猫精灵实现无唤醒词推送断网播报
11510
8
看模板:一份基础简历的必含模块有哪些
9445
9
【转载】基于MaxCompute的大数据安全方案
7965
10
上古神器WireGuard异地高效率组网
7900
11
数据仓库的分层架构与演进
6715
12
修行Android Studio技巧到出神入化,快速涨薪-【快捷键】和【演示】篇
8108
13
手把手教你在阿里云ECS上搭建惊艳的博客
18228
14
天猫精灵解决选择焦虑【今天吃什么】
15743
15
1小时入门天猫精灵有屏音箱语音技能开发
24449
16
阿里云服务器ECS购买、部署Web站点流程详解
11173
17
ecs宝塔搭建wordpress个人博客
27344
18
某智能终端厂商流量商业化项目的云原生大数据平台实践
2270
19
搭建自己的FTP服务器
1713
20
异步任务处理系统,如何解决业务长耗时、高并发难题?
1644
推荐文章
《云原生实战案例集》重磅发布!
“第益课”大学生技术公益实践计划免费报名中
大咖手把手带你玩转RDS MySQL,学习到实践免费体验
乘风者计划邀您入驻社区,精彩权益即刻享
相关电子书
更多

JS零基础入门教程(上册)
立即下载
相关文章

游客j52fhnena2r3e
阿里云服务器如何登录?阿里云服务器的三种登录方法
购买阿里云ECS云服务器后如何登录?场景不同,大概有三种登录方式:
10016
0

晚来风急
服务器虚拟化令CIO们人心碎 超融合是解药吗?
1054
0

云吞铺子
阿里云VGN5i虚拟化GPU服务器价格更低的GPU计算服务
阿里云推出虚拟化GPU VGN5i实例,适用于云游戏、VR/AR、AI推理和DL教学等轻量级GPU计算场景,更细粒度的GPU计算服务,阿里云百科网分享: 什么是虚拟化GPU服务? 虚拟化GPU服务是一种弹性GPU计算服务,用户可以根据业务需求选择比一颗物理GPU更小的计算资源来部署自己的业务。
3516
0

优惠码发放
阿里云ECS上能否再做虚拟化?
今天有客户问到了这个问题,在此总结一下吧,首先答案是:不可以!不可以!不可以!重要的事情说三遍。为什么呢?答案1:阿里云ECS是基于虚拟化平台运行的,如果在服务器上部署虚拟化程序,会导致服务器出现不可预测的问题,请勿在服务器内部部署虚拟化程序。
2120
0

郑晓
浅谈GPU虚拟化技术(五):GPU图形渲染虚拟化的业界难题-VDI的用户体验
此节为第三章上节GPU SRIOV及VDI的一个补充,简短介绍一下。 添加上一节地址:https://www.atatech.org/articles/104757 VDI的用户体验问题 无论是AMD的GPU SRIOV还是Nvidia的M60等直通设备虚拟化,亦或者是GVT-g这样的分片虚拟化,在处理图形渲染为主的虚拟化方案都会定位于VDI客户。
6865
1

阿里云小秘
阿里云服务器怎么设置密码?怎么停机?怎么重启服务器?
如果在创建实例时没有设置密码,或者密码丢失,您可以在控制台上重新设置实例的登录密码。本文仅描述如何在 ECS 管理控制台上修改实例登录密码。
20697
2

程序员在线
阿里云ECS云服务器初始化设置教程方法
阿里云ECS云服务器初始化是指将云服务器系统恢复到最初状态的过程,阿里云的服务器初始化是通过更换系统盘来实现的,是免费的,阿里云百科网分享服务器初始化教程: 服务器初始化教程方法 本文的服务器初始化是指将ECS云服务器系统恢复到最初状态,服务器中的数据也会被清空,所以初始化之前一定要先备份好。
13869
0

coder一枚
阿里云VGN5i虚拟化GPU服务器价格更低的GPU计算服务
阿里云推出虚拟化GPU VGN5i实例,适用于云游戏、VR/AR、AI推理和DL教学等轻量级GPU计算场景,更细粒度的GPU计算服务,阿里云百科网分享: 什么是虚拟化GPU服务? 虚拟化GPU服务是一种弹性GPU计算服务,用户可以根据业务需求选择比一颗物理GPU更小的计算资源来部署自己的业务。
1786
0

晚来风急
OpenStack发布第14版Newton 改善虚拟化、裸机及容器
1146
0

筱洺
突破边界局限,阿里云神龙负责人张献涛分享15年虚拟化之路
面对面见未来

相关实践学习
基于阿里云DeepGPU实例,用AI画唯美国风少女
本实验基于阿里云DeepGPU实例,使用aiacctorch加速stable-diffusion-webui,用AI画唯美国风少女,可提升性能至高至原性能的2.6倍。
相关文章
|
7月前
|
虚拟化 数据中心 异构计算
GPU 虚拟化技术MIG简介和安装使用教程
使用多实例GPU (MIG/Multi-Instance GPU)可以将强大的显卡分成更小的部分,每个部分都有自己的工作,这样单张显卡可以同时运行不同的任务。本文将对其进行简单介绍并且提供安装和使用的示例。
270 0
|
安全 调度 虚拟化
阿里云郑晓:浅谈GPU虚拟化技术(第三章)
本系列文章推送门: 阿里云郑晓:浅谈GPU虚拟化技术(第一章) GPU虚拟化发展史 阿里云郑晓:浅谈GPU虚拟化技术(第二章)GPU虚拟化方案之——GPU直通模式  今天一个小伙伴@我说:“你浅谈一下,没点技术背景的,估计都看不懂…”,醍醐灌顶啊,面向公众的文章不是学术论文,应以普及基本概念为主。
18293 1
|
监控 Linux 调度
浅谈GPU虚拟化技术(四)- GPU分片虚拟化
作者:郑晓,龙欣,弹性计算异构计算项目组 让各位久等了,阿里小二这就开始上新菜:“GPU分片虚拟化”。 对于“分片”的理解,相信大家已经不陌生了。此处的分片从两个维度上来定义:其一,是对GPU在时间片段上的划分,与CPU的进程调度类似,一个物理GPU的计算engine在几个vGPU之间共享,而调...
19865 1
|
人工智能 KVM 云计算
阿里云郑晓:浅谈GPU虚拟化技术(第一章)
本文介绍GPU虚拟化的方方面面
13398 1
阿里云郑晓:浅谈GPU虚拟化技术(第一章)
|
11月前
|
人工智能 编解码 API
GPU虚拟化技术详解(附讲解视频)
GPU虚拟化技术详解(附讲解视频)
1089 0
|
机器学习/深度学习 vr&ar 虚拟化
阿里云VGN5i虚拟化GPU服务器价格更低的GPU计算服务
阿里云推出虚拟化GPU VGN5i实例,适用于云游戏、VR/AR、AI推理和DL教学等轻量级GPU计算场景,更细粒度的GPU计算服务,阿里云百科网分享: 什么是虚拟化GPU服务? 虚拟化GPU服务是一种弹性GPU计算服务,用户可以根据业务需求选择比一颗物理GPU更小的计算资源来部署自己的业务。
1928 0
|
Web App开发 机器学习/深度学习 人工智能
NVIDIA再秀GPU虚拟化解决方案,助力用户工作流程加速
真正为用户提供高可用性,实现优质用户体验
1108 0
|
虚拟化 UED 容器
浅谈GPU虚拟化技术(五):GPU图形渲染虚拟化的业界难题-VDI的用户体验
此节为第三章上节GPU SRIOV及VDI的一个补充,简短介绍一下。 添加上一节地址:https://www.atatech.org/articles/104757 VDI的用户体验问题 无论是AMD的GPU SRIOV还是Nvidia的M60等直通设备虚拟化,亦或者是GVT-g这样的分片虚拟化,在处理图形渲染为主的虚拟化方案都会定位于VDI客户。
8831 0
|
运维 监控 虚拟化
阿里云郑晓:浅谈GPU虚拟化技术(第二章)
注:本系列第一章推送门:阿里云郑晓:浅谈GPU虚拟化技术(第一章) GPU虚拟化发展史 第二章 GPU虚拟化方案之——GPU直通模式 目前流行的商用GPU虚拟化方案可以分为以下几类:GPU 直通模式,GPU SRIOV 模式,GPU 半虚拟化(mediated passthrough:包括Intel GVT-g和Nvidia GRID vGPU),VMWare的GPU全虚拟化(vSGA)。
17166 1
阿里云郑晓:浅谈GPU虚拟化技术(第二章)