📌 1. 问题描述

  • 症状:NVIDIA驱动版本 ≥ R535 时,GPU在长时间空闲后从 nvidia-smi 输出中消失,但物理连接正常。

  • 表现

    • 空闲后执行 nvidia-smi 显示 GPU 数量少于实际插入数量。

    • 重启系统可暂时恢复所有 GPU,但再次空闲后问题复现。

🔍 2. 原因分析

NVIDIA 在 R535 驱动中弃用了旧命令 nvidia-smi -pm 1,要求使用 nvidia-persistenced 守护进程。旧方法在重启或空闲后失效,无法阻止驱动卸载空闲 GPU。

确认命令:

dmesg | grep -i persistence

若出现 "Persistence mode is deprecated... please use nvidia-persistenced",则说明存在此问题。

🛠️ 3. 解决方案

启用 nvidia-persistenced 守护进程,彻底防止掉卡。

步骤1:确认驱动版本 ≥ R535
nvidia-smi

(若低于 R535 也建议按本手册操作,更健壮)

步骤2:安装 nvidia-persistenced(如未安装)
# Ubuntu/Debian
sudo apt update && sudo apt install nvidia-persistenced

# CentOS/RHEL
sudo yum install nvidia-persistenced
步骤3:创建 systemd 服务文件
sudo vim /etc/systemd/system/nvidia-persistenced.service

内容:

[Unit]
Description=NVIDIA Persistence Daemon
Wants=syslog.target

[Service]
Type=forking
ExecStart=/usr/bin/nvidia-persistenced --user nvidia-persistenced
ExecStopPost=/bin/rm -rf /var/run/nvidia-persistenced
Restart=always

[Install]
WantedBy=multi-user.target
步骤4:启用并启动服务
sudo systemctl daemon-reload
sudo systemctl enable nvidia-persistenced.service
sudo systemctl start nvidia-persistenced.service

🔍 4. 验证与排查

  • 验证持久化模式nvidia-smi -q | grep "Persistence Mode" 应显示 Enabled

  • 检查服务状态systemctl status nvidia-persistenced.service

⚠️ 5. 重要补充:已掉卡的情况能否不重启恢复?

不能,必须重启。

  • 如果 GPU 已经因空闲而被驱动卸载(即 nvidia-smi 已显示少卡),即使你此时启动 nvidia-persistenced,它也只能阻止后续再次卸载,而无法将已离线的 GPU 重新挂载

  • 唯一可靠恢复方法:重启操作系统,让驱动重新初始化所有 GPU。

✅ 6. 正确操作流程(针对你当前可能已掉卡)

  1. 先按步骤 2~4 配置好 nvidia-persistenced(如果还没配置)。

  2. 重启系统 —— 所有 GPU 将恢复正常显示。

  3. 验证持久化模式已启用(执行验证命令)。

  4. 之后即使长期空闲,也不会再掉卡,且不再需要依赖重启。

🏁 7. 总结

  • 永久解决:启用 nvidia-persistenced 并设为开机自启。

  • 已掉卡:配置后必须重启,重启一次即可。

  • 不要再用 nvidia-smi -pm 1,它在 R535+ 驱动上无效。

按照本手册执行一遍,你的问题将彻底解决。

文章作者: 楚少爱看雪
版权声明: 本站所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 楚少爱看雪
学习 Study
喜欢就支持一下吧