(文章来自作者维护的社区微信公众号【虚拟化云计算】)
GPU全虚拟化的方式由于其性能和多虚拟机共享性方面的优势,一直是GPU厂家所努力支持的方向。本文通过几张架构图,看一下GPU全虚拟化中的Intel GVT-g和NVIDIA vGPU以及他们的统一架构Mediated Device。
我们知道GPU虚拟化的方案有:
1. 设备模拟;2. API图形指令转发;3. 物理GPU指定给虚拟机独占;4. GPU全虚拟化(与本文相关的)。
Linux4.10内核中对VFIO添加了Mediated Device(vfio-mdev) Interface,用来支持Intel GVT-g, NVIDIA vGPU,并提供统一的框架。具体作用为通过软件调度的方式在Host与Guest之间提供一个中间的mediated device来允许Guest虚拟机访问Host中的物理GPU。
Mediated device的架构如下:
Linux内核中对VFIO Mediated devices的介绍:
NVIDIA vGPU 部分架构原理如下:
Intel GVT-g 架构如下:
openstack对intel GVT-g和nvidia vGPU的支持:
AMD MxGPU
最后来看看AMD对KVM的支持,目前(2018年1月)只看到其基于 4.4.0-75-generic内核和S7150 series显卡进行的一个技术预研:
GIM (GPU-IOV Module) is a Linux kernel module for AMD SR-IOV based HW Virtualization (MxGPU) product. It can support KVM, open source Xen and any other Linux kernel based hypervisors with necessary kernel compatibility modification. GIM is reponsible for but not limits to: GPU IOV initialization, virtual function configuration and enablement, GPU scheduling for world switch, hung detection and virtual function level reset (FLR), PF/VF hand shake and other GPU utilities.
S7150在kvm虚拟机上测试结果:
VF数 |
1 |
2 |
4 |
6 |
8 |
10 |
16 |
|
每个VF显存 |
4G |
4G |
1.92G |
1.28G |
976M |
784M |
480M |
===================================================================
关注微信公众号【虚拟化云计算】,阅读更多虚拟化云计算知识,纯技术干货更新不停。