admin管理员组

文章数量:1530031


❤️觉得内容不错的话,欢迎点赞收藏加关注😊😊😊,后续会继续输入更多优质内容❤️

👉有问题欢迎大家加关注私戳或者评论(包括但不限于NLP算法相关,linux学习相关,读研读博相关......)👈

博主原文链接:https://www.yourmetaverse/deep_learning/194/

英伟达服务器显卡多实例技术(MIG)

1. 多实例技术介绍

多实例技术有点类似于vGPU,只不过vGPU是在虚拟机层次的显卡虚拟化,如果物理服务器安装的是vmware或者KVM这种虚拟机系统,那么如果想给每个虚拟机分配一张显卡显然显卡不够分,一般6U的服务器也就8张显卡,所以需要用到vGPU技术,将显卡虚拟化成多张显卡,而这玩意跟虚拟机系统一样是需要收费的,按照显卡数量进行授权收费。而如果物理服务器安装的不是虚拟机操作系统,例如安装的是Ubuntu系统,然后采用docker等容器技术,也是需要对显卡进行多实例划分的,提高显卡的利用率。这个时候NVIDIA Multi-Instance GPU(MIG)技术就非常有用了。

英伟达的多实例技术是一种可以将单个物理GPU资源分割成多个虚拟GPU资源的技术。这种技术可以帮助多个用户或应用程序共享一块物理GPU而不会相互干扰,从而提高了GPU资源的利用率。

具体来说,英伟达的多实例技术通过将单个物理GPU分割成多个虚拟GPU,每个虚拟GPU都可以被不同的用户或应用程序访问。每个虚拟GPU都有自己的显存和计算资源,并且可以独立地运行不同的计算任务。这意味着多个用户或应用程序可以同时使用同一块物理GPU,而不会相互干扰或影响对方的计算任务。

多实例技术还可以为不同的虚拟GPU配置不同的计算能力,以满足不同用户或应用程序的需求。例如,一些虚拟GPU可以被配置为支持图形渲染,而其他虚拟GPU可以被配置为支持深度学习计算等高性能计算任务。

总的来说,英伟达的多实例技术可以帮助用户更好地管理和利用GPU资源,并且可以提高GPU资源的利用率和灵活性。

2. 多实例技术支持的显卡列表

多实例技术支持的基本上都是一些服务器显卡,而是还是最新的旗舰机服务器显卡,如A100,H100等,如下所示。

3. MIG使用指南

3.1 开启MIG技术

一般情况下,MIG技术默认是关闭的,需要手动开启,可以使用nvidia-smi命令查看是否开启MIG,nvidia-smi命令的一些详细内容可以查看之前的博客:nvidia-smi命令详解和一些高阶技巧介绍

上图是没有开启MIG的显示结果,下图是开启了MIG的显示结果。

如果没有开启MIG,可以使用如下命令开启MIG:

sudo nvidia-smi -i [显卡ID] -mig 1
这个是针对某个显卡开启MIG的命令,例如我想开启第一张显卡的MIG,则可以使用以下命令
sudo nvidia-smi -i 0 -mig 1

在这个特定的DGX例子中,必须停止nvsm和dcgm服务,在所需的GPU上启用MIG模式,然后恢复监控服务,如下所示:

sudo systemctl stop nvsm
sudo systemctl stop dcgm

使用nvidia-smi mig -lgipp可以查看开启MIG的显卡可以划分成那几个实力

用户名@主机名:~$ sudo nvidia-smi mig -lgipp
GPU  6 Profile ID 19 Placements: {0,1,2,3,4,5,6}:1
GPU  6 Profile ID 14 Placements: {0,2,4}:2
GPU  6 Profile ID  9 Placements: {0,4}:4
GPU  6 Profile ID  5 Placement : {0}:4
GPU  6 Profile ID  0 Placement : {0}:8
GPU  7 Profile ID 19 Placements: {0,1,2,3,4,5,6}:1
GPU  7 Profile ID 14 Placements: {0,2,4}:2
GPU  7 Profile ID  9 Placements: {0,4}:4
GPU  7 Profile ID  5 Placement : {0}:4
GPU  7 Profile ID  0 Placement : {0}:8

使用nvidia-smi mig -lgip可以查看每个开启MIG的设备支持的实例类型,一共有1g.5gb(7个4.75GB显卡)、2g.10gb(3个9.75GB显卡)、3g.20gb(2个19.62GB显卡)、4g.20gb(1个19.62B显卡)、7g.40gb(1个39.50GB显卡)五种类型。

用户名@主机名:~$ sudo nvidia-smi mig -lgip
+--------------------------------------------------------------------------+
| GPU instance profiles:                                                   |
| GPU   Name          ID    Instances   Memory     P2P    SM    DEC   ENC  |
|                           Free/Total   GiB              CE    JPEG  OFA  |
|==========================================================================|
|   6  MIG 1g.5gb     19     0/7        4.75       No     14     0     0   |
|                                                          1     0     0   |
+--------------------------------------------------------------------------+
|   6  MIG 2g.10gb    14     0/3        9.75       No     28     1     0   |
|                                                          2     0     0   |
+--------------------------------------------------------------------------+
|   6  MIG 3g.20gb     9     0/2        19.62      No     42     2     0   |
|                                                          3     0     0   |
+--------------------------------------------------------------------------+
|   6  MIG 4g.20gb     5     0/1        19.62      No     56     2     0   |
|                                                          4     0     0   |
+--------------------------------------------------------------------------+
|   6  MIG 7g.40gb     0     0/1        39.50      No     98     5     0   |
|                                                          7     1     1   |
+--------------------------------------------------------------------------+
|   7  MIG 1g.5gb     19     0/7        4.75       No     14     0     0   |
|                                                          1     0     0   |
+--------------------------------------------------------------------------+
|   7  MIG 2g.10gb    14     0/3        9.75       No     28     1     0   |
|                                                          2     0     0   |
+--------------------------------------------------------------------------+
|   7  MIG 3g.20gb     9     0/2        19.62      No     42     2     0   |
|                                                          3     0     0   |
+--------------------------------------------------------------------------+
|   7  MIG 4g.20gb     5     0/1        19.62      No     56     2     0   |
|                                                          4     0     0   |
+--------------------------------------------------------------------------+
|   7  MIG 7g.40gb     0     0/1        39.50      No     98     5     0   |
|                                                          7     1     1   |
+--------------------------------------------------------------------------+

3.2 创建MIG实例

使用如下命令创建MIG实例

sudo nvidia-smi mig -cgi [ID],[实例名称] -C
[ID]指的是sudo nvidia-smi mig -lgip中ID那一列的值
[实例名称]指的是Name那一列的内容,注意ID需要与[实例名称]对应
例如,使用以下命令,创建ID为9的那个实例,实例名称为3g.20gb,即创建了两个显存为19.62GB的显卡实例。
sudo nvidia-smi mig -cgi 9,3g.20gb -C

3.3 在docker中使用MIG实例

结合Docker使用英伟达NVIDIA服务器显卡多实例技术可以让GPU资源的管理更加灵活和高效。下面是结合Docker使用英伟达NVIDIA服务器显卡多实例技术的一般步骤:

安装NVIDIA Docker
要使用英伟达NVIDIA服务器显卡多实例技术,需要先安装NVIDIA Docker。NVIDIA Docker是一个基于Docker的扩展,可以支持GPU加速的容器化应用程序。在安装NVIDIA Docker之前,请确保已经安装了Docker引擎。

启用多实例功能
要启用多实例功能,需要在NVIDIA Docker中指定相应的选项。在Dockerfile中添加以下语句以启用多实例功能:

ENV NVIDIA_VISIBLE_DEVICES all
ENV NVIDIA_DRIVER_CAPABILITIES compute,utility,mig

这将告诉NVIDIA Docker在运行容器时启用所有可见的GPU设备,并支持计算、实用程序和多实例功能。

配置虚拟GPU
在Dockerfile中可以使用nvidia-smi mig命令配置虚拟GPU。例如,以下命令可以为虚拟GPU 1配置12GB显存和一个10Gbps的带宽限制:

RUN nvidia-smi mig -cgi 1 -C -m -g 0 -a 2 -b 10Gbps

这将在构建容器镜像时配置虚拟GPU实例。

分配虚拟GPU
要将虚拟GPU分配给Docker容器,可以在docker run命令中使用nvidia-smi mig命令为每个虚拟GPU分配一个唯一的ID,并指定哪些进程可以访问该虚拟GPU。例如,以下命令将虚拟GPU 1分配给运行在容器内的进程:

docker run --gpus 1 -it nvidia/cuda /bin/bash
nvidia-smi mig -cgi 1 -i 0 -a $$

这将在容器内分配虚拟GPU 1,并将其分配给容器中的当前进程。

总的来说,结合Docker使用英伟达NVIDIA服务器显卡多实例技术可以方便地管理GPU资源,并使GPU资源的使用更加高效和灵活。可以通过在Dockerfile中配置虚拟GPU实例来管理虚拟GPU,并使用docker run命令将虚拟GPU分配给不同的容器和进程。

参考文献

[1] NVIDIA Multi-Instance GPU User Guide https://docs.nvidia/datacenter/tesla/mig-user-guide/index.html
[2] NVIDIA 多实例 GPU 用户指南 https://blog.csdn/wangqi4720/article/details/126358886


❤️觉得内容不错的话,欢迎点赞收藏加关注😊😊😊,后续会继续输入更多优质内容❤️

👉有问题欢迎大家加关注私戳或者评论(包括但不限于NLP算法相关,linux学习相关,读研读博相关......)👈

本文标签: 英伟显卡实例服务器技术