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.40gb4g.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 适合更灵活的虚拟化桌面和轻量计算场景。