深度學習訓練時 GPU 溫度過高?幾行命令就可迅速降溫!
為了拉近和大家的距離
每篇文章的文末都有一個小話題
歡迎大家參與討論
有任何想說的都可以在評論區交流~
AI 研習社按:本文作者胡智豪,原載於作者個人博客,AI 研習社經授權發布。
新買回來的不帶水冷公版GPU,在滿負載運行的時候,溫度從室溫馬上飆升到85度,而且模型訓練不是幾分鐘完事,很有可能要長期保持在高溫狀態下運行,讓如此昂貴的GPU一直發燒真是讓人太心疼!
首先得到知乎上一位朋友的文章啟發:從零開始組裝深度學習平台(GPU散熱)。具體地址:
這篇文章寫的是在ubuntu X server環境下,通過修改nvidia-settings來修改GPU風扇速度,因為默認的nvidia-settings設置是,即使GPU在計算的時候溫度已經達到85度,風扇速度最高不會超過70%,這樣就無法很好地為GPU進行散熱,因此需要手動修改GPU風扇速度。
注,以下設置都是針對linux系統的GPU設置,windows的朋友請搜索相關文章。
一、如果你有顯示器(X server)
可以完全按照上面提到的文章《從零開始組裝深度學習平台》操作,這裡貼出關鍵步驟為:
2. 在Section "Device"裡面加入 Option "Coolbits" "4"
Section "Device"
Identifier "Device0"
Driver "nvidia"
VendorName "NVIDIA"
Option "Coolbits" "4"
EndSection
3. 重啟電腦sudo reboot
4. 輸入:
這裡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 : powermizer drops card to p8):
這篇文章提供了修改風扇速度的腳本,在ubuntu下運行腳本即可實時調節風扇速度,從而為GPU降溫。
這裡提供詳細步驟:
1. 克隆這個github倉庫到本地目錄/opt:
cd /opt
在這個倉庫包括上圖幾個文件,主要起作用的是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. 創建一個符號鏈接,讓系統知道這個代碼在哪裡:
4.定位到set-gpu-fans文件夾,輸入以下命令:
sudo tcsh
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):
但這篇文章的原始代碼存在一個嚴重問題:雖然能夠強制改變風扇速度,但GPU會被降頻工作,power state會被強制降為P8,導致運算性能嚴重下降!
可能是那篇文章發表時間比較早,不大適用現在最新的顯卡和驅動,因此才有了上面第二部分的改進版本,所以大家不要使用原始版本的代碼,否則GPU會被限制性能。
---------------------------
來聊聊吧
你是怎麼讓你的GPU迅速降溫的?
歡迎在評論區分享
點擊展開全文
※我是這樣學習 GAN 的——開發者自述
※一文詳解卷積神經網路的演變歷程!
※深度學習自動編碼器還能用於數據生成?這篇文章告訴你答案
※只要130 行代碼即可生成二維樣本,心動了嗎?
TAG:唯物 |
※了解一下超量恢復,以及訓練過度的問題,高速提升訓練效率
※這9個力量訓練,將會升級你的跑步!提高跑步速度,降低傷害風險
※如何1行BN「批規範化」提高訓練速度準確率,有深度學習5層網路比較源碼
※高強度間歇訓練VS穩態式訓練究竟哪種效果最好?
※高效高強度循環燃脂訓練,了解一下!
※為什麼深度學習對訓練樣本的數量要求較高?
※想讓跑步速度提高?其實不用進行艱苦訓練
※想要提升游泳速度?上肢力量訓練不能少!
※最近狀態不佳是訓練不足,還是訓練過度?
※模型不收斂,訓練速度慢,如何才能改善 GAN 的性能?
※想適應更大強度?學會提高這個數值,讓你訓練質量變高
※什麼是比間歇更可怕的高強度訓練?
※跑步 | 高強度大運動量訓練期間 怎麼吃才能保證成績又減脂?
※一套超強度燃脂訓練計劃,幫減肥效果緩慢的你提升效率!
※跑步時,如何避免訓練過度?
※HIIT高強度間歇訓練
※清華&斯坦福提出深度梯度壓縮DGC,大幅降低分散式訓練網路帶寬需求
※訓練時很快就累了?別著急,教你如何熱身,讓你提高訓練效率
※遇到了訓練瓶頸期就這麼練!快速讓你的卧推成績暴漲!
※加速訓練,量子計算將為AI帶來更多改變