G-Safe: Safe GPU Sharing in Multi-Tenant Environments

2024年01月17日
  • 简介
    现代GPU应用程序(如机器学习框架)只能部分利用强大的GPU,导致云环境下GPU利用率不高。跨多个用户的多个应用程序共享GPU可以提高资源利用率,从而提高成本、能源和功率效率。但是,GPU共享会产生内存安全问题,因为内核必须共享单个GPU地址空间(GPU上下文)。以前的GPU内存保护方法的部署受限,因为它们需要专门的硬件扩展或访问源代码。这在被机器学习框架广泛使用的GPU加速库中通常是不可用的。在本文中,我们提出了G-Safe,一种基于PTX级别的GPU边界检查方法,用于限制每个应用程序的GPU内核保持在分配给它们的内存分区内。G-Safe依赖于三个机制:(1)它将公共GPU地址空间划分为不同应用程序的单独分区。(2)它拦截并检查数据传输,对错误操作进行栅栏处理。(3)它在PTX级别(在封闭的GPU库中可用)检测所有GPU内核,将所有内核内存访问限制在应用程序内存边界之内。我们将G-Safe实现为外部动态链接库,可在应用程序启动时预加载。G-Safe的方法对应用程序透明,并且可以支持实际的复杂框架,如Caffe和PyTorch,这些框架发出数十亿个GPU内核。我们的评估表明,对于这样的框架,G-Safe与本机(未受保护)相比的开销在4%-12%之间,平均为9%。
  • 图表
  • 解决问题
    解决GPU共享中的内存安全问题,提高云环境下GPU资源利用率
  • 关键思路
    通过将GPU地址空间划分为不同应用程序的独立分区,拦截和检查数据传输,以及在PTX级别上对所有GPU内核进行检测和仪器化,实现GPU内存保护。
  • 其它亮点
    G-Safe是一个外部动态链接库,可以在应用程序启动时预加载,透明地支持实际的复杂框架,如Caffe和PyTorch。在这些框架中,G-Safe与未受保护的原生GPU相比的开销在4%-12%之间,平均为9%。
  • 相关研究
    与本文相关的研究包括:使用硬件扩展或访问源代码的GPU内存保护方法,以及其他基于软件的GPU内存保护方法。
PDF
原文
点赞 收藏 评论 分享到Link

沙发等你来抢

去评论