查看GPU運行情況(nvidia-smi )和指定GUP訓練/推理模型(CUDA_VISIBLE_DEVICES使用)


  在深度學習模型訓練或者推理的時候我們常常會需要使用到GPU加速,而在服務器上會存在多塊GPU,並且可能會有很多人在使用這些GPU,因此如何設置程序在指定的GPU上訓練模型/推理,下面介紹我們如何在python程序中指定GPU運行。

1、查看服務器顯卡運行狀況

  在Linux服務器上我們可以使用以下命令行來查看,顯卡運行情況(假設已經安裝完cuda等對應驅動,並可以使用)

nvidia-smi           # 查看GPU運行情況 watch -n 10 nvidia-smi   # 每10s刷新一次GPU運行情況

  下面根據我現在這台電腦顯示的內容來進行解釋相關的返回結果。

   下面給大家講解一下這些布局:

第一個長方形:顯示的是所有顯卡的運行情況各參數代表的含義是

第一列:GPU:表示顯卡的編號,從0開始。

    Fan:N/A 是風扇轉速,從 0 到 100% 之間變動,這個速度是計算機期望的風扇轉速。

第二列:Name:顯卡的名稱。

    Temp:是溫度,單位攝氏度。

第三列:Perf:是性能狀態,從 P0 到 P12,P0 表示最大性能,P12 表示狀態最小性能。

第四列:Persistence-M:是持續模式的狀態,持續模式雖然耗能大,但是在新的 GPU 應用啟動時,花費的時間更少,這里顯示的是 off 的狀態。Pwr:是能耗。

第五列:Bus-Id: 是涉及 GPU 總線的東西(不懂)

第六列:Disp.A : Display Active,表示 GPU 的顯示是否初始化

     Memory Usage: 是顯存使用率,已經使用/顯存大小

第七列:GPU-Util:GPU 利用率

第八列:Volatile Uncorr. ECC:不太懂

    Compute M. :不懂

    MIG M.:不懂

注意到一欄中,一些地方會分成上下兩個來表示不同的顯卡信息,例如上圖對應的顯卡信息就是:只有一塊顯卡,編號是0,風扇轉速34%,顯卡名稱是:GeForce RTX 208... ,溫度為:42C,性能模式:P8,持續模式:off,能耗:35w,Bus-Id為:00000000:02:00.0,Disp.A開關是:on,顯存使用情況:462MB/總量11018MB,GPU利用率:2%,后面的對我來說不太重要也就沒有了解了。。。。

  以上是第一個長方形中反應的信息,如果有多塊顯卡,那么就會如下圖一樣(我截取的參考網站中的一張圖),就可以看到有多塊GPU的情況被反映出來了。

  

第二個長方形:顯示的是每個進程的使用率

GPU:該進程使用的是那一塊GUP編號

PID:該進程的PID ,可以使用 kill -9 [PID]的方式殺死該進程(常用於退出高占GUP的程序)

Type:表示支持圖形(C)還是計算(G)

Process name:進程的名字,一些可以找到其路徑

GPU Memory Usage:該進程的顯存使用情況

2、os.environ來設置CUDA_VISIBLE_DEVICES

  os是python中非常常用的系統包,而os.environ則是設置查看系統環境變量的模塊,我們可以通過這個模塊把CUDA_VISIBLE_DEVICES的設置寫入到環境變量中,這樣在執行這個程序的時候就可以指定GPU運行了。

import os os.environ["CUDA_VISIBLE_DEVICES"] = "0,1"     ## 僅使用device0和 device1 os.environ["CUDA_VISIBLE_DEVICES"] = 2,0,3     ## 僅使用device2, device0和device3

  這里我們在使用的時候,提示一下注意順序,以最后一行代碼為例,在這個程序里會將gpu[0]對應真實的顯卡2,gpu[1]對應真實的顯卡0,gpu[3]對應真實的顯卡3。

 

 

 

 

參考網站:

https://blog.csdn.net/Alger_magic/article/details/98851950


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM