Source code for perfmon.core.metrics.gpumetrics.nvidia.utilization

"""Functions to get GPU utilization rates"""

import logging

from py3nvml.py3nvml import *

from perfmon.core.metrics.gpumetrics.nvidia import device_query

_log = logging.getLogger(__name__)

# pylint: disable=E0401,W0201,C0301


[docs]def get_gpu_mem_util_rates(data): """This method gets GPU and memory utilization rates""" # Get GPU and memory utilization rates util_metrics = device_query('nvmlDeviceGetUtilizationRates') for i, rate in enumerate(util_metrics): data[i]['utilization_rates']['gpu'].append(rate.gpu) data[i]['utilization_rates']['memory'].append(rate.memory) return data
[docs]def get_encoder_decoder_util_rates(data): """This method gets encoder and decoder utilization rates""" # Get encoder utilization rates util_metrics = device_query('nvmlDeviceGetEncoderUtilization') for i, rate in enumerate(util_metrics): data[i]['encoder_util'].append(rate[0]) # Get decoder utilization rates util_metrics = device_query('nvmlDeviceGetDecoderUtilization') for i, rate in enumerate(util_metrics): data[i]['decoder_util'].append(rate[0]) return data