Install latest from pypi:
$ pip install python-smi
Links:
Here’s a quick demo of all the methods available:
from py_smi import NVML
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)
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.