GPU 共享/虚拟化方案: 故障隔离、显存隔离、算力隔离

GPU 共享/虚拟化方案: 故障隔离、显存隔离、算力隔离

Posted by 董江 on Friday, April 26, 2024

GPU 共享/虚拟化方案: 故障隔离、显存隔离、算力隔离

AI 任务一般都会用到 GPU,这类资源相对 CPU/内存 来说往往更加昂贵,目前实现混部的开源方案有很多,基本是通过内核 cgroup 特性 针对传统 CPU 任务来做,真正实现 GPU 混部的方案却很少。因此,实现支持 QoS based GPU 共享/虚拟化,即在支持 故障隔离、显存隔离、算力隔离 的同时 兼顾 GPU 应用性能,对混部来说是一种差异化竞争,意义重大。

目前业界已有的一些 GPU 共享/虚拟化方案:

这些方案架构都比较类似,往往是 scheduler extender + device plugin:

新增 GPU 资源类型scheduler维护一个新的 GPU 分配量来实现调度和分配逻辑。具体特点:

  • 软隔离方案是没有隔离,简单支持 GPU 多挂载,算力、显存等是否超限全靠用户应用自觉;
  • vcuda方案是实现了隔离,拦截 cuda API,实现隔离,但实测性能不是很好,一些推理 case 延迟较高,且需随 cuda api 更新而变动;
  • NVIDIA MPS 性能会好一些,但因为原生没有故障隔离,因此没有研究很多,根据百度文章介绍可能做了一些改造;
  • 第四种驱动层隔离 cGPU 方案,后面腾讯云也推出 qGPU 实现,这类相比之前的方案性能各方面可能会好一点,但只能在公有云上使用,无法用来提高用户自身集群的 GPU 使用率。
  • 蚂蚁深度学习共享显存,是与框架运行时,目前还不能形成标准;

以上是过去调研了解到的一些方案,若有错误之处,欢迎批评指正。

「如果这篇文章对你有用,请随意打赏」

Kubeservice博客

如果这篇文章对你有用,请随意打赏

使用微信扫描二维码完成支付