关于nvidia:NVIDIA安培架构下MIG技术分析

4次阅读

共计 2691 个字符,预计需要花费 7 分钟才能阅读完成。

作者:天翼云 高鹏军
关键词: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 上同时运行,但它们彼此互相独立、隔离。

正文完
 0