> 簡單查詢
nvidia-smi -L | --list-gpus
: 顯示系統(tǒng)可識別的顯卡,輸出示例:
user@host:~$ nvidia-smi -L
GPU 0: GeForce GTX TITAN X (UUID: GPU-3d8e9aef-22ea-5476-4d47-2bce745b1315)
GPU 1: GeForce GTX TITAN X (UUID: GPU-f8daa047-d2d0-57ff-875f-7d52963c1bed)
nvidia-smi -f | --filename
: 將查詢結(jié)果存入文件而不是輸出到終端<br />nvidia-smi -q | --query
: 查看GPU或Unit信息,可結(jié)合以下幾個參量同時使用達到特定目的:
-
-i | --id=
: 僅針對指定設(shè)備ID的GPU查詢瓮增,e.g.nvidia-smi -q -i 0
查看設(shè)備ID為0的GPU信息 -
-u | --unit
: 查詢Unit屬性站楚,不使用該參量默認查詢GPU屬性 -
-f | --filename=
: 將查詢結(jié)果保存到文件侈咕,屏蔽終端輸出 -
-x | --xml-format
: 生成xml格式的結(jié)果 -
-d | --display=
: 有選擇性地查詢某些字段,支持的字段包括:memory, utilization, ecc, temperature, power, clock, compute, pids, performance, supported_clocks, page_retirement, accounting, encoder stats -
-l | --loop=
: 持續(xù)查詢除非在指定秒間隔內(nèi)檢測到Ctrl+C中斷 -
-lms | --loop-ms=
:持續(xù)查詢除非在指定的毫秒間隔內(nèi)檢測到Ctrl+C中斷
> 自定義查詢
nvidia-smi --query-gpu=
: 按自定字段查詢GPU信息尝盼,支持 -i | --id=
, -f | --filename
, -l | --loop=
& -lms | --loop-ms
附加參量模蜡∧茫可通過 --format=
指定查詢信息以哪個格式輸出,支持的格式類型有:
-
csv
: comma separated values -
noheader
: skip the first line with column headers or field names -
nounits
: don't print units for numerical values
支持的GPU字段包括:
-
timestamp
: 查詢時間忍疾,以"YYYY/MM/DD HH:MM:SS.msec"格式給出 -
driver_version
: 以字符串格式給出當前安裝的Nvidia顯卡驅(qū)動版本 -
count
: 顯卡個數(shù) -
name
或gpu_name
: 官方給定的顯卡名稱 -
serial
或gpu_serial
: 產(chǎn)品序列號闯传,應(yīng)與板載序列識別號一致,全球唯一 -
uuid
或gpu_uuid
: 全球唯一設(shè)備編號卤妒,與板載識別號無關(guān) -
pci.bus_id
或gpu_bus_id
: 十六進制PCI總線編號 “domain:bus:device.function” -
pci.domain
: 十六進制PCI域(domain number) -
pci.bus
:十六進制PCI總線 (bus number) -
pci.device
: 十六進制PCI設(shè)備 (device number) -
pci.device_id
: PCI vendor device id, in hex -
pci.sub_device_id
: PCI Sub System id, in hex -
pcie.link.gen.current
: the current pcie link generation, may be reduced when the GPU is not in use -
pcie.link.gen.max
: the maxium pcie link generation possible with this GPU and system configuration -
pcie.link.width.current
: the current pcie link width, may be reduced when the gpu is not in use -
pcie.link.width.max
: the ma pcie link width possible with this GPU and system configuration -
index
: GPU索引值甥绿,其實編號為0 -
display_mode
:顯卡是否連接顯示器指示位,Enabled 表示有外接顯示設(shè)備则披,其他情況 Disabled -
display_active
: 顯示器是否經(jīng)由GPU處理顯示內(nèi)容指示位共缕,Enabled 表示GPU正負責某顯示任務(wù),Disabled表示其他情況士复。注意:即使顯卡沒有外接物理顯示設(shè)備图谷,該指示位依然可能是Enabled -
persistence_mode
: 是否出于persistence mode 指示位,Enabled 表示開啟阱洪,Disabled 表示關(guān)閉便贵。開啟該模式后顯卡驅(qū)動將常駐顯存,降低顯卡響應(yīng)延時冗荸,僅Linux平臺有效承璃。 -
accounting.mode
: 統(tǒng)計模式是否開啟標識位,Enabled 或 Disabled蚌本。開啟統(tǒng)計模式盔粹,占用顯卡進程的信息將被統(tǒng)計便于進程執(zhí)行期間查詢或進程結(jié)束后查詢。進程的總執(zhí)行時間在進程結(jié)束之前保持為0程癌,進程結(jié)束后更新為進程實際占用GPU時間舷嗡。 -
accounting.buffer_size
: 進程循環(huán)緩沖區(qū)大小,表示被統(tǒng)計進程的最大數(shù)量嵌莉。緩存區(qū)中保持著當前被統(tǒng)計的進程咬崔,緩沖區(qū)滿后新進程會覆蓋舊進程。 -
driver_mode.current
: 當前使用的驅(qū)動模式,在linux平臺上該值為 N/A垮斯。 Windows平臺支持TCC和WDDM兩種模式,可通過-dm
或-fdm
指定顯卡驅(qū)動模式只祠。TCC模式專為高性能計算優(yōu)化兜蠕,WDDM模式專為圖形應(yīng)用優(yōu)化,高性能運算不建議使用WDDM模式抛寝。 -
driver_mode.pending
: 預設(shè)驅(qū)動模式熊杨,下次設(shè)備重啟后應(yīng)用。linux平臺總是為N/A -
vbios_version
: 板載BIOS版本 -
inforom.img
或inforom.image
: Global version of the infoROM image. Image version just like VBIOS version uniquely describes the exact version of the infoROM flashed on the board in contrast to infoROM object version which is only an indicator of supported features. -
inforom.oem
: Version for the OEM configuration data. -
inforom.ecc
: Version for the ECC recording data. -
inforom.pwr
: Version for the power management data. -
gom.current
或gpu_operation_mode.current
: 當前使用GOM盗舰。GOM支持通過禁用部分顯卡特性來省電和提高吞吐量晶府,可通過--gom
進行模式切換,支持的模式包括:-
All On
:顯卡功能全開钻趋,全速運行 -
Compute
: 僅作為高性能運算川陆,不支持圖形操作 -
Low Double Precision
:僅針對不需要高帶寬、雙精度計算的圖形圖像操作
-
-
gom.pending
: 預設(shè)的GOM模式蛮位,設(shè)備下次重啟時應(yīng)用 -
fan.speed
: 該值指示風扇應(yīng)以多大功率運行并不是實際檢測量较沪,0表示不運行,100%表示全功率運行失仁。如果風扇損壞或不能控制尸曼,則實際運行功率與該值可能不匹配。 -
pstate
: 當前顯卡性能狀態(tài)等級萄焦,P0表示滿級狀態(tài)控轿,P12表示最差等級狀態(tài) -
memory.total
: 顯卡總共可用內(nèi)存 -
memory.used
:顯卡已消耗內(nèi)存 -
memory.free
:顯卡閑置內(nèi)存 -
compute_mode
:The compute mode flag indicates whether individual or multiple compute applications may run on the GPU.-
Default
: means multiple contexts are allowed per device. -
Exclusive_Process
: means only one context is allowed per device, usable from multiple threads at a time. -
Prohibited
: means no contexts are allowed per device (no compute apps).
-
-
utilization.gpu
: 指示在上一個采樣間隔中GPU的繁忙程度,占用比拂封。采樣間隔根據(jù)產(chǎn)品不同茬射,有的是1s,有的是1/6s -
utilization.memory
: 指示在上一個采樣間隔中GPU繁忙程度烘苹,讀寫時間占比躲株。 -
temperature.gpu
: GPU核心溫度
> 快捷查詢
- 顯卡時鐘查詢
查看GPU支持的時鐘頻率,我們可以使用 nvidia-smi --query-supported-clocks=
命令镣衡,該命令將遍歷所有Memory Clock 和 Graphic Clock可能的組合霜定,僅這里列舉的時鐘組合可以傳遞給 --applications-clocks
作為 參數(shù)。--query-support-clocks=
接受 timestamp
, gpu_name
, gpu_bus_id
, gpu_serial
, gpu_uuid
, memory
和 graphics
等五個字段的組合廊鸥。
-
timestamps
: 查詢時間望浩,按照標準時間格式輸出,見上文 -
gpu_name
: 設(shè)備的官方名稱 -
gpu_bus_id
: 設(shè)備PCI 總線ID惰说,格式見上文 -
gpu_serial
:設(shè)備序列識別號磨德,應(yīng)與機身標定設(shè)備唯一序列識別號一致 -
gpu_uuid
:設(shè)備唯一識別ID,與機身標識無關(guān) -
memory
或mem
: 支持的Memory Clock -
graphics
或gr
: 支持的Graphics Clock
詳細說明查看 nvidia-smi --help-query-supported-clocks
輸出。
- 活躍進程查詢
查看使用GPU設(shè)備的進程典挑,我們可以使用 nvidia-smi --query-compute-apps=
命令酥宴。--query-compute-apps=
接受 timestamp
, gpu_name
, gpu_bus_id
, gpu_serial
, gpu_uuid
, pid , used_gpu_memory
和 process_name
等字段的組合。
-
timestamps
: 查詢時間您觉,按照標準時間格式輸出拙寡,見上文 -
gpu_name
: 設(shè)備的官方名稱 -
gpu_bus_id
: 設(shè)備PCI 總線ID,格式見上文 -
gpu_serial
:設(shè)備序列識別號琳水,應(yīng)與機身標定設(shè)備唯一序列識別號一致 -
gpu_uuid
:設(shè)備唯一識別ID肆糕,與機身標識無關(guān) -
pid
: 進程ID - progress_name 或
name
: 進程名稱 -
used_gpu_memory
或used_memory
: 進程占用的內(nèi)存,在windows平臺上當設(shè)備運行在WDDM模式下時該值不可用在孝,因為顯存由Windows KMD接管而非Nvidia驅(qū)動程序
詳細說明查看 nvidia-smi --help-query-compute-apps
輸出诚啃。
- 進程統(tǒng)計查詢
查看被設(shè)備統(tǒng)計的進程,即在統(tǒng)計循環(huán)緩沖區(qū)中的進程私沮,使用 nvidia-smi --query-accounted-apps=
命令始赎。--query-accounted-apps=
接受timestamp
, gpu_name
, gpu_bus_id
, gpu_serial
, gpu_uuid
, pid
, gpu_utilization
, mem_utilization
, max_memory_usage
和 time
等字段的組合。
-
timestamps
: 查詢時間顾彰,按照標準時間格式輸出极阅,見上文 -
gpu_name
: 設(shè)備的官方名稱 -
gpu_bus_id
: 設(shè)備PCI 總線ID,格式見上文 -
gpu_serial
:設(shè)備序列識別號涨享,應(yīng)與機身標定設(shè)備唯一序列識別號一致 -
gpu_uuid
:設(shè)備唯一識別ID筋搏,與機身標識無關(guān) -
pid
: 進程ID -
gpu_utilization
orgpu_util
:GPU使用 -
mem_utilization
ormem_util
:進程顯存使用占比 -
max_memory_usage
:進程最大內(nèi)存占用量 -
time
:進程活動時常,單位ms
詳細說明查看 nvidia-smi --help-query-accounted-apps
輸出厕隧。
> 查詢示例
user@host:~$ nvidia-smi -L
GPU 0: GeForce GTX TITAN X (UUID: GPU-3d8e9aef-22ea-5476-4d47-2bce745b1315)
GPU 1: GeForce GTX TITAN X (UUID: GPU-f8daa047-d2d0-57ff-875f-7d52963c1bed)
user@host:~$ nvidia-smi -i 0 -q -d memory,temperature,pids
==============NVSMI LOG==============
Timestamp : Sat Mar 23 00:18:53 2019
Driver Version : 384.130
Attached GPUs : 4
GPU 00000000:05:00.0
FB Memory Usage
Total : 12205 MiB
Used : 10530 MiB
Free : 1675 MiB
BAR1 Memory Usage
Total : 256 MiB
Used : 2 MiB
Free : 254 MiB
Temperature
GPU Current Temp : 90 C
GPU Shutdown Temp : 97 C
GPU Slowdown Temp : 92 C
GPU Max Operating Temp : N/A
Memory Current Temp : N/A
Memory Max Operating Temp : N/A
Processes
Process ID : 3089
Type : C
Name : python3
Used GPU Memory : 5554 MiB
Process ID : 4721
Type : C
Name : python
Used GPU Memory : 4962 MiB
user@host:~$ nvidia-smi --query-gpu=timestamp,driver_version,name,memory.total,memory.used,memory.free,temperature.gpu,utilization.memory,pstate --format=csv
timestamp, driver_version, name, memory.total [MiB], memory.used [MiB], memory.free [MiB], temperature.gpu, utilization.memory [%], pstate
2019/03/23 00:25:57.106, 384.130, GeForce GTX TITAN X, 12205 MiB, 10530 MiB, 1675 MiB, 91, 39 %, P2
2019/03/23 00:25:57.107, 384.130, GeForce GTX TITAN X, 12207 MiB, 8197 MiB, 4010 MiB, 89, 24 %, P2