⚡ GPU Virtualization & Sharing Architectures
GPU 共享与隔离方案大比拼
MIG vs MPS vs vGPU vs Time-Slicing
一张价值数十万的企业级 GPU 显卡(如 A100/H100),如果只跑一个轻量推理任务利用率只有 15%,如何安全、高效、不互相打架地分给多个用户和容器共享?
四大主流 GPU 共享方案深度解剖
从最轻量的软件协作到最硬核的硬件硅片物理切分
硬件物理级硬隔离
🧱
1. MIG (Multi-Instance GPU)
💡 核心比喻: 钢筋水泥砌实体墙!把一张 A100/H100 物理切成最多 7 张独立小显卡。
NVIDIA 在 Ampere 架构(A100/H100)引入的硬件级技术。每个 MIG 实例拥有专属的独立 SM 计算单元、独立的显存交叉开关(Crossbar)、专属显存带宽和独立故障域。一个容器里的程序崩溃或显存爆掉,其他实例 0 感知!
软件拼桌·高吞吐共用
🍽️
2. MPS (Multi-Process Service)
💡 核心比喻: 客厅同桌聚餐!把多个进程的小任务合并喂进同一个 GPU 上下文。
NVIDIA 提供的控制面服务。多个独立的 CUDA 进程通过 MPS Server 统一汇总,消除昂贵的 GPU 上下文切换(Context Switch)开销,多个小任务可以真正并发跑在同一个 GPU 的不同计算单元上,把 GPU 榨干到 100%。
虚拟化与云桌面首选
🚪
3. NVIDIA vGPU (Virtual GPU)
💡 核心比喻: 酒店式公寓防盗门!基于虚拟化 Hypervisor 的独立虚拟机显卡切分。
专门用于 VMware ESXi、KVM、OpenStack 等虚拟化平台的 GPU 虚拟化方案。通过虚拟化驱动将一张物理显卡切分为多个 vGPU 分配给不同 VM 虚拟机,支持实时热迁移(vMotion)与显存独占分配。
排队轮流·通用保底
⏱️
4. Time-Slicing (时间分片)
💡 核心比喻: 旋转木马排队!K8s 默认的 GPU 共享方式,大家轮流玩几毫秒。
Kubernetes 官方 GPU 插件最基础的共享模式。多个 Pod 申报同一张 GPU 时,驱动通过时间片轮转(Time Slicing)让不同容器轮流执行。没有任何硬件或显存层面的真正限制,完全依赖应用自觉。
📊 四大方案全维度横向技术对比表
| 方案名称 | 隔离级别 (QoS) | 显存隔离能力 | 算力并发方式 | 适用硬件范围 | 典型工业应用场景 |
|---|---|---|---|---|---|
| 🧱 MIG | ⭐⭐⭐⭐⭐ 硬件物理级 | 硬件硬切分(独占显存+带宽) | 真正硬件空间并行 | A100, H100, H200, B200 等 | 公有云多租户隔离、企业级大模型保密推理 |
| 🍽️ MPS | ⭐⭐ 弱隔离 (进程级) | 通过环境变量软限制 (Volta+) | 单上下文多进程协同并行 | 所有 NVIDIA 算力卡 | 批量小批次推理、单租户内部服务高密度压榨 |
| 🚪 vGPU | ⭐⭐⭐⭐ 强隔离 (虚拟机级) | VM 独占显存切片 | 时间分片 / 空间切分 | NVIDIA 认证数据中心卡 (需License) | VMware/OpenStack 虚拟化、云桌面、混合开发机 |
| ⏱️ Time-Slicing | ⭐ 极弱 (仅分时) | 无显存隔离(共享全部显存) | 时间轮转串行切分 | 所有显卡(包含 RTX 消费级卡) | 开发测试环境、低负载非关键容错任务 |
🎮 交互模拟器:极端场景下的四大方案表现对比
选择不同共享策略,观察当其中一个租户(租户 A)突然遭遇 “显存溢出 OOM” 或 “疯狂死循环占满算力” 时系统的表现: