當前位置:
首頁 > 新聞 > 深度學習訓練時 GPU 溫度過高?輸入這幾行命令就能迅速降溫

深度學習訓練時 GPU 溫度過高?輸入這幾行命令就能迅速降溫

深度學習訓練時 GPU 溫度過高?輸入這幾行命令就能迅速降溫

雷鋒網按:本文作者胡智豪,原載於作者個人博客,雷鋒網經授權發布。

新買回來的不帶水冷公版GPU,在滿負載運行的時候,溫度從室溫馬上飆升到85度,而且模型訓練不是幾分鐘完事,很有可能要長期保持在高溫狀態下運行,讓如此昂貴的GPU一直發燒真是讓人太心疼!

深度學習訓練時 GPU 溫度過高?輸入這幾行命令就能迅速降溫

首先得到知乎上一位朋友的文章啟發:從零開始組裝深度學習平台(GPU散熱)。具體地址:

http://t.cn/RK9wyBK

這篇文章寫的是在ubuntu X server環境下,通過修改nvidia-settings來修改GPU風扇速度,因為默認的nvidia-settings設置是,即使GPU在計算的時候溫度已經達到85度,風扇速度最高不會超過70%,這樣就無法很好地為GPU進行散熱,因此需要手動修改GPU風扇速度。

注,以下設置都是針對linux系統的GPU設置,windows的朋友請搜索相關文章。

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

可以完全按照上面提到的文章《從零開始組裝深度學習平台》操作,這裡貼出關鍵步驟為:

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 : powermizer drops card to p8):

http://t.cn/RK9ASS5

這篇文章提供了修改風扇速度的腳本,在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

深度學習訓練時 GPU 溫度過高?輸入這幾行命令就能迅速降溫

在這個倉庫包括上圖幾個文件,主要起作用的是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 溫度過高?輸入這幾行命令就能迅速降溫

在開始計算測試前,我們看看目前GPU的溫度:

深度學習訓練時 GPU 溫度過高?輸入這幾行命令就能迅速降溫

這裡用的是2卡進行計算測試,我們可以看到,2卡的Perf(性能)一項已經被調整為「P2」(其它卡仍為P8),2卡的溫度為35度,而且三個風扇的速度均為55%。「P2」指的是nvidia的顯卡power state,從P0到P12,最高性能狀態為P0,運行計算是為P2,最低功耗(最低性能)為P12

啟動模型訓練,我們可以看到程序正在不斷地自動調節溫度:

深度學習訓練時 GPU 溫度過高?輸入這幾行命令就能迅速降溫

當運行訓練模型一段時間後,最終的溫度狀態如下圖:

深度學習訓練時 GPU 溫度過高?輸入這幾行命令就能迅速降溫

風扇被全部調節到80%的速度,溫度穩定在65度!對比文章開頭的數據,顯卡溫度從84度降到65度,整整下降了20度!

三、一點要注意的

在上面第二部分的文章出來之前,網上還流傳著另一篇文章,那篇可以說是最原始的版本,上面第二部分的代碼正是基於該篇原始版本文章改進的,鏈接地址在這裡(Set fan speed without an X server):

http://t.cn/RK9yQmf

但這篇文章的原始代碼存在一個嚴重問題:雖然能夠強制改變風扇速度,但GPU會被降頻工作,power state會被強制降為P8,導致運算性能嚴重下降!

可能是那篇文章發表時間比較早,不大適用現在最新的顯卡和驅動,因此才有了上面第二部分的改進版本,所以大家不要使用原始版本的代碼,否則GPU會被限制性能。

雷鋒網相關閱讀:

對話「AI 教父」黃仁勛:人工智慧開啟 GPU 計算時代

一文詳解英偉達剛發布的 Tesla V100 究竟牛在哪?

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 雷鋒網 的精彩文章:

詳細剖析:Voyage自動駕駛計程車背後的算力、動力和線控
Waymo、Uber、Embark,卡車自動駕駛的萬億市場有哪些大玩家?
DARPA 撥款 6500 萬美元用於腦機介面研發,一起來看各頂尖研究機構的腦洞
特寫:廉價的小型衛星,正在帶來新太空革命

TAG:雷鋒網 |

您可能感興趣

標籤印表機速度快 質量高 輸入便捷
加快蘋果打字輸入速度的小技巧
OPPO最不想公開的功能被發現,輸入一串代碼,充電速度翻倍!
不輸入密碼就能連上無線,這個功能隱藏太深,學會卻很容易
不停地學習和輸入才能有輸出
等不來「正在輸入」,就趕快入睡吧
這樣快速輸入性別的方法,估計你不會
逆水寒:競拍出現BUG!競拍期間不能輸入金幣,時間過了誰撿到算誰
想提升手機充電速度?其實有個隱藏功能,輸入這串代碼即可!
CPU是怎麼調節輸入電壓的?為什麼要這麼做?
谷歌手機輸入法可以離線語音識別了!模型精度遠超經典CTC
10個冷知識!鍵盤的字母排列是為了降低輸入速度?
聽力FIB手寫vs輸入哪個快?PTE高分大神的經驗了解一下
SwiftKey輸入法增加測試功能可為鍵盤加入隱身模式
從輸入法說起,談談深度學習技術與產品落地
不用輸入密碼也能鏈接WiFi,手機隱藏功能,很少人知道
手機輸入這樣一串代碼,簡單幾步,帶你進入不一樣的設置界面!
不會智能預測的斗圖神器不是好的輸入法APP
iOS 13新功能曝光:系統更流暢、夜間模式和滑行輸入法將到來
新技術可實現光束的更有效地彎曲,並為光束提供更寬輸入的角度