查看gpu使用率 nvidia_如何玩转安培架构的 MIG (多实例GPU) 及其应用案例分享

介绍 — 什么是 MIG

引言:

今年5月14日,NVIDIA 发布了最新的 GPU 架构: 安培,以及基于安培架构的最新的 GPU : A100。安培提供了许多新的特性,MIG 是其中一项非常重要的新特性。MIG的全名是 Multi-Instance GPU,它最多可以把 A100 GPU 切成七个 GPU 实例。每一个 GPU 实例都有各自的流处理器 (SMs) 和内存系统。因此,使用MIG后,每一个 GPU 实例都能够保证各个使用者的工作的时延和吞吐量是可预期的、提供服务品质,并且提高 GPU 的使用率。

d00ed02332dc925c23f8402da53a3527.png

图表1 A100 MIG 的应用

如图表 1 所示,我们最多可以将 A100 切分成 7 个实例,每一个实例可以提供给不同的使用者运行不同的程序。在使用者的程序对 GPU 的计算量要求比较少的情况下,MIG 最多能够提供高达 7 倍的吞吐量。此外,由于每一个实例都有各自的计算资源和内存资源,因此不必担心因为其中一位使用者的计算量过大或是程式运行错误而干扰到其他的使用者。

MIG 的一个重要的应用,是让提供云服务的公司能够将 GPU 切分成数个实例,并将这些实例提供给不同的承租者使用。由于不同实例之间的计算资源与内存资源都是透过硬件分离,因此能够确保资料的安全性、错误的隔离,以及提供稳定可靠的服务。

MIG v.s. MPS v.s. multi-stream

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

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

表格1:多流、MPG、MIG 的比较

a8f6b3e0fc869e7e989b56ba170f205b.png

GPU 实例与计算实例

要深入地了解 MIG 之前,需要先介绍两个 MIG 引入的重要名词与观念,GPU 实例  (GPU Instance) 和计算实例 (Compute Instance)。在这之前,我们提到的都是 GPU 实例。而在实际的使用上,GPU 实例还可以再切分成多个计算实例。同一个 GPU 实例当中的计算实例是共享内存但拥有独立的流处理器。因此若使用者有多项互相关联的工作,并且使用共享内存较为便利的话,可以选择在一个 GPU 实例当中使用多个计算实例来处理。

b3934f1f6341787e275f330e0d61e8ce.png

图表2  GPU 实例与计算实例

图表 2 展示了 GPU 实例和计算实例的区别。不同的 GPU 实例之前,他们的内存系统是分开的,以此能够保证内存的服务品质 (QoS, Quality of Service),并且避免受到其他使用者的错误干扰。而在一个 GPU 实例当中,可以有多个计算实例,例如图表 2 中最左侧的 GPU 实例包含了四个计算实例,这四个计算实例各自负责了不同的工作,但他们的内存是共用的。透过这样子的设计,MIG 提供使用者灵活的调度 GPU 的资源。

表格2:GPU 实例的设定

e3af3f5dbe95bdce3a25a8c06984ea16.png

ccf9e5ce310d12536f9391ca2086a44d.png

图表 3  GPU 实例的组合

表格 2 展示了不同大小的 GPU 实例他们具备的流处理器比例、内存比例、以及可以分配的数量。从图表 3,我们可以更清楚地看到MIG是如何对整个 GPU 去进行切割。在 A100 中,我们共有 8

  • 9
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要在 Ubuntu Linux 上使用 `nvidia-smi` 命令来查看 GPU 的使用情况,可以按照以下步骤操作: 1. 打开终端:在 Ubuntu 上打开终端,你可以使用快捷键 `Ctrl + Alt + T` 或者在应用程序菜单中找到终端程序。 2. 运行 `nvidia-smi` 命令:在终端中输入 `nvidia-smi` 并按下回车键。该命令将显示当前系统上所有 NVIDIA GPU 的详细信息。 示例输出: ``` +-----------------------------------------------------------------------------+ | NVIDIA-SMI 465.19.01 Driver Version: 465.19.01 CUDA Version: 11.3 | |-------------------------------+----------------------+----------------------+ | GPU Name Persistence-M| Bus-Id Disp.A | Volatile Uncorr. ECC | | Fan Temp Perf Pwr:Usage/Cap| Memory-Usage | GPU-Util Compute M. | | | | MIG M. | |===============================+======================+======================| | 0 GeForce GTX 1060 Off | 00000000:01:00.0 Off | N/A | | N/A 47C P0 N/A / N/A | 172MiB / 6078MiB | 0% Default | | | | N/A | +-------------------------------+----------------------+----------------------+ +-----------------------------------------------------------------------------+ | Processes: | | GPU GI CI PID Type Process name GPU Memory | | ID ID Usage | |=============================================================================| | No running processes found | +-----------------------------------------------------------------------------+ ``` 在输出中,你可以看到 GPU 的名称、温度、使用率、显存使用情况等信息。如果有正在运行的进程,它们也会被列出。 这样,在 Ubuntu Linux 上使用 `nvidia-smi` 命令可以很方便地查看 GPU 的使用情况。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值