Linux常用nvidia-smi命令有哪些

簡介

nvidia-smi – nvidia system management interface program

nvidia smi(也稱為NVSMI)為來自 Fermi 和更高體系結構系列的 nvidia Tesla、Quadro、GRID 和 GeForce 設備提供監控和管理功能。GeForce Titan系列設備支持大多數功能,為GeForce品牌的其余部分提供的信息非常有限。NVSMI是一種跨平臺工具,支持所有標準NVIDIA驅動程序支持的linux發行版,以及從Windows Server 2008 R2開始的64位版本的Windows。

?nvidia-smi

NVIDIA 系統管理介面 (nvidia-smi) 是一個命令行工具,基於 NVIDIA Management Library (NVML) 之勝,旨在協助管理和監控 NVIDIA GPU 設備。

此實用程序允許管理員查詢 GPU 設備狀態,并允許管理員使用適當的權限修改 GPU 設備狀態。它針對Tesla, GRID, Quadro和 Titan X 產品,但其他 NVIDIA GPU 也提供有限的支持。

NVIDIA-smi 在 Linux 上附帶 NVIDIA GPU 顯示驅動程序,以及 64 位 Windows Server 2008 R2 和 Windows 7。Nvidia-smi 可以將查詢信息報告為 XML 或人類可讀的純文本到標準輸出或文件。

?常用nvidia-smi命令顯示GPU所有信息

nvidia-smi

Linux常用nvidia-smi命令有哪些

間隔1秒刷新GPU信息

nvidia-smi?-l?1

列出當前所有GPU設備

nvidia-smi?-L

Linux常用nvidia-smi命令有哪些

查看當前的 GPU 時鐘速度、默認時鐘速度和最大可能的時鐘速度

nvidia-smi?-q?-d?CLOCK

PS:

nvidia-smi 命令

直接在命令行輸入 nvidia-smi 命令應該是各位煉丹師再熟悉不過的命令了。

注意:建議使用 watch -n 0.5 nvidia-smi 來動態地觀察 GPU 的狀態。

通過 nvidia-smi 命令,我們會得到這樣一個信息豐富的頁面:

Tue Nov ?9 13:47:51 2021
+—————————————————————————–+
| NVIDIA-SMI 495.44 ? ? ? Driver Version: 495.44 ? ? ? CUDA Version: 11.5 ? ? |
|——————————-+———————-+———————-+
| GPU ?Name ? ? ? ?Persistence-M| Bus-Id ? ? ? ?Disp.A | Volatile Uncorr. ECC |
| Fan ?Temp ?Perf ?Pwr:Usage/Cap| ? ? ? ? Memory-Usage | GPU-Util ?Compute M. |
| ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? | ? ? ? ? ? ? ? ? ? ? ?| ? ? ? ? ? ? ? MIG M. |
|===============================+======================+======================|
| ? 0 ?NVIDIA GeForce … ?Off ?| 00000000:17:00.0 Off | ? ? ? ? ? ? ? ? ?N/A |
| 62% ? 78C ? ?P2 ? 155W / 170W | ?10123MiB / 12051MiB | ? ?100% ? ? ?Default |
| ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? | ? ? ? ? ? ? ? ? ? ? ?| ? ? ? ? ? ? ? ? ?N/A |
+——————————-+———————-+———————-+
| ? 1 ?NVIDIA GeForce … ?Off ?| 00000000:65:00.0 Off | ? ? ? ? ? ? ? ? ?N/A |
|100% ? 92C ? ?P2 ? 136W / 170W | ?10121MiB / 12053MiB | ? ? 99% ? ? ?Default |
| ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? | ? ? ? ? ? ? ? ? ? ? ?| ? ? ? ? ? ? ? ? ?N/A |
+——————————-+———————-+———————-+
| ? 2 ?NVIDIA GeForce … ?Off ?| 00000000:B5:00.0 Off | ? ? ? ? ? ? ? ? ?N/A |
| 32% ? 34C ? ?P8 ? ?12W / 170W | ? ? ?5MiB / 12053MiB | ? ? ?0% ? ? ?Default |
| ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? | ? ? ? ? ? ? ? ? ? ? ?| ? ? ? ? ? ? ? ? ?N/A |
+——————————-+———————-+———————-+
| ? 3 ?NVIDIA GeForce … ?Off ?| 00000000:B6:00.0 Off | ? ? ? ? ? ? ? ? ?N/A |
| 30% ? 37C ? ?P8 ? ?13W / 170W | ? ? ?5MiB / 12053MiB | ? ? ?0% ? ? ?Default |
| ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? | ? ? ? ? ? ? ? ? ? ? ?| ? ? ? ? ? ? ? ? ?N/A |
+——————————-+———————-+———————-+

+—————————————————————————–+
| Processes: ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?|
| ?GPU ? GI ? CI ? ? ? ?PID ? Type ? Process name ? ? ? ? ? ? ? ? ?GPU Memory |
| ? ? ? ?ID ? ID ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? Usage ? ? ?|
|=============================================================================|
| ? ?0 ? N/A ?N/A ? ? ?1258 ? ? ?G ? /usr/lib/xorg/Xorg ? ? ? ? ? ? ? ? ?6MiB |
| ? ?0 ? N/A ?N/A ? ? 10426 ? ? ?C ? …a3/envs/JJ_env/bin/python ? ?10111MiB |
| ? ?1 ? N/A ?N/A ? ? ?1258 ? ? ?G ? /usr/lib/xorg/Xorg ? ? ? ? ? ? ? ? ?4MiB |
| ? ?1 ? N/A ?N/A ? ? 10427 ? ? ?C ? …a3/envs/JJ_env/bin/python ? ?10111MiB |
| ? ?2 ? N/A ?N/A ? ? ?1258 ? ? ?G ? /usr/lib/xorg/Xorg ? ? ? ? ? ? ? ? ?4MiB |
| ? ?3 ? N/A ?N/A ? ? ?1258 ? ? ?G ? /usr/lib/xorg/Xorg ? ? ? ? ? ? ? ? ?4MiB |
+—————————————————————————–+

其中顯存占用和 GPU 利用率當然是我們最常來查看的參數,但是在一些情況下(比如要重點監控 GPU 的散熱情況時)其他參數也很有用,筆者簡單總結了一下該命令輸出的各個參數的含義如下圖:

Linux常用nvidia-smi命令有哪些

可以看到其中各個位置的對應含義在輸出本身中其實都已經指出了(藍框),紅框則指出了輸出各個部分的含義,大部分輸出的作用一目了然,這里筆者將其中幾個不那么直觀的參數簡單整理一下:

  • Fan:從0到100%之間變動,這個速度是計算機期望的風扇轉速,實際情況下如果風扇堵轉,可能打不到顯示的轉速。

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

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

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

  • Compute M:是計算模式。

  • Volatile Uncorr. ECC:是否開啟 ECC 糾錯。

  • type:進程類型。C 表示計算進程,G 表示圖形進程,C+G 表示都有。

nvidia-smi 命令的其他參數

除了直接運行 nvidia-smi 命令之外,還可以加一些參數,來查看一些本機 Nvidia GPU 的其他一些狀態。下面筆者簡單介紹幾個常用的參數,其他的有需要可以去手冊中查找:man nvidia-smi。

-L

-L 參數顯示連接到系統的 GPU 列表。

nvidia-smi?-L  #?輸出: GPU?0:?NVIDIA?GeForce?RTX?3060?(UUID:?GPU-55275dff-****-****-****-6408855fced9) GPU?1:?NVIDIA?GeForce?RTX?3060?(UUID:?GPU-0a1e7f37-****-****-****-df9a8bce6d6b) GPU?2:?NVIDIA?GeForce?RTX?3060?(UUID:?GPU-38e2771e-****-****-****-d5cbb85c58d8) GPU?3:?NVIDIA?GeForce?RTX?3060?(UUID:?GPU-8b45b004-****-****-****-46c05975a9f0)

GPU UUID:此值是GPU的全球唯一不可變字母數字標識符。它與主板上的物理標簽無關。

-i

-i 參數指定某個 GPU,多用于查看 GPU 信息時指定其中一個 GPU。

-q

-q 參數查看 GPU 的全部信息。可通過 -i 參數指定查看某個 GPU 的參數。

如:

nvidia-smi?-i?0?-q

輸出太長了,筆者這里就不列了,大家可以自己試一下,是很完整的信息。

topo

topo 展示多GPU系統的拓撲連接信息,通常配合 -m 參數即 nvidia-smi topo -m,其他參數可自行查閱。

輸出如下,這里用代碼塊沒法對齊,就直接貼圖了:

Linux常用nvidia-smi命令有哪些

? 版權聲明
THE END
喜歡就支持一下吧
點贊8 分享