GPU,也即图形处理单元。不论在手机中,还是在电脑、笔记本上,GPU都发挥着不可替代的作用。往期文章中,小编对GPU加速原理、GPU服务器选择、GPU存储性能提升等均有所介绍。为增进大家对GPU的认识,本文将对GPU的5种虚拟化技术的实现策略予以介绍。如果你对GPU具有兴趣,不妨继续往下阅读哦。
一、设备模拟(Device Emulation)
设备模拟是指通过软件的方法来为虚拟机模拟GPU设备,这种方法的好处是虚拟机内部都可以调用GPU命令,可以完全记录GPU设备的状态,保证虚拟化技术的全部特性,满足四个标准中的资源复用和支持虚拟化特性的标准。QEMU 通过软件模拟实现了传统的VGA设备,但是该设备的性能很低,只能支持基础的功能。软件模拟设备的方法几乎不会使用硬件加速,因此其实现的GPU性能已经无法满足现在虚拟机的图形图像处理和高性能计算的需求。而且正如前文提到的,现代GPU架构具有很高的复杂性,而且缺少文档,因此很难实现对一个真实的物理GPU进行软件模拟。这意味着设备模拟方法只能模拟少量的API,只能保证少量的GPU特性提供给虚拟机。由于设备模拟的方法在性能和支持的GPU特性上和真实的GPU相差过大,设备模拟的技术已经不再应用到GPU虚拟化技术中。
二、API转发(API Forwarding)
API转发是指通过实现包裹图形API的库,这些库在虚拟机调用相关的API时,将这些图形API通过远程过程调用的方法转发到主机上,然后调用主机上的图形驱动提供的API支持完成调用。通过给高层的API实现包裹库,客户机就能支持高层的API如CUDA。vCUDA、vGRIS等虚拟化方案都是利用API转发的方法。这种方法的优点是利于实现,而且一定程度上利用了GPU硬件实现加速,同时可以使多个虚拟机调用的GPU