GPU之nvidia-smi命令詳解

1、nvidia-smi介紹

nvidia-sim簡(jiǎn)稱NVSMI,提供監(jiān)控GPU使用情況和更改GPU狀態(tài)的功能,是一個(gè)跨平臺(tái)工具,支持所有標(biāo)準(zhǔn)的NVIDIA驅(qū)動(dòng)程序支持的Linux和WindowsServer 2008 R2 開(kāi)始的64位系統(tǒng)。這個(gè)工具是N卡驅(qū)動(dòng)附帶的,只要裝好驅(qū)動(dòng),就會(huì)有這個(gè)命令

2、nvidia-smi常用命令介紹

1)顯示GPU當(dāng)前的狀態(tài):nvidia-smi

image

表格參數(shù)詳解:

  • GPU:本機(jī)中的GPU編號(hào)(有多塊顯卡的時(shí)候,從0開(kāi)始編號(hào))圖上GPU的編號(hào)是:0

  • Fan:風(fēng)扇轉(zhuǎn)速(0%-100%),N/A表示沒(méi)有風(fēng)扇

  • Name:GPU類型,圖上GPU的類型是:Tesla T4

  • Temp:GPU的溫度(GPU溫度過(guò)高會(huì)導(dǎo)致GPU的頻率下降)

  • Perf:GPU的性能狀態(tài),從P0(最大性能)到P12(最小性能),圖上是:P0

  • Persistence-M:持續(xù)模式的狀態(tài),持續(xù)模式雖然耗能大,但是在新的GPU應(yīng)用啟動(dòng)時(shí)花費(fèi)的時(shí)間更少,圖上顯示的是:off

  • Pwr:Usager/Cap:能耗表示,Usage:用了多少,Cap總共多少

  • Bus-Id:GPU總線相關(guān)顯示,domain:bus:device.function

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

  • Memory-Usage:顯存使用率

  • Volatile GPU-Util:GPU使用率

  • Uncorr. ECC:關(guān)于ECC的東西,是否開(kāi)啟錯(cuò)誤檢查和糾正技術(shù),0/disabled,1/enabled

  • Compute M:計(jì)算模式,0/DEFAULT,1/EXCLUSIVE_PROCESS,2/PROHIBITED

  • Processes:顯示每個(gè)進(jìn)程占用的顯存使用率、進(jìn)程號(hào)、占用的哪個(gè)GPU

2)隔幾秒刷新一下顯存狀態(tài):nvidia-smi -l 秒數(shù)

隔兩秒刷新一下GPU的狀態(tài):nvidia-smi -l 2

image

3) 將監(jiān)控結(jié)果寫(xiě)入文件,并且指定寫(xiě)入文件的監(jiān)控字段

nvidia-smi -l 1 --format=csv --filename=report.csv --query-gpu=timestamp,name,index,utilization.gpu,memory.total,memory.used,power.draw

image
  • -l:隔多久記錄一次,命令中寫(xiě)的是1

  • --format:結(jié)果記錄文件格式是csv

  • --filename: 結(jié)果記錄文件的名字

  • --query-gpu:記錄哪些數(shù)據(jù)到csv文件

  • timestamp:時(shí)間戳

  • memory.total:顯存大小

  • memory.total:顯存使用了多少

  • utilization.gpu:GPU使用率

  • power.draw:顯存功耗,對(duì)應(yīng)Pwr:Usage


上面是顯存監(jiān)控中常用的幾個(gè)命令,如果還有什么參數(shù)想了解,可以通過(guò):

nvidia-smi -h 命令查看

如果想調(diào)整結(jié)果記錄文件的字段,可以通過(guò)下面的命令查看對(duì)應(yīng)的字段:

nvidia-smi --help-query-gpu

3 簡(jiǎn)易測(cè)試腳本

nvidia-smi命令會(huì)實(shí)時(shí)記錄gpu的情況,如果想讓命令停止下來(lái),需要手動(dòng)執(zhí)行ctrl-c,或者kill掉進(jìn)程,為了便于使用,這里編寫(xiě)了一個(gè)shell腳本,輸入:記錄文件名、執(zhí)行時(shí)間,執(zhí)行命令即可

將下面的腳本復(fù)制到文本,然后保存,chmod 755 XXX.sh 修改腳本執(zhí)行權(quán)限,執(zhí)行即可

image
#!/bin/bash** 

# nvidia-smi執(zhí)行時(shí)間函數(shù)
function  timeout()

{

    timeStart=`date +%s`

    timeEnd=`date +%s`

#echo "starttime is  $timeStart"

#echo "endtiem is $timeEnd"

   i=$(($timeEnd - $timeStart))

  timeout=$1

  echo "timeout is :$timeout"

while ([ $i -ne $timeout ])

    do

       timeEnd=`date +%s`

       i=$(($timeEnd - $timeStart))

  done

}

nvidia-smi -l 1 --format=csv --filename=$1 --query-gpu=timestamp,name,index,utilization.gpu,memory.total,memory.used,power.draw &

echo "shell  PID: $$"

echo "nvidia-smi  PID: $!"

id=$!

echo $id

timeout $2

echo $id

kill -9 "$id"
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

友情鏈接更多精彩內(nèi)容