新買回來(lái)的不帶水冷公版GPU悯姊,在滿負(fù)載運(yùn)行的時(shí)候,溫度從室溫馬上飆升到85度贩毕,而且模型訓(xùn)練不是幾分鐘完事悯许,很有可能要長(zhǎng)期保持在高溫狀態(tài)下運(yùn)行,讓如此昂貴的GPU一直發(fā)燒真是讓人太心疼辉阶!
首先得到知乎上一位朋友的文章啟發(fā)先壕,文章點(diǎn)擊這里:從零開始組裝深度學(xué)習(xí)平臺(tái)(GPU散熱)瘩扼。這篇文章寫的是在ubuntu X server環(huán)境下,通過(guò)修改nvidia-settings
來(lái)修改GPU風(fēng)扇速度垃僚,因?yàn)槟J(rèn)的nvidia-settings設(shè)置是集绰,即使GPU在計(jì)算的時(shí)候溫度已經(jīng)達(dá)到85度,風(fēng)扇速度最高不會(huì)超過(guò)70%谆棺,這樣就無(wú)法很好地為GPU進(jìn)行散熱栽燕,因此需要手動(dòng)修改GPU風(fēng)扇速度。
注改淑,以下設(shè)置都是針對(duì)linux系統(tǒng)的GPU設(shè)置碍岔,windows的朋友請(qǐng)搜索相關(guān)文章。
一朵夏、如果你有顯示器(X server)
可以完全按照上面提到的這篇文章來(lái)設(shè)置:從零開始組裝深度學(xué)習(xí)平臺(tái)(GPU散熱)蔼啦,這里貼出關(guān)鍵步驟為:
修改/etc/X11/xorg.cong文件
sudo nano /etc/X11/xorg.conf
在Section "Device"里面加入 Option "Coolbits" "4"
Section "Device"
Identifier "Device0"
Driver "nvidia"
VendorName "NVIDIA"
Option "Coolbits" "4"
EndSection
重啟電腦
sudo reboot
輸入:
nvidia-settings -a "[gpu:0]/GPUFanControlState=1" -a "[fan:0]/GPUTargetFanSpeed=100"
這里
GPUTargetFanSpeed=100
就是風(fēng)扇的速度, 100就是風(fēng)扇運(yùn)行在100%的速度, 也可以改成其它速度. 注意在新的NVIDIA驅(qū)動(dòng),GPUCurrentFanSpeed
被改成了GPUTargetFanSpeed
. 另外GPUFanControlState=1
表示讓用戶可以手動(dòng)調(diào)節(jié)GPU風(fēng)扇速度。
感謝原文知乎作者:張三
二仰猖、如果你沒(méi)有顯示器
一般在ubuntu上搭建完深度學(xué)習(xí)環(huán)境后捏肢,許多朋友習(xí)慣把ubuntu的X桌面服務(wù)禁用掉,然后通過(guò)另一臺(tái)windows系統(tǒng)的電腦通過(guò)ssh來(lái)連接GPU機(jī)器使用饥侵。這個(gè)時(shí)候X server已經(jīng)被禁用掉猛计,開機(jī)也自動(dòng)啟動(dòng)命令行模式,上面第一種做法就不適用于這種情況了爆捞。原因是奉瘤,nvidia-settings只能在X桌面環(huán)境下運(yùn)行,若你想強(qiáng)行使用這個(gè)設(shè)置就會(huì)報(bào)錯(cuò):
因此正常情況下煮甥,是不可能通過(guò)修改這個(gè)設(shè)置來(lái)改變風(fēng)扇速度的盗温。
但有沒(méi)有其它方法修改呢?有成肘!你需要騙過(guò)系統(tǒng)卖局,讓它你有顯示器,這就是常說(shuō)的headless模式双霍。
主要的解決方法是參考了這篇文章:fan speed without X (headless) : powermizer drops card to p8砚偶,這篇文章提供了修改風(fēng)扇速度的腳本,在ubuntu下運(yùn)行腳本即可實(shí)時(shí)調(diào)節(jié)風(fēng)扇速度洒闸,從而為GPU降溫染坯。
這里提供詳細(xì)步驟:
1.克隆這個(gè)github倉(cāng)庫(kù)到本地目錄/opt
:https://github.com/boris-dimitrov/set_gpu_fans_public
cd /opt
git clone https://github.com/boris-dimitrov/set_gpu_fans_public
在這個(gè)倉(cāng)庫(kù)包括上圖幾個(gè)文件,主要起作用的是cool_gpu
這個(gè)文件丘逸,我們把文件夾克隆下來(lái)之后单鹿,運(yùn)行cool_gpu就可以調(diào)節(jié)風(fēng)扇速度了。
2.修改文件夾名字為set-gpu-fans
深纲,因?yàn)樽髡呤韬鲋俪?code>cool_gpu代碼中此文件夾被命名為“set-gpu-fans”劲妙,然而git clone下來(lái)的文件夾名字是“set_gpu_fans_public”。
sudo mv set_gpu_fans_public set-gpu-fans
3.創(chuàng)建一個(gè)符號(hào)鏈接儒喊,讓系統(tǒng)知道這個(gè)代碼在哪里:
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
這個(gè)命令是運(yùn)行cool_gpu降溫代碼,啟動(dòng)后會(huì)看到這些實(shí)時(shí)變化的提示:
在開始計(jì)算測(cè)試前怀愧,我們看看目前GPU的溫度:
這里用的是2卡進(jìn)行計(jì)算測(cè)試唆途,我們可以看到,2卡的Perf(性能)一項(xiàng)已經(jīng)被調(diào)整為“P2”(其它卡仍為P8)掸驱,2卡的溫度為35度肛搬,而且三個(gè)風(fēng)扇的速度均為55%。“P2”指的是nvidia的顯卡power state毕贼,從P0到P12温赔,最高性能狀態(tài)為P0,運(yùn)行計(jì)算是為P2鬼癣,最低功耗(最低性能)為P12陶贼。
啟動(dòng)模型訓(xùn)練,我們可以看到程序正在不斷地自動(dòng)調(diào)節(jié)溫度:
當(dāng)運(yùn)行訓(xùn)練模型一段時(shí)間后待秃,最終的溫度狀態(tài)如下圖:
風(fēng)扇被全部調(diào)節(jié)到80%的速度拜秧,溫度穩(wěn)定在65度!對(duì)比文章開頭的數(shù)據(jù)章郁,顯卡溫度從84度降到65度枉氮,整整下降了20度!
三暖庄、一點(diǎn)要注意的
在上面第二部分的文章出來(lái)之前聊替,網(wǎng)上還流傳著另一篇文章,那篇可以說(shuō)是最原始的版本培廓,上面第二部分的代碼正是基于該篇原始版本文章改進(jìn)的惹悄,鏈接地址在這里:Set fan speed without an X server.
但這篇文章的原始代碼存在一個(gè)嚴(yán)重問(wèn)題:雖然能夠強(qiáng)制改變風(fēng)扇速度,但GPU會(huì)被降頻工作肩钠,power state會(huì)被強(qiáng)制降為P8泣港,導(dǎo)致運(yùn)算性能嚴(yán)重下降!
可能是那篇文章發(fā)表時(shí)間比較早价匠,不大適用現(xiàn)在最新的顯卡和驅(qū)動(dòng)当纱,因此才有了上面第二部分的改進(jìn)版本,所以大家不要使用原始版本的代碼霞怀,否則GPU會(huì)被限制性能惫东。