GPU虚拟化技术-MIG

一、什么是MIG技术

  MIG全称为NVIDIA Multi-Instance GPU,是NVIDIA推出的一种GPU虚拟化技术,允许将一块物理GPU分割为多个独立的GPU实例,每个实例均可被分配给不同的虚拟机、容器或用户使用。该技术可以更加有效地利用GPU资源,提升GPU利用率,提高GPU的共享性和多租户支持。

  MIG技术需要硬件和软件的支持,包括支持MIG技术的GPU和对应的驱动程序。

  MIG技术成为数据中心和云计算环境中更好地管理GPU资源的有力工具,有助于提高GPU的利用率,降低成本,并更好地满足不同应用程序和用户的需求。

二、MIG工作原理

  MIG通过虚拟地将单个物理GPU划分为更小的独立的实例,GPU的资源(包括CUDA内核和内存)被分配到不同的实例,这些实例彼此隔离,在一个实例上运行的任务不会干扰其他实例。多个应用程序或用户可以在同一个GPU上并发运行。

  MIG支持GPU资源的动态分配,根据工作负载动态调整实例的大小,有助于有效地利用资源。整个过程通过软件进行管理,为管理员提供了对实例配置和资源分配的控制,这种方法增强了在单个GPU上处理不同工作负载的灵活性、可扩展性和资源利用率。

三、MIG关键技术特点

1、资源划分

  MIG 允许将一块物理 GPU 分割成多个 GPU 实例,每个实例具有自己的 GPU 核心、GPU 内存、NVLink 带宽等资源。这样可以更好地控制和划分 GPU 资源。

2、多租户支持

  MIG 技术可以用于虚拟化 GPU,以便不同用户或应用程序可以共享同一块物理 GPU 而不会相互干扰。

3、动态资源调整

  管理员可以根据工作负载的需求动态地重新配置 MIG 实例的资源,从而实现更好的资源利用和性能。

4、容错性

  MIG 技术支持 GPU 实例的隔离,这意味着一个 GPU 实例中的问题不会影响到其他实例,从而提高了系统的容错性。

5、部署灵活性

  MIG 技术可以用于云计算、虚拟化环境、容器化应用程序等多种情境,为不同的部署需求提供了灵活性。

四、MIG支持条件

  并非所有GPU都支持MIG技术,需要通过官方渠道获取支持的GPU型号以及配套的GPU驱动程序。

五、MIG配置和使用

1、安装NVIDIA工具包

sudo apt-get install nvidia-utils

2、验证驱动程序

nvidia-smi

3、配置(nvidia-smi结果中包含了GPU ID)

sudo nvidia-smi -i <GPU_ID> --mig on

4、验证MIG配置(需要GPU ID和实例ID进行下一步工作)

nvidia-smi mig -lgip

验证成功后即可开始创建虚拟GPU

5、创建GPU实例

sudo nvidia-smi -i <GPU_ID> --mig <INSTANCE_COUNT>
-i <GPU_ID>:指定要使用的GPU设备。将<GPU_ID>替换为需要配置的GPU的实际ID。

-mig <INSTANCE_COUNT>:用于配置mig (Multi-Instance GPU)。将<INSTANCE_COUNT>替换为希望在指定GPU上创建的所需GPU实例数。每个实例都有自己的一组资源,包括内存和计算能力。

比如我们下面的示例:在GPU ID=0上创建3个实例

sudo nvidia-smi -i 0 --mig 3
更改实例的资源分配(工作负载),主要目标是为特定的MIG实例调整资源分配

sudo nvidia-smi -i <GPU_ID> -gi <INSTANCE_ID> -rg <WORKLOAD_PERCENT>
-i <GPU_ID>:指定执行该操作的GPU。例如,-i 0表示第一个GPU。

-gi <INSTANCE_ID>:在指定GPU内执行操作的MIG实例。例如,-gi 1表示GPU上的第二个MIG实例。

-rg <WORKLOAD_PERCENT>:分配给指定MIG实例的GPU资源的百分比。将<WORKLOAD_PERCENT>替换为所需的百分比。例如-rg 70表示将70%的GPU资源分配给指定的MIG实例。

在GPU_ID = 0和MIG Instance=1上设置占GPU总资源70%的工作负载

sudo nvidia-smi -i 0 -gi 1 -rg 70

 

posted @ 2024-08-05 21:36  北高峰的风  阅读(147)  评论(0)    收藏  举报