深度学习训练时GPU温度过高?几个命令,为你的GPU迅速降温

百家 作者:AI100 2017-07-12 07:03:13


图来自网络


作者 | 人工智豪(ID:Aihows)



新买回来的不带水冷公版GPU,在满负载运行的时候,温度从室温马上飙升到85度,而且模型训练不是几分钟完事,很有可能要长期保持在高温状态下运行,让如此昂贵的GPU一直发烧真是让人太心疼!




首先得到知乎上一位朋友的文章启发,文章点击这里:从零开始组装深度学习平台(GPU散热)


https://zhuanlan.zhihu.com/p/27682206


这篇文章写的是在ubuntu X server环境下,通过修改nvidia-settings来修改GPU风扇速度,因为默认的nvidia-settings设置是,即使GPU在计算的时候温度已经达到85度,风扇速度最高不会超过70%,这样就无法很好地为GPU进行散热,因此需要手动修改GPU风扇速度。



注:以下设置都是针对linux系统的GPU设置,windows的朋友请搜索相关文章。


一、如果你有显示器(X server)


可以完全按照上面提到的这篇文章来设置:从零开始组装深度学习平台(GPU散热 )


https://zhuanlan.zhihu.com/p/27682206


这里贴出关键步骤为:


1. 修改/etc/X11/xorg.cong文件

sudo nano /etc/X11/xorg.conf


2. 在Section "Device"里面加入 Option "Coolbits" "4"



3. 重启电脑sudo reboot


4. 输入:nvidia-settings -a "[gpu:0]/GPUFanControlState=1" -a "[fan:0]/GPUTargetFanSpeed=100"


这里 GPUTargetFanSpeed=100 就是风扇的速度,100就是风扇运行在100%的速度,也可以改成其它速度。注意在新的NVIDIA驱动,GPUCurrentFanSpeed 被改成了 GPUTargetFanSpeed。另外GPUFanControlState=1表示让用户可以手动调节GPU风扇速度。


感谢原文知乎作者:张三


二、如果你没有显示器


一般在ubuntu上搭建完深度学习环境后,许多朋友习惯把ubuntu的X桌面服务禁用掉,然后通过另一台windows系统的电脑通过ssh来连接GPU机器使用。这个时候X server已经被禁用掉,开机也自动启动命令行模式,上面第一种做法就不适用于这种情况了。原因是,nvidia-settings只能在X桌面环境下运行,若你想强行使用这个设置就会报错:




因此正常情况下,是不可能通过修改这个设置来改变风扇速度的。


但有没有其它方法修改呢?有!你需要骗过系统,让它你有显示器,这就是常说的headless模式。


主要的解决方法是参考了这篇文章:fan speed without X (headless) : powermizer drops card to p8


https://devtalk.nvidia.com/default/topic/831440/linux/fan-speed-without-x-headless-powermizer-drops-card-to-p8/


这篇文章提供了修改风扇速度的脚本,在ubuntu下运行脚本即可实时调节风扇速度,从而为GPU降温。


这里提供详细步骤:


1.克隆这个github仓库到本地目录/opt 


https://github.com/boris-dimitrov/set_gpu_fans_public






在这个仓库包括上图几个文件,主要起作用的是cool_gpu这个文件,我们把文件夹克隆下来之后,运行cool_gpu就可以调节风扇速度了。


2.修改文件夹名字为set-gpu-fans,因为作者疏忽,在cool_gpu代码中此文件夹被命名为“set-gpu-fans”,然而git clone下来的文件夹名字是“set_gpu_fans_public”。


sudo mv set_gpu_fans_public set-gpu-fans


3.创建一个符号链接,让系统知道这个代码在哪里:


ln -sf ~/set-gpu-fans /opt/set-gpu-fans


4.定位到set-gpu-fans文件夹,输入以下命令:


cd /opt/set-gpu-fans

sudo tcsh

./cool_gpu >& controller.log &

tail -f controller.log


这个命令是运行cool_gpu降温代码,启动后会看到这些实时变化的提示:




在开始计算测试前,我们看看目前GPU的温度:




这里用的是2卡进行计算测试,我们可以看到,2卡的Perf(性能)一项已经被调整为“P2”(其它卡仍为P8),2卡的温度为35度,而且三个风扇的速度均为55%。“P2”指的是nvidia的显卡power state,从P0到P12,最高性能状态为P0,运行计算是为P2,最低功耗(最低性能)为P12。


启动模型训练,我们可以看到程序正在不断地自动调节温度:




当运行训练模型一段时间后,最终的温度状态如下图:




风扇被全部调节到80%的速度,温度稳定在65度!对比文章开头的数据,显卡温度从84度降到65度,整整下降了20度!


三、一点要注意的


在上面第二部分的文章出来之前,网上还流传着另一篇文章,那篇可以说是最原始的版本,上面第二部分的代码正是基于该篇原始版本文章改进的,链接地址在这里:Set fan speed without an X server.


https://devtalk.nvidia.com/default/topic/789888/set-fan-speed-without-an-x-server-solved-/?offset=


但这篇文章的原始代码存在一个严重问题:虽然能够强制改变风扇速度,但GPU会被降频工作,power state会被强制降为P8,导致运算性能严重下降!


可能是那篇文章发表时间比较早,不大适用现在最新的显卡和驱动,因此才有了上面第二部分的改进版本,所以大家不要使用原始版本的代码,否则GPU会被限制性能。


原文地址

http://www.jianshu.com/u/512d6b767f3e





专属福利:中国国内级别最高、规模最大的人工智能大会——中国人工智能大会(CCAI)将于7.22-7.23在杭州举行,目前大会 8 折 专属优惠门票火热抢购中,赶快扫描下方图片中的二维码或点击【阅读原文】火速抢票吧。


关于CCAI

中国人工智能大会(CCAI),由中国人工智能学会发起,目前已成功举办两届,是中国国内级别最高、规模最大的人工智能大会。秉承前两届大会宗旨,由中国人工智能学会、阿里巴巴集团 & 蚂蚁金服主办,CSDN、中国科学院自动化研究所承办的第三届中国人工智能大会(CCAI 2017)将于 7 月 22-23 日在杭州召开。


作为中国国内高规格、规模空前的人工智能大会,本次大会由中国科学院院士、中国人工智能学会副理事长谭铁牛,阿里巴巴技术委员会主席王坚,香港科技大学计算机系主任、AAAI Fellow 杨强,蚂蚁金服副总裁、首席数据科学家漆远,南京大学教授、AAAI Fellow 周志华共同甄选出在人工智能领域本年度海内外最值得关注的学术与研发进展,汇聚了超过 40 位顶级人工智能专家,带来 9 场权威主题报告,以及“语言智能与应用论坛”、“智能金融论坛”、“人工智能科学与艺术论坛”、“人工智能青年论坛”4 大专题论坛,届时将有超过 2000 位人工智能专业人士参与。


戳原文,抢 8 折优惠门票!

关注公众号:拾黑(shiheibook)了解更多

[广告]赞助链接:

四季很好,只要有你,文娱排行榜:https://www.yaopaiming.com/
让资讯触达的更精准有趣:https://www.0xu.cn/

公众号 关注网络尖刀微信公众号
随时掌握互联网精彩
赞助链接