Spaces:
Runtime error
Runtime error
#!/usr/bin/env python | |
import os | |
import json | |
import shutil | |
import subprocess | |
import xmltodict | |
from rich import print # pylint: disable=redefined-builtin | |
from util import log, Map | |
def get_nvidia_smi(output='dict'): | |
smi = shutil.which('nvidia-smi') | |
if smi is None: | |
log.error("nvidia-smi not found") | |
return None | |
result = subprocess.run(f'"{smi}" -q -x', shell=True, check=False, env=os.environ, stdout=subprocess.PIPE, stderr=subprocess.PIPE) | |
xml = result.stdout.decode(encoding="utf8", errors="ignore") | |
d = xmltodict.parse(xml) | |
if 'nvidia_smi_log' in d: | |
d = d['nvidia_smi_log'] | |
if 'gpu' in d and 'supported_clocks' in d['gpu']: | |
del d['gpu']['supported_clocks'] | |
if output == 'dict': | |
return d | |
elif output == 'class' or output == 'map': | |
d = Map(d) | |
return d | |
elif output == 'json': | |
return json.dumps(d, indent=4) | |
return None | |
if __name__ == "__main__": | |
res = get_nvidia_smi(output='dict') | |
print(type(res), res) | |