A100的MIG多实例技术是什么?一张卡怎么拆分使用?
MIG(Multi-Instance GPU)是 NVIDIA 从 Ampere 架构(A100)开始引入的硬件级 GPU 分区技术,可将一张 A100 最多划分为 7 个独立实例,每个实例拥有隔离的计算核心、显存和缓存,互不干扰——适合多租户推理共享、开发测试和资源利用率提升场景。
一、MIG是什么
MIG(Multi-Instance GPU)是 NVIDIA 在 Ampere 架构上引入的硬件级 GPU 分区技术。与软件虚拟化(如 vGPU)不同,MIG 在芯片层面将 GPU 的计算核心(SM)、显存控制器、L2 缓存和 DMA 引擎进行空间隔离,每个 MIG 实例拥有独立的硬件资源路径,互不干扰。
简单说:MIG 把一张 GPU 物理切成多张"小卡",每张小卡都能独立运行 CUDA 任务,就像在用不同的 GPU 一样。
MIG 的核心价值在于提升 GPU 利用率。在推理场景中,单张 A100 的算力往往远超单个模型的推理需求;通过 MIG 分区,可以让多个模型共享一张卡,同时提供更强的资源隔离和更可预期的性能表现。
二、哪些GPU支持MIG
MIG 是 Ampere 架构及以后产品才支持的功能。以下 GPU 支持 MIG(来源:NVIDIA MIG 用户指南):
| GPU | 架构 | 显存 | 最大实例数 |
|---|---|---|---|
| A100 SXM4 (40GB) | Ampere GA100 | 40GB | 7 |
| A100 SXM4 (80GB) | Ampere GA100 | 80GB | 7 |
| A100 PCIe (40GB) | Ampere GA100 | 40GB | 7 |
| A100 PCIe (80GB) | Ampere GA100 | 80GB | 7 |
| A30 | Ampere GA100 | 24GB | 4 |
| H100 SXM5 (80GB) | Hopper GH100 | 80GB | 7 |
| H100 PCIe (80GB) | Hopper GH100 | 80GB | 7 |
| H20 | Hopper GH100 | 96GB | 7 |
| H200 SXM5 (141GB) | Hopper GH100 | 141GB | 7 |
| H200 NVL (141GB) | Hopper GH100 | 141GB | 7 |
另有 GB200/B200/RTX PRO 6000 等 Blackwell 新品也支持 MIG,具体实例数因型号而异。
V100 不支持 MIG。V100 基于 Volta 架构,早于 Ampere,不具备 MIG 所需的硬件分区能力。
三、A100的MIG Profile怎么选
MIG 通过"Profile"来定义每个实例的资源分配。Profile 名称的格式为 Ng.Mgb,其中 N 表示占用的 GPU 切片数(SM 和计算引擎),M 表示分配的显存大小。
###A100 80GB 的 MIG Profile
| Profile | 显存 | SM 切片 | 实例可创建数 |
|---|---|---|---|
| 1g.10gb | 10GB | 1/7 | 最多 7 个 |
| 1g.20gb | 20GB | 1/7 | 最多 4 个 |
| 2g.20gb | 20GB | 2/7 | 最多 3 个 |
| 3g.40gb | 40GB | 3/7 | 最多 2 个 |
| 4g.40gb | 40GB | 4/7 | 最多 1 个 |
| 7g.80gb | 80GB | 7/7(全部) | 1 个 |
###A100 40GB 的 MIG Profile
| Profile | 显存 | SM 切片 | 实例可创建数 |
|---|---|---|---|
| 1g.5gb | 5GB | 1/7 | 最多 7 个 |
| 1g.10gb | 10GB | 1/7 | 最多 4 个 |
| 2g.10gb | 10GB | 2/7 | 最多 3 个 |
| 3g.20gb | 20GB | 3/7 | 最多 2 个 |
| 4g.20gb | 20GB | 4/7 | 最多 1 个 |
| 7g.40gb | 40GB | 7/7(全部) | 1 个 |
以上 Profile 数据来自 NVIDIA MIG 用户指南。需要注意的是,不同 Profile 不能随意混用——创建实例时会占用对应的 SM 切片和显存分区,已占用的资源不能再分配给其他实例。具体的可创建实例数还受驱动版本和已分配实例的影响。
怎么选 Profile
- 推理共享场景:如果单个模型的显存需求在 10GB 以内,用
1g.10gb(80GB 卡)或1g.5gb(40GB 卡)可以最大化实例数量,一张卡服务 7 个推理实例。 - 中等负载场景:如果模型需要 20GB 显存,用
2g.20gb创建 3 个实例,每个实例有更多计算资源。 - 大模型场景:如果模型接近 40GB,用
3g.40gb或4g.40gb,实例数少但每个实例算力更强。 - 独占场景:
7g.80gb等于不分区,整张卡作为一个实例使用。
四、MIG实例隔离了什么
每个 MIG 实例获得的是硬件级隔离,具体包括:
- 计算核心(SM):每个实例分配独立的 SM 切片,计算互不干扰。
- 显存:每个实例分配独立的显存分区,地址空间隔离,不存在跨实例访问。
- L2 缓存:每个实例有独立的 L2 缓存分区,避免缓存污染。
- 显存控制器:每个实例通过独立的显存控制器路径访问 HBM,保证带宽 QoS。
- DMA 引擎:每个实例有独立的拷贝引擎,数据传输互不阻塞。
这种隔离级别意味着:一个实例上的高负载任务通常不会直接争抢另一个实例分配到的 GPU 片上资源,但整机层面的 CPU、内存、网络和存储仍可能影响整体时延表现。
五、怎么配置MIG
MIG 的管理主要通过 nvidia-smi 命令行工具完成。以下是基本操作流程:
1. 启用 MIG 模式:
nvidia-smi -i [GPU编号] -mig 1
启用 MIG 模式需要 GPU 重置,且设置在重启后保持有效。
2. 查看可用的 GPU 实例 Profile:
nvidia-smi mig -lgip
3. 创建 GPU 实例和计算实例:
nvidia-smi mig -cgi [Profile编号] -C
-cgi 创建 GPU 实例(GI),-C 同时创建计算实例(CI)。
4. 查看当前 MIG 实例状态:
nvidia-smi mig -lgi # 列出 GPU 实例
nvidia-smi mig -lci # 列出计算实例
5. 销毁实例:
nvidia-smi mig -dci # 删除计算实例
nvidia-smi mig -dgi # 删除 GPU 实例
6. 关闭 MIG 模式:
nvidia-smi -i [GPU编号] -mig 0
在容器化环境中,还需要配合 NVIDIA Container Toolkit 和 Kubernetes Device Plugin 使用,将 MIG 实例映射到容器内。
六、MIG有什么限制
MIG 的硬件隔离带来了几个需要注意的限制:
不支持 NVLink:MIG 实例无法使用 NVLink 互联。如果任务需要多卡通信(如分布式训练),不应使用 MIG。MIG 适合单卡内的推理共享,不适合多卡协同场景。
不支持 NCCL:NCCL(NVIDIA Collective Communications Library)在 MIG 模式下不可用,这意味着基于 NCCL 的分布式训练框架无法在 MIG 实例上运行。
跨实例 P2P 受限:从驱动 R570 开始,同一 GPU 上的 MIG 实例之间支持 P2P 通信;但跨 GPU 的 MIG 实例之间,以及 MIG 实例与非 MIG GPU 之间,不支持 P2P。
不支持图形 API:MIG 实例不支持 OpenGL、Vulkan 等图形 API,仅用于计算工作负载。
实例配置可能碎片化:创建和销毁实例时,如果组合不当可能导致资源碎片化,无法创建新的实例。建议在规划 MIG 分区时就确定好 Profile 组合,减少频繁变更。
MIG 模式切换需重置:启用或关闭 MIG 模式需要 GPU 重置,不能在运行中的实例上动态切换。
七、MIG适合什么场景
推理共享:多个推理模型共享一张 A100,每个模型分配独立的 MIG 实例。例如,用 7 个 1g.10gb 实例同时承载 7 个相互隔离的推理服务或任务。
多租户环境:在云平台或共享集群中,不同用户分配不同的 MIG 实例,实现硬件级隔离和 QoS 保障。
开发与测试:开发人员可以分配小型 MIG 实例进行代码调试和功能测试,不需要占用整张 GPU。
CI/CD 流水线:在 GPU CI/CD 场景中,多个测试任务可以并行运行在不同的 MIG 实例上,提高流水线吞吐。
不适合的场景:需要多卡 NVLink 通信的分布式训练、需要 NCCL 集合通信的任务、需要整卡算力的大模型训练——这些场景不应使用 MIG。
八、在立方云上怎么用
立方云当前提供A100相关裸金属资源,用户可在对应实例上自行配置 MIG 模式和 Profile;如果需要 MIG 分区用于多模型推理共享或开发测试,可按本文方法在 A100 实例上配置。具体规格、计费方式和可用库存以控制台展示为准。
本文首发于立方云技术博客。立方云是网鼎科技旗下专注 GPU 算力租赁的边缘算力服务平台,提供裸金属与容器实例服务。如需了解当前可用 GPU 规格与计费方式,可前往 lifangyun.com 查看。
九、常见问题
1. A100最多能分几个MIG实例?
最多 7 个。使用 1g.10gb(80GB 卡)或 1g.5gb(40GB 卡)Profile 时,可以创建最多 7 个实例。但实际可创建数量还取决于已分配的实例和驱动版本。
2. MIG实例之间会互相影响吗?
不会。MIG 是硬件级隔离,每个实例有独立的 SM、显存、L2 缓存和 DMA 引擎。一个实例上的高负载任务不会影响另一个实例的性能和延迟。
3. MIG实例能用NVLink吗?
不能。MIG 实例无法使用 NVLink 互联。MIG 适合单卡内的推理共享和多租户隔离,不适合需要多卡通信的分布式训练场景。NCCL 在 MIG 模式下也不可用。
4. V100支持MIG吗?
不支持。MIG 是 Ampere 架构(A100)及以后产品才支持的功能。V100 基于 Volta 架构,不具备 MIG 所需的硬件分区能力。
5. MIG和vGPU有什么区别?
MIG 是硬件级空间分区,每个实例获得独立的物理资源(SM、显存、缓存),隔离性强但灵活性有限(实例大小由 Profile 固定)。vGPU 是软件级虚拟化,支持时间分片;在 A100 及以上可叠加 MIG 实现空间隔离,即多个 vGPU 分别运行在不同的 MIG 实例上,兼顾隔离性和灵活性。总体而言,MIG 适合对隔离性和 QoS 要求高的多租户推理场景,vGPU 适合更灵活的虚拟化桌面和轻量计算场景。