GPU,也称为图形处理单元。
无论在手机,计算机,笔记本电脑中,GPU都扮演着不可替代的角色。
在先前的文章中,编辑器介绍了GPU加速,GPU服务器选择和GPU存储性能改进的原理。
为了增强大家对GPU的理解,本文将介绍五种GPU虚拟化技术的实现策略。
如果您对GPU感兴趣,则不妨继续阅读。
1.设备仿真设备仿真是指通过软件方法对虚拟机的GPU设备进行仿真。
这种方法的优点是可以在虚拟机内部调用GPU命令,从而可以完全记录GPU设备的状态以确保虚拟化。
该技术的所有特性都符合四个标准中的资源重用和虚拟化支持标准。
QEMU通过软件仿真实现了传统的VGA设备,但是该设备的性能非常低,只能支持基本功能。
软件仿真设备方法几乎不使用硬件加速,因此其实现的GPU性能不再能够满足当前虚拟机的图形和图像处理以及高性能计算需求。
并且如上所述,现代GPU体系结构具有很高的复杂性并且缺乏文档,因此很难实现对真实物理GPU的软件仿真。
这意味着设备模拟方法只能模拟少量API,并且只能确保为虚拟机提供少量GPU功能。
由于设备仿真方法在性能和支持的GPU功能方面与真实GPU差异太大,因此设备仿真技术不再应用于GPU虚拟化技术。
2. API转发(API转发)API转发是指包装图形API的库的实现。
当虚拟机调用相关的API时,这些库通过远程过程调用将这些图形API转发到主机,然后调用主机。
图形驱动程序提供的API支持调用的完成。
通过为高级API实现程序包库,客户端可以支持高级API,例如CUDA。
vCUDA和vGRIS等虚拟化解决方案均使用API转发方法。
该方法的优点是易于实现,并且在一定程度上使用GPU硬件来实现加速。
同时,可以在物理GPU上执行多个虚拟机调用的与GPU相关的指令和API。
但是API转发的主要问题是该方法失去了语言和库选择的灵活性,并且程序包库和受支持的API之间的不匹配将导致GPU虚拟化失败。
如果在迁移过程中目标主机和源主机的软件包库版本不一致,则可能导致迁移后GPU虚拟化不成功,因此API转发将影响虚拟化提供的功能。
3.中介直通GPU已经可以支持多个独立的上下文。
中介传递方法允许虚拟机仅占据这些上下文中的一个或子集。
高带宽操作(指令高速缓存提交,帧高速缓存提交)需要使用映射到物理GPU的内存或MMIO资源,而低带宽操作(资源分配,传统功能)可以通过使用完全虚拟化的资源来实现。
4.直接传递直接传递是指对虚拟机使用物理GPU的所有访问权限。
英特尔提供了英特尔VT-d硬件辅助技术,因此研究人员可以直接了解虚拟机占据了物理GPU的所有访问权限,而无需了解GPU的编程接口。
这种方法的优点是它可以提供与真实机器相似的性能和保真度。
Amazon的Amazon EC2提供的GPU资源使用此虚拟化策略。
但是,这种方法的问题在于,物理GPU只能由一个虚拟机使用,从而牺牲了在多台计算机之间共享GPU资源的条件。
而且虚拟化的迁移功能也将受到影响,因为不同架构的GPU之间可能不兼容。
V.完全虚拟化和半虚拟化根据是否需要修改客户机操作系统内部的驱动程序代码,GPU虚拟化实现策略分为GPU完全虚拟化和GPU半虚拟化。
GPU完全虚拟化是指在不修改虚拟机内部图形驱动程序的情况下,在多个虚拟机之间共享Gpu资源的实现。
GPU半虚拟化是提供软件支持的理想设备模型