py-smi

py-smi py-smi

py-smilink image 3

Disclaimer: This post has been translated to English using a machine translation model. Please, let me know if you find any mistakes.

Do you want to be able to use nvidia-smi from Python? Here you have a library to do it.

Installationlink image 4

To install it, run:

pip install python-smi```
      

Usagelink image 5

We import the library

	
from py_smi import NVML
Copy

We create an object of pynvml (the library behind nvidia-smi)

	
nv = NVML()
Copy

We get the version of the driver and CUDA

	
nv.driver_version, nv.cuda_version
Copy
	
('560.35.03', '12.6')

Since in my case I have two GPUs, I create a variable with the number of GPUs

	
num_gpus = 2
Copy

I get the memory of each GPU

	
[nv.mem(i) for i in range(num_gpus)]
Copy
	
[_Memory(free=24136.6875, total=24576.0, used=439.3125),
_Memory(free=23509.0, total=24576.0, used=1067.0)]

The utilization

	
[nv.utilization() for i in range(num_gpus)]
Copy
	
[_Utilization(gpu=0, memory=0, enc=0, dec=0),
_Utilization(gpu=0, memory=0, enc=0, dec=0)]

The power used

This works very well for me, because when I was training a model and had both GPUs full, sometimes my computer would shut down, and looking at the power, I see that the second one consumes a lot, so it may be what I already suspected, which was due to power supply.

	
[nv.power(i) for i in range(num_gpus)]
Copy
	
[_Power(usage=15.382, limit=350.0), _Power(usage=40.573, limit=350.0)]

The clocks of each GPU

	
[nv.clocks(i) for i in range(num_gpus)]
Copy
	
[_Clocks(graphics=0, sm=0, mem=405), _Clocks(graphics=540, sm=540, mem=810)]

PCI Data

	
[nv.pcie_throughput(i) for i in range(num_gpus)]
Copy
	
[_PCIeThroughput(rx=0.0, tx=0.0),
_PCIeThroughput(rx=0.1630859375, tx=0.0234375)]

And the processes (I'm not running anything now)

	
[nv.processes(i) for i in range(num_gpus)]
Copy
	
[[], []]

Continue reading

Last posts -->

Have you seen these projects?

Subtify

Subtify Subtify

Subtitle generator for videos in the language you want. Also, it puts a different color subtitle to each person

View all projects -->

Do you want to apply AI in your project? Contact me!

Do you want to improve with these tips?

Last tips -->

Use this locally

Hugging Face spaces allow us to run models with very simple demos, but what if the demo breaks? Or if the user deletes it? That's why I've created docker containers with some interesting spaces, to be able to use them locally, whatever happens. In fact, if you click on any project view button, it may take you to a space that doesn't work.

Flow edit

Flow edit Flow edit

FLUX.1-RealismLora

FLUX.1-RealismLora FLUX.1-RealismLora
View all containers -->

Do you want to apply AI in your project? Contact me!

Do you want to train your model with these datasets?

short-jokes-dataset

Dataset with jokes in English

opus100

Dataset with translations from English to Spanish

netflix_titles

Dataset with Netflix movies and series

View more datasets -->