NVIDIA安培架构下MIG技术分析

天翼云开发者社区
• 阅读 427

关键词: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) 稳定可靠,从而优化利用率,让每位用户都能享用加速计算资源。 NVIDIA安培架构下MIG技术分析

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

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

表一 NVIDIA安培架构下MIG技术分析

借助 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。 表二 NVIDIA安培架构下MIG技术分析

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的使用率上有很大的进步。 表三 NVIDIA安培架构下MIG技术分析

当在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 上同时运行,但它们彼此相互独立、隔离。

点赞
收藏
评论区
推荐文章
Stella981 Stella981
3年前
Nvidia GPU如何在Kubernetes 里工作
本文介绍NvidiaGPU设备如何在Kubernetes中管理调度。整个工作流程分为以下两个方面:如何在容器中使用GPUKubernetes如何调度GPU如何在容器中使用GPU想要在容器中的应用可以操作GPU,需要实两个目标1.容器中可以查看GPU设备2.容器中运行的应用,可以通过Nvidi
Stella981 Stella981
3年前
Android Studio速度慢(如何加速)?
我最近从Eclipse升级到AndroidStudio,但我并不喜欢这种体验。我将它们与具有16GB内存的Windows764位旗舰版和运行NVidiaGeforce780的Inteli74770以及最新的NVidia驱动程序进行比较,如果有关系,我将运行最新的JDK和最新的AndroidStudio。Andro
Stella981 Stella981
3年前
Kubernetes初学者实操教程:五步轻松调试K8s服务
下周二晚上8点,为你全面解读Istio最新发布的两个新版本!包括Istio架构演化、新架构解读以及新特性的实战demo噢!点击【阅读原文】或访问以下链接即可预约报名!http://zmz.cn/1BGJE在Kubernetes中,服务是一个核心概念。在本文中,将介绍如何调试K8S服务,这些服务是由多个Pod组成的工作负载的抽象接
Wesley13 Wesley13
3年前
Android的Framework分析
大家都知道android是基于linux的kernel上的。android可以运行在intel,高通,nvidia等硬件平台。但是涉及到一些GPU,显卡和一些设备的驱动问题,因为这些驱动都不是开源的,google位了兼容这些设备厂商的驱动源码,提出了硬件抽象层HAL的概念。HAL层对上为framework和native开发提供统一的API接口,为下层驱动的
Stella981 Stella981
3年前
Linux菜鸟一键安装 腾讯开发框架Tars的小记
序言:TarsandMSEC的区别(https://www.oschina.net/action/GoToLink?urlhttps%3A%2F%2Fgithub.com%2FTencent%2FTars%2Fissues%2F16):Tars是腾讯MIG,移动互联网事业群开源的,MSEC是腾讯SNG,社交网络事业群开源的产品。实现的
Stella981 Stella981
3年前
Android开发在路上:少去踩坑,多走捷径【转】
作者:gzjay,腾讯MIG无线产品部高级工程师最近一朋友提了几个Android问题让我帮忙写个小分享,我觉得对新人还是挺有帮助的,所以有了这个小分享。1.目前,AndroidAPP开发完成后,通常需要在哪些机型上进行测试?2.目前,开发AndroidAPP时,需要考虑的分辨率有哪些?这两个问题可以合
WeiSha100 WeiSha100
2年前
开源安培学习系统记录学时调取学习情况
源码支持二次开发,功能有点播,题库,考试,可以进行线上视频录播学习,调取学员学习情况,可以打印盖章学习证明。支持外网和局域网私有化部署,经过搭建测试功能完整好用,用来做线上的安全培训网站很不错!搭建的安培网站案例:https://www.gongjishi.com1、点播:视频播放,图文资料,课件下载,章节试学,限时免费等2、题库:章节练习,错题回顾,高频错
免费学 DOCA 软件开发入门课程 释放 DPU 潜力
继今年1月NVIDIA推出第一个自学DOCA课程之后,NVIDIA深度学习培训中心(DLI)今天又发布了第二个免费自学DOCA课程《DOCA入门:开发DPU应用工作流》。在这个4小时的入门课程中,您将了解到如何使用DOCAFlow库在NVIDIABlueFieldDPU硬件中构建管道(Pipe),涵盖了管道和管道
天翼云开发者社区
天翼云开发者社区
Lv1
天翼云是中国电信倾力打造的云服务品牌,致力于成为领先的云计算服务提供商。提供云主机、CDN、云电脑、大数据及AI等全线产品和场景化解决方案。
文章
696
粉丝
15
获赞
40