写点什么

NVIDIA 安培架构下 MIG 技术分析

  • 2022 年 5 月 26 日
  • 本文字数:2364 字

    阅读完需:约 8 分钟

作者:天翼云高鹏军

关键词:NVIDIA、MIG、安培

一什么是 MIG

2020 年 5 月,NVIDIA 发布了最新的 GPU 架构: 安培,以及基于安培架构的最新的 GPU : A100。安培提供了许多新的特性,MIG 是其中一项非常重要的新特性。MIG 的全名是 Multi-Instance GPU。 NVIDIA 安培架构中的 MIG 模式可以在 A100 GPU 上并行运行七个作业。多实例 GPU (MIG) 可提升每个 NVIDIA A100 Tensor 核心 GPU 的性能和价值。MIG 可将 A100 GPU 划分为多达七个实例,每个实例均与各自的高带宽显存、缓存和计算核心完全隔离。现在,管理员可以支持从大到小的各项工作负载,为每项工作提供规模适当的 GPU,而且服务质量 (QoS) 稳定可靠,从而优化利用率,让每位用户都能享用加速计算资源。



二 MIG 技术分析

在 MIG 推出之前,我们也能够透过 CUDA MPS (Multi-Process Service) 来提高 GPU 使用率。但 MPS 的缺点在于,多个使用者会使用共同的内存,因此使用者的程序会互相影响,除了无法保证推理的速度和吞吐量之外,也有可能因为其中一位使用者的程序出错而导致其他使用者受到干扰。而 MIG 克服了 MPS 面临的问题。MIG 藉由硬件上的分离,保证了使用者的程序不会互相干扰,进而能够让程序的时延和吞吐量能符合预期。

在表格 1 当中,我们比较了多流 (multi-stream)、MPS 以及 MIG 的优缺点。其中,多流的使用限制较少,同时也很灵活,但对代码更动的需求大,并且无法避免使用者之间的互相干扰,使用者必须小心的使用以避免产生错误。MPS 则不需要更动代码即可使用,可以同时执行的程序也较 MIG 多 (48 与 7),内存的使用与分配也是自动处理的,不需要人工的介入。缺点在于,无法避免多个用户对于 GPU 资源的竞争;最后,MIG 虽然可以同时执行的程序数量最少,但和 MPS 一样不需要使用者另外更动代码,同时在安全性与可靠性上面也是三者中最佳的。这三样技术并不互相冲突,使用者可以根据使用的情境与场景选择与搭配使用。

 

表一


借助 MIG,工作可同时在不同的实例上运行,每个实例都有专用的计算、显存和显存带宽资源,从而实现可预测的性能,同时符合服务质量并尽可能提升 GPU 利用率。

在 MIG 模式下的 A100 可以运行多达 7 个不同大小的 AI 或 HPC 工作负载的任意组合。这种能力对于通常不需要现代GPU所提供的所有性能的 AI 推理工作特别有用。

例如,用户可以创建两个 MIG 实例,每个实例的内存为 20gb,三个实例的内存为 10gb,七个实例的内存为 5gb。用户创建适合其工作负载的组合。

如何计算最大可建实例的数量呢?以 A100 40GB 显存为例,A100 一张卡的 SM 单元(streaming multiprocessor)数量(类似 CPU 的核心数)为 108,每 14 个 SM 单元称作一个 Slice,每张 A100 卡有 7 个 Slice。一个 GPU 运算实例的最小粒度是 14 个 SM 单元,也就是说在分配 GPU 的 SM 单元数量时必须是 14 的整数倍。如果申请规模为 28 SM 单元数,10GB 显存的运算实例,设在单张 A100 上这样的实例个数最多为 X 个,那么必须满足 28 * X <= 108(SM 单元总数限制) 且 10 *X <= 40(GPU 显存限制),所以 X 最大为 3。

表二


MIG 隔离了 GPU 实例,所以它提供了故障隔离,一个实例中的问题不会影响在同一物理 GPU 上运行的其他实例。每个实例都提供有保证的 QoS,确保用户的工作负载获得他们期望的延迟和吞吐量。

表三比较了上一代旗舰产品 V100 与 A100 使用 7 个 MIG GPU 实例在 FasterTransformer 模型中不同 batch size 下的吞吐量与时延。我们可以看到在 batch size 为 8 的时候,A100 的吞吐量已经很接近峰值,距离峰值不到百分之十;另一方面,V100 在 batch size 为 8 的时候,吞吐量距离峰值还有百分之三十左右,在 batch size 为 32 时,吞吐量距离峰值也还有百分之十左右。这代表和上一代的 GPU 相比,MIG 在提升 GPU 的使用率上有很大的进步。

表三


当在 A100 上配置 MIG mode 的时候,需要考虑如下限制:

1)MIG 只支持 Linux 操作系统, CUDA11/ R450 or 更高版本。(推荐至少要使用过 450.80.02 或更高版本)

2)支持 bare-metal (包括容器); 支持 Linux guest 通过 hypervisor 进行 GPU pass-through 可视化;支持 vGPU 模式;

3)在 A100 上设置 MIG,需要 GPU reset 和超级用户权限(super-user privileges)。一旦 A100 设置了 MIG 后,instance 的管理就可以是动态的了(无需再进行 GPU reset).需要注意这一点是针对单个 GPU 而言,不是对单个机器而言;

4)类似于 ECC mode,MIG 设置是 persistent 的,即使 reboot 也不会影响。直到用户显式地切换。

5)在起用 MIG 之前,所有 hold driver modules handles 的进程必须被停掉。

6)切换 MIG 模式需要 CAP_SYS_ADMIN 功能。其他 MIG 管理(例如创建和销毁实例)默认需要超级用户,但可以通过在 /proc/ 中调整对 MIG 功能的权限来委托给非特权用户。

三优势

更多用户享受到 GPU 加速能力

借助 MIG 技术,用户可以在单个 A100 GPU 上获得多达原来 7 倍的 GPU 资源。MIG 为研发人员提供了更多的资源和更高的灵活性。

优化 GPU 利用率

MIG 允许用户灵活选择许多不同的实例大小,从而为每项工作负载提供适当规模的 GPU 实例,最终优化利用率并使数据中心投资充分发挥成效。

同时运行混合工作负载

凭借 MIG,能以确定性延迟和吞吐量,在单个 GPU 上同时运行推理、训练和高性能计算 (HPC) 工作负载。

编程模型没有变化

NVIDIA 通过它为其 A100 提供的软件启用 MIG。其中包括 GPU 驱动程序、NVIDIA 的 CUDA11 软件,使得每个 MIG 实例对于应用程序都像独立 GPU 一样运行,使其编程模型没有改变,对开发者友好。    提供出色的服务质量

每个 MIG 实例都有一套专用于计算、内存和缓存的硬件资源,从而能为工作负载提供稳定可靠的服务质量 (QoS) 和有效的故障隔离。这样一来,如果某个实例上运行的应用程序发生故障,并不会影响其他实例上运行的应用程序。而且,不同的实例可以运行不同类型的工作负载,包括交互式模型开发、深度学习训练、AI 推理或高性能计算应用程序等。由于这些实例并行运行,因此工作负载也在同一个物理 A100 GPU 上同时运行,但它们彼此相互独立、隔离。


发布于: 刚刚阅读数: 3
用户头像

还未添加个人签名 2022.02.22 加入

天翼云是中国电信倾力打造的云服务品牌,致力于成为领先的云计算服务提供商。提供云主机、CDN、云电脑、大数据及AI等全线产品和场景化解决方案。

评论

发布
暂无评论
NVIDIA安培架构下MIG技术分析_天翼云开发者社区_InfoQ写作社区