SWDEV-439217 - Updated amdsmi_get_gpu_asic_info python api

Signed-off-by: Maisam Arif <maisarif@amd.com>
Change-Id: Iafcfb10bec9a9a04574afdd95f10971f537e433b


[ROCm/amdsmi commit: 7a19dbbfe6]
Этот коммит содержится в:
Maisam Arif
2024-02-07 05:40:25 -06:00
коммит произвёл Maisam Arif
родитель 7bcdf63c18
Коммит aa633783aa
2 изменённых файлов: 38 добавлений и 21 удалений
-10
Просмотреть файл
@@ -323,16 +323,6 @@ class AMDSMICommands():
if args.asic:
try:
asic_info = amdsmi_interface.amdsmi_get_gpu_asic_info(args.gpu)
asic_info['vendor_id'] = hex(asic_info['vendor_id'])
asic_info['vendor_name'] = asic_info['vendor_name'].replace(',', '')
asic_info['device_id'] = hex(asic_info['device_id'])
asic_info['rev_id'] = hex(asic_info['rev_id'])
if asic_info['asic_serial'] != '':
asic_info['asic_serial'] = hex(int(asic_info['asic_serial'], base=16))
else:
asic_info['asic_serial'] = "N/A"
if asic_info['oam_id'] == 0xFFFF: # uint 16 max
asic_info['oam_id'] = "N/A"
static_dict['asic'] = asic_info
except amdsmi_exception.AmdSmiLibraryException as e:
static_dict['asic'] = "N/A"
+38 -11
Просмотреть файл
@@ -1562,23 +1562,50 @@ def amdsmi_get_gpu_asic_info(
processor_handle, amdsmi_wrapper.amdsmi_processor_handle
)
asic_info = amdsmi_wrapper.amdsmi_asic_info_t()
asic_info_struct = amdsmi_wrapper.amdsmi_asic_info_t()
_check_res(
amdsmi_wrapper.amdsmi_get_gpu_asic_info(
processor_handle, ctypes.byref(asic_info))
processor_handle, ctypes.byref(asic_info_struct))
)
return {
"market_name": asic_info.market_name.decode("utf-8"),
"vendor_id": asic_info.vendor_id,
"vendor_name": asic_info.vendor_name.decode("utf-8"),
"subvendor_id": asic_info.subvendor_id if asic_info.subvendor_id == '' else hex(asic_info.subvendor_id),
"device_id": asic_info.device_id,
"rev_id": asic_info.rev_id,
"asic_serial": asic_info.asic_serial.decode("utf-8"),
"oam_id": asic_info.oam_id
asic_info = {
"market_name": asic_info_struct.market_name.decode("utf-8"),
"vendor_id": asic_info_struct.vendor_id,
"vendor_name": asic_info_struct.vendor_name.decode("utf-8"),
"subvendor_id": asic_info_struct.subvendor_id,
"device_id": asic_info_struct.device_id,
"rev_id": asic_info_struct.rev_id,
"asic_serial": asic_info_struct.asic_serial.decode("utf-8"),
"oam_id": asic_info_struct.oam_id
}
string_values = ["market_name", "vendor_name"]
for value in string_values:
if not asic_info[value]:
asic_info[value] = "N/A"
hex_values = ["vendor_id", "subvendor_id", "device_id", "rev_id"]
for value in hex_values:
if asic_info[value]:
asic_info[value] = hex(asic_info[value])
else:
asic_info[value] = "N/A"
# Ensure hex output for asic_serial
if asic_info["asic_serial"]:
asic_info["asic_serial"] = str.format("0x{:016X}", int(asic_info["asic_serial"], base=16))
else:
asic_info["asic_serial"] = "N/A"
# Check for max value as a sign for not applicable
if asic_info["oam_id"] == 0xFFFF: # uint 16 max
asic_info["oam_id"] = "N/A"
# Remove commas from vendor name for clean output
asic_info["vendor_name"] = asic_info["vendor_name"].replace(',', '')
return asic_info
def amdsmi_get_power_cap_info(
processor_handle: amdsmi_wrapper.amdsmi_processor_handle,