问题
最近在Ubuntu上使用Nvidia GPU训练模型的时候,如果机器锁屏一段时间再打开的时候鼠标非常卡顿,或者说显示界面非常卡顿,使用nvidia-smi
查看发现,训练模型的GPU没有问题,但是连接显示屏的GPU的风扇和电源报错:
解决方案
自动风扇控制
在nvidia论坛有人给出了解决方案,即问题的根源可能是风扇转速不足使GPU过热导致的。
首先开启GPU的persistent mode
,再设置风扇的功率,重启即可生效。其中150
代表的是风扇的最大功率限制,可以将其设置为最大,这样过热的时候风扇就会自动加大功率。1
2sudo nvidia-smi -pm 1
sudo nvidia-smi -pl 150
手动控制风扇转速
方法1
此外,还可以将GPU风扇的手动风速控制打开。方法为:
- 首先,使用
sudo nvidia-xconfig --enable-all-gpus
命令打开所有gpu在xserver中的设置(不使用sudo可能无权限写入新配置) - 然后修改配置文件:
sudo vim /etc/X11/xorg.conf
,在其中的Device
Section中加入Option "Coolbits" "4"
如下图所示: - 如果机器上有多块gpu,在第一步命令执行后,会在这个
xorg.conf
中出现多个Device
Section,都依次执行第三步操作
重启机器后:
- 命令行执行
nvidia-settings
,会打开设置界面,在其中的会显示所有GPU的设置选项,每个GPU控制选项下面都有一个Thermal settings
,进入后打开enable GPU Fan Setting
即可对风扇进行手动风速调整了。 - 使用命令行调整
1
2
3
4
5
6
7GPU0: 开启风扇控制,设置转速为70%
nvidia-settings -a [gpu:0]/GPUFanControlState=1
nvidia-settings -a [fan:0]/GPUTargetFanSpeed=70
GPU1: 同上,转速为80%
nvidia-settings -a [gpu:1]/GPUFanControlState=1
nvidia-settings -a [fan:1]/GPUTargetFanSpeed=80
方法2
该方法尤其针对没有显示器的服务器,首先添加源:1
sudo vim /etc/apt/sources.list
在最后添加源地址:deb http://us.archive.ubuntu.com/ubuntu trusty main universe
1 | sudo apt-get update |
然后就可以设置风扇转速了,其中-f
代表强制,-F
代表风扇转速:1
nvclock -f -F 70