最近工作室新增 RTX5500,初衷就是想用 MIG 把单卡拆成几个独立实例,分给不同设计师同时跑 SDXL、视频预览任务,避免一人占满整张卡其他人卡死。 本来以为跟着官方文档敲几条命令就能搞定,结果配置完 MIG 实例之后怪事不断: 有的实例 Pytorch 识别正常,但是加载大模型直接报 CUDA error;有的实例只能跑生图,跑 Luma 视频模型直接闪退;甚至出现同一个脚本,在主 GPU 上能跑,切到 MIG 子实例就 OOM。
网上关于 RTX5500 MIG 的教程大多只写怎么创建实例,很少讲这些隐性坑,我把踩过的问题和排查顺序整理出来,避免大家重复浪费时间。
先简单回顾:我一开始的操作(标准但不完整)
很多教程都是这一套,我最开始也是这么操作:
bash
# 开启MIG模式
sudo nvidia-smi -mig 1
# 重启
sudo reboot
# 创建MIG实例,24G版本5500一般切4个6G实例
sudo nvidia-smi mig -cgi 19,19,19,19 -C
# 查看实例
nvidia-smi
执行完看 nvidia-smi,4 个实例都正常显示,nvidia-smi -L也能看到 4 个独立 GPU UUID。 当时以为大功告成,直接给小伙伴分配 UUID 去跑模型,然后问题就来了。
坑 1:MIG 实例不支持部分高显存模型的张量并行
现象:SDXL 基础版本勉强能加载,带 LoRA、ControlNet 一起上就报错;视频模型直接初始化失败,报错信息很模糊,不是常规 OOM。 原因:MIG 切分之后,每个实例是硬件隔离的资源组,显存、算力单元被物理划分,不是简单的软件显存限制。 类型 19 的实例单实例只有 6G,很多人忽略一件事:模型标注显存占用 10G,不代表运行时峰值只有 10G,CUDA 上下文、KV 缓存、临时张量还会额外占用空间。
重点提醒:RTX5500 的 MIG 配置方案不是随便切 4 份。 如果团队要跑视频生成、大尺寸生图,不建议一刀切 4 个 19 实例。可以选择 2 个 12G 实例,留给每个实例足够的峰值余量。 我最开始就是贪多,想多开几个实例,结果每个实例都 "看上去能用,重载就崩"。
修复方案:删掉原有实例,重新规划配置
bash
# 删除全部MIG实例
sudo nvidia-smi mig -dci
# 创建2个12G实例
sudo nvidia-smi mig -cgi 14,14 -C
调整之后,跑带 ControlNet 的 SDXL 稳定很多,视频预览任务也能正常加载。
坑 2:容器部署时,MIG UUID 传递错误,容器内识别不到子卡
现象:宿主机 nvidia-smi 能看到 MIG 实例,但是 docker 容器启动之后,只能看到整张卡,或者随机拿到实例,无法固定分配。 排查:用--gpus参数的时候,很多人只写--gpus all,MIG 场景下不能这么写,必须指定 MIG 的 UUID。 ✅ 正确写法示例:
bash
docker run --rm --gpus "mig-xxxxxxxxxxxx" pytorch/pytorch:2.5.1-cuda12.4-cudnn9-runtime
另外一个细节:nvidia-container-toolkit 版本过低,对新版 Enterprise 驱动下的 MIG 支持有 bug。 如果你的容器经常识别异常,优先升级 container-toolkit,而不是反复重建 MIG 实例。
坑 3:开启 ECC 之后,MIG 可用显存进一步缩水
这个是之前选型的时候没算仔细的。 RTX5500 开启 ECC,本身会预留一部分显存用于校验;再叠加 MIG 切分开销,标称 6G 的实例,实际可用显存会再少几百 MB。 之前我在开启 ECC 的前提下,给 6G 实例跑刚好卡 6G 的模型,总是莫名其妙 OOM,关掉 ECC 就能跑。 取舍建议:
- 跑对外交付、长时间批量渲染、商用成片:ECC 保留,MIG 实例显存预留冗余;
- 只给设计师快速试草图、短时间测试:可以临时关闭 ECC,换取更多可用显存,但要承担隐性画面出错风险。
查看 ECC 状态命令:
css
nvidia-smi -q | grep ECC
坑 4:MIG 模式开启后,不能直接跑需要完整 GPU 的工具
现象:关闭 MIG 之前一切正常,开启 MIG 全局模式之后,部分渲染插件、CUDA 测试工具直接初始化失败。 原理:MIG 是全局模式,一旦开启 mig 1,整张卡工作在 MIG 模式,不再存在完整的原始 GPU 设备。 如果你有时候需要跑占用整张卡的大视频任务,有时候又要切分给多人,就很麻烦。 解决思路二选一:
- 两套调度方案:需要单卡全速跑大任务时,关闭 MIG(
nvidia-smi -mig 0),重启;多人协作时再打开;缺点是需要重启机器,不方便; - 多卡方案:一张 RTX5500 常开 MIG 给设计师日常小任务,另外一张卡不开启 MIG,专门跑重型视频生成任务。 我们工作室最后选了第二种,不用反复切换 MIG 重启服务器,运维省心很多。
排错流程总结(以后出问题按这个顺序查)
- 确认当前是 MIG 全局开启状态,确认实例类型、单实例显存规格;
- 核对 ECC 是否开启,估算模型峰值显存,不要只看模型标称显存;
- 宿主机先用
CUDA_VISIBLE_DEVICES=mig-UUID本地跑脚本验证,先排除宿主机层面问题; - 如果是 docker 环境,检查 nvidia-container-toolkit 版本,确认启动参数指定正确 MIG UUID;
- 检查驱动分支:MIG 必须用 NVIDIA Enterprise 驱动,Studio 驱动对 MIG 支持不全。
最后的一点感想
MIG 这个功能,对小工作室算力共享确实很香,但是它不是 "凭空多出几张显卡"。 它是资源划分,有对应的代价:实例规格限制、显存开销、模式切换成本。很多教程只展示它便利的一面,很少提限制。 如果你的团队大部分任务都是重型 AI 视频生成,其实 MIG 收益有限;只有大量轻量生图、预览、并行小任务的时候,RTX5500 的 MIG 价值才能发挥出来。
大家在用 RTX5500 或者 A 系列专业卡开 MIG 的时候,有没有碰到过其他奇怪报错?欢迎评论区一起交流。