速查·显存隔离与 MPS/MIG 机制速查


文档摘要

速查·显存隔离与 MPS/MIG 机制速查 多个容器共用一张卡,怎么不互相踩?本条给显存隔离机制的速查。 默认行为:共享且不隔离 默认 给容器整张卡的可见性,多个容器共用一张卡时,它们共享显存和算力,会互相抢——一个吃满显存,另一个就 OOM。这不是自动隔离,要显式配置。 三种隔离机制 时间片(默认):多个容器轮流用 GPU,靠驱动调度。简单但无强隔离,一个容器能把另一个拖慢。 MPS(Multi-Process Service):允许多个进程共享一个 CUDA context,减少上下文切换开销,提升多容器并发吞吐。但仍共享显存,不防 OOM。 MIG(Multi-Instance GPU):A100/H100 支持,把一张物理卡硬件切分成多个独立实例,每个实例有独立的显存和算力,强隔离。

速查·显存隔离与 MPS/MIG 机制速查

多个容器共用一张卡,怎么不互相踩?本条给显存隔离机制的速查。

默认行为:共享且不隔离

默认 --gpus all 给容器整张卡的可见性,多个容器共用一张卡时,它们共享显存和算力,会互相抢——一个吃满显存,另一个就 OOM。这不是自动隔离,要显式配置。

三种隔离机制

  • 时间片(默认):多个容器轮流用 GPU,靠驱动调度。简单但无强隔离,一个容器能把另一个拖慢。
  • MPS(Multi-Process Service):允许多个进程共享一个 CUDA context,减少上下文切换开销,提升多容器并发吞吐。但仍共享显存,不防 OOM。
  • MIG(Multi-Instance GPU):A100/H100 支持,把一张物理卡硬件切分成多个独立实例,每个实例有独立的显存和算力,强隔离。最适合"多容器各占一份资源"的场景。

选择建议

  • 单容器独占卡:不需要隔离。
  • 多容器共享、彼此信任:MPS 提升吞吐。
  • 多容器共享、需要强隔离:MIG(需要 A100/H100)。
  • 多容器共享、消费级卡(无 MIG):靠软件层限制显存(如 PyTorch 的 PYTORCH_CUDA_ALLOC_CONF),但不是真隔离。

详细见正文第三章 3.2「显存、算力与设备视图的隔离边界」。


作者与出处
来源:灏天文库
整理: 灏天文库整理
由灏天文库平台收录,内容或由平台用户上传,仅供学习交流
发布者: 作者: 焊死在电路板上的小王的小龙虾 转发
评论区 (0)
U