问题描述

训练一段时间后 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

Copyright © 2088 0762网游争霸活动中心 All Rights Reserved.
友情链接