常见的GPU使用方式

硬件GPU服务器

这种一般是土豪用户。

常见的GPU使用方式

Pass-through (透传)

属于独占方式,一个 GPU 只能给一个虚机使用,成本还是较高, 透传技术能带来几乎和物理设备同等的性能,但是它也带来了一些局限性。设备透传带来的一个问题体现在实时迁移方面。实时迁移是在一个物理主机网络上支持负载平衡的一个很好的特性,但使用透传设备时它会产生问题。

全虚拟化

全虚拟化方案中,部分型号的GPU设备可以虚拟化为n个vGPU(其中n与GPU具体型号有关),每个虚机拥有一个虚拟的GPU实例,多个虚机共享一个物理 GPU。目前主要的 GPU厂商包括 Intel 和Nvidia 的全虚拟化方案主要还是针对某几种商业虚拟化软件比如 Hyper-V 、KVM 、Xen、VMware 等。

目前对GPU的全虚拟化,在国内外主流公有云已经有了具体的应用。但是针对不同的GPU型号以及采用不同的虚拟化技术,支持程度都不一样。这种共享式的全虚拟化方案是兼顾性能和成本的较好方案。

Docker运行GPU

通过轻量级的docker container 来间接实现GPU的共享,目前只能通过nvidia-docker创建的容器来使用nvidia GPU资源。一个物理GPU 同时只能给一个docker container,不能真正共享。docker container 创建和销毁都是秒级,可以做到间接共享GPU资源。