艾巴生活网

您现在的位置是:主页>科技 >内容

科技

5种gpu虚拟化技术的详细资料讲解图(5种GPU虚拟化技术的详细资料讲解)

2024-11-20 21:19:57科技帅气的蚂蚁
GPU,或图形处理单元。GPU在手机、电脑、笔记本中有着不可替代的作用。在之前的文章中,边肖介绍了GPU加速原理、GPU服务器选择和GPU存储性

5种gpu虚拟化技术的详细资料讲解图(5种GPU虚拟化技术的详细资料讲解)

GPU,或图形处理单元。GPU在手机、电脑、笔记本中有着不可替代的作用。在之前的文章中,边肖介绍了GPU加速原理、GPU服务器选择和GPU存储性能提升。为了增强人们基于对GPU的理解,本文将介绍五种GPU虚拟化技术的实现策略。如果你对GPU感兴趣,请继续阅读。

一、设备仿真

设备模拟是指软件对虚拟机的GPU设备进行模拟。这种方法的优点是可以在虚拟机内部调用GPU命令,可以完整记录GPU设备的状态,保证虚拟化技术的所有特性,满足四大标准中资源重用和支持虚拟化特性的要求。QEMU通过软件仿真实现了传统的VGA设备,但是这种设备性能很低,只能支持基本功能。软件模拟器件的方法几乎不使用硬件加速,所以它实现的GPU性能可以无法满足图形图像处理和虚拟机高性能计算的需求。而且如前所述,现代GPU架构复杂度高,缺乏文档,很难用软件模拟一个真实的物理GPU。这意味着设备模拟方法只能模拟少量的API,并且只能保证向虚拟机提供少量的GPU特性。由于设备模拟方法的性能和支持的GPU特性与真实GPU相差太大,因此设备模拟的技术不再适用于GPU虚拟化技术。

二、API转发

API转发指的是包装图形API的库的实现。当虚拟机调用相关API时,这些库通过远程过程调用将这些图形API转发给主机,然后调用主机上图形驱动提供的API支持来完成调用。通过实现高级API的包库,客户端可以支持CUDA等高级API。vCUDA、vGRIS等虚拟化方案都是使用API的转发方式。这种方法的优点是实现简单,并且在一定程度上利用了GPU硬件实现加速。同时可以让多个虚拟机调用的GPU相关指令和API在物理GPU上执行。但是API转发的主要问题是这种方式失去了语言和库选择的灵活性,包库和支持的API不匹配会导致GPU虚拟化不成功。但是在迁移过程中,如果目标主机和源主机的包库版本不一致,迁移后GPU虚拟化可能会不成功,所以API转发会影响虚拟化提供的特性。

三、中介传递

GPU已经可以支持多个独立的上下文,中介的方法使得虚拟机只占用这些上下文中的一个或者一个子集。高带宽操作(指令缓存提交、帧缓存提交)需要使用映射到物理GPU的内存或MMIO资源,而低带宽操作(资源分配、传统特性)可能通过使用完全虚拟化的资源来实现。

四、直接传递

直接交付是指给予虚拟机对物理GPU的完全访问权限。Intel提供Intel VT-d硬件助理技术,让研究人员在不了解GPU编程接口的情况下,直接实现一个虚拟机占用物理GPU的所有访问权限。这种方法的优点是它可以提供与真实机器相似的性能和保真度。亚马逊的Amazon EC2提供的GPU资源就采用了这种虚拟化策略。但这种方法的问题是一个物理GPU只能被一个虚拟机使用,牺牲了GPU资源在多台机器间共享的条件。而且虚拟化的迁移功能也会受到影响,因为不同架构的GPU之间可能会出现不兼容的情况。

五、完全虚拟化和半虚拟化

根据是否需要修改客户操作系统内部的驱动程序代码,GPU虚拟化实现策略分为GPU全虚拟化和GPU半虚拟化。完全GPU虚拟化意味着在多个虚拟机之间共享GPu资源,而无需修改虚拟机内部的图形驱动程序。GPU半虚拟化是一种理想的设备模型,它向虚拟机提供软件实现,并在底层控制客户端的图形驱动程序。使用GPU半虚拟化方法比API转发消耗更少的性能,但是客户端的设备驱动必须重写。主流的GPU虚拟化方案GPUvm采用半虚拟化的实现策略,显著提升虚拟机GPU的性能。