nvidia驱动xxx.run离线安装,如何配置nvidia-persistenced

官方推荐用 nvidia-persistenced 来替代单纯用 nvidia-smi -pm 1 的方法,因为它更适合 开机自动生效,管理上也更规范。


1.nvidia-smi -pm

1
2
sudo nvidia-smi -pm 1   # 开启
sudo nvidia-smi -pm 0 # 关闭
  • 作用:开启 GPU 持久模式。

  • 特点

    • 临时生效,重启后失效。
    • 适合临时手动操作。
  • 限制

    • 多 GPU 时,需要对每块 GPU 单独设置。
    • 不支持守护进程,无法自动开机生效。

2.nvidia-persistenced(推荐)

1
2
3
# 启动守护进程
sudo systemctl enable nvidia-persistenced
sudo systemctl start nvidia-persistenced
  • 作用:启动一个守护进程保持 GPU 驱动上下文,即使没有进程在使用 GPU。

  • 特点

    • 自动开机启动(通过 systemd)。
    • 适合服务器或长期运行 GPU 的场景。
    • 管理简单,只需启动一次守护进程,所有 GPU 都自动保持持久模式。
  • 额外功能

    • 支持指定运行用户(默认 nvidia-persistenced 用户)。
    • 守护进程会在系统空闲时仍保持 GPU 上下文,不释放资源。

3.xxx.run配置nvidia-persistenced

  • 驱动来源:如果你用的是 .run 安装包(NVIDIA 官方 Linux 驱动),默认不会自动创建 systemd 服务文件。
  • 旧版本驱动:某些老版本驱动没有 nvidia-persistenced.service
  • **系统没装 nvidia-persistenced**:守护进程二进制可能不存在。

3.1.确认 nvidia-persistenced 是否存在

1
2
3
which nvidia-persistenced
# 或者
ls /usr/bin/nvidia-persistenced
  • 如果存在,可以手动创建 systemd 单元文件。

3.2.手动创建 systemd 服务文件

  1. 创建服务文件 /etc/systemd/system/nvidia-persistenced.service
1
2
3
4
5
6
7
8
9
10
11
12
[Unit]
Description=NVIDIA Persistence Daemon
After=network.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
  1. 创建运行用户(如果没有):
1
sudo useradd -r -s /sbin/nologin nvidia-persistenced
  1. 重新加载 systemd:
1
2
sudo systemctl daemon-reload
sudo systemctl enable --now nvidia-persistenced

6186368241546f0bd89784ce94a00a46.png


💡 补充说明

  • 手动创建 systemd 服务是最通用方式,不依赖于发行版自带。
  • --user nvidia-persistenced 参数指定运行用户,避免守护进程用 root。

4.小结

方式 临时/永久 自动开机 多 GPU 管理 推荐场景
nvidia-smi -pm 临时 需要单独设置 临时调试、单次任务
nvidia-persistenced 永久/守护进程 自动管理 服务器、生产环境、长时间任务