Add amdsmi_get_gpu_pm_metrics_info and amdsmi_get_gpu_reg_table_info to py-interface (v3)
v2: drop depend on libc
v3: whitespace
Signed-off-by: Tom St Denis <tom.stdenis@amd.com>
Change-Id: I2eff7aa9d4f0ca8635796f82b106ac0d36176346
[ROCm/amdsmi commit: f4506cfd65]
This commit is contained in:
@@ -1693,6 +1693,60 @@ def amdsmi_get_power_cap_info(
|
||||
"min_power_cap": power_info.min_power_cap,
|
||||
"max_power_cap": power_info.max_power_cap}
|
||||
|
||||
def amdsmi_get_gpu_pm_metrics_info(
|
||||
processor_handle: amdsmi_wrapper.amdsmi_processor_handle,
|
||||
) -> Dict[str, Any]:
|
||||
if not isinstance(processor_handle, amdsmi_wrapper.amdsmi_processor_handle):
|
||||
raise AmdSmiParameterException(
|
||||
processor_handle, amdsmi_wrapper.amdsmi_processor_handle
|
||||
)
|
||||
|
||||
pm_metrics = ctypes.POINTER(struct_amdsmi_name_value_t);
|
||||
num_mets = ctypes.c_uint32;
|
||||
|
||||
_check_res(
|
||||
amdsmi_wrapper.amdsmi_get_gpu_pm_metrics_info(
|
||||
processor_handle, ctypes.byref(pm_metrics), ctypes.byref(num_mets)
|
||||
)
|
||||
)
|
||||
|
||||
results = []
|
||||
for i in range(num_mets.value):
|
||||
item = {
|
||||
'name': pm_metrics[i].name,
|
||||
'value': pm_metrics[i].value
|
||||
}
|
||||
results.append(item)
|
||||
amdsmi_wrapper.amdsmi_free_name_value_pairs(pm_metrics)
|
||||
return results
|
||||
|
||||
def amdsmi_get_gpu_reg_table_info(
|
||||
processor_handle: amdsmi_wrapper.amdsmi_processor_handle,
|
||||
reg_type: amdsmi_reg_type_t,
|
||||
) -> Dict[str, Any]:
|
||||
if not isinstance(processor_handle, amdsmi_wrapper.amdsmi_processor_handle):
|
||||
raise AmdSmiParameterException(
|
||||
processor_handle, amdsmi_wrapper.amdsmi_processor_handle
|
||||
)
|
||||
|
||||
reg_metrics = ctypes.POINTER(struct_amdsmi_name_value_t);
|
||||
num_regs = ctypes.c_uint32;
|
||||
|
||||
_check_res(
|
||||
amdsmi_wrapper.amdsmi_get_cpu_reg_table_info(
|
||||
processor_handle, reg_type, ctypes.byref(reg_metrics), ctypes.byref(num_regs)
|
||||
)
|
||||
)
|
||||
|
||||
results = []
|
||||
for i in range(num_regs.value):
|
||||
item = {
|
||||
'name': reg_metrics[i].name,
|
||||
'value': reg_metrics[i].value
|
||||
}
|
||||
results.append(item)
|
||||
amdsmi_wrapper.amdsmi_free_name_value_pairs(pm_metrics)
|
||||
return results
|
||||
|
||||
def amdsmi_get_gpu_vram_info(
|
||||
processor_handle: amdsmi_wrapper.amdsmi_processor_handle,
|
||||
|
||||
Referens i nytt ärende
Block a user