From 637479bd7b65b1c906ef55e57dfa2c89a37dc65a Mon Sep 17 00:00:00 2001 From: Amine Remache Date: Sat, 16 Aug 2025 12:46:20 +0100 Subject: [PATCH] feat: implement --- sensors.py | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/sensors.py b/sensors.py index 861b8ad..f7119d6 100755 --- a/sensors.py +++ b/sensors.py @@ -70,6 +70,7 @@ def __init__(self): AmdGpuSensor(), AmdGpu1Sensor(), NvGPUSensor(), + NvGPUMemSensor(), MemSensor(), NetSensor(), NetCompSensor(), @@ -366,6 +367,29 @@ def _fetch_gpu(self): return int(perc) +class NvGPUMemSensor(BaseSensor): + name = 'nvgpumem' + desc = _('Nvidia GPU Memory utilization') + total_mem = 0 + + def get_value(self, sensor): + if sensor == 'nvgpumem': + return "{:02.0f}%".format(self._fetch_gpu_mem()) + + def _fetch_gpu_mem(self): + try: + if self.total_mem == 0: + total_mem_result = subprocess.check_output(['nvidia-smi', '--query-gpu=memory.total', '--format=csv']) + self.total_mem = int(total_mem_result.splitlines()[-1].split()[0]) + + used_mem_result = subprocess.check_output(['nvidia-smi', '--query-gpu=memory.used', '--format=csv']) + used_mem = int(used_mem_result.splitlines()[-1].split()[0]) + + return (used_mem / self.total_mem) * 100 + except: + return -1 + + class AmdGpuSensor(BaseSensor): name = 'amdgpu' desc = _('If CPU isnot AMD, this your eGPU')