SWDEV-441635: Updated amdsmi_get_utilization_count python API
Signed-off-by: Maisam Arif <maisarif@amd.com>
Change-Id: I588e1a61e000d9a5f77f0e8c63f4fef1ec76063e
[ROCm/amdsmi commit: 1ed5080433]
This commit is contained in:
@@ -21,8 +21,8 @@
|
||||
|
||||
import ctypes
|
||||
import re
|
||||
from typing import Union, Any, Dict, List, Tuple
|
||||
from enum import IntEnum, Enum
|
||||
from typing import Union, Any, Dict, List
|
||||
from enum import IntEnum
|
||||
from collections.abc import Iterable
|
||||
|
||||
from . import amdsmi_wrapper
|
||||
@@ -348,7 +348,8 @@ class AmdSmiIoLinkType(IntEnum):
|
||||
class AmdSmiUtilizationCounterType(IntEnum):
|
||||
COARSE_GRAIN_GFX_ACTIVITY = amdsmi_wrapper.AMDSMI_COARSE_GRAIN_GFX_ACTIVITY
|
||||
COARSE_GRAIN_MEM_ACTIVITY = amdsmi_wrapper.AMDSMI_COARSE_GRAIN_MEM_ACTIVITY
|
||||
|
||||
UTILIZATION_COUNTER_FIRST = amdsmi_wrapper.AMDSMI_UTILIZATION_COUNTER_FIRST
|
||||
UTILIZATION_COUNTER_LAST = amdsmi_wrapper.AMDSMI_UTILIZATION_COUNTER_LAST
|
||||
|
||||
class AmdSmiProcessorType(IntEnum):
|
||||
UNKNOWN = amdsmi_wrapper.UNKNOWN
|
||||
@@ -3071,16 +3072,15 @@ def amdsmi_get_gpu_volt_metric(
|
||||
return voltage.value
|
||||
|
||||
|
||||
|
||||
def amdsmi_get_utilization_count(
|
||||
processor_handle: amdsmi_wrapper.amdsmi_processor_handle,
|
||||
*counter_types: Tuple[AmdSmiUtilizationCounterType]
|
||||
counter_types: List[AmdSmiUtilizationCounterType]
|
||||
) -> List[Dict[str, Any]]:
|
||||
if not isinstance(processor_handle, amdsmi_wrapper.amdsmi_processor_handle):
|
||||
raise AmdSmiParameterException(
|
||||
processor_handle, amdsmi_wrapper.amdsmi_processor_handle
|
||||
)
|
||||
if not len(counter_types):
|
||||
if len(counter_types) == 0:
|
||||
raise AmdSmiLibraryException(amdsmi_wrapper.AMDSMI_STATUS_INVAL)
|
||||
counters = []
|
||||
for counter_type in counter_types:
|
||||
@@ -3093,9 +3093,7 @@ def amdsmi_get_utilization_count(
|
||||
|
||||
count = ctypes.c_uint32(len(counters))
|
||||
timestamp = ctypes.c_uint64()
|
||||
util_counter_list = (amdsmi_wrapper.amdsmi_utilization_counter_t * len(counters))(
|
||||
*counters
|
||||
)
|
||||
util_counter_list = (amdsmi_wrapper.amdsmi_utilization_counter_t * len(counters))(*counters)
|
||||
|
||||
_check_res(
|
||||
amdsmi_wrapper.amdsmi_get_utilization_count(
|
||||
@@ -3107,9 +3105,11 @@ def amdsmi_get_utilization_count(
|
||||
|
||||
result = [{"timestamp": timestamp.value}]
|
||||
for idx in range(count.value):
|
||||
counter_type = amdsmi_wrapper.AMDSMI_UTILIZATION_COUNTER_TYPE__enumvalues[
|
||||
counter_type = amdsmi_wrapper.amdsmi_utilization_counter_type_t__enumvalues[
|
||||
util_counter_list[idx].type
|
||||
]
|
||||
if counter_type == "AMDSMI_UTILIZATION_COUNTER_FIRST":
|
||||
counter_type = "AMDSMI_COARSE_GRAIN_GPU_ACTIVITY"
|
||||
if counter_type == "AMDSMI_UTILIZATION_COUNTER_LAST":
|
||||
counter_type = "AMDSMI_COARSE_GRAIN_MEM_ACTIVITY"
|
||||
result.append(
|
||||
|
||||
@@ -1319,8 +1319,8 @@ amdsmi_io_link_type_t = ctypes.c_uint32 # enum
|
||||
amdsmi_utilization_counter_type_t__enumvalues = {
|
||||
0: 'AMDSMI_UTILIZATION_COUNTER_FIRST',
|
||||
0: 'AMDSMI_COARSE_GRAIN_GFX_ACTIVITY',
|
||||
1: 'AMDSMI_COARSE_GRAIN_MEM_ACTIVITY',
|
||||
1: 'AMDSMI_UTILIZATION_COUNTER_LAST',
|
||||
1: 'AMDSMI_COARSE_GRAIN_MEM_ACTIVITY',
|
||||
}
|
||||
AMDSMI_UTILIZATION_COUNTER_FIRST = 0
|
||||
AMDSMI_COARSE_GRAIN_GFX_ACTIVITY = 0
|
||||
@@ -1911,7 +1911,7 @@ amdsmi_set_gpu_fan_speed.restype = amdsmi_status_t
|
||||
amdsmi_set_gpu_fan_speed.argtypes = [amdsmi_processor_handle, uint32_t, uint64_t]
|
||||
amdsmi_get_utilization_count = _libraries['libamd_smi.so'].amdsmi_get_utilization_count
|
||||
amdsmi_get_utilization_count.restype = amdsmi_status_t
|
||||
amdsmi_get_utilization_count.argtypes = [amdsmi_processor_handle, struct_amdsmi_utilization_counter_t * 0, uint32_t, ctypes.POINTER(ctypes.c_uint64)]
|
||||
amdsmi_get_utilization_count.argtypes = [amdsmi_processor_handle, ctypes.POINTER(struct_amdsmi_utilization_counter_t), uint32_t, ctypes.POINTER(ctypes.c_uint64)]
|
||||
amdsmi_get_pcie_link_status = _libraries['libamd_smi.so'].amdsmi_get_pcie_link_status
|
||||
amdsmi_get_pcie_link_status.restype = amdsmi_status_t
|
||||
amdsmi_get_pcie_link_status.argtypes = [amdsmi_processor_handle, ctypes.POINTER(struct_amdsmi_pcie_info_t)]
|
||||
@@ -2499,7 +2499,9 @@ __all__ = \
|
||||
'AMDSMI_TEMP_MAX', 'AMDSMI_TEMP_MAX_HYST', 'AMDSMI_TEMP_MIN',
|
||||
'AMDSMI_TEMP_MIN_HYST', 'AMDSMI_TEMP_OFFSET',
|
||||
'AMDSMI_UTILIZATION_COUNTER_FIRST',
|
||||
'AMDSMI_UTILIZATION_COUNTER_LAST', 'AMDSMI_VOLT_AVERAGE',
|
||||
'AMDSMI_COARSE_GRAIN_GFX_ACTIVITY',
|
||||
'AMDSMI_UTILIZATION_COUNTER_LAST',
|
||||
'AMDSMI_COARSE_GRAIN_MEM_ACTIVITY', 'AMDSMI_VOLT_AVERAGE',
|
||||
'AMDSMI_VOLT_CURRENT', 'AMDSMI_VOLT_FIRST', 'AMDSMI_VOLT_HIGHEST',
|
||||
'AMDSMI_VOLT_LAST', 'AMDSMI_VOLT_LOWEST', 'AMDSMI_VOLT_MAX',
|
||||
'AMDSMI_VOLT_MAX_CRIT', 'AMDSMI_VOLT_MIN', 'AMDSMI_VOLT_MIN_CRIT',
|
||||
|
||||
Reference in New Issue
Block a user