> 簡單查詢
nvidia-smi -L | --list-gpus
: 顯示系統可識別的顯卡,輸出示例:
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
: 將查詢結果存入文件而不是輸出到終端<br />nvidia-smi -q | --query
: 查看GPU或Unit信息,可結合以下幾個參量同時使用達到特定目的:
-
-i | --id=
: 僅針對指定設備ID的GPU查詢,e.g.nvidia-smi -q -i 0
查看設備ID為0的GPU信息 -
-u | --unit
: 查詢Unit屬性,不使用該參量默認查詢GPU屬性 -
-f | --filename=
: 將查詢結果保存到文件,屏蔽終端輸出 -
-x | --xml-format
: 生成xml格式的結果 -
-d | --display=
: 有選擇性地查詢某些字段,支持的字段包括:memory, utilization, ecc, temperature, power, clock, compute, pids, performance, supported_clocks, page_retirement, accounting, encoder stats -
-l | --loop=
: 持續查詢除非在指定秒間隔內檢測到Ctrl+C中斷 -
-lms | --loop-ms=
:持續查詢除非在指定的毫秒間隔內檢測到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顯卡驅動版本 -
count
: 顯卡個數 -
name
或gpu_name
: 官方給定的顯卡名稱 -
serial
或gpu_serial
: 產品序列號,應與板載序列識別號一致,全球唯一 -
uuid
或gpu_uuid
: 全球唯一設備編號,與板載識別號無關 -
pci.bus_id
或gpu_bus_id
: 十六進制PCI總線編號 “domain:bus:device.function” -
pci.domain
: 十六進制PCI域(domain number) -
pci.bus
:十六進制PCI總線 (bus number) -
pci.device
: 十六進制PCI設備 (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 表示有外接顯示設備,其他情況 Disabled -
display_active
: 顯示器是否經由GPU處理顯示內容指示位,Enabled 表示GPU正負責某顯示任務,Disabled表示其他情況。注意:即使顯卡沒有外接物理顯示設備,該指示位依然可能是Enabled -
persistence_mode
: 是否出于persistence mode 指示位,Enabled 表示開啟,Disabled 表示關閉。開啟該模式后顯卡驅動將常駐顯存,降低顯卡響應延時,僅Linux平臺有效。 -
accounting.mode
: 統計模式是否開啟標識位,Enabled 或 Disabled。開啟統計模式,占用顯卡進程的信息將被統計便于進程執行期間查詢或進程結束后查詢。進程的總執行時間在進程結束之前保持為0,進程結束后更新為進程實際占用GPU時間。 -
accounting.buffer_size
: 進程循環緩沖區大小,表示被統計進程的最大數量。緩存區中保持著當前被統計的進程,緩沖區滿后新進程會覆蓋舊進程。 -
driver_mode.current
: 當前使用的驅動模式,在linux平臺上該值為 N/A。 Windows平臺支持TCC和WDDM兩種模式,可通過-dm
或-fdm
指定顯卡驅動模式。TCC模式專為高性能計算優化,WDDM模式專為圖形應用優化,高性能運算不建議使用WDDM模式。 -
driver_mode.pending
: 預設驅動模式,下次設備重啟后應用。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
: 預設的GOM模式,設備下次重啟時應用 -
fan.speed
: 該值指示風扇應以多大功率運行并不是實際檢測量,0表示不運行,100%表示全功率運行。如果風扇損壞或不能控制,則實際運行功率與該值可能不匹配。 -
pstate
: 當前顯卡性能狀態等級,P0表示滿級狀態,P12表示最差等級狀態 -
memory.total
: 顯卡總共可用內存 -
memory.used
:顯卡已消耗內存 -
memory.free
:顯卡閑置內存 -
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的繁忙程度,占用比。采樣間隔根據產品不同,有的是1s,有的是1/6s -
utilization.memory
: 指示在上一個采樣間隔中GPU繁忙程度,讀寫時間占比。 -
temperature.gpu
: GPU核心溫度
> 快捷查詢
- 顯卡時鐘查詢
查看GPU支持的時鐘頻率,我們可以使用 nvidia-smi --query-supported-clocks=
命令,該命令將遍歷所有Memory Clock 和 Graphic Clock可能的組合,僅這里列舉的時鐘組合可以傳遞給 --applications-clocks
作為 參數。--query-support-clocks=
接受 timestamp
, gpu_name
, gpu_bus_id
, gpu_serial
, gpu_uuid
, memory
和 graphics
等五個字段的組合。
-
timestamps
: 查詢時間,按照標準時間格式輸出,見上文 -
gpu_name
: 設備的官方名稱 -
gpu_bus_id
: 設備PCI 總線ID,格式見上文 -
gpu_serial
:設備序列識別號,應與機身標定設備唯一序列識別號一致 -
gpu_uuid
:設備唯一識別ID,與機身標識無關 -
memory
或mem
: 支持的Memory Clock -
graphics
或gr
: 支持的Graphics Clock
詳細說明查看 nvidia-smi --help-query-supported-clocks
輸出。
- 活躍進程查詢
查看使用GPU設備的進程,我們可以使用 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
: 設備的官方名稱 -
gpu_bus_id
: 設備PCI 總線ID,格式見上文 -
gpu_serial
:設備序列識別號,應與機身標定設備唯一序列識別號一致 -
gpu_uuid
:設備唯一識別ID,與機身標識無關 -
pid
: 進程ID - progress_name 或
name
: 進程名稱 -
used_gpu_memory
或used_memory
: 進程占用的內存,在windows平臺上當設備運行在WDDM模式下時該值不可用,因為顯存由Windows KMD接管而非Nvidia驅動程序
詳細說明查看 nvidia-smi --help-query-compute-apps
輸出。
- 進程統計查詢
查看被設備統計的進程,即在統計循環緩沖區中的進程,使用 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
: 設備的官方名稱 -
gpu_bus_id
: 設備PCI 總線ID,格式見上文 -
gpu_serial
:設備序列識別號,應與機身標定設備唯一序列識別號一致 -
gpu_uuid
:設備唯一識別ID,與機身標識無關 -
pid
: 進程ID -
gpu_utilization
orgpu_util
:GPU使用 -
mem_utilization
ormem_util
:進程顯存使用占比 -
max_memory_usage
:進程最大內存占用量 -
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