GPU开启驱动持久化的原因
GPU 驱动一直处于加载状态, 减少运行程序时驱动加载的延迟。不开启该模式时,在程序每次调用完 GPU 后, GPU 驱动都会被卸载,下次调用时再重新加载, 驱动频繁卸载加载, GPU 频繁被初始化,会导致 GPU 死机, CPU 访问 PCIe config registers时间过长导致 softlock, 最终造成 GPU 掉卡、温度监测异常等情况。建议打开GPU驱动内存常驻模式并配置开机自启动。
一次性开启和关闭
sudo nvidia-smi -pm 1 # 开启持久模式
sudo nvidia-smi -pm 0 # 关闭持久模式
注意:需要 root 权限。但是下次启动机器后,会默认关闭持久模式。
永久性开启
可通过设置开机启动文件的方式设置永久性开启持久模式,这样每次开机重启后,GPU驱动会一直处于开启模式。
编辑 /lib/systemd/system/nvidia-persistenced.service
sudo vim /lib/systemd/system/nvidia-persistenced.service
文件内容由两个版本,版本1:
[Unit]
Description=NVIDIA Persistence Daemon
After=syslog.target
[Service]
Type=forking
PIDFile=/var/run/nvidia-persistenced/nvidia-persistenced.pid
Restart=always
ExecStart=/usr/bin/nvidia-persistenced --verbose
ExecStopPost=/bin/rm -rf /var/run/nvidia-persistenced/*
TimeoutSec=300
[Install]
WantedBy=multi-user.target
版本2:
[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
[Install]
WantedBy=multi-user.target
启动服务:
sudo systemctl enable nvidia-persistenced
这样驱动的持久化模式就开启了。
参考链接:
https://docs.ksyun.com/documents/43249
NVIDIA GPU 開啟持久化模式 | 不務正業工程師的家
https://zhuanlan.zhihu.com/p/521581269
GPU开启持久化模式 - yuhaohao - 博客园