显卡掉卡问题解决
问题描述
训练一段时间后 GPU has fallen off the bus.
解决方案
系统日志太长难以翻阅,主要从频率、功率、驱动程序加载状态入手解决。
检查频率
使用如下命令检查频率限制。
(base) ps@ps-Z690-UD-DDR4-V2:~/logs$ nvidia-smi -q -d clock
输出形如
==============NVSMI LOG==============
Timestamp : Sat Jul 5 18:09:13 2025
Driver Version : 570.144
CUDA Version : 12.8
Attached GPUs : 1
GPU 00000000:01:00.0
Clocks
Graphics : 1695 MHz
SM : 1695 MHz
Memory : 9751 MHz
Video : 1545 MHz
Max Clocks
Graphics : 2100 MHz
SM : 2100 MHz
Memory : 9751 MHz
Video : 1950 MHz
检查功率
打印显卡温度可以通过如下 log 命令:
ps@ps-Z690-UD-DDR4-V2:~/logs$ nvidia-smi -q -l 2 -d TEMPERATURE -f nvidia_temperature_log.txt
也可直接使用 nvidia-smi 查看。
经检查,显卡工作温度在 85℃ 左右,一旦浮动到 90℃ 就可能出发过热降频。通过锁功率控制显卡温度。
(base) ps@ps-Z690-UD-DDR4-V2:~/logs$ nvidia-smi -q | grep "Power"
输出形如
GPU Power Readings
Average Power Draw : 260.83 W
Instantaneous Power Draw : 311.81 W
Current Power Limit : 350.00 W
Requested Power Limit : 350.00 W
Default Power Limit : 350.00 W
Min Power Limit : 100.00 W
Max Power Limit : 350.00 W
经检查,这台机器上的 GPU1 在同功率下温度稍高。因此为两张显卡设置不同功率限制。
ps@ps-Z690-UD-DDR4-V2:~/logs$ sudo nvidia-smi -pl 300
ps@ps-Z690-UD-DDR4-V2:~/logs$ sudo nvidia-smi -i 1 -pl 225
输出形如
Power limit for GPU 00000000:01:00.0 was set to 300.00 W from 350.00 W.
Power limit for GPU 00000000:05:00.0 was set to 225.00 W from 300.00 W.
All done.
设置功率限制后,显卡工作温度降至 70℃ ~ 80℃ 区间,这基本是运行机器学习负载时的一般水平,是安全的。目前,机器正常运转,未出现掉卡情况。
显卡持久化
部分机器上可能出现由显卡驱动程序频繁加载卸载导致的宕机、掉卡等问题。检查本机系统日志并未发现该问题,但稳妥起见,也进行了显卡驱动持久化设置。
ps@ps-Z690-UD-DDR4-V2:~/logs$ sudo nvidia-smi -pm 1
输出形如
Enabled persistence mode via daemon for GPU 00000000:01:00.0.
Enabled persistence mode via daemon for GPU 00000000:05:00.0.
All done.
总结
推测是由过热降频引起,主要进行了功率限制后运行正常。
References
- https://blog.csdn.net/M_dmw/article/details/140819859
- https://blog.csdn.net/yu_xiao_you/article/details/130948104
- https://blog.csdn.net/u010087338/article/details/128706219
- https://blog.csdn.net/u012972390/article/details/122634600
- https://www.zhihu.com/question/560007236/answer/2719882138
- https://www.zhihu.com/question/603837213/answer/3461773587
附 | 系统日志检查
一些系统日志打印命令,打印不同优先级和时段下的系统日志输出。直接复制可用。
journalctl -p 3 > ./journalctl_p_3_0705.txt
journalctl -p 2 > ./journalctl_p_2_0705.txt
journalctl -p 1 > ./journalctl_p_1_0705.txt
journalctl --since "2025-07-05" > ./journalctl_since_0705.txt
journalctl --since "15 hour ago" --until "13 hour ago" > ./journalctl_0705_since_2am_until_4am.txt

浙公网安备 33010602011771号