nvidia-smi查看GPU的使用信息並分析

登入服務器後,輸入命令(注意中間無空格):

nvidia-smi

或者可以使用命令(可以自動實時刷新GPU的使用情況):

nvidia-smi -l

如果要週期性地輸出顯卡的使用情況,可以用watch指令實現(命令行參數-n,後邊跟的是執行命令的週期,以s爲單位。所以下面的命令表示,每10s刷新一下顯示):

watch -n 10 nvidia-smi

上圖顯示的顯卡信息,第一行是版本信息,第二行是標題欄,第三行是具體的顯卡信息。如果有多個顯卡,就會有多行對應標題欄的信息。例如我上面顯示了共0~4號,共5個卡。

  • GPU:顯卡編號,從0開始。
  • Fan:風扇轉速,在0~100%之間變動。這個速度是計算機期望的風扇轉速,實際情況下如果風扇堵轉,可能就不會顯示具體轉速值。有的設備不會返回轉速,因爲它不依賴風扇冷卻,而是通過其他外設保持低溫,比如我們實驗室的服務器是常年放在空掉房間裏面的。
  • Name:顯卡名,以上都是Tesla。
  • Temp:顯卡內部的溫度,以上分別是54、49、46、50、39攝氏度。
  • Perf:性能狀態,從P0到P12,P0性能最大,P12最小 。
  • Persistence-M:持續模式的狀態開關,持續模式雖然耗能大,但是在新的GPU應用啓動時,花費的時間更少。以上都是Off的狀態。
  • Pwr:能耗表示。
  • Bus-Id:涉及GPU總線的相關信息。
  • Disp.A:是Display Active的意思,表示GPU的顯示是否初始化。
  • Memory-Usage:顯存的使用率
  • GPU-Util:GPU的利用率
  • Compute M.:計算模式。
  • 下面的Process顯示每塊GPU上每個進程所使用的顯存情況。

顯卡佔用和GPU佔用是兩個不一樣的東西,顯卡是由GPU和顯卡等組成的,顯卡和GPU的關係有點類似於內存和CPU的關係,兩個指標的佔用率不一定是互相對應的。例如跑tensorflow代碼的時候,可能顯存佔得多,GPU佔得少。

 

我使用該命令,主要是看 Memory-Usage 信息,避免使用了其他夥伴已經佔用的顯卡,然後在代碼中就可以指定空閒的GPU。例如上圖服務器顯示前4個卡都在用,我就在我的tensorflow代碼中 指定使用第5個卡好了。

import os
os.environ["CUDA_VISIBLE_DEVICES"] = '4'  # 指定使用第5塊GPU

 

補充

查看內存使用情況:

free -m

查看CPU使用情況:

top

 

參考:https://blog.csdn.net/Cloudox_/article/details/78651637

發佈了52 篇原創文章 · 獲贊 110 · 訪問量 25萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章