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

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

首先得到知乎上一位朋友的文章启发,文章点击这里:从零开始组装深度学习平台(GPU散热)(https://zhuanlan.zhihu.com/p/27682206utm_medium=social&utm_source=wechat_session)。

这篇文章写的是在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?utm_medium=social&utm_source=wechat_session),这里贴出关键步骤为:

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

sudo nano /etc/X11/xorg.conf

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

Section "Device" Identifier "Device0" Driver "nvidia" VendorName "NVIDIA" Option "Coolbits" "4" EndSection

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

cd /opt git clone 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会被限制性能。

原文发布于微信公众号 - 人工智能LeadAI(atleadai)

原文发表时间:2017-09-17

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏小白课代表

一款小巧的去水印神器——Inpaint

1735
来自专栏BestSDK

麻省理工推出CodeCarbonCopy,完美解决跨平台代码移植问题

麻省理工学院(MIT)的科学家们已开发出了一款名为CodeCarbonCopy(CCC)的新工具,其中一名开发成员Stelios Sidiroglou-Dous...

2935
来自专栏科研利器

如何下载文献全文&快速找到文献DOI号【史上最强总结】

之前,本公众号推送过一个免费秒下学术文献的神器 SciHub Desktop,只需要将文献的 DOI 号输入进去再点击按钮就可以立马获取 PDF 全文,这款软件...

5.1K14
来自专栏工科狗和生物喵

《实时软件控制设计》MATLAB-PIL测试报告基于Qemu Cortex-M 3的环境

正文之前 首先,跟助教说声抱歉,我们组因为一些因素没有按时完成PIL的测试,还要申请延期。另外也感谢助教的催促,让我们能够在今天下午就完成PIL测试,也算是为本...

3558
来自专栏技术翻译

两种截然不同的部署ML模型方式

这不仅仅是在构建产品,在这种情况下,部署是必要的 - 如果您要为管理生成报告,它也适用。十年前,高管不会质疑假设并将自己的数字插入Excel表格以查看发生了哪些...

722
来自专栏恰同学骚年

操作系统核心原理-6.外存管理(上)磁盘基础

  计算机是处理数据的机器,而数据就需要有地方存放。在计算机中,可供数据存放的地方并不太多,除了内存之外,最主要的存储数据的媒介就是磁盘。对于大多数计算机领域的...

1131
来自专栏腾讯AI实验室的专栏

国际顶级期刊 Nature 发表腾讯 AI Lab 等医疗合作研究成果

感谢阅读腾讯AI Lab文章,我们将分享一篇发表在国际顶级刊物上借助AI方法研究心脏疾病的论文。

1461
来自专栏Python中文社区

利用docker部署深度学习模型的一个最佳实践

讲道理,docker是天然的微服务,确实是能敏捷高效的解决深度学习这一块的几个痛点。

1921
来自专栏腾讯移动品质中心TMQ的专栏

测试建模 :从尔康的鼻孔说开来,重要的用例写三遍

看完本文你会了解以下内容 1. 什么是SUT模型 2. 测试建模在工作中究竟是怎样一个过程 3. 从业务流程到测试用例我们忽略了什么 4. 测试建模会有哪些产出...

1835
来自专栏AI科技大本营的专栏

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

图来自网络 作者 | 人工智豪(ID:Aihows) 新买回来的不带水冷公版GPU,在满负载运行的时候,温度从室温马上飙升到85度,而且模型训练不是几分钟完事,...

4639

扫码关注云+社区