GPU虚拟化哪家强

2020-09-01 15:36:27 浏览数 (1)

2014年之前GPU虚拟化技术一直采用的是GPU直接passthrough技术,它分为GPU直接passthrough和使用VFIO的passthrough,后来出现了基于SRIOV的GPU虚拟化方案(AMD的GPU采用这种方案)和GPU分片虚拟化(mdev)的GPU虚拟化方案(Intel和NVDIA采用这种方案)

Intel的GPU虚拟化技术叫做GVT-g,NVDIA的GPU虚拟化技术叫做GRID vGPU。

现在Intel和NVIDIA的GPU虚拟化方案都是采用的VFIO mediated passthrough framework。该方案由NVIDIA提出,并联合Intel一起提交到了Linux kernel 4.10代码库,该方案的kernel部分代码简称mdev模块。Linux4.10内核中对VFIO添加了Mediated Device(vfio-mdev) Interface,用来支持Intel GVT-g, NVIDIA vGPU,并提供统一的框架。具体作用为通过软件调度的方式在Host与Guest之间提供一个中间的mediated device来允许Guest虚拟机访问Host中的物理GPU。

GPU直接passthrough以及AMD采用的SRIOV方式下,IOMMU是必备组件,直接使用IOMMU硬件完成GFN到PFN的地址转换。

Intel和NVDIA采用的VFIO mediated passthrough方式不依赖硬件IOMMU,只需要VFIO模块添加type1 IOMMU的驱动。kvmGT(Intel)或者NVIDIA-vgpu-vfio(NVIDIA)驱动模块实现对MMIO的访问拦截和模拟对MMIO的访问,并对DMA transfer的提交作GPA到HPA的翻译过程。

VFIO mediated passthrough的性能损耗主要在MMIO的模拟,而AMD的SRIOV方案,VM中对vGPU的MMIO访问完全没有虚拟化开销。

而VFIO mediated passthrough可以通过Host端对vGPU性能指标进行监控,因为VM对GPU的访问要绕道Host端。

关于VFIO mediated passthrough可以参考kernel的文档:

https://github.com/torvalds/linux/blob/master/Documentation/vfio-mediated-device.txt

关于GPU内部设计与运行原理,可用过Intel的设计和编程文档来了解,毕竟NVDIA是闭源的,而Intel是开源的。

链接地址如下:

https://01.org/linuxgraphics/documentation/hardware-specification-prms

0 人点赞