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