GPU Virtualization & Sharing Architectures

GPU 共享与隔离方案大比拼
MIG vs MPS vs vGPU vs Time-Slicing

一张价值数十万的企业级 GPU 显卡(如 A100/H100),如果只跑一个轻量推理任务利用率只有 15%,如何安全、高效、不互相打架地分给多个用户和容器共享

💡

5岁核心顿悟:把 GPU 想象成一栋带泳池和厨房的豪华大别墅 🏡

Time-Slicing(时间分片):所有租客住同一间房,排队轮流用。张三用完 5 毫秒换李四,一旦有人霸占不走,其他人全卡死!
MPS(多进程服务):大家一起坐在客厅拼桌合租,共享同一个大厨,做饭效率极高,但有人打翻油锅(崩了)全屋人一起受难。
vGPU(虚拟化切分):通过 Hypervisor 装上了独立防盗门和水手表,适合分配给不同虚拟机的企业租户,需要商业 License。
MIG(多实例硬件物理切分):直接用钢筋水泥砌出独立的小户型套房,拥有专属的墙壁(SM算力)、电表和独立水管(显存/带宽),雷打不动绝对隔离!

四大主流 GPU 共享方案深度解剖

从最轻量的软件协作到最硬核的硬件硅片物理切分

硬件物理级硬隔离 🧱
1. MIG (Multi-Instance GPU)
💡 核心比喻: 钢筋水泥砌实体墙!把一张 A100/H100 物理切成最多 7 张独立小显卡。

NVIDIA 在 Ampere 架构(A100/H100)引入的硬件级技术。每个 MIG 实例拥有专属的独立 SM 计算单元、独立的显存交叉开关(Crossbar)、专属显存带宽和独立故障域。一个容器里的程序崩溃或显存爆掉,其他实例 0 感知!

✅ 硬件级故障与性能隔离 (QoS) ✅ 支持多租户公有云安全交付 ❌ 仅限高端卡 (A100/H100等) ❌ 切分粒度固定 (如 1g.10gb, 2g.20gb)
软件拼桌·高吞吐共用 🍽️
2. MPS (Multi-Process Service)
💡 核心比喻: 客厅同桌聚餐!把多个进程的小任务合并喂进同一个 GPU 上下文。

NVIDIA 提供的控制面服务。多个独立的 CUDA 进程通过 MPS Server 统一汇总,消除昂贵的 GPU 上下文切换(Context Switch)开销,多个小任务可以真正并发跑在同一个 GPU 的不同计算单元上,把 GPU 榨干到 100%。

✅ 极大提升微小推理任务吞吐量 ✅ 消除进程上下文切换损耗 ❌ 缺少显存硬隔离 (易OOM互相影响) ❌ 共享地址空间,一个崩全崩
虚拟化与云桌面首选 🚪
3. NVIDIA vGPU (Virtual GPU)
💡 核心比喻: 酒店式公寓防盗门!基于虚拟化 Hypervisor 的独立虚拟机显卡切分。

专门用于 VMware ESXi、KVM、OpenStack 等虚拟化平台的 GPU 虚拟化方案。通过虚拟化驱动将一张物理显卡切分为多个 vGPU 分配给不同 VM 虚拟机,支持实时热迁移(vMotion)与显存独占分配。

✅ 完美适配传统 VM 虚拟机基础设施 ✅ 支持图形渲染 (vPC) 与 AI 计算 (vCS) ❌ 商业软件昂贵 License 授权费 ⚙️ 算力通常基于时分调度
排队轮流·通用保底 ⏱️
4. Time-Slicing (时间分片)
💡 核心比喻: 旋转木马排队!K8s 默认的 GPU 共享方式,大家轮流玩几毫秒。

Kubernetes 官方 GPU 插件最基础的共享模式。多个 Pod 申报同一张 GPU 时,驱动通过时间片轮转(Time Slicing)让不同容器轮流执行。没有任何硬件或显存层面的真正限制,完全依赖应用自觉。

✅ 全系列 GPU 通用 (消费级卡也支持) ✅ 配置极其简单零门槛 ❌ 零显存限制 (极易因单个Pod爆显存崩全盘) ❌ 上下文切换延迟高,无 QoS 保证

📊 四大方案全维度横向技术对比表

方案名称 隔离级别 (QoS) 显存隔离能力 算力并发方式 适用硬件范围 典型工业应用场景
🧱 MIG ⭐⭐⭐⭐⭐ 硬件物理级 硬件硬切分(独占显存+带宽) 真正硬件空间并行 A100, H100, H200, B200 等 公有云多租户隔离、企业级大模型保密推理
🍽️ MPS ⭐⭐ 弱隔离 (进程级) 通过环境变量软限制 (Volta+) 单上下文多进程协同并行 所有 NVIDIA 算力卡 批量小批次推理、单租户内部服务高密度压榨
🚪 vGPU ⭐⭐⭐⭐ 强隔离 (虚拟机级) VM 独占显存切片 时间分片 / 空间切分 NVIDIA 认证数据中心卡 (需License) VMware/OpenStack 虚拟化、云桌面、混合开发机
⏱️ Time-Slicing ⭐ 极弱 (仅分时) 无显存隔离(共享全部显存) 时间轮转串行切分 所有显卡(包含 RTX 消费级卡) 开发测试环境、低负载非关键容错任务

🎮 交互模拟器:极端场景下的四大方案表现对比

选择不同共享策略,观察当其中一个租户(租户 A)突然遭遇 “显存溢出 OOM” 或 “疯狂死循环占满算力” 时系统的表现:

🎯

工业界架构师如何做技术选型决策?(黄金法则)

1. 如果是多租户/公有云/严格安全与 SLA 保障的 A100/H100 集群 ➔ 毫不犹豫选 MIG
2. 如果是内部单业务同一套代码,想追求极致吞吐(如千路语音/小图识别) ➔ 选 MPS(吞吐飙升 2-3 倍)。
3. 如果是传统企业私有云、重度依赖 VMware/KVM 虚拟化与 Windows 桌面 ➔ 选 vGPU
4. 如果是个人开发机、消费级显卡(RTX 4090)或边缘设备临时共享 ➔ 选 Time-Slicing / cGPU (动态拦截库)