【架构】GPU虚拟化

GPU虚拟化方法

在这里插入图片描述

远程调用API

在这里插入图片描述

在这里插入图片描述

半虚拟化和全虚拟化

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

硬件划分

在这里插入图片描述
局限:授权付费
在这里插入图片描述

    1. Hardware Partition:Ampere 架构的 A100 GPU 所支持的 MIG,即是一种 Hardware Partition。它的问题是不灵活: 只有高端 GPU 支持;只支持 CUDA 计算;A100 只支持 7 个 MIG 实例。
    1. nVidia MPS:它通过将多个进程的 CUDA Context,合并到一个 CUDA Context 中,省去了 Context Switch 的开销,也在 Context 内部实现了算力隔离。导致了额外的故障传播,在工业界和多租户场景不常使用。
    1. Time Sharing:不管是哪一代的 GPU,其 Engine 都是支持多任务调度的。一个 OS 中同时运行多个 CUDA 任务,这些任务就是在以 Time Sharing 的方式共享 GPU。鉴于 MIG 的高成本和不灵活、MPS 故障隔离方面的致命缺陷,事实上就只剩下一种可能:Time Sharing。唯一的问题是,如何在原厂不支持的情况下,利用 Time Sharing 支持好算力隔离、以保证 QoS。

挑战和方向

轻量级虚拟化

容器提供了进程级的轻量级虚拟化,不需要额外的包装库,虚拟化能接近原始性能,需要高效的调度配合使用。

可扩展性

虚拟化目的是提高资源利用率和减少使用者的开销,一个物理机器中整合大量VM可以达成目的,但是CPU和GPU大的整合能力不同,需要从GPU设备内存、GPU上下文切换频率和缓存占用等方面研究VGPU数量对性能的影响。

安全性

hypervisor提供安全隔离,防止一个VM映射到其他VM的地址空间;还有拒绝服务攻击,有文章检查可疑VM并kill来解决,这会导致部分正常VM服务暂停;为了避免GPU重置,需要细粒度的访问控制机制,有方法使用远程API调用,vCUDA,VOCL等,但没有实现隔离,存在安全问题。

参考

[1] https://www.zhihu.com/zvideo/1359813304349667328
[2] https://dl.acm.org/doi/pdf/10.1145/3068281

  • 3
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值