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

您所在的位置:网站首页 显卡3G变成1G 英伟达NVIDIA服务器显卡多实例技术(MIG)

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

2024-07-13 11:07| 来源: 网络整理| 查看: 265

❤️觉得内容不错的话,欢迎点赞收藏加关注😊😊😊,后续会继续输入更多优质内容❤️ 👉有问题欢迎大家加关注私戳或者评论(包括但不限于NLP算法相关,linux学习相关,读研读博相关......)👈

博主原文链接:https://www.yourmetaverse.cn/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 如果没有开启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.com/datacenter/tesla/mig-user-guide/index.html [2] NVIDIA 多实例 GPU 用户指南 https://blog.csdn.net/wangqi4720/article/details/126358886

❤️觉得内容不错的话,欢迎点赞收藏加关注😊😊😊,后续会继续输入更多优质内容❤️ 👉有问题欢迎大家加关注私戳或者评论(包括但不限于NLP算法相关,linux学习相关,读研读博相关......)👈


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3