參考:https://blog.csdn.net/masound/article/details/81909323
1. nvidia-smi
watch -n 2 nvidia-smi (間隔2秒查詢一次任務)
nvidia-smi 使用注意點:
1. nvidia-smi 默認是只統計 sm 的加權平均使用量,也就是GPU-Util的統計,
nvidia-smi采集粒度偏大
2. ffmpeg 在使用編解碼的時候,也會少量的使用到sm資源, 單sm使用率100%后會影響編解碼的性能,
如果sm使用率不高的情況,對硬轉碼沒有影響; codec和sm共用時鐘源和電源
- 指定板卡id,查看gpu狀態,nvidia-smi -i 0
root@n19-045-100:~
Fri Oct
22 16:01:31
2021
+-----------------------------------------------------------------------------+
| NVIDIA-SMI
418.116.00 Driver Version:
418.116.00 CUDA Version:
10.1 |
|-------------------------------+----------------------+----------------------+
| GPU Name Persistence-M
| Bus-Id Disp.A
| Volatile Uncorr. ECC
|
| Fan Temp Perf Pwr:Usage/Cap
| Memory-Usage
| GPU-Util Compute M.
|
|===============================+======================+======================|
| 0 Tesla P4 On
| 00000000:1A:00.0 Off
| 0 |
| N/A 56C P0 30W / 75W
| 140MiB / 7611MiB
| 0% Default
|
+-------------------------------+----------------------+----------------------++-----------------------------------------------------------------------------+
| Processes: GPU Memory
|
| GPU PID Type Process name Usage
|
|=============================================================================|
| 0 588727 C
...ffmpeg_build/gpu/static/bin/ffmpeg 130MiB
|
+-----------------------------------------------------------------------------+
- 查看gpu 的詳細狀態信息
nvidia-smi -q
nvidia-smi -i 0 -q
root@n19-045-200:~
==============NVSMI
LOG==============
Timestamp
: Fri Oct
22 16:48:35
2021
Driver Version
: 418.116.00
CUDA Version
: 10.1Attached GPUs
: 7
GPU 00000000:1A:00.0Product Name
: Tesla P4Product Brand
: TeslaDisplay Mode
: EnabledDisplay Active
: DisabledPersistence Mode
: EnabledAccounting Mode
: DisabledAccounting Mode Buffer Size
: 4000Driver ModelCurrent
: N/APending
: N/ASerial Number
: 0325017003772GPU UUID
: GPU-b1fc4bf1-cc9b-2add-586c-b39397c1eaadMinor Number
: 0VBIOS Version
: 86.04.55.00.01MultiGPU Board
: NoBoard ID
: 0x1a00GPU Part Number
: 900-2G414-0000-000Inforom VersionImage Version
: G414.0200.00.03OEM Object
: 1.1ECC Object
: 4.1Power Management Object
: N/AGPU Operation ModeCurrent
: N/APending
: N/AGPU Virtualization ModeVirtualization mode
: NoneIBMNPURelaxed Ordering Mode
: N/APCIBus
: 0x1ADevice
: 0x00Domain
: 0x0000Device Id
: 0x1BB310DEBus Id
: 00000000:1A:00.0Sub System Id
: 0x11D810DEGPU Link InfoPCIe GenerationMax
: 3Current
: 3Link WidthMax
: 16xCurrent
: 16xBridge ChipType
: N/AFirmware
: N/AReplays Since Reset
: 0Replay Number Rollovers
: 0Tx Throughput
: 0 KB/sRx Throughput
: 0 KB/sFan Speed
: N/APerformance State
: P0Clocks Throttle ReasonsIdle
: Not ActiveApplications Clocks Setting
: Not ActiveSW Power Cap
: Not ActiveHW Slowdown
: Not ActiveHW Thermal Slowdown
: Not ActiveHW Power Brake Slowdown
: Not ActiveSync Boost
: Not ActiveSW Thermal Slowdown
: Not ActiveDisplay Clock Setting
: Not ActiveFB Memory UsageTotal
: 7611 MiBUsed
: 140 MiBFree
: 7471 MiBBAR1 Memory UsageTotal
: 256 MiBUsed
: 2 MiBFree
: 254 MiBCompute Mode
: DefaultUtilizationGpu
: 0 %Memory
: 0 %Encoder
: 0 %Decoder
: 0 %Encoder StatsActive Sessions
: 0Average FPS
: 0Average Latency
: 0FBC StatsActive Sessions
: 0Average FPS
: 0Average Latency
: 0Ecc ModeCurrent
: EnabledPending
: EnabledECC ErrorsVolatileSingle BitDevice Memory
: 0Register File
: N/AL1 Cache
: N/AL2 Cache
: N/ATexture Memory
: N/ATexture Shared
: N/ACBU
: N/ATotal
: 0Double BitDevice Memory
: 0Register File
: N/AL1 Cache
: N/AL2 Cache
: N/ATexture Memory
: N/ATexture Shared
: N/ACBU
: N/ATotal
: 0AggregateSingle BitDevice Memory
: 0Register File
: N/AL1 Cache
: N/AL2 Cache
: N/ATexture Memory
: N/ATexture Shared
: N/ACBU
: N/ATotal
: 0Double BitDevice Memory
: 0Register File
: N/AL1 Cache
: N/AL2 Cache
: N/ATexture Memory
: N/ATexture Shared
: N/ACBU
: N/ATotal
: 0Retired PagesSingle Bit ECC
: 0Double Bit ECC
: 0Pending Page Blacklist
: NoTemperatureGPU Current Temp
: 56 CGPU Shutdown Temp
: 94 CGPU Slowdown Temp
: 91 CGPU Max Operating Temp
: N/AMemory Current Temp
: N/AMemory Max Operating Temp
: N/APower ReadingsPower Management
: SupportedPower Draw
: 30.26 WPower Limit
: 75.00 WDefault Power Limit
: 75.00 WEnforced Power Limit
: 75.00 WMin Power Limit
: 60.00 WMax Power Limit
: 75.00 WClocksGraphics
: 1531 MHzSM
: 1531 MHzMemory
: 2999 MHzVideo
: 1366 MHzApplications ClocksGraphics
: 1531 MHzMemory
: 3003 MHzDefault Applications ClocksGraphics
: 885 MHzMemory
: 3003 MHzMax ClocksGraphics
: 1531 MHzSM
: 1531 MHzMemory
: 3003 MHzVideo
: 1379 MHzMax Customer Boost ClocksGraphics
: 1113 MHzClock PolicyAuto Boost
: N/AAuto Boost Default
: N/AProcessesProcess ID
: 588727Type
: CName
: /opt/ffmpeg_build/gpu/static/bin/ffmpegUsed GPU Memory
: 130 MiB
- 查看gpu 的編碼器狀態
nvidia-smi -q | grep -i enc
nvidia-smi -i 0 -q | grep -i enc
root@n19-045-200:~Persistence Mode
: EnabledEncoder
: 0 %Encoder StatsAverage Latency
: 0Average Latency
: 0
- 設備監控命令,以滾動條形式顯示GPU設備統計信息
nvidia-smi dmon
GPU統計信息以一行的滾動格式顯示,要監控的指標可以基于終端窗口的寬度進行調整。 監控所有的GPU
附加選項:
nvidia-smi dmon -i xxx
用逗號分隔GPU索引,PCI總線ID或UUID
nvidia-smi dmon -d xxx
指定刷新時間(默認為1秒)
nvidia-smi dmon -c xxx
顯示指定數目的統計信息并退出
nvidia-smi dmon -s xxx
指定顯示哪些監控指標(默認為puc),其中:
p:電源使用情況和溫度(pwr:功耗,temp:溫度)
u:GPU使用率(sm:流處理器,mem:顯存,enc:編碼資源,dec:解碼資源)
c:GPU處理器和GPU內存時鐘頻率(mclk:顯存頻率,pclk:處理器頻率)
v:電源和熱力異常
m:FB內存和Bar1內存
e:ECC錯誤和PCIe重顯錯誤個數
t:PCIe讀寫帶寬
nvidia-smi dmon –o D/T
指定顯示的時間格式D:YYYYMMDD,THH:MM:SS
nvidia-smi dmon –f xxx
將查詢的信息輸出到具體的文件中,不在終端顯示
- 進程監控命令,以滾動條形式顯示GPU進程狀態信息。
nvidia-smi pmon
GPU進程統計信息以一行的滾動格式顯示,此工具列出了GPU所有進程的統計信息。要監控的指標可以基于終端窗口的寬度進行調整。
附加選項:
nvidia-smi pmon -i xxx
用逗號分隔GPU索引,PCI總線ID或UUID
nvidia-smi pmon -d xxx
指定刷新時間(默認為1秒,最大為10秒)
nvidia-smi pmon -c xxx
顯示指定數目的統計信息并退出
nvidia-smi pmon -s xxx
指定顯示哪些監控指標(默認為u),其中:
u:GPU使用率
m:FB內存使用情況
nvidia-smi pmon -o D/T
指定顯示的時間格式D:YYYYMMDD,THH:MM:SS
nvidia-smi pmon -f xxx
將查詢的信息輸出到具體的文件中,不在終端顯示
nvidia-smi pmon -i 3 -d 1 -c 1 -s um
2. nvml監控模塊
- 通過CUDA的Nvml庫獲取GPU的使用率
- python實現 https://pypi.org/project/pynvml/
>>> from pynvml
import *
>>> nvmlInit
()
>>> print("Driver Version:", nvmlSystemGetDriverVersion
())
Driver Version
: b'418.116.00'
>>> deviceCount
= nvmlDeviceGetCount
()
>>> for i
in range(deviceCount
):
... handle
= nvmlDeviceGetHandleByIndex
(i
)
... print("Device", i
, ":", nvmlDeviceGetName
(handle
))
...
Device
0 : b'Tesla P4'
Device
1 : b'Tesla P4'
Device
2 : b'Tesla P4'
Device
3 : b'Tesla P4'
Device
4 : b'Tesla P4'
Device
5 : b'Tesla P4'
Device
6 : b'Tesla P4'
>>> from pynvml
.smi
import nvidia_smi
>>> nvsmi
= nvidia_smi
.getInstance
()
>>> nvsmi
.DeviceQuery
('memory.free, memory.total')
{'gpu': [{'fb_memory_usage': {'total': 7611.9375, 'free': 7471.8125, 'unit': 'MiB'}}, {'fb_memory_usage': {'total': 7611.9375, 'free': 7601.9375, 'unit': 'MiB'}}, {'fb_memory_usage': {'total': 7611.9375, 'free': 7601.9375, 'unit': 'MiB'}}, {'fb_memory_usage': {'total': 7611.9375, 'free': 7601.9375, 'unit': 'MiB'}}, {'fb_memory_usage': {'total': 7611.9375, 'free': 7601.9375, 'unit': 'MiB'}}, {'fb_memory_usage': {'total': 7611.9375, 'free': 7601.9375, 'unit': 'MiB'}}, {'fb_memory_usage': {'total': 7611.9375, 'free': 7601.9375, 'unit': 'MiB'}}]}
3. DCMG監控
感興趣可以了解一下:
https://docs.nvidia.com/datacenter/dcgm/latest/dcgm-user-guide/getting-started.html
4. NV GPU API 接口
https://docs.nvidia.com/gameworks/content/gameworkslibrary/coresdk/nvapi/annotated.html
總結
以上是生活随笔為你收集整理的NVIDIA GPU 常用操作的全部內容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。