From 51530324163ae160e8f13eeca64924a825dd7c14 Mon Sep 17 00:00:00 2001 From: Dalibor Stanisavljevic Date: Fri, 24 May 2024 13:34:26 +0200 Subject: [PATCH] SWDEV-457337 - Header aligment Missing AMDSMI_STATUS prefix Change-Id: I15d050a146c92f6897d48317d8fec51d046535d1 Signed-off-by: Dalibor Stanisavljevic [ROCm/amdsmi commit: 458dc8f180ce7cf2448d7c928bf89bde69829c83] --- projects/amdsmi/amdsmi_cli/amdsmi_commands.py | 12 +- .../docs/how-to/using-amdsmi-for-C++.rst | 2 +- .../docs/how-to/using-amdsmi-for-python.md | 4 +- projects/amdsmi/include/amd_smi/amdsmi.h | 47 +++-- .../include/amd_smi/impl/amd_smi_common.h | 33 ++- .../amdsmi/py-interface/amdsmi_exception.py | 18 +- .../amdsmi/py-interface/amdsmi_wrapper.py | 193 ++++++++++-------- projects/amdsmi/src/amd_smi/amd_smi.cc | 3 +- projects/amdsmi/src/amd_smi/amd_smi_common.cc | 12 ++ 9 files changed, 186 insertions(+), 138 deletions(-) diff --git a/projects/amdsmi/amdsmi_cli/amdsmi_commands.py b/projects/amdsmi/amdsmi_cli/amdsmi_commands.py index 653e5c42b8..ba2bf0755c 100644 --- a/projects/amdsmi/amdsmi_cli/amdsmi_commands.py +++ b/projects/amdsmi/amdsmi_cli/amdsmi_commands.py @@ -72,7 +72,7 @@ class AMDSMICommands(): self.cpu_handles = amdsmi_interface.amdsmi_get_cpusocket_handles() except amdsmi_exception.AmdSmiLibraryException as e: if e.err_code in (amdsmi_interface.amdsmi_wrapper.AMDSMI_STATUS_NOT_INIT, - amdsmi_interface.amdsmi_wrapper.AMDSMI_NO_DRV): + amdsmi_interface.amdsmi_wrapper.AMDSMI_STATUS_NO_DRV): logging.info('Unable to get CPU devices, amd_hsmp driver not loaded') else: raise e @@ -82,7 +82,7 @@ class AMDSMICommands(): self.core_handles = amdsmi_interface.amdsmi_get_cpucore_handles() except amdsmi_exception.AmdSmiLibraryException as e: if e.err_code in (amdsmi_interface.amdsmi_wrapper.AMDSMI_STATUS_NOT_INIT, - amdsmi_interface.amdsmi_wrapper.AMDSMI_NO_DRV): + amdsmi_interface.amdsmi_wrapper.AMDSMI_STATUS_NO_DRV): logging.info('Unable to get CORE devices, amd_hsmp driver not loaded') else: raise e @@ -694,12 +694,12 @@ class AMDSMICommands(): # Get vram type string vram_type_enum = vram_info['vram_type'] - if vram_type_enum == amdsmi_interface.amdsmi_wrapper.AMDSMI_VRAM_TYPE_GDDR6: - vram_type = "GDDR6" + if vram_type_enum == amdsmi_interface.amdsmi_wrapper.AMDSMI_VRAM_TYPE__MAX: + vram_type = "GDDR7" else: vram_type = amdsmi_interface.amdsmi_wrapper.amdsmi_vram_type_t__enumvalues[vram_type_enum] # Remove amdsmi enum prefix - vram_type = vram_type.replace('VRAM_TYPE_', '').replace('_', '') + vram_type = vram_type.replace('AMDSMI_VRAM_TYPE_', '').replace('_', '') # Get vram vendor string vram_vendor_enum = vram_info['vram_vendor'] @@ -944,7 +944,7 @@ class AMDSMICommands(): for fw_index, fw_entry in enumerate(fw_info['fw_list']): # Change fw_name to fw_id - fw_entry['fw_id'] = fw_entry.pop('fw_name').name.replace("FW_ID_", "") + fw_entry['fw_id'] = fw_entry.pop('fw_name').name.replace("AMDSMI_FW_ID_", "") fw_entry['fw_version'] = fw_entry.pop('fw_version') # popping to ensure order # Add custom human readable formatting diff --git a/projects/amdsmi/docs/how-to/using-amdsmi-for-C++.rst b/projects/amdsmi/docs/how-to/using-amdsmi-for-C++.rst index 9428bc99cb..1b5f736f3b 100644 --- a/projects/amdsmi/docs/how-to/using-amdsmi-for-C++.rst +++ b/projects/amdsmi/docs/how-to/using-amdsmi-for-C++.rst @@ -86,7 +86,7 @@ When AMD SMI is no longer used, `amdsmi_shut_down()` should be called. This prov // Get temperature int64_t val_i64 = 0; - ret = amdsmi_get_temp_metric(processor_handles[j], TEMPERATURE_TYPE_EDGE, + ret = amdsmi_get_temp_metric(processor_handles[j], AMDSMI_TEMPERATURE_TYPE_EDGE, AMDSMI_TEMP_CURRENT, &val_i64); std::cout << "\t\tTemperature: " << val_i64 << "C" << std::endl; } diff --git a/projects/amdsmi/docs/how-to/using-amdsmi-for-python.md b/projects/amdsmi/docs/how-to/using-amdsmi-for-python.md index 9ebf63220a..3de73eb354 100644 --- a/projects/amdsmi/docs/how-to/using-amdsmi-for-python.md +++ b/projects/amdsmi/docs/how-to/using-amdsmi-for-python.md @@ -470,7 +470,7 @@ Field | Description ---|--- `vram_type` | vram type `vram_vendor` | vram vendor -`vram_size_mb` | vram size in mb +`vram_size` | vram size in mb Exceptions that can be thrown by `amdsmi_get_gpu_vram_info` function: @@ -490,7 +490,7 @@ try: vram_info = amdsmi_get_gpu_vram_info(device) print(vram_info['vram_type']) print(vram_info['vram_vendor']) - print(vram_info['vram_size_mb']) + print(vram_info['vram_size']) except AmdSmiException as e: print(e) ``` diff --git a/projects/amdsmi/include/amd_smi/amdsmi.h b/projects/amdsmi/include/amd_smi/amdsmi.h index d9793cea82..6dd9e3fe5f 100644 --- a/projects/amdsmi/include/amd_smi/amdsmi.h +++ b/projects/amdsmi/include/amd_smi/amdsmi.h @@ -238,15 +238,15 @@ typedef enum { AMDSMI_STATUS_UNEXPECTED_DATA = 43, //!< The data read or provided to function is not what was expected //esmi errors AMDSMI_STATUS_NON_AMD_CPU = 44, //!< System has different cpu than AMD - AMDSMI_NO_ENERGY_DRV = 45, //!< Energy driver not found - AMDSMI_NO_MSR_DRV = 46, //!< MSR driver not found - AMDSMI_NO_HSMP_DRV = 47, //!< HSMP driver not found - AMDSMI_NO_HSMP_SUP = 48, //!< HSMP not supported - AMDSMI_NO_HSMP_MSG_SUP = 49, //!< HSMP message/feature not supported - AMDSMI_HSMP_TIMEOUT = 50, //!< HSMP message is timedout - AMDSMI_NO_DRV = 51, //!< No Energy and HSMP driver present - AMDSMI_FILE_NOT_FOUND = 52, //!< file or directory not found - AMDSMI_ARG_PTR_NULL = 53, //!< Parsed argument is invalid + AMDSMI_STATUS_NO_ENERGY_DRV = 45, //!< Energy driver not found + AMDSMI_STATUS_NO_MSR_DRV = 46, //!< MSR driver not found + AMDSMI_STATUS_NO_HSMP_DRV = 47, //!< HSMP driver not found + AMDSMI_STATUS_NO_HSMP_SUP = 48, //!< HSMP not supported + AMDSMI_STATUS_NO_HSMP_MSG_SUP = 49, //!< HSMP message/feature not supported + AMDSMI_STATUS_HSMP_TIMEOUT = 50, //!< HSMP message is timedout + AMDSMI_STATUS_NO_DRV = 51, //!< No Energy and HSMP driver present + AMDSMI_STATUS_FILE_NOT_FOUND = 52, //!< file or directory not found + AMDSMI_STATUS_ARG_PTR_NULL = 53, //!< Parsed argument is invalid AMDSMI_STATUS_AMDGPU_RESTART_ERR = 54, //!< AMDGPU restart failed AMDSMI_STATUS_SETTING_UNAVAILABLE = 55, //!< Setting is not available @@ -419,19 +419,26 @@ typedef enum { AMDSMI_FW_ID__MAX } amdsmi_fw_block_t; - typedef enum { AMDSMI_VRAM_TYPE_UNKNOWN = 0, - AMDSMI_VRAM_TYPE_GDDR1 = 1, - AMDSMI_VRAM_TYPE_DDR2 = 2, - AMDSMI_VRAM_TYPE_GDDR3 = 3, - AMDSMI_VRAM_TYPE_GDDR4 = 4, - AMDSMI_VRAM_TYPE_GDDR5 = 5, - AMDSMI_VRAM_TYPE_HBM = 6, - AMDSMI_VRAM_TYPE_DDR3 = 7, - AMDSMI_VRAM_TYPE_DDR4 = 8, - AMDSMI_VRAM_TYPE_GDDR6 = 9, - AMDSMI_VRAM_TYPE__MAX = AMDSMI_VRAM_TYPE_GDDR6 + // HBM + AMDSMI_VRAM_TYPE_HBM = 1, + AMDSMI_VRAM_TYPE_HBM2 = 2, + AMDSMI_VRAM_TYPE_HBM2E = 3, + AMDSMI_VRAM_TYPE_HBM3 = 4, + // DDR + AMDSMI_VRAM_TYPE_DDR2 = 10, + AMDSMI_VRAM_TYPE_DDR3 = 11, + AMDSMI_VRAM_TYPE_DDR4 = 12, + // GDDR + AMDSMI_VRAM_TYPE_GDDR1 = 17, + AMDSMI_VRAM_TYPE_GDDR2 = 18, + AMDSMI_VRAM_TYPE_GDDR3 = 19, + AMDSMI_VRAM_TYPE_GDDR4 = 20, + AMDSMI_VRAM_TYPE_GDDR5 = 21, + AMDSMI_VRAM_TYPE_GDDR6 = 22, + AMDSMI_VRAM_TYPE_GDDR7 = 23, + AMDSMI_VRAM_TYPE__MAX = AMDSMI_VRAM_TYPE_GDDR7 } amdsmi_vram_type_t; typedef enum { diff --git a/projects/amdsmi/include/amd_smi/impl/amd_smi_common.h b/projects/amdsmi/include/amd_smi/impl/amd_smi_common.h index 16362a157a..6d4be4b364 100644 --- a/projects/amdsmi/include/amd_smi/impl/amd_smi_common.h +++ b/projects/amdsmi/include/amd_smi/impl/amd_smi_common.h @@ -77,8 +77,23 @@ const std::map rsmi_status_map = { {RSMI_STATUS_UNKNOWN_ERROR, AMDSMI_STATUS_UNKNOWN_ERROR}, }; +const std::map vram_type_map = { + {0, AMDSMI_VRAM_TYPE_UNKNOWN}, + {1, AMDSMI_VRAM_TYPE_GDDR1}, + {2, AMDSMI_VRAM_TYPE_DDR2}, + {3, AMDSMI_VRAM_TYPE_GDDR3}, + {4, AMDSMI_VRAM_TYPE_GDDR4}, + {5, AMDSMI_VRAM_TYPE_GDDR5}, + {6, AMDSMI_VRAM_TYPE_HBM}, + {7, AMDSMI_VRAM_TYPE_DDR3}, + {8, AMDSMI_VRAM_TYPE_DDR4}, + {9, AMDSMI_VRAM_TYPE_GDDR6}, +}; + amdsmi_status_t rsmi_to_amdsmi_status(rsmi_status_t status); +amdsmi_vram_type_t vram_type_value(unsigned type); + #ifdef ENABLE_ESMI_LIB // Define a map of esmi status codes to amdsmi status codes const std::map esmi_status_map = { @@ -95,15 +110,15 @@ const std::map esmi_status_map = { {ESMI_NOT_INITIALIZED, AMDSMI_STATUS_NOT_INIT}, {ESMI_UNEXPECTED_SIZE, AMDSMI_STATUS_UNEXPECTED_SIZE}, {ESMI_UNKNOWN_ERROR, AMDSMI_STATUS_UNKNOWN_ERROR}, - {ESMI_NO_ENERGY_DRV, AMDSMI_NO_ENERGY_DRV}, - {ESMI_NO_MSR_DRV, AMDSMI_NO_MSR_DRV}, - {ESMI_NO_HSMP_DRV, AMDSMI_NO_HSMP_DRV}, - {ESMI_NO_HSMP_SUP, AMDSMI_NO_HSMP_SUP}, - {ESMI_NO_DRV, AMDSMI_NO_DRV}, - {ESMI_FILE_NOT_FOUND, AMDSMI_FILE_NOT_FOUND}, - {ESMI_ARG_PTR_NULL, AMDSMI_ARG_PTR_NULL}, - {ESMI_HSMP_TIMEOUT, AMDSMI_HSMP_TIMEOUT}, - {ESMI_NO_HSMP_MSG_SUP, AMDSMI_NO_HSMP_MSG_SUP}, + {ESMI_NO_ENERGY_DRV, AMDSMI_STATUS_NO_ENERGY_DRV}, + {ESMI_NO_MSR_DRV, AMDSMI_STATUS_NO_MSR_DRV}, + {ESMI_NO_HSMP_DRV, AMDSMI_STATUS_NO_HSMP_DRV}, + {ESMI_NO_HSMP_SUP, AMDSMI_STATUS_NO_HSMP_SUP}, + {ESMI_NO_DRV, AMDSMI_STATUS_NO_DRV}, + {ESMI_FILE_NOT_FOUND, AMDSMI_STATUS_FILE_NOT_FOUND}, + {ESMI_ARG_PTR_NULL, AMDSMI_STATUS_ARG_PTR_NULL}, + {ESMI_HSMP_TIMEOUT, AMDSMI_STATUS_HSMP_TIMEOUT}, + {ESMI_NO_HSMP_MSG_SUP, AMDSMI_STATUS_NO_HSMP_MSG_SUP}, }; amdsmi_status_t esmi_to_amdsmi_status(esmi_status_t status); diff --git a/projects/amdsmi/py-interface/amdsmi_exception.py b/projects/amdsmi/py-interface/amdsmi_exception.py index 309831101b..ae07cdbe44 100644 --- a/projects/amdsmi/py-interface/amdsmi_exception.py +++ b/projects/amdsmi/py-interface/amdsmi_exception.py @@ -78,15 +78,15 @@ class AmdSmiLibraryException(AmdSmiException): amdsmi_wrapper.AMDSMI_STATUS_UNEXPECTED_SIZE : "AMDSMI_STATUS_UNEXPECTED_SIZE - unexpected size of data was read", amdsmi_wrapper.AMDSMI_STATUS_UNEXPECTED_DATA : "AMDSMI_STATUS_UNEXPECTED_DATA - The data read or provided was unexpected", amdsmi_wrapper.AMDSMI_STATUS_NON_AMD_CPU : "AMDSMI_STATUS_NON_AMD_CPU - System has non-AMD CPU", - amdsmi_wrapper.AMDSMI_NO_ENERGY_DRV : "AMD_SMI_NO_ENERGY_DRV - Energy driver not found", - amdsmi_wrapper.AMDSMI_NO_MSR_DRV : "AMDSMI_NO_MSR_DRV - MSR driver not found", - amdsmi_wrapper.AMDSMI_NO_HSMP_DRV : "AMD_SMI_NO_HSMP_DRV - HSMP driver not found", - amdsmi_wrapper.AMDSMI_NO_HSMP_SUP : "AMD_SMI_NO_HSMP_SUP - HSMP not supported", - amdsmi_wrapper.AMDSMI_NO_HSMP_MSG_SUP : "AMD_SMI_NO_HSMP_MSG_SUP - HSMP message/feature not supported", - amdsmi_wrapper.AMDSMI_HSMP_TIMEOUT : "AMD_SMI_HSMP_TIMEOUT - HSMP message timeout", - amdsmi_wrapper.AMDSMI_NO_DRV : "AMDSMI_NO_DRV - No Energy and HSMP driver present", - amdsmi_wrapper.AMDSMI_FILE_NOT_FOUND : "AMDSMI_FILE_NOT_FOUND - File or directory not found", - amdsmi_wrapper.AMDSMI_ARG_PTR_NULL : "AMDSMI_ARG_PTR_NULL - Parsed argument is invalid", + amdsmi_wrapper.AMDSMI_STATUS_NO_ENERGY_DRV : "AMD_SMI_NO_ENERGY_DRV - Energy driver not found", + amdsmi_wrapper.AMDSMI_STATUS_NO_MSR_DRV : "AMDSMI_STATUS_NO_MSR_DRV - MSR driver not found", + amdsmi_wrapper.AMDSMI_STATUS_NO_HSMP_DRV : "AMD_SMI_NO_HSMP_DRV - HSMP driver not found", + amdsmi_wrapper.AMDSMI_STATUS_NO_HSMP_SUP : "AMD_SMI_NO_HSMP_SUP - HSMP not supported", + amdsmi_wrapper.AMDSMI_STATUS_NO_HSMP_MSG_SUP : "AMD_SMI_NO_HSMP_MSG_SUP - HSMP message/feature not supported", + amdsmi_wrapper.AMDSMI_STATUS_HSMP_TIMEOUT : "AMD_SMI_HSMP_TIMEOUT - HSMP message timeout", + amdsmi_wrapper.AMDSMI_STATUS_NO_DRV : "AMDSMI_STATUS_NO_DRV - No Energy and HSMP driver present", + amdsmi_wrapper.AMDSMI_STATUS_FILE_NOT_FOUND : "AMDSMI_STATUS_FILE_NOT_FOUND - File or directory not found", + amdsmi_wrapper.AMDSMI_STATUS_ARG_PTR_NULL : "AMDSMI_STATUS_ARG_PTR_NULL - Parsed argument is invalid", amdsmi_wrapper.AMDSMI_STATUS_MAP_ERROR : "AMDSMI_STATUS_MAP_ERROR - The internal library error did not map to a status code", amdsmi_wrapper.AMDSMI_STATUS_UNKNOWN_ERROR : "AMDSMI_STATUS_UNKNOWN_ERROR - An unknown error occurred" } diff --git a/projects/amdsmi/py-interface/amdsmi_wrapper.py b/projects/amdsmi/py-interface/amdsmi_wrapper.py index e5c9f0e964..bb431ec0ef 100644 --- a/projects/amdsmi/py-interface/amdsmi_wrapper.py +++ b/projects/amdsmi/py-interface/amdsmi_wrapper.py @@ -287,15 +287,15 @@ amdsmi_status_t__enumvalues = { 42: 'AMDSMI_STATUS_UNEXPECTED_SIZE', 43: 'AMDSMI_STATUS_UNEXPECTED_DATA', 44: 'AMDSMI_STATUS_NON_AMD_CPU', - 45: 'AMDSMI_NO_ENERGY_DRV', - 46: 'AMDSMI_NO_MSR_DRV', - 47: 'AMDSMI_NO_HSMP_DRV', - 48: 'AMDSMI_NO_HSMP_SUP', - 49: 'AMDSMI_NO_HSMP_MSG_SUP', - 50: 'AMDSMI_HSMP_TIMEOUT', - 51: 'AMDSMI_NO_DRV', - 52: 'AMDSMI_FILE_NOT_FOUND', - 53: 'AMDSMI_ARG_PTR_NULL', + 45: 'AMDSMI_STATUS_NO_ENERGY_DRV', + 46: 'AMDSMI_STATUS_NO_MSR_DRV', + 47: 'AMDSMI_STATUS_NO_HSMP_DRV', + 48: 'AMDSMI_STATUS_NO_HSMP_SUP', + 49: 'AMDSMI_STATUS_NO_HSMP_MSG_SUP', + 50: 'AMDSMI_STATUS_HSMP_TIMEOUT', + 51: 'AMDSMI_STATUS_NO_DRV', + 52: 'AMDSMI_STATUS_FILE_NOT_FOUND', + 53: 'AMDSMI_STATUS_ARG_PTR_NULL', 54: 'AMDSMI_STATUS_AMDGPU_RESTART_ERR', 55: 'AMDSMI_STATUS_SETTING_UNAVAILABLE', 4294967294: 'AMDSMI_STATUS_MAP_ERROR', @@ -331,15 +331,15 @@ AMDSMI_STATUS_INSUFFICIENT_SIZE = 41 AMDSMI_STATUS_UNEXPECTED_SIZE = 42 AMDSMI_STATUS_UNEXPECTED_DATA = 43 AMDSMI_STATUS_NON_AMD_CPU = 44 -AMDSMI_NO_ENERGY_DRV = 45 -AMDSMI_NO_MSR_DRV = 46 -AMDSMI_NO_HSMP_DRV = 47 -AMDSMI_NO_HSMP_SUP = 48 -AMDSMI_NO_HSMP_MSG_SUP = 49 -AMDSMI_HSMP_TIMEOUT = 50 -AMDSMI_NO_DRV = 51 -AMDSMI_FILE_NOT_FOUND = 52 -AMDSMI_ARG_PTR_NULL = 53 +AMDSMI_STATUS_NO_ENERGY_DRV = 45 +AMDSMI_STATUS_NO_MSR_DRV = 46 +AMDSMI_STATUS_NO_HSMP_DRV = 47 +AMDSMI_STATUS_NO_HSMP_SUP = 48 +AMDSMI_STATUS_NO_HSMP_MSG_SUP = 49 +AMDSMI_STATUS_HSMP_TIMEOUT = 50 +AMDSMI_STATUS_NO_DRV = 51 +AMDSMI_STATUS_FILE_NOT_FOUND = 52 +AMDSMI_STATUS_ARG_PTR_NULL = 53 AMDSMI_STATUS_AMDGPU_RESTART_ERR = 54 AMDSMI_STATUS_SETTING_UNAVAILABLE = 55 AMDSMI_STATUS_MAP_ERROR = 4294967294 @@ -604,28 +604,38 @@ amdsmi_fw_block_t = ctypes.c_uint32 # enum # values for enumeration 'amdsmi_vram_type_t' amdsmi_vram_type_t__enumvalues = { 0: 'AMDSMI_VRAM_TYPE_UNKNOWN', - 1: 'AMDSMI_VRAM_TYPE_GDDR1', - 2: 'AMDSMI_VRAM_TYPE_DDR2', - 3: 'AMDSMI_VRAM_TYPE_GDDR3', - 4: 'AMDSMI_VRAM_TYPE_GDDR4', - 5: 'AMDSMI_VRAM_TYPE_GDDR5', - 6: 'AMDSMI_VRAM_TYPE_HBM', - 7: 'AMDSMI_VRAM_TYPE_DDR3', - 8: 'AMDSMI_VRAM_TYPE_DDR4', - 9: 'AMDSMI_VRAM_TYPE_GDDR6', - 9: 'AMDSMI_VRAM_TYPE__MAX', + 1: 'AMDSMI_VRAM_TYPE_HBM', + 2: 'AMDSMI_VRAM_TYPE_HBM2', + 3: 'AMDSMI_VRAM_TYPE_HBM2E', + 4: 'AMDSMI_VRAM_TYPE_HBM3', + 10: 'AMDSMI_VRAM_TYPE_DDR2', + 11: 'AMDSMI_VRAM_TYPE_DDR3', + 12: 'AMDSMI_VRAM_TYPE_DDR4', + 17: 'AMDSMI_VRAM_TYPE_GDDR1', + 18: 'AMDSMI_VRAM_TYPE_GDDR2', + 19: 'AMDSMI_VRAM_TYPE_GDDR3', + 20: 'AMDSMI_VRAM_TYPE_GDDR4', + 21: 'AMDSMI_VRAM_TYPE_GDDR5', + 22: 'AMDSMI_VRAM_TYPE_GDDR6', + 23: 'AMDSMI_VRAM_TYPE_GDDR7', + 23: 'AMDSMI_VRAM_TYPE__MAX', } AMDSMI_VRAM_TYPE_UNKNOWN = 0 -AMDSMI_VRAM_TYPE_GDDR1 = 1 -AMDSMI_VRAM_TYPE_DDR2 = 2 -AMDSMI_VRAM_TYPE_GDDR3 = 3 -AMDSMI_VRAM_TYPE_GDDR4 = 4 -AMDSMI_VRAM_TYPE_GDDR5 = 5 -AMDSMI_VRAM_TYPE_HBM = 6 -AMDSMI_VRAM_TYPE_DDR3 = 7 -AMDSMI_VRAM_TYPE_DDR4 = 8 -AMDSMI_VRAM_TYPE_GDDR6 = 9 -AMDSMI_VRAM_TYPE__MAX = 9 +AMDSMI_VRAM_TYPE_HBM = 1 +AMDSMI_VRAM_TYPE_HBM2 = 2 +AMDSMI_VRAM_TYPE_HBM2E = 3 +AMDSMI_VRAM_TYPE_HBM3 = 4 +AMDSMI_VRAM_TYPE_DDR2 = 10 +AMDSMI_VRAM_TYPE_DDR3 = 11 +AMDSMI_VRAM_TYPE_DDR4 = 12 +AMDSMI_VRAM_TYPE_GDDR1 = 17 +AMDSMI_VRAM_TYPE_GDDR2 = 18 +AMDSMI_VRAM_TYPE_GDDR3 = 19 +AMDSMI_VRAM_TYPE_GDDR4 = 20 +AMDSMI_VRAM_TYPE_GDDR5 = 21 +AMDSMI_VRAM_TYPE_GDDR6 = 22 +AMDSMI_VRAM_TYPE_GDDR7 = 23 +AMDSMI_VRAM_TYPE__MAX = 23 amdsmi_vram_type_t = ctypes.c_uint32 # enum # values for enumeration 'amdsmi_vram_vendor_type_t' @@ -1017,16 +1027,6 @@ amdsmi_process_handle_t = ctypes.c_uint32 class struct_amdsmi_proc_info_t(Structure): pass -class struct_engine_usage_(Structure): - pass - -struct_engine_usage_._pack_ = 1 # source:False -struct_engine_usage_._fields_ = [ - ('gfx', ctypes.c_uint64), - ('enc', ctypes.c_uint64), - ('reserved', ctypes.c_uint32 * 12), -] - class struct_memory_usage_(Structure): pass @@ -1038,6 +1038,16 @@ struct_memory_usage_._fields_ = [ ('reserved', ctypes.c_uint32 * 10), ] +class struct_engine_usage_(Structure): + pass + +struct_engine_usage_._pack_ = 1 # source:False +struct_engine_usage_._fields_ = [ + ('gfx', ctypes.c_uint64), + ('enc', ctypes.c_uint64), + ('reserved', ctypes.c_uint32 * 12), +] + struct_amdsmi_proc_info_t._pack_ = 1 # source:False struct_amdsmi_proc_info_t._fields_ = [ ('name', ctypes.c_char * 32), @@ -2367,7 +2377,7 @@ amdsmi_get_esmi_err_msg = _libraries['libamd_smi.so'].amdsmi_get_esmi_err_msg amdsmi_get_esmi_err_msg.restype = amdsmi_status_t amdsmi_get_esmi_err_msg.argtypes = [amdsmi_status_t, ctypes.POINTER(ctypes.POINTER(ctypes.c_char))] __all__ = \ - ['AGG_BW0', 'AMDSMI_ARG_PTR_NULL', 'AMDSMI_AVERAGE_POWER', + ['AGG_BW0', 'AMDSMI_AVERAGE_POWER', 'AMDSMI_CACHE_PROPERTY_CPU_CACHE', 'AMDSMI_CACHE_PROPERTY_DATA_CACHE', 'AMDSMI_CACHE_PROPERTY_ENABLED', @@ -2414,26 +2424,25 @@ __all__ = \ 'AMDSMI_EVT_NOTIF_GPU_PRE_RESET', 'AMDSMI_EVT_NOTIF_LAST', 'AMDSMI_EVT_NOTIF_NONE', 'AMDSMI_EVT_NOTIF_RING_HANG', 'AMDSMI_EVT_NOTIF_THERMAL_THROTTLE', 'AMDSMI_EVT_NOTIF_VMFAULT', - 'AMDSMI_FILE_NOT_FOUND', 'AMDSMI_FREQ_IND_INVALID', - 'AMDSMI_FREQ_IND_MAX', 'AMDSMI_FREQ_IND_MIN', 'AMDSMI_FW_ID_ASD', - 'AMDSMI_FW_ID_CP_CE', 'AMDSMI_FW_ID_CP_ME', - 'AMDSMI_FW_ID_CP_MEC1', 'AMDSMI_FW_ID_CP_MEC2', - 'AMDSMI_FW_ID_CP_MEC_JT1', 'AMDSMI_FW_ID_CP_MEC_JT2', - 'AMDSMI_FW_ID_CP_MES', 'AMDSMI_FW_ID_CP_PFP', - 'AMDSMI_FW_ID_CP_PM4', 'AMDSMI_FW_ID_DFC', 'AMDSMI_FW_ID_DMCU', - 'AMDSMI_FW_ID_DMCU_ERAM', 'AMDSMI_FW_ID_DMCU_ISR', - 'AMDSMI_FW_ID_DRV_CAP', 'AMDSMI_FW_ID_FIRST', - 'AMDSMI_FW_ID_IMU_DRAM', 'AMDSMI_FW_ID_IMU_IRAM', - 'AMDSMI_FW_ID_ISP', 'AMDSMI_FW_ID_MC', 'AMDSMI_FW_ID_MES_KIQ', - 'AMDSMI_FW_ID_MES_STACK', 'AMDSMI_FW_ID_MES_THREAD1', - 'AMDSMI_FW_ID_MES_THREAD1_STACK', 'AMDSMI_FW_ID_MMSCH', - 'AMDSMI_FW_ID_PM', 'AMDSMI_FW_ID_PPTABLE', 'AMDSMI_FW_ID_PSP_BL', - 'AMDSMI_FW_ID_PSP_DBG', 'AMDSMI_FW_ID_PSP_INTF', - 'AMDSMI_FW_ID_PSP_KEYDB', 'AMDSMI_FW_ID_PSP_SOC', - 'AMDSMI_FW_ID_PSP_SOSDRV', 'AMDSMI_FW_ID_PSP_SPL', - 'AMDSMI_FW_ID_PSP_SYSDRV', 'AMDSMI_FW_ID_PSP_TOC', - 'AMDSMI_FW_ID_REG_ACCESS_WHITELIST', 'AMDSMI_FW_ID_RLC', - 'AMDSMI_FW_ID_RLCV_LX7', 'AMDSMI_FW_ID_RLC_P', + 'AMDSMI_FREQ_IND_INVALID', 'AMDSMI_FREQ_IND_MAX', + 'AMDSMI_FREQ_IND_MIN', 'AMDSMI_FW_ID_ASD', 'AMDSMI_FW_ID_CP_CE', + 'AMDSMI_FW_ID_CP_ME', 'AMDSMI_FW_ID_CP_MEC1', + 'AMDSMI_FW_ID_CP_MEC2', 'AMDSMI_FW_ID_CP_MEC_JT1', + 'AMDSMI_FW_ID_CP_MEC_JT2', 'AMDSMI_FW_ID_CP_MES', + 'AMDSMI_FW_ID_CP_PFP', 'AMDSMI_FW_ID_CP_PM4', 'AMDSMI_FW_ID_DFC', + 'AMDSMI_FW_ID_DMCU', 'AMDSMI_FW_ID_DMCU_ERAM', + 'AMDSMI_FW_ID_DMCU_ISR', 'AMDSMI_FW_ID_DRV_CAP', + 'AMDSMI_FW_ID_FIRST', 'AMDSMI_FW_ID_IMU_DRAM', + 'AMDSMI_FW_ID_IMU_IRAM', 'AMDSMI_FW_ID_ISP', 'AMDSMI_FW_ID_MC', + 'AMDSMI_FW_ID_MES_KIQ', 'AMDSMI_FW_ID_MES_STACK', + 'AMDSMI_FW_ID_MES_THREAD1', 'AMDSMI_FW_ID_MES_THREAD1_STACK', + 'AMDSMI_FW_ID_MMSCH', 'AMDSMI_FW_ID_PM', 'AMDSMI_FW_ID_PPTABLE', + 'AMDSMI_FW_ID_PSP_BL', 'AMDSMI_FW_ID_PSP_DBG', + 'AMDSMI_FW_ID_PSP_INTF', 'AMDSMI_FW_ID_PSP_KEYDB', + 'AMDSMI_FW_ID_PSP_SOC', 'AMDSMI_FW_ID_PSP_SOSDRV', + 'AMDSMI_FW_ID_PSP_SPL', 'AMDSMI_FW_ID_PSP_SYSDRV', + 'AMDSMI_FW_ID_PSP_TOC', 'AMDSMI_FW_ID_REG_ACCESS_WHITELIST', + 'AMDSMI_FW_ID_RLC', 'AMDSMI_FW_ID_RLCV_LX7', 'AMDSMI_FW_ID_RLC_P', 'AMDSMI_FW_ID_RLC_RESTORE_LIST_CNTL', 'AMDSMI_FW_ID_RLC_RESTORE_LIST_GPM_MEM', 'AMDSMI_FW_ID_RLC_RESTORE_LIST_SRM_MEM', @@ -2465,11 +2474,11 @@ __all__ = \ 'AMDSMI_GPU_BLOCK_RESERVED', 'AMDSMI_GPU_BLOCK_SDMA', 'AMDSMI_GPU_BLOCK_SEM', 'AMDSMI_GPU_BLOCK_SMN', 'AMDSMI_GPU_BLOCK_UMC', 'AMDSMI_GPU_BLOCK_VCN', - 'AMDSMI_GPU_BLOCK_XGMI_WAFL', 'AMDSMI_HSMP_TIMEOUT', - 'AMDSMI_INIT_ALL_PROCESSORS', 'AMDSMI_INIT_AMD_APUS', - 'AMDSMI_INIT_AMD_CPUS', 'AMDSMI_INIT_AMD_GPUS', - 'AMDSMI_INIT_NON_AMD_CPUS', 'AMDSMI_INIT_NON_AMD_GPUS', - 'AMDSMI_INVALID_POWER', 'AMDSMI_IOLINK_TYPE_NUMIOLINKTYPES', + 'AMDSMI_GPU_BLOCK_XGMI_WAFL', 'AMDSMI_INIT_ALL_PROCESSORS', + 'AMDSMI_INIT_AMD_APUS', 'AMDSMI_INIT_AMD_CPUS', + 'AMDSMI_INIT_AMD_GPUS', 'AMDSMI_INIT_NON_AMD_CPUS', + 'AMDSMI_INIT_NON_AMD_GPUS', 'AMDSMI_INVALID_POWER', + 'AMDSMI_IOLINK_TYPE_NUMIOLINKTYPES', 'AMDSMI_IOLINK_TYPE_PCIEXPRESS', 'AMDSMI_IOLINK_TYPE_SIZE', 'AMDSMI_IOLINK_TYPE_UNDEFINED', 'AMDSMI_IOLINK_TYPE_XGMI', 'AMDSMI_LINK_TYPE_NOT_APPLICABLE', 'AMDSMI_LINK_TYPE_PCIE', @@ -2483,10 +2492,8 @@ __all__ = \ 'AMDSMI_MEM_TYPE_GTT', 'AMDSMI_MEM_TYPE_LAST', 'AMDSMI_MEM_TYPE_VIS_VRAM', 'AMDSMI_MEM_TYPE_VRAM', 'AMDSMI_MM_UVD', 'AMDSMI_MM_VCE', 'AMDSMI_MM_VCN', - 'AMDSMI_MM__MAX', 'AMDSMI_NO_DRV', 'AMDSMI_NO_ENERGY_DRV', - 'AMDSMI_NO_HSMP_DRV', 'AMDSMI_NO_HSMP_MSG_SUP', - 'AMDSMI_NO_HSMP_SUP', 'AMDSMI_NO_MSR_DRV', - 'AMDSMI_PROCESSOR_TYPE_AMD_APU', 'AMDSMI_PROCESSOR_TYPE_AMD_CPU', + 'AMDSMI_MM__MAX', 'AMDSMI_PROCESSOR_TYPE_AMD_APU', + 'AMDSMI_PROCESSOR_TYPE_AMD_CPU', 'AMDSMI_PROCESSOR_TYPE_AMD_CPU_CORE', 'AMDSMI_PROCESSOR_TYPE_AMD_GPU', 'AMDSMI_PROCESSOR_TYPE_NON_AMD_CPU', @@ -2507,9 +2514,11 @@ __all__ = \ 'AMDSMI_REG_USR', 'AMDSMI_REG_USR1', 'AMDSMI_REG_WAFL', 'AMDSMI_REG_XGMI', 'AMDSMI_STATUS_ADDRESS_FAULT', 'AMDSMI_STATUS_AMDGPU_RESTART_ERR', 'AMDSMI_STATUS_API_FAILED', - 'AMDSMI_STATUS_BUSY', 'AMDSMI_STATUS_DRIVER_NOT_LOADED', - 'AMDSMI_STATUS_DRM_ERROR', 'AMDSMI_STATUS_FAIL_LOAD_MODULE', + 'AMDSMI_STATUS_ARG_PTR_NULL', 'AMDSMI_STATUS_BUSY', + 'AMDSMI_STATUS_DRIVER_NOT_LOADED', 'AMDSMI_STATUS_DRM_ERROR', + 'AMDSMI_STATUS_FAIL_LOAD_MODULE', 'AMDSMI_STATUS_FAIL_LOAD_SYMBOL', 'AMDSMI_STATUS_FILE_ERROR', + 'AMDSMI_STATUS_FILE_NOT_FOUND', 'AMDSMI_STATUS_HSMP_TIMEOUT', 'AMDSMI_STATUS_INIT_ERROR', 'AMDSMI_STATUS_INPUT_OUT_OF_BOUNDS', 'AMDSMI_STATUS_INSUFFICIENT_SIZE', 'AMDSMI_STATUS_INTERNAL_EXCEPTION', 'AMDSMI_STATUS_INTERRUPT', @@ -2518,6 +2527,9 @@ __all__ = \ 'AMDSMI_STATUS_NOT_FOUND', 'AMDSMI_STATUS_NOT_INIT', 'AMDSMI_STATUS_NOT_SUPPORTED', 'AMDSMI_STATUS_NOT_YET_IMPLEMENTED', 'AMDSMI_STATUS_NO_DATA', + 'AMDSMI_STATUS_NO_DRV', 'AMDSMI_STATUS_NO_ENERGY_DRV', + 'AMDSMI_STATUS_NO_HSMP_DRV', 'AMDSMI_STATUS_NO_HSMP_MSG_SUP', + 'AMDSMI_STATUS_NO_HSMP_SUP', 'AMDSMI_STATUS_NO_MSR_DRV', 'AMDSMI_STATUS_NO_PERM', 'AMDSMI_STATUS_NO_SLOT', 'AMDSMI_STATUS_OUT_OF_RESOURCES', 'AMDSMI_STATUS_REFCOUNT_OVERFLOW', 'AMDSMI_STATUS_RETRY', @@ -2546,14 +2558,17 @@ __all__ = \ 'AMDSMI_VOLT_TYPE_LAST', 'AMDSMI_VOLT_TYPE_VDDGFX', 'AMDSMI_VRAM_TYPE_DDR2', 'AMDSMI_VRAM_TYPE_DDR3', 'AMDSMI_VRAM_TYPE_DDR4', 'AMDSMI_VRAM_TYPE_GDDR1', - 'AMDSMI_VRAM_TYPE_GDDR3', 'AMDSMI_VRAM_TYPE_GDDR4', - 'AMDSMI_VRAM_TYPE_GDDR5', 'AMDSMI_VRAM_TYPE_GDDR6', - 'AMDSMI_VRAM_TYPE_HBM', 'AMDSMI_VRAM_TYPE_UNKNOWN', - 'AMDSMI_VRAM_TYPE__MAX', 'AMDSMI_VRAM_VENDOR__ELPIDA', - 'AMDSMI_VRAM_VENDOR__ESMT', 'AMDSMI_VRAM_VENDOR__ETRON', - 'AMDSMI_VRAM_VENDOR__HYNIX', 'AMDSMI_VRAM_VENDOR__INFINEON', - 'AMDSMI_VRAM_VENDOR__MICRON', 'AMDSMI_VRAM_VENDOR__MOSEL', - 'AMDSMI_VRAM_VENDOR__NANYA', 'AMDSMI_VRAM_VENDOR__PLACEHOLDER0', + 'AMDSMI_VRAM_TYPE_GDDR2', 'AMDSMI_VRAM_TYPE_GDDR3', + 'AMDSMI_VRAM_TYPE_GDDR4', 'AMDSMI_VRAM_TYPE_GDDR5', + 'AMDSMI_VRAM_TYPE_GDDR6', 'AMDSMI_VRAM_TYPE_GDDR7', + 'AMDSMI_VRAM_TYPE_HBM', 'AMDSMI_VRAM_TYPE_HBM2', + 'AMDSMI_VRAM_TYPE_HBM2E', 'AMDSMI_VRAM_TYPE_HBM3', + 'AMDSMI_VRAM_TYPE_UNKNOWN', 'AMDSMI_VRAM_TYPE__MAX', + 'AMDSMI_VRAM_VENDOR__ELPIDA', 'AMDSMI_VRAM_VENDOR__ESMT', + 'AMDSMI_VRAM_VENDOR__ETRON', 'AMDSMI_VRAM_VENDOR__HYNIX', + 'AMDSMI_VRAM_VENDOR__INFINEON', 'AMDSMI_VRAM_VENDOR__MICRON', + 'AMDSMI_VRAM_VENDOR__MOSEL', 'AMDSMI_VRAM_VENDOR__NANYA', + 'AMDSMI_VRAM_VENDOR__PLACEHOLDER0', 'AMDSMI_VRAM_VENDOR__PLACEHOLDER1', 'AMDSMI_VRAM_VENDOR__PLACEHOLDER2', 'AMDSMI_VRAM_VENDOR__PLACEHOLDER3', @@ -2742,4 +2757,4 @@ __all__ = \ 'struct_engine_usage_', 'struct_fw_info_list_', 'struct_memory_usage_', 'struct_pcie_metric_', 'struct_pcie_static_', 'uint32_t', 'uint64_t', 'uint8_t', - 'union_amdsmi_bdf_t', 'struct_amdsmi_bdf_t'] + 'union_amdsmi_bdf_t', 'struct_amdsmi_bdf_t'] \ No newline at end of file diff --git a/projects/amdsmi/src/amd_smi/amd_smi.cc b/projects/amdsmi/src/amd_smi/amd_smi.cc index e91b16c253..f680b4bb9e 100644 --- a/projects/amdsmi/src/amd_smi/amd_smi.cc +++ b/projects/amdsmi/src/amd_smi/amd_smi.cc @@ -805,8 +805,7 @@ amdsmi_status_t amdsmi_get_gpu_vram_info( AMDGPU_INFO_DEV_INFO, sizeof(struct drm_amdgpu_info_device), &dev_info); if (r == AMDSMI_STATUS_SUCCESS) { - info->vram_type = static_cast( - dev_info.vram_type); + info->vram_type = amd::smi::vram_type_value(dev_info.vram_type); } } diff --git a/projects/amdsmi/src/amd_smi/amd_smi_common.cc b/projects/amdsmi/src/amd_smi/amd_smi_common.cc index 4f839e8cd7..2751d8efb9 100644 --- a/projects/amdsmi/src/amd_smi/amd_smi_common.cc +++ b/projects/amdsmi/src/amd_smi/amd_smi_common.cc @@ -63,6 +63,18 @@ amdsmi_status_t rsmi_to_amdsmi_status(rsmi_status_t status) { return amdsmi_status; } +amdsmi_vram_type_t vram_type_value(unsigned type) { + amdsmi_vram_type_t value = AMDSMI_VRAM_TYPE_UNKNOWN; + + auto search = amd::smi::vram_type_map.find(type); + if (search != amd::smi::vram_type_map.end()) { + value = search->second; + } + + return value; +} + + #ifdef ENABLE_ESMI_LIB amdsmi_status_t esmi_to_amdsmi_status(esmi_status_t status) { amdsmi_status_t amdsmi_status = AMDSMI_STATUS_MAP_ERROR;