一句话定义
MIG(Multi-Instance GPU,多实例 GPU)是数据中心级 GPU 上的一种硬件级切分能力:把一张物理显卡拆成若干块互相隔离的"小卡",每一块都有自己独占的显存、缓存和计算单元,用起来就像一张独立的小显卡。
打个比方
一张 GPU 就像一栋写字楼。过去的做法是"共享工位"——所有人轮流用同一张桌子(这叫时间分片,time-slicing),谁把东西堆满了,别人只能干等。MIG 则是把楼改造成独立公寓:水电表各算各的,隔壁装修你听不见,你把自己的屋子塞爆也不会影响别人。
关键在于,这种隔离不只是"分配时间片",而是切在硬件资源上。显存容量、显存带宽、L2 缓存、计算单元(SM)都按份切开,各自独立调度。所以一个实例被打满,另一个实例的带宽和算力基本不受牵连。代价是:切分是驱动层的整卡级配置,通常需要重置 GPU 才能改,属于运维动作,不像开关一个进程那么随意。另外也不是所有卡都支持,消费级显卡基本没有这个能力。
和相邻概念的区别
| 方式 | 隔离程度 | 尾延迟表现 | 典型用途 |
|---|---|---|---|
| 时间分片 | 基本没有隔离,共享显存 | 差,容易被邻居拖累 | 开发调试、零散小任务 |
| MPS(Multi-Process Service) | 显存共享,无故障隔离 | 一般 | 多个小进程凑一张卡提吞吐 |
| MIG | 显存、缓存、算力硬件级隔离 | 稳定、可预测 | 多租户、对 SLO 敏感的线上推理 |
| vGPU 软件虚拟化 | 偏软件层调度 | 取决于后端实现 | 云桌面、图形虚拟化 |
对从业者的实际意义
对平台和云团队来说,MIG 让"一张卡卖给多个客户"变得可管理:每个租户拿到一个实例,显存和算力天然被限额,一个客户跑飞了不会把同卡上其他人拖下水,计费和配额也可以直接按实例来算。
对做在线推理的人,最有价值的是尾延迟。在线服务真正难受的从来不是平均延迟,而是 P99——时间分片下,隔壁一跑批处理任务,你的 P99 立刻飙起来。MIG 把每个实例的性能边界基本钉死,容量规划从"玄学"变成"算数"。
它不适合的场景也要说清楚:大模型训练和微调这类吃满整卡、依赖多卡高速互联的活儿,切了反而亏——单实例显存变小,跨实例通信也不如卡内通路快。能用哪些型号、能切成几份、每份多大,各家产品线不同,具体以官方文档为准。
