一、概述
Multi-Instance GPU(MIG) 功能将 GPU( NVIDIA Ampere 架构开始)安全地划分为多达 7 个用于运行 CUDA 应用程序的独立 GPU 实例,为多个用户提供单独的 GPU 资源,以实现最佳 GPU 利用率。 此功能对于未完全饱和的工作负载特别有利,用户通过并行运行不同的工作负载以最大限度地提高利用率。
通过MIG特性,每个实例的处理器在整个内存系统中都具有单独且隔离的路径,每个实例都独立包括on-chip crossbar ports, L2 cache banks, memory controllers, and DRAM address busses。 这确保了单个用户的工作负载以可预测的吞吐量和延迟运行,并且具有相同的 L2 缓存分配和 DRAM 带宽,即使其他任务正在破坏自己的缓存或使其 DRAM 接口饱和。MIG特性可以对可用的 GPU 计算资源(包括流式多处理器或 SM,以及copy引擎或解码器等)进行分区,以便为不同客户端(例如 VM、容器或进程)提供定义的服务质量 (QoS) 和故障隔离。MIG特性使多个 GPU 实例能够在单个物理 NVIDIA Ampere GPU 上并行运行。
MIG 支持以下部署配置:
1)裸机,包括容器,直接使用MIG特性
2)透传给虚拟机,在虚拟机中使用MIG特性
3)基于MIG特性的vGPU,可分配个虚拟机
二、特性实践
2.1 概念说明
切分模板信息
MIG管理配置流程
2.2 实验环境
操作系统:CTyunOS2 22.06.1
内核版本:kernel-4.19.90-2102.2.0.0064.ctl2.x86_64
NVIDIA驱动:Driver Version: 515.65.01
CUDA版本:cuda_11.7.0_515.43.04_linux.run
设备信息:
GPU 0: NVIDIA A100-PCIE-40GB (UUID: GPU-e58b1f71-f34f-1d4a-d77c-c215bef2f09e)
2.3 配置命令
- 查询是否开启MIG
[root@localhost ~]# nvidia-smi --query-gpu=pci.bus_id,mig.mode.current --format=csv
pci.bus_id, mig.mode.current
00000000:00:07.0, Disabled
- 开启MIG,-i指定gpu卡
[root@localhost ~]# nvidia-smi -i 0 -mig 1
Enabled MIG Mode for GPU 00000000:00:07.0
- 查询支持的GPU instance (GI)信息
[root@localhost ~]# nvidia-smi mig -lgip
- 创建GPU实例 Creating GPU Instances
[root@localhost ~]# sudo nvidia-smi mig -cgi 9,3g.20gb -C
- 查询GPU instances
[root@localhost ~]# nvidia-smi mig -lgi
- 查询compute instances
[root@localhost ~]# nvidia-smi mig -lci
- 销毁 GPU Instances
[root@localhost ~]# sudo nvidia-smi mig -dci && sudo nvidia-smi mig -dgi
三、参考链接
[1] NVIDIA Multi-Instance GPU User Guide docs.nvidia.com/datacenter/tesla/mig-user-guide/
[2] MIG-GPU简介与A100-MIG实践详解 zhuanlan.zhihu.com/p/558046644