from py_smi import NVMLpy_smi
Convenient access to
pynvml (the library behind nvidia-smi)
Installation
Install latest from pypi:
$ pip install python-smiLinks:
How to use
Here’s a quick demo of all the methods available:
nv = NVML()
nv.driver_version, nv.cuda_version('535.183.06', '12.2')
All methods have a single parameter, which is the index of the GPU to get information about.
nv.info(0)_Info(name='NVIDIA RTX A6000', serial='1322123048138', uuid='GPU-61e56e6f-2a64-c0f4-b26c-ab3ead0eed5b', persistence_mode=1, bus_id='00000000:01:00.0', display_active=0, performance_state=8, fan_speed=30, temperature=32, compute_mode=0)
[nv.mem(i) for i in range(3)][_Memory(free=2193.25, total=49140.0, used=46946.75),
_Memory(free=48672.4375, total=49140.0, used=467.5625),
_Memory(free=48672.4375, total=49140.0, used=467.5625)]
The index defaults to 0.
nv.utilization()_Utilization(gpu=0, memory=0, enc=0, dec=0)
nv.power()_Power(usage=17.22, limit=300.0)
nv.clocks()_Clocks(graphics=0, sm=0, mem=405)
nv.pcie_throughput()_PCIeThroughput(rx=0.0, tx=0.0)
nv.processes()[_ProcessInfo(pid=201084, name='/home/jhoward/miniconda3/bin/python3.12', memory=46476.0)]
nv.dmon()_DMon(pwr=17.039, gtemp=32, sm=0, mem=0, enc=0, dec=0, mclk=405, pclk=0)
Contributing
I’ve added the obvious pieces based on how I use nvidia-smi, but I’m sure there’s missing useful features, so PRs are welcome! Note that this is an nbdev project so the source notebooks must be changed, rather than editing .py or .md files directly.