Merge amd-dev into amd-master 20230120

Change-Id: I846879aa2614c45250fa34ef76aead0b08b4e9d5
Signed-off-by: Galantsev, Dmitrii <dmitrii.galantsev@amd.com>


[ROCm/amdsmi commit: 6b1a7ce27a]
This commit is contained in:
Galantsev, Dmitrii
2023-01-20 10:38:32 -06:00
17 changed files with 296 additions and 348 deletions
+3
View File
@@ -55,6 +55,8 @@ include(GNUInstallDirs)
option(BUILD_TESTS "Build test suite" OFF)
option(ENABLE_LDCONFIG "Set library links and caches using ldconfig." ON)
# Set share path here because project name != amd_smi
set(SHARE_INSTALL_PREFIX "share/${AMD_SMI}" CACHE STRING "Tests and Example install directory")
# Packaging directives
set(CPACK_PACKAGE_NAME
${AMD_SMI_PACKAGE}
@@ -212,6 +214,7 @@ install(
#License file
set(CPACK_RPM_PACKAGE_LICENSE "NCSA")
# docs are installed into different share directory from tests and examples
install(
FILES ${CPACK_RESOURCE_FILE_LICENSE}
DESTINATION share/doc/${AMD_SMI}
+1 -1
View File
@@ -126,7 +126,7 @@ int main() {
}
// Get device name
amdsmi_board_info board_info;
amdsmi_board_info_t board_info;
ret = amdsmi_get_board_info(device_handles[j], &board_info);
std::cout << "\tdevice "
<< j <<"\n\t\tName:" << board_info.product_name << std::endl;
@@ -14,13 +14,15 @@ function(generic_add_rocm)
set(CMAKE_INSTALL_PREFIX ${ROCM_DIR} CACHE STRING "Default installation directory.")
set(CPACK_PACKAGING_INSTALL_PREFIX "${CMAKE_INSTALL_PREFIX}" CACHE STRING "Default packaging prefix.")
set(SHARE_INSTALL_PREFIX "share/${CMAKE_PROJECT_NAME}" CACHE STRING "Tests and Example install directory")
# add package search paths
set(CMAKE_PREFIX_PATH ${CMAKE_PREFIX_PATH} /usr/local PARENT_SCOPE)
set(CMAKE_LIBRARY_PATH ${CMAKE_LIBRARY_PATH} /usr/lib64 /usr/lib/x86_64-linux-gnu PARENT_SCOPE)
endfunction()
function(generic_package)
# Used by test and example CMakeLists
set(SHARE_INSTALL_PREFIX "share/${CMAKE_PROJECT_NAME}" CACHE STRING "Tests and Example install directory")
if(CMAKE_COMPILER_IS_GNUCC AND CMAKE_CXX_COMPILER_VERSION VERSION_LESS 5.4.0)
message("Compiler version is " ${CMAKE_CXX_COMPILER_VERSION})
message(FATAL_ERROR "Require at least gcc-5.4.0")
+2 -2
View File
@@ -4,7 +4,7 @@
# copy .cc files into install directory
install(
DIRECTORY ./
DESTINATION share/example/amd-smi
DESTINATION ${SHARE_INSTALL_PREFIX}/example
FILES_MATCHING
PATTERN "*.cc")
@@ -12,7 +12,7 @@ install(
install(
FILES CMakeLists.txt.in
RENAME CMakeLists.txt
DESTINATION share/example/amd-smi)
DESTINATION ${SHARE_INSTALL_PREFIX}/example)
# compile example files but do not install
# this is only useful if running from build directory
@@ -631,7 +631,7 @@ int main() {
}
// Get device name
amdsmi_board_info board_info = {};
amdsmi_board_info_t board_info = {};
ret = amdsmi_get_board_info(device_handles[j], &board_info);
CHK_AMDSMI_RET(ret)
printf(" Output of amdsmi_get_board_info:\n");
@@ -676,7 +676,7 @@ int main() {
<< "\t\tMM IP Count: " << int(caps_info.mm.mm_ip_count)
<< "\n\n";
amdsmi_power_cap_info cap_info = {};
amdsmi_power_cap_info_t cap_info = {};
ret = amdsmi_get_power_cap_info(device_handles[j], 0, &cap_info);
CHK_AMDSMI_RET(ret)
printf(" Output of amdsmi_get_power_cap_info:\n");
@@ -286,7 +286,7 @@ int main() {
};
// Get device name
amdsmi_board_info board_info = {};
amdsmi_board_info_t board_info = {};
ret = amdsmi_get_board_info(device_handles[j], &board_info);
CHK_AMDSMI_RET(ret)
printf(" Output of amdsmi_get_board_info:\n");
@@ -331,7 +331,7 @@ int main() {
<< "\t\tMM IP Count: " << int(caps_info.mm.mm_ip_count)
<< "\n\n";
amdsmi_power_cap_info cap_info = {};
amdsmi_power_cap_info_t cap_info = {};
ret = amdsmi_get_power_cap_info(device_handles[j], 0, &cap_info);
CHK_AMDSMI_RET(ret)
printf(" Output of amdsmi_get_power_cap_info:\n");
+36 -81
View File
@@ -40,7 +40,6 @@
* DEALINGS WITH THE SOFTWARE.
*
*/
#ifndef INCLUDE_AMDSMI_H_
#define INCLUDE_AMDSMI_H_
@@ -63,7 +62,7 @@ extern "C" {
*
* Initialization flags may be OR'd together and passed to ::amdsmi_init().
*/
typedef enum amdsmi_init_flags {
typedef enum {
AMDSMI_INIT_ALL_DEVICES = 0x0, // Default option
AMDSMI_INIT_AMD_CPUS = (1 << 0),
AMDSMI_INIT_AMD_GPUS = (1 << 1),
@@ -88,9 +87,14 @@ typedef enum amdsmi_init_flags {
#define AMDSMI_TIME_FORMAT "%02d:%02d:%02d.%03d"
#define AMDSMI_DATE_FORMAT "%04d-%02d-%02d:%02d:%02d:%02d.%03d"
typedef enum amdsmi_mm_ip { AMDSMI_MM_UVD, AMDSMI_MM_VCE, AMDSMI_MM_VCN, AMDSMI_MM__MAX } amdsmi_mm_ip_t;
typedef enum {
AMDSMI_MM_UVD,
AMDSMI_MM_VCE,
AMDSMI_MM_VCN,
AMDSMI_MM__MAX
} amdsmi_mm_ip_t;
typedef enum amdsmi_container_types {
typedef enum {
CONTAINER_LXC,
CONTAINER_DOCKER,
} amdsmi_container_types_t;
@@ -102,7 +106,7 @@ typedef void *amdsmi_socket_handle;
/**
* @brief Device types detectable by AMD SMI
*/
typedef enum device_type {
typedef enum {
UNKNOWN = 0,
AMD_GPU,
AMD_CPU,
@@ -115,7 +119,7 @@ typedef enum device_type {
*/
// Please avoid status codes that are multiples of 256 (256, 512, etc..)
// Return values in the shell get modulo 256 applied, meaning any multiple of 256 ends up as 0
typedef enum amdsmi_status_t {
typedef enum {
AMDSMI_STATUS_SUCCESS = 0, //!< Call succeeded
// Library usage errors
AMDSMI_STATUS_INVAL = 1, //!< Invalid parameters
@@ -155,7 +159,7 @@ typedef enum amdsmi_status_t {
/**
* Clock types
*/
typedef enum amdsmi_clk_type {
typedef enum {
CLK_TYPE_SYS = 0x0, //!< System clock
CLK_TYPE_FIRST = CLK_TYPE_SYS,
CLK_TYPE_GFX = CLK_TYPE_SYS,
@@ -171,15 +175,12 @@ typedef enum amdsmi_clk_type {
CLK_TYPE_DCLK1,
CLK_TYPE__MAX = CLK_TYPE_DCLK1
} amdsmi_clk_type_t;
/// @cond Ignore in docs.
typedef amdsmi_clk_type_t amdsmi_clk_type;
/// @endcond
/**
* @brief This enumeration is used to indicate from which part of the device a
* temperature reading should be obtained.
*/
typedef enum amdsmi_temperature_type {
typedef enum {
TEMPERATURE_TYPE_EDGE,
TEMPERATURE_TYPE_FIRST = TEMPERATURE_TYPE_EDGE,
TEMPERATURE_TYPE_JUNCTION,
@@ -196,7 +197,7 @@ typedef enum amdsmi_temperature_type {
* @brief The values of this enum are used to identify the various firmware
* blocks.
*/
typedef enum amdsmi_fw_block {
typedef enum {
FW_ID_SMU = 1,
FW_ID_FIRST = FW_ID_SMU,
FW_ID_CP_CE,
@@ -254,11 +255,8 @@ typedef struct {
uint64_t upper_bound; //!< Upper bound of range
uint64_t reserved[2];
} amdsmi_range_t;
/// @cond Ignore in docs.
typedef amdsmi_range_t amdsmi_range;
/// @endcond
typedef struct amdsmi_xgmi_info {
typedef struct {
uint8_t xgmi_lanes;
uint64_t xgmi_hive_id;
uint64_t xgmi_node_id;
@@ -269,7 +267,7 @@ typedef struct amdsmi_xgmi_info {
/**
* GPU Capability info
*/
typedef struct amdsmi_gpu_caps {
typedef struct {
struct {
uint32_t gfxip_major;
uint32_t gfxip_minor;
@@ -289,18 +287,18 @@ typedef struct amdsmi_gpu_caps {
uint32_t reserved[5];
} amdsmi_gpu_caps_t;
typedef struct amdsmi_vram_info {
typedef struct {
uint32_t vram_total;
uint32_t vram_used;
} amdsmi_vram_info_t;
typedef struct amdsmi_frequency_range {
typedef struct {
amdsmi_range_t supported_freq_range;
amdsmi_range_t current_freq_range;
uint32_t reserved[8];
} amdsmi_frequency_range_t;
typedef union amdsmi_bdf {
typedef union {
struct {
uint64_t function_number : 3;
uint64_t device_number : 5;
@@ -310,7 +308,7 @@ typedef union amdsmi_bdf {
uint64_t as_uint;
} amdsmi_bdf_t;
typedef struct amdsmi_power_cap_info {
typedef struct {
uint64_t power_cap;
uint64_t default_power_cap;
uint64_t dpm_cap;
@@ -319,7 +317,7 @@ typedef struct amdsmi_power_cap_info {
uint64_t reserved[3];
} amdsmi_power_cap_info_t;
typedef struct amdsmi_vbios_info {
typedef struct {
char name[AMDSMI_MAX_STRING_LENGTH];
uint32_t vbios_version;
char build_date[AMDSMI_MAX_DATE_LENGTH];
@@ -328,7 +326,7 @@ typedef struct amdsmi_vbios_info {
uint32_t reserved[15];
} amdsmi_vbios_info_t;
typedef struct amdsmi_fw_info {
typedef struct {
uint8_t num_fw_info;
struct {
amdsmi_fw_block_t fw_id;
@@ -338,7 +336,7 @@ typedef struct amdsmi_fw_info {
uint32_t reserved[7];
} amdsmi_fw_info_t;
typedef struct amdsmi_asic_info {
typedef struct {
char market_name[AMDSMI_MAX_STRING_LENGTH];
uint32_t family; /**< Has zero value */
uint32_t vendor_id; //< Use 32 bit to be compatible with other platform.
@@ -348,7 +346,7 @@ typedef struct amdsmi_asic_info {
char asic_serial[AMDSMI_NORMAL_STRING_LENGTH];
} amdsmi_asic_info_t;
typedef struct amdsmi_board_info {
typedef struct {
uint64_t serial_number;
bool is_master;
char model_number[AMDSMI_NORMAL_STRING_LENGTH];
@@ -358,7 +356,7 @@ typedef struct amdsmi_board_info {
char manufacturer_name[AMDSMI_NORMAL_STRING_LENGTH];
} amdsmi_board_info_t;
typedef struct amdsmi_power_measure {
typedef struct {
uint32_t average_socket_power;
uint64_t energy_accumulator; // v1 mod. (32->64)
uint32_t voltage_gfx; // GFX voltage measurement in mV
@@ -368,7 +366,7 @@ typedef struct amdsmi_power_measure {
uint32_t reserved[9];
} amdsmi_power_measure_t;
typedef struct amdsmi_clk_measure {
typedef struct {
uint32_t cur_clk;
uint32_t avg_clk;
uint32_t min_clk;
@@ -376,7 +374,7 @@ typedef struct amdsmi_clk_measure {
uint32_t reserved[4];
} amdsmi_clk_measure_t;
typedef struct amdsmi_engine_usage {
typedef struct {
uint32_t gfx_activity;
uint32_t umc_activity;
uint32_t mm_activity[AMDSMI_MAX_MM_IP_COUNT];
@@ -385,7 +383,7 @@ typedef struct amdsmi_engine_usage {
typedef uint32_t amdsmi_process_handle;
typedef struct amdsmi_process_info {
typedef struct {
char name[AMDSMI_NORMAL_STRING_LENGTH];
amdsmi_process_handle pid;
uint64_t mem; /** in bytes */
@@ -440,9 +438,7 @@ typedef enum {
AMDSMI_DEV_PERF_LEVEL_UNKNOWN = 0x100 //!< Unknown performance level
} amdsmi_dev_perf_level_t;
/// @cond Ignore in docs.
typedef amdsmi_dev_perf_level_t amdsmi_dev_perf_level;
/// @endcond
/**
* @brief Available clock types.
*/
@@ -640,9 +636,6 @@ typedef enum {
AMDSMI_TEMP_LAST = AMDSMI_TEMP_HIGHEST
} amdsmi_temperature_metric_t;
/// @cond Ignore in docs.
typedef amdsmi_temperature_metric_t amdsmi_temperature_metric;
/// @endcond
/**
* @brief Voltage Metrics. This enum is used to identify various
@@ -698,9 +691,6 @@ typedef enum {
//!< Invalid power profile
AMDSMI_PWR_PROF_PRST_INVALID = 0xFFFFFFFFFFFFFFFF
} amdsmi_power_profile_preset_masks_t;
/// @cond Ignore in docs.
typedef amdsmi_power_profile_preset_masks_t amdsmi_power_profile_preset_masks;
/// @endcond
/**
* @brief This enum is used to identify different GPU blocks.
@@ -729,9 +719,6 @@ typedef enum {
//!< for supported blocks
AMDSMI_GPU_BLOCK_RESERVED = 0x8000000000000000
} amdsmi_gpu_block_t;
/// @cond Ignore in docs.
typedef amdsmi_gpu_block_t amdsmi_gpu_block;
/// @endcond
/**
* @brief The current ECC state
@@ -771,9 +758,6 @@ typedef enum {
AMDSMI_FREQ_IND_MAX = 1, //!< Index used for the maximum frequency value
AMDSMI_FREQ_IND_INVALID = 0xFFFFFFFF //!< An invalid frequency index
} amdsmi_freq_ind_t;
/// @cond Ignore in docs.
typedef amdsmi_freq_ind_t amdsmi_freq_ind;
/// @endcond
/**
* @brief XGMI Status
@@ -788,9 +772,6 @@ typedef enum {
* @brief Bitfield used in various AMDSMI calls
*/
typedef uint64_t amdsmi_bit_field_t;
/// @cond Ignore in docs.
typedef amdsmi_bit_field_t amdsmi_bit_field;
/// @endcond
/**
* @brief Reserved Memory Page States
@@ -807,7 +788,7 @@ typedef enum {
/**
* @brief Types for IO Link
*/
typedef enum _AMDSMI_IO_LINK_TYPE {
typedef enum {
AMDSMI_IOLINK_TYPE_UNDEFINED = 0, //!< unknown type.
AMDSMI_IOLINK_TYPE_PCIEXPRESS = 1, //!< PCI Express
AMDSMI_IOLINK_TYPE_XGMI = 2, //!< XGMI
@@ -829,7 +810,7 @@ typedef enum {
/**
* @brief The utilization counter data
*/
typedef struct {
typedef struct {
AMDSMI_UTILIZATION_COUNTER_TYPE type; //!< Utilization counter type
uint64_t value; //!< Utilization counter value
} amdsmi_utilization_counter_t;
@@ -869,9 +850,6 @@ typedef struct {
*/
uint32_t num_profiles;
} amdsmi_power_profile_status_t;
/// @cond Ignore in docs.
typedef amdsmi_power_profile_status_t amdsmi_power_profile_status;
/// @endcond
/**
* @brief This structure holds information about clock frequencies.
@@ -893,9 +871,6 @@ typedef struct {
*/
uint64_t frequency[AMDSMI_MAX_NUM_FREQUENCIES];
} amdsmi_frequencies_t;
/// @cond Ignore in docs.
typedef amdsmi_frequencies_t amdsmi_frequencies;
/// @endcond
/**
* @brief This structure holds information about the possible PCIe
@@ -915,10 +890,6 @@ typedef struct {
uint32_t lanes[AMDSMI_MAX_NUM_FREQUENCIES];
} amdsmi_pcie_bandwidth_t;
/// @cond Ignore in docs.
typedef amdsmi_pcie_bandwidth_t amdsmi_pcie_bandwidth;
/// @endcond
/**
* @brief This structure holds version information.
*/
@@ -929,9 +900,6 @@ typedef struct {
const char *build; //!< Build string
uint32_t reserved[4];
} amdsmi_version_t;
/// @cond Ignore in docs.
typedef amdsmi_version_t amdsmi_version;
/// @endcond
/**
* @brief This structure represents a point on the frequency-voltage plane.
@@ -940,9 +908,6 @@ typedef struct {
uint64_t frequency; //!< Frequency coordinate (in Hz)
uint64_t voltage; //!< Voltage coordinate (in mV)
} amdsmi_od_vddc_point_t;
/// @cond Ignore in docs.
typedef amdsmi_od_vddc_point_t amdsmi_od_vddc_point;
/// @endcond
/**
* @brief This structure holds 2 ::amdsmi_range_t's, one for frequency and one for
@@ -953,9 +918,6 @@ typedef struct {
amdsmi_range_t freq_range; //!< The frequency range for this VDDC Curve point
amdsmi_range_t volt_range; //!< The voltage range for this VDDC Curve point
} amdsmi_freq_volt_region_t;
/// @cond Ignore in docs.
typedef amdsmi_freq_volt_region_t amdsmi_freq_volt_region;
/// @endcond
/**
* ::AMDSMI_NUM_VOLTAGE_CURVE_POINTS number of ::amdsmi_od_vddc_point_t's
@@ -967,9 +929,6 @@ typedef struct {
*/
amdsmi_od_vddc_point_t vc_points[AMDSMI_NUM_VOLTAGE_CURVE_POINTS];
} amdsmi_od_volt_curve_t;
/// @cond Ignore in docs.
typedef amdsmi_od_volt_curve_t amdsmi_od_volt_curve;
/// @endcond
/**
* @brief This structure holds the frequency-voltage values for a device.
@@ -987,10 +946,6 @@ typedef struct {
amdsmi_od_volt_curve_t curve;
uint32_t num_regions; //!< The number of voltage curve regions
} amdsmi_od_volt_freq_data_t;
/// @cond Ignore in docs.
typedef amdsmi_od_volt_freq_data_t amdsmi_od_volt_freq_data;
/// @endcond
/**
* @brief The following structures hold the gpu metrics values for a device.
@@ -999,14 +954,14 @@ typedef amdsmi_od_volt_freq_data_t amdsmi_od_volt_freq_data;
/**
* @brief Size and version information of metrics data
*/
struct amd_metrics_table_header_t {
typedef struct {
// TODO(amd) Doxygen documents
/// @cond Ignore in docs.
uint16_t structure_size;
uint8_t format_revision;
uint8_t content_revision;
/// @endcond
};
} amd_metrics_table_header_t;
/**
* @brief The following structure holds the gpu metrics values for a device.
@@ -1033,7 +988,7 @@ struct amd_metrics_table_header_t {
typedef struct {
// TODO(amd) Doxygen documents
/// @cond Ignore in docs.
struct amd_metrics_table_header_t common_header;
amd_metrics_table_header_t common_header;
/* Temperature */
uint16_t temperature_edge;
@@ -1103,7 +1058,7 @@ typedef struct {
/**
* @brief This structure holds pcie info.
*/
typedef struct amdsmi_pcie_info {
typedef struct {
uint16_t pcie_lanes;
uint32_t pcie_speed;
uint32_t reserved[6];
@@ -1133,7 +1088,7 @@ typedef struct amdsmi_func_id_iter_handle * amdsmi_func_id_iter_handle_t;
* value may be a function name, or an ennumerated variant value of types
* such as ::amdsmi_memory_type_t, ::amdsmi_temperature_metric_t, etc.
*/
typedef union amd_id {
typedef union {
uint64_t id; //!< uint64_t representation of value
const char *name; //!< name string (applicable to functions only)
union {
@@ -1848,7 +1803,7 @@ amdsmi_get_bad_page_info(amdsmi_device_handle device_handle, uint32_t *num_pages
* @return ::amdsmi_status_t | ::AMDSMI_STATUS_SUCCESS on success, non-zero on fail
*/
amdsmi_status_t
amdsmi_get_ras_block_features_enabled(amdsmi_device_handle device_handle, amdsmi_gpu_block block,
amdsmi_get_ras_block_features_enabled(amdsmi_device_handle device_handle, amdsmi_gpu_block_t block,
amdsmi_ras_err_state_t *state);
/**
@@ -421,10 +421,10 @@ def _format_bdf(amdsmi_bdf: amdsmi_wrapper.amdsmi_bdf_t) -> str:
Returns:
`str`: String containing BDF data in a readable format.
"""
domain = hex(amdsmi_bdf.amdsmi_bdf_0.domain_number)[2:].zfill(4)
bus = hex(amdsmi_bdf.amdsmi_bdf_0.bus_number)[2:].zfill(2)
device = hex(amdsmi_bdf.amdsmi_bdf_0.device_number)[2:].zfill(2)
function = hex(amdsmi_bdf.amdsmi_bdf_0.function_number)[2:]
domain = hex(amdsmi_bdf.c__UA_amdsmi_bdf_t_0.domain_number)[2:].zfill(4)
bus = hex(amdsmi_bdf.c__UA_amdsmi_bdf_t_0.bus_number)[2:].zfill(2)
device = hex(amdsmi_bdf.c__UA_amdsmi_bdf_t_0.device_number)[2:].zfill(2)
function = hex(amdsmi_bdf.c__UA_amdsmi_bdf_t_0.function_number)[2:]
return domain + ":" + bus + ":" + device + "." + function
@@ -470,11 +470,11 @@ def _parse_bdf(bdf):
def _make_amdsmi_bdf_from_list(bdf):
if len(bdf) != 4:
return None
amdsmi_bdf = amdsmi_wrapper.amdsmi_bdf()
amdsmi_bdf.amdsmi_bdf_0.function_number = bdf[3]
amdsmi_bdf.amdsmi_bdf_0.device_number = bdf[2]
amdsmi_bdf.amdsmi_bdf_0.bus_number = bdf[1]
amdsmi_bdf.amdsmi_bdf_0.domain_number = bdf[0]
amdsmi_bdf = amdsmi_wrapper.amdsmi_bdf_t()
amdsmi_bdf.c__UA_amdsmi_bdf_t_0.function_number = bdf[3]
amdsmi_bdf.c__UA_amdsmi_bdf_t_0.device_number = bdf[2]
amdsmi_bdf.c__UA_amdsmi_bdf_t_0.bus_number = bdf[1]
amdsmi_bdf.c__UA_amdsmi_bdf_t_0.domain_number = bdf[0]
return amdsmi_bdf
+225 -237
View File
@@ -171,8 +171,8 @@ _libraries['libamd_smi.so'] = ctypes.CDLL(os.path.join(os.path.dirname(__file__)
# values for enumeration 'amdsmi_init_flags'
amdsmi_init_flags__enumvalues = {
# values for enumeration 'c__EA_amdsmi_init_flags_t'
c__EA_amdsmi_init_flags_t__enumvalues = {
0: 'AMDSMI_INIT_ALL_DEVICES',
1: 'AMDSMI_INIT_AMD_CPUS',
2: 'AMDSMI_INIT_AMD_GPUS',
@@ -184,12 +184,12 @@ AMDSMI_INIT_AMD_CPUS = 1
AMDSMI_INIT_AMD_GPUS = 2
AMDSMI_INIT_NON_AMD_CPUS = 4
AMDSMI_INIT_NON_AMD_GPUS = 8
amdsmi_init_flags = ctypes.c_uint32 # enum
amdsmi_init_flags_t = amdsmi_init_flags
amdsmi_init_flags_t__enumvalues = amdsmi_init_flags__enumvalues
c__EA_amdsmi_init_flags_t = ctypes.c_uint32 # enum
amdsmi_init_flags_t = c__EA_amdsmi_init_flags_t
amdsmi_init_flags_t__enumvalues = c__EA_amdsmi_init_flags_t__enumvalues
# values for enumeration 'amdsmi_mm_ip'
amdsmi_mm_ip__enumvalues = {
# values for enumeration 'c__EA_amdsmi_mm_ip_t'
c__EA_amdsmi_mm_ip_t__enumvalues = {
0: 'AMDSMI_MM_UVD',
1: 'AMDSMI_MM_VCE',
2: 'AMDSMI_MM_VCN',
@@ -199,25 +199,25 @@ AMDSMI_MM_UVD = 0
AMDSMI_MM_VCE = 1
AMDSMI_MM_VCN = 2
AMDSMI_MM__MAX = 3
amdsmi_mm_ip = ctypes.c_uint32 # enum
amdsmi_mm_ip_t = amdsmi_mm_ip
amdsmi_mm_ip_t__enumvalues = amdsmi_mm_ip__enumvalues
c__EA_amdsmi_mm_ip_t = ctypes.c_uint32 # enum
amdsmi_mm_ip_t = c__EA_amdsmi_mm_ip_t
amdsmi_mm_ip_t__enumvalues = c__EA_amdsmi_mm_ip_t__enumvalues
# values for enumeration 'amdsmi_container_types'
amdsmi_container_types__enumvalues = {
# values for enumeration 'c__EA_amdsmi_container_types_t'
c__EA_amdsmi_container_types_t__enumvalues = {
0: 'CONTAINER_LXC',
1: 'CONTAINER_DOCKER',
}
CONTAINER_LXC = 0
CONTAINER_DOCKER = 1
amdsmi_container_types = ctypes.c_uint32 # enum
amdsmi_container_types_t = amdsmi_container_types
amdsmi_container_types_t__enumvalues = amdsmi_container_types__enumvalues
c__EA_amdsmi_container_types_t = ctypes.c_uint32 # enum
amdsmi_container_types_t = c__EA_amdsmi_container_types_t
amdsmi_container_types_t__enumvalues = c__EA_amdsmi_container_types_t__enumvalues
amdsmi_device_handle = ctypes.POINTER(None)
amdsmi_socket_handle = ctypes.POINTER(None)
# values for enumeration 'device_type'
device_type__enumvalues = {
# values for enumeration 'c__EA_device_type_t'
c__EA_device_type_t__enumvalues = {
0: 'UNKNOWN',
1: 'AMD_GPU',
2: 'AMD_CPU',
@@ -229,12 +229,12 @@ AMD_GPU = 1
AMD_CPU = 2
NON_AMD_GPU = 3
NON_AMD_CPU = 4
device_type = ctypes.c_uint32 # enum
device_type_t = device_type
device_type_t__enumvalues = device_type__enumvalues
c__EA_device_type_t = ctypes.c_uint32 # enum
device_type_t = c__EA_device_type_t
device_type_t__enumvalues = c__EA_device_type_t__enumvalues
# values for enumeration 'amdsmi_status_t'
amdsmi_status_t__enumvalues = {
# values for enumeration 'c__EA_amdsmi_status_t'
c__EA_amdsmi_status_t__enumvalues = {
0: 'AMDSMI_STATUS_SUCCESS',
1: 'AMDSMI_STATUS_INVAL',
2: 'AMDSMI_STATUS_NOT_SUPPORTED',
@@ -296,10 +296,12 @@ AMDSMI_STATUS_UNEXPECTED_SIZE = 42
AMDSMI_STATUS_UNEXPECTED_DATA = 43
AMDSMI_STATUS_MAP_ERROR = 4294967294
AMDSMI_STATUS_UNKNOWN_ERROR = 4294967295
amdsmi_status_t = ctypes.c_uint32 # enum
c__EA_amdsmi_status_t = ctypes.c_uint32 # enum
amdsmi_status_t = c__EA_amdsmi_status_t
amdsmi_status_t__enumvalues = c__EA_amdsmi_status_t__enumvalues
# values for enumeration 'amdsmi_clk_type'
amdsmi_clk_type__enumvalues = {
# values for enumeration 'c__EA_amdsmi_clk_type_t'
c__EA_amdsmi_clk_type_t__enumvalues = {
0: 'CLK_TYPE_SYS',
0: 'CLK_TYPE_FIRST',
0: 'CLK_TYPE_GFX',
@@ -327,12 +329,12 @@ CLK_TYPE_VCLK1 = 7
CLK_TYPE_DCLK0 = 8
CLK_TYPE_DCLK1 = 9
CLK_TYPE__MAX = 9
amdsmi_clk_type = ctypes.c_uint32 # enum
amdsmi_clk_type_t = amdsmi_clk_type
amdsmi_clk_type_t__enumvalues = amdsmi_clk_type__enumvalues
c__EA_amdsmi_clk_type_t = ctypes.c_uint32 # enum
amdsmi_clk_type_t = c__EA_amdsmi_clk_type_t
amdsmi_clk_type_t__enumvalues = c__EA_amdsmi_clk_type_t__enumvalues
# values for enumeration 'amdsmi_temperature_type'
amdsmi_temperature_type__enumvalues = {
# values for enumeration 'c__EA_amdsmi_temperature_type_t'
c__EA_amdsmi_temperature_type_t__enumvalues = {
0: 'TEMPERATURE_TYPE_EDGE',
0: 'TEMPERATURE_TYPE_FIRST',
1: 'TEMPERATURE_TYPE_JUNCTION',
@@ -354,12 +356,12 @@ TEMPERATURE_TYPE_HBM_2 = 5
TEMPERATURE_TYPE_HBM_3 = 6
TEMPERATURE_TYPE_PLX = 7
TEMPERATURE_TYPE__MAX = 7
amdsmi_temperature_type = ctypes.c_uint32 # enum
amdsmi_temperature_type_t = amdsmi_temperature_type
amdsmi_temperature_type_t__enumvalues = amdsmi_temperature_type__enumvalues
c__EA_amdsmi_temperature_type_t = ctypes.c_uint32 # enum
amdsmi_temperature_type_t = c__EA_amdsmi_temperature_type_t
amdsmi_temperature_type_t__enumvalues = c__EA_amdsmi_temperature_type_t__enumvalues
# values for enumeration 'amdsmi_fw_block'
amdsmi_fw_block__enumvalues = {
# values for enumeration 'c__EA_amdsmi_fw_block_t'
c__EA_amdsmi_fw_block_t__enumvalues = {
1: 'FW_ID_SMU',
1: 'FW_ID_FIRST',
2: 'FW_ID_CP_CE',
@@ -455,9 +457,9 @@ FW_ID_RLC_SRLS = 43
FW_ID_SMC = 44
FW_ID_DMCU = 45
FW_ID__MAX = 46
amdsmi_fw_block = ctypes.c_uint32 # enum
amdsmi_fw_block_t = amdsmi_fw_block
amdsmi_fw_block_t__enumvalues = amdsmi_fw_block__enumvalues
c__EA_amdsmi_fw_block_t = ctypes.c_uint32 # enum
amdsmi_fw_block_t = c__EA_amdsmi_fw_block_t
amdsmi_fw_block_t__enumvalues = c__EA_amdsmi_fw_block_t__enumvalues
class struct_c__SA_amdsmi_range_t(Structure):
pass
@@ -469,12 +471,11 @@ struct_c__SA_amdsmi_range_t._fields_ = [
]
amdsmi_range_t = struct_c__SA_amdsmi_range_t
amdsmi_range = struct_c__SA_amdsmi_range_t
class struct_amdsmi_xgmi_info(Structure):
class struct_c__SA_amdsmi_xgmi_info_t(Structure):
pass
struct_amdsmi_xgmi_info._pack_ = 1 # source:False
struct_amdsmi_xgmi_info._fields_ = [
struct_c__SA_amdsmi_xgmi_info_t._pack_ = 1 # source:False
struct_c__SA_amdsmi_xgmi_info_t._fields_ = [
('xgmi_lanes', ctypes.c_ubyte),
('PADDING_0', ctypes.c_ubyte * 7),
('xgmi_hive_id', ctypes.c_uint64),
@@ -483,26 +484,26 @@ struct_amdsmi_xgmi_info._fields_ = [
('reserved', ctypes.c_uint32 * 9),
]
amdsmi_xgmi_info_t = struct_amdsmi_xgmi_info
class struct_amdsmi_gpu_caps(Structure):
amdsmi_xgmi_info_t = struct_c__SA_amdsmi_xgmi_info_t
class struct_c__SA_amdsmi_gpu_caps_t(Structure):
pass
class struct_amdsmi_gpu_caps_1(Structure):
class struct_c__SA_amdsmi_gpu_caps_t_1(Structure):
pass
struct_amdsmi_gpu_caps_1._pack_ = 1 # source:False
struct_amdsmi_gpu_caps_1._fields_ = [
struct_c__SA_amdsmi_gpu_caps_t_1._pack_ = 1 # source:False
struct_c__SA_amdsmi_gpu_caps_t_1._fields_ = [
('mm_ip_count', ctypes.c_ubyte),
('mm_ip_list', ctypes.c_ubyte * 8),
('PADDING_0', ctypes.c_ubyte * 3),
('reserved', ctypes.c_uint32 * 5),
]
class struct_amdsmi_gpu_caps_0(Structure):
class struct_c__SA_amdsmi_gpu_caps_t_0(Structure):
pass
struct_amdsmi_gpu_caps_0._pack_ = 1 # source:False
struct_amdsmi_gpu_caps_0._fields_ = [
struct_c__SA_amdsmi_gpu_caps_t_0._pack_ = 1 # source:False
struct_c__SA_amdsmi_gpu_caps_t_0._fields_ = [
('gfxip_major', ctypes.c_uint32),
('gfxip_minor', ctypes.c_uint32),
('gfxip_cu_count', ctypes.c_uint16),
@@ -510,10 +511,10 @@ struct_amdsmi_gpu_caps_0._fields_ = [
('reserved', ctypes.c_uint32 * 5),
]
struct_amdsmi_gpu_caps._pack_ = 1 # source:False
struct_amdsmi_gpu_caps._fields_ = [
('gfx', struct_amdsmi_gpu_caps_0),
('mm', struct_amdsmi_gpu_caps_1),
struct_c__SA_amdsmi_gpu_caps_t._pack_ = 1 # source:False
struct_c__SA_amdsmi_gpu_caps_t._fields_ = [
('gfx', struct_c__SA_amdsmi_gpu_caps_t_0),
('mm', struct_c__SA_amdsmi_gpu_caps_t_1),
('ras_supported', ctypes.c_bool),
('max_vf_num', ctypes.c_ubyte),
('PADDING_0', ctypes.c_ubyte * 2),
@@ -522,54 +523,54 @@ struct_amdsmi_gpu_caps._fields_ = [
('reserved', ctypes.c_uint32 * 5),
]
amdsmi_gpu_caps_t = struct_amdsmi_gpu_caps
class struct_amdsmi_vram_info(Structure):
amdsmi_gpu_caps_t = struct_c__SA_amdsmi_gpu_caps_t
class struct_c__SA_amdsmi_vram_info_t(Structure):
pass
struct_amdsmi_vram_info._pack_ = 1 # source:False
struct_amdsmi_vram_info._fields_ = [
struct_c__SA_amdsmi_vram_info_t._pack_ = 1 # source:False
struct_c__SA_amdsmi_vram_info_t._fields_ = [
('vram_total', ctypes.c_uint32),
('vram_used', ctypes.c_uint32),
]
amdsmi_vram_info_t = struct_amdsmi_vram_info
class struct_amdsmi_frequency_range(Structure):
amdsmi_vram_info_t = struct_c__SA_amdsmi_vram_info_t
class struct_c__SA_amdsmi_frequency_range_t(Structure):
pass
struct_amdsmi_frequency_range._pack_ = 1 # source:False
struct_amdsmi_frequency_range._fields_ = [
struct_c__SA_amdsmi_frequency_range_t._pack_ = 1 # source:False
struct_c__SA_amdsmi_frequency_range_t._fields_ = [
('supported_freq_range', amdsmi_range_t),
('current_freq_range', amdsmi_range_t),
('reserved', ctypes.c_uint32 * 8),
]
amdsmi_frequency_range_t = struct_amdsmi_frequency_range
class union_amdsmi_bdf(Union):
amdsmi_frequency_range_t = struct_c__SA_amdsmi_frequency_range_t
class union_c__UA_amdsmi_bdf_t(Union):
pass
class struct_amdsmi_bdf_0(Structure):
class struct_c__UA_amdsmi_bdf_t_0(Structure):
pass
struct_amdsmi_bdf_0._pack_ = 1 # source:False
struct_amdsmi_bdf_0._fields_ = [
struct_c__UA_amdsmi_bdf_t_0._pack_ = 1 # source:False
struct_c__UA_amdsmi_bdf_t_0._fields_ = [
('function_number', ctypes.c_uint64, 3),
('device_number', ctypes.c_uint64, 5),
('bus_number', ctypes.c_uint64, 8),
('domain_number', ctypes.c_uint64, 48),
]
union_amdsmi_bdf._pack_ = 1 # source:False
union_amdsmi_bdf._fields_ = [
('amdsmi_bdf_0', struct_amdsmi_bdf_0),
union_c__UA_amdsmi_bdf_t._pack_ = 1 # source:False
union_c__UA_amdsmi_bdf_t._fields_ = [
('c__UA_amdsmi_bdf_t_0', struct_c__UA_amdsmi_bdf_t_0),
('as_uint', ctypes.c_uint64),
]
amdsmi_bdf_t = union_amdsmi_bdf
class struct_amdsmi_power_cap_info(Structure):
amdsmi_bdf_t = union_c__UA_amdsmi_bdf_t
class struct_c__SA_amdsmi_power_cap_info_t(Structure):
pass
struct_amdsmi_power_cap_info._pack_ = 1 # source:False
struct_amdsmi_power_cap_info._fields_ = [
struct_c__SA_amdsmi_power_cap_info_t._pack_ = 1 # source:False
struct_c__SA_amdsmi_power_cap_info_t._fields_ = [
('power_cap', ctypes.c_uint64),
('default_power_cap', ctypes.c_uint64),
('dpm_cap', ctypes.c_uint64),
@@ -578,12 +579,12 @@ struct_amdsmi_power_cap_info._fields_ = [
('reserved', ctypes.c_uint64 * 3),
]
amdsmi_power_cap_info_t = struct_amdsmi_power_cap_info
class struct_amdsmi_vbios_info(Structure):
amdsmi_power_cap_info_t = struct_c__SA_amdsmi_power_cap_info_t
class struct_c__SA_amdsmi_vbios_info_t(Structure):
pass
struct_amdsmi_vbios_info._pack_ = 1 # source:False
struct_amdsmi_vbios_info._fields_ = [
struct_c__SA_amdsmi_vbios_info_t._pack_ = 1 # source:False
struct_c__SA_amdsmi_vbios_info_t._fields_ = [
('name', ctypes.c_char * 64),
('vbios_version', ctypes.c_uint32),
('build_date', ctypes.c_char * 32),
@@ -592,36 +593,36 @@ struct_amdsmi_vbios_info._fields_ = [
('reserved', ctypes.c_uint32 * 15),
]
amdsmi_vbios_info_t = struct_amdsmi_vbios_info
class struct_amdsmi_fw_info(Structure):
amdsmi_vbios_info_t = struct_c__SA_amdsmi_vbios_info_t
class struct_c__SA_amdsmi_fw_info_t(Structure):
pass
class struct_amdsmi_fw_info_0(Structure):
class struct_c__SA_amdsmi_fw_info_t_0(Structure):
pass
struct_amdsmi_fw_info_0._pack_ = 1 # source:False
struct_amdsmi_fw_info_0._fields_ = [
struct_c__SA_amdsmi_fw_info_t_0._pack_ = 1 # source:False
struct_c__SA_amdsmi_fw_info_t_0._fields_ = [
('fw_id', amdsmi_fw_block_t),
('PADDING_0', ctypes.c_ubyte * 4),
('fw_version', ctypes.c_uint64),
('reserved', ctypes.c_uint64 * 2),
]
struct_amdsmi_fw_info._pack_ = 1 # source:False
struct_amdsmi_fw_info._fields_ = [
struct_c__SA_amdsmi_fw_info_t._pack_ = 1 # source:False
struct_c__SA_amdsmi_fw_info_t._fields_ = [
('num_fw_info', ctypes.c_ubyte),
('PADDING_0', ctypes.c_ubyte * 7),
('fw_info_list', struct_amdsmi_fw_info_0 * 46),
('fw_info_list', struct_c__SA_amdsmi_fw_info_t_0 * 46),
('reserved', ctypes.c_uint32 * 7),
('PADDING_1', ctypes.c_ubyte * 4),
]
amdsmi_fw_info_t = struct_amdsmi_fw_info
class struct_amdsmi_asic_info(Structure):
amdsmi_fw_info_t = struct_c__SA_amdsmi_fw_info_t
class struct_c__SA_amdsmi_asic_info_t(Structure):
pass
struct_amdsmi_asic_info._pack_ = 1 # source:False
struct_amdsmi_asic_info._fields_ = [
struct_c__SA_amdsmi_asic_info_t._pack_ = 1 # source:False
struct_c__SA_amdsmi_asic_info_t._fields_ = [
('market_name', ctypes.c_char * 64),
('family', ctypes.c_uint32),
('vendor_id', ctypes.c_uint32),
@@ -633,12 +634,12 @@ struct_amdsmi_asic_info._fields_ = [
('PADDING_1', ctypes.c_ubyte * 4),
]
amdsmi_asic_info_t = struct_amdsmi_asic_info
class struct_amdsmi_board_info(Structure):
amdsmi_asic_info_t = struct_c__SA_amdsmi_asic_info_t
class struct_c__SA_amdsmi_board_info_t(Structure):
pass
struct_amdsmi_board_info._pack_ = 1 # source:False
struct_amdsmi_board_info._fields_ = [
struct_c__SA_amdsmi_board_info_t._pack_ = 1 # source:False
struct_c__SA_amdsmi_board_info_t._fields_ = [
('serial_number', ctypes.c_uint64),
('is_master', ctypes.c_bool),
('model_number', ctypes.c_char * 32),
@@ -649,12 +650,12 @@ struct_amdsmi_board_info._fields_ = [
('PADDING_0', ctypes.c_ubyte * 7),
]
amdsmi_board_info_t = struct_amdsmi_board_info
class struct_amdsmi_power_measure(Structure):
amdsmi_board_info_t = struct_c__SA_amdsmi_board_info_t
class struct_c__SA_amdsmi_power_measure_t(Structure):
pass
struct_amdsmi_power_measure._pack_ = 1 # source:False
struct_amdsmi_power_measure._fields_ = [
struct_c__SA_amdsmi_power_measure_t._pack_ = 1 # source:False
struct_c__SA_amdsmi_power_measure_t._fields_ = [
('average_socket_power', ctypes.c_uint32),
('PADDING_0', ctypes.c_ubyte * 4),
('energy_accumulator', ctypes.c_uint64),
@@ -666,12 +667,12 @@ struct_amdsmi_power_measure._fields_ = [
('PADDING_1', ctypes.c_ubyte * 4),
]
amdsmi_power_measure_t = struct_amdsmi_power_measure
class struct_amdsmi_clk_measure(Structure):
amdsmi_power_measure_t = struct_c__SA_amdsmi_power_measure_t
class struct_c__SA_amdsmi_clk_measure_t(Structure):
pass
struct_amdsmi_clk_measure._pack_ = 1 # source:False
struct_amdsmi_clk_measure._fields_ = [
struct_c__SA_amdsmi_clk_measure_t._pack_ = 1 # source:False
struct_c__SA_amdsmi_clk_measure_t._fields_ = [
('cur_clk', ctypes.c_uint32),
('avg_clk', ctypes.c_uint32),
('min_clk', ctypes.c_uint32),
@@ -679,38 +680,38 @@ struct_amdsmi_clk_measure._fields_ = [
('reserved', ctypes.c_uint32 * 4),
]
amdsmi_clk_measure_t = struct_amdsmi_clk_measure
class struct_amdsmi_engine_usage(Structure):
amdsmi_clk_measure_t = struct_c__SA_amdsmi_clk_measure_t
class struct_c__SA_amdsmi_engine_usage_t(Structure):
pass
struct_amdsmi_engine_usage._pack_ = 1 # source:False
struct_amdsmi_engine_usage._fields_ = [
struct_c__SA_amdsmi_engine_usage_t._pack_ = 1 # source:False
struct_c__SA_amdsmi_engine_usage_t._fields_ = [
('gfx_activity', ctypes.c_uint32),
('umc_activity', ctypes.c_uint32),
('mm_activity', ctypes.c_uint32 * 8),
('reserved', ctypes.c_uint32 * 6),
]
amdsmi_engine_usage_t = struct_amdsmi_engine_usage
amdsmi_engine_usage_t = struct_c__SA_amdsmi_engine_usage_t
amdsmi_process_handle = ctypes.c_uint32
class struct_amdsmi_process_info(Structure):
class struct_c__SA_amdsmi_proc_info_t(Structure):
pass
class struct_amdsmi_process_info_1(Structure):
class struct_c__SA_amdsmi_proc_info_t_1(Structure):
pass
struct_amdsmi_process_info_1._pack_ = 1 # source:False
struct_amdsmi_process_info_1._fields_ = [
struct_c__SA_amdsmi_proc_info_t_1._pack_ = 1 # source:False
struct_c__SA_amdsmi_proc_info_t_1._fields_ = [
('gtt_mem', ctypes.c_uint64),
('cpu_mem', ctypes.c_uint64),
('vram_mem', ctypes.c_uint64),
]
class struct_amdsmi_process_info_0(Structure):
class struct_c__SA_amdsmi_proc_info_t_0(Structure):
pass
struct_amdsmi_process_info_0._pack_ = 1 # source:False
struct_amdsmi_process_info_0._fields_ = [
struct_c__SA_amdsmi_proc_info_t_0._pack_ = 1 # source:False
struct_c__SA_amdsmi_proc_info_t_0._fields_ = [
('gfx', ctypes.c_uint16 * 8),
('compute', ctypes.c_uint16 * 8),
('sdma', ctypes.c_uint16 * 8),
@@ -718,19 +719,19 @@ struct_amdsmi_process_info_0._fields_ = [
('dec', ctypes.c_uint16 * 8),
]
struct_amdsmi_process_info._pack_ = 1 # source:False
struct_amdsmi_process_info._fields_ = [
struct_c__SA_amdsmi_proc_info_t._pack_ = 1 # source:False
struct_c__SA_amdsmi_proc_info_t._fields_ = [
('name', ctypes.c_char * 32),
('pid', ctypes.c_uint32),
('PADDING_0', ctypes.c_ubyte * 4),
('mem', ctypes.c_uint64),
('engine_usage', struct_amdsmi_process_info_0),
('memory_usage', struct_amdsmi_process_info_1),
('engine_usage', struct_c__SA_amdsmi_proc_info_t_0),
('memory_usage', struct_c__SA_amdsmi_proc_info_t_1),
('container_name', ctypes.c_char * 32),
('reserved', ctypes.c_uint32 * 10),
]
amdsmi_proc_info_t = struct_amdsmi_process_info
amdsmi_proc_info_t = struct_c__SA_amdsmi_proc_info_t
# values for enumeration 'c__EA_amdsmi_dev_perf_level_t'
c__EA_amdsmi_dev_perf_level_t__enumvalues = {
@@ -762,8 +763,6 @@ AMDSMI_DEV_PERF_LEVEL_UNKNOWN = 256
c__EA_amdsmi_dev_perf_level_t = ctypes.c_uint32 # enum
amdsmi_dev_perf_level_t = c__EA_amdsmi_dev_perf_level_t
amdsmi_dev_perf_level_t__enumvalues = c__EA_amdsmi_dev_perf_level_t__enumvalues
amdsmi_dev_perf_level = c__EA_amdsmi_dev_perf_level_t
amdsmi_dev_perf_level__enumvalues = c__EA_amdsmi_dev_perf_level_t__enumvalues
# values for enumeration 'c__EA_amdsmi_sw_component_t'
c__EA_amdsmi_sw_component_t__enumvalues = {
@@ -930,8 +929,6 @@ AMDSMI_TEMP_LAST = 13
c__EA_amdsmi_temperature_metric_t = ctypes.c_uint32 # enum
amdsmi_temperature_metric_t = c__EA_amdsmi_temperature_metric_t
amdsmi_temperature_metric_t__enumvalues = c__EA_amdsmi_temperature_metric_t__enumvalues
amdsmi_temperature_metric = c__EA_amdsmi_temperature_metric_t
amdsmi_temperature_metric__enumvalues = c__EA_amdsmi_temperature_metric_t__enumvalues
# values for enumeration 'c__EA_amdsmi_voltage_metric_t'
c__EA_amdsmi_voltage_metric_t__enumvalues = {
@@ -999,8 +996,6 @@ AMDSMI_PWR_PROF_PRST_INVALID = 18446744073709551615
c__EA_amdsmi_power_profile_preset_masks_t = ctypes.c_uint64 # enum
amdsmi_power_profile_preset_masks_t = c__EA_amdsmi_power_profile_preset_masks_t
amdsmi_power_profile_preset_masks_t__enumvalues = c__EA_amdsmi_power_profile_preset_masks_t__enumvalues
amdsmi_power_profile_preset_masks = c__EA_amdsmi_power_profile_preset_masks_t
amdsmi_power_profile_preset_masks__enumvalues = c__EA_amdsmi_power_profile_preset_masks_t__enumvalues
# values for enumeration 'c__EA_amdsmi_gpu_block_t'
c__EA_amdsmi_gpu_block_t__enumvalues = {
@@ -1044,8 +1039,6 @@ AMDSMI_GPU_BLOCK_RESERVED = 9223372036854775808
c__EA_amdsmi_gpu_block_t = ctypes.c_uint64 # enum
amdsmi_gpu_block_t = c__EA_amdsmi_gpu_block_t
amdsmi_gpu_block_t__enumvalues = c__EA_amdsmi_gpu_block_t__enumvalues
amdsmi_gpu_block = c__EA_amdsmi_gpu_block_t
amdsmi_gpu_block__enumvalues = c__EA_amdsmi_gpu_block_t__enumvalues
# values for enumeration 'c__EA_amdsmi_ras_err_state_t'
c__EA_amdsmi_ras_err_state_t__enumvalues = {
@@ -1101,8 +1094,6 @@ AMDSMI_FREQ_IND_INVALID = 4294967295
c__EA_amdsmi_freq_ind_t = ctypes.c_uint32 # enum
amdsmi_freq_ind_t = c__EA_amdsmi_freq_ind_t
amdsmi_freq_ind_t__enumvalues = c__EA_amdsmi_freq_ind_t__enumvalues
amdsmi_freq_ind = c__EA_amdsmi_freq_ind_t
amdsmi_freq_ind__enumvalues = c__EA_amdsmi_freq_ind_t__enumvalues
# values for enumeration 'c__EA_amdsmi_xgmi_status_t'
c__EA_amdsmi_xgmi_status_t__enumvalues = {
@@ -1117,7 +1108,6 @@ c__EA_amdsmi_xgmi_status_t = ctypes.c_uint32 # enum
amdsmi_xgmi_status_t = c__EA_amdsmi_xgmi_status_t
amdsmi_xgmi_status_t__enumvalues = c__EA_amdsmi_xgmi_status_t__enumvalues
amdsmi_bit_field_t = ctypes.c_uint64
amdsmi_bit_field = ctypes.c_uint64
# values for enumeration 'c__EA_amdsmi_memory_page_status_t'
c__EA_amdsmi_memory_page_status_t__enumvalues = {
@@ -1132,8 +1122,8 @@ c__EA_amdsmi_memory_page_status_t = ctypes.c_uint32 # enum
amdsmi_memory_page_status_t = c__EA_amdsmi_memory_page_status_t
amdsmi_memory_page_status_t__enumvalues = c__EA_amdsmi_memory_page_status_t__enumvalues
# values for enumeration '_AMDSMI_IO_LINK_TYPE'
_AMDSMI_IO_LINK_TYPE__enumvalues = {
# values for enumeration 'c__EA_AMDSMI_IO_LINK_TYPE'
c__EA_AMDSMI_IO_LINK_TYPE__enumvalues = {
0: 'AMDSMI_IOLINK_TYPE_UNDEFINED',
1: 'AMDSMI_IOLINK_TYPE_PCIEXPRESS',
2: 'AMDSMI_IOLINK_TYPE_XGMI',
@@ -1145,9 +1135,9 @@ AMDSMI_IOLINK_TYPE_PCIEXPRESS = 1
AMDSMI_IOLINK_TYPE_XGMI = 2
AMDSMI_IOLINK_TYPE_NUMIOLINKTYPES = 3
AMDSMI_IOLINK_TYPE_SIZE = 4294967295
_AMDSMI_IO_LINK_TYPE = ctypes.c_uint32 # enum
AMDSMI_IO_LINK_TYPE = _AMDSMI_IO_LINK_TYPE
AMDSMI_IO_LINK_TYPE__enumvalues = _AMDSMI_IO_LINK_TYPE__enumvalues
c__EA_AMDSMI_IO_LINK_TYPE = ctypes.c_uint32 # enum
AMDSMI_IO_LINK_TYPE = c__EA_AMDSMI_IO_LINK_TYPE
AMDSMI_IO_LINK_TYPE__enumvalues = c__EA_AMDSMI_IO_LINK_TYPE__enumvalues
# values for enumeration 'c__EA_AMDSMI_UTILIZATION_COUNTER_TYPE'
c__EA_AMDSMI_UTILIZATION_COUNTER_TYPE__enumvalues = {
@@ -1198,7 +1188,6 @@ struct_c__SA_amdsmi_power_profile_status_t._fields_ = [
]
amdsmi_power_profile_status_t = struct_c__SA_amdsmi_power_profile_status_t
amdsmi_power_profile_status = struct_c__SA_amdsmi_power_profile_status_t
class struct_c__SA_amdsmi_frequencies_t(Structure):
pass
@@ -1210,7 +1199,6 @@ struct_c__SA_amdsmi_frequencies_t._fields_ = [
]
amdsmi_frequencies_t = struct_c__SA_amdsmi_frequencies_t
amdsmi_frequencies = struct_c__SA_amdsmi_frequencies_t
class struct_c__SA_amdsmi_pcie_bandwidth_t(Structure):
pass
@@ -1221,7 +1209,6 @@ struct_c__SA_amdsmi_pcie_bandwidth_t._fields_ = [
]
amdsmi_pcie_bandwidth_t = struct_c__SA_amdsmi_pcie_bandwidth_t
amdsmi_pcie_bandwidth = struct_c__SA_amdsmi_pcie_bandwidth_t
class struct_c__SA_amdsmi_version_t(Structure):
pass
@@ -1236,7 +1223,6 @@ struct_c__SA_amdsmi_version_t._fields_ = [
]
amdsmi_version_t = struct_c__SA_amdsmi_version_t
amdsmi_version = struct_c__SA_amdsmi_version_t
class struct_c__SA_amdsmi_od_vddc_point_t(Structure):
pass
@@ -1247,7 +1233,6 @@ struct_c__SA_amdsmi_od_vddc_point_t._fields_ = [
]
amdsmi_od_vddc_point_t = struct_c__SA_amdsmi_od_vddc_point_t
amdsmi_od_vddc_point = struct_c__SA_amdsmi_od_vddc_point_t
class struct_c__SA_amdsmi_freq_volt_region_t(Structure):
_pack_ = 1 # source:False
_fields_ = [
@@ -1256,7 +1241,6 @@ class struct_c__SA_amdsmi_freq_volt_region_t(Structure):
]
amdsmi_freq_volt_region_t = struct_c__SA_amdsmi_freq_volt_region_t
amdsmi_freq_volt_region = struct_c__SA_amdsmi_freq_volt_region_t
class struct_c__SA_amdsmi_od_volt_curve_t(Structure):
_pack_ = 1 # source:False
_fields_ = [
@@ -1264,7 +1248,6 @@ class struct_c__SA_amdsmi_od_volt_curve_t(Structure):
]
amdsmi_od_volt_curve_t = struct_c__SA_amdsmi_od_volt_curve_t
amdsmi_od_volt_curve = struct_c__SA_amdsmi_od_volt_curve_t
class struct_c__SA_amdsmi_od_volt_freq_data_t(Structure):
pass
@@ -1280,23 +1263,23 @@ struct_c__SA_amdsmi_od_volt_freq_data_t._fields_ = [
]
amdsmi_od_volt_freq_data_t = struct_c__SA_amdsmi_od_volt_freq_data_t
amdsmi_od_volt_freq_data = struct_c__SA_amdsmi_od_volt_freq_data_t
class struct_amd_metrics_table_header_t(Structure):
class struct_c__SA_amd_metrics_table_header_t(Structure):
pass
struct_amd_metrics_table_header_t._pack_ = 1 # source:False
struct_amd_metrics_table_header_t._fields_ = [
struct_c__SA_amd_metrics_table_header_t._pack_ = 1 # source:False
struct_c__SA_amd_metrics_table_header_t._fields_ = [
('structure_size', ctypes.c_uint16),
('format_revision', ctypes.c_ubyte),
('content_revision', ctypes.c_ubyte),
]
amd_metrics_table_header_t = struct_c__SA_amd_metrics_table_header_t
class struct_c__SA_amdsmi_gpu_metrics_t(Structure):
pass
struct_c__SA_amdsmi_gpu_metrics_t._pack_ = 1 # source:False
struct_c__SA_amdsmi_gpu_metrics_t._fields_ = [
('common_header', struct_amd_metrics_table_header_t),
('common_header', amd_metrics_table_header_t),
('temperature_edge', ctypes.c_uint16),
('temperature_hotspot', ctypes.c_uint16),
('temperature_mem', ctypes.c_uint16),
@@ -1345,18 +1328,18 @@ struct_c__SA_amdsmi_error_count_t._fields_ = [
]
amdsmi_error_count_t = struct_c__SA_amdsmi_error_count_t
class struct_amdsmi_pcie_info(Structure):
class struct_c__SA_amdsmi_pcie_info_t(Structure):
pass
struct_amdsmi_pcie_info._pack_ = 1 # source:False
struct_amdsmi_pcie_info._fields_ = [
struct_c__SA_amdsmi_pcie_info_t._pack_ = 1 # source:False
struct_c__SA_amdsmi_pcie_info_t._fields_ = [
('pcie_lanes', ctypes.c_uint16),
('PADDING_0', ctypes.c_ubyte * 2),
('pcie_speed', ctypes.c_uint32),
('reserved', ctypes.c_uint32 * 6),
]
amdsmi_pcie_info_t = struct_amdsmi_pcie_info
amdsmi_pcie_info_t = struct_c__SA_amdsmi_pcie_info_t
class struct_c__SA_amdsmi_process_info_t(Structure):
pass
@@ -1375,10 +1358,10 @@ class struct_amdsmi_func_id_iter_handle(Structure):
pass
amdsmi_func_id_iter_handle_t = ctypes.POINTER(struct_amdsmi_func_id_iter_handle)
class union_amd_id(Union):
class union_c__UA_amdsmi_func_id_value_t(Union):
pass
class union_amd_id_0(Union):
class union_c__UA_amdsmi_func_id_value_t_0(Union):
_pack_ = 1 # source:False
_fields_ = [
('memory_type', amdsmi_memory_type_t),
@@ -1390,14 +1373,14 @@ class union_amd_id_0(Union):
('gpu_block_type', amdsmi_gpu_block_t),
]
union_amd_id._pack_ = 1 # source:False
union_amd_id._fields_ = [
union_c__UA_amdsmi_func_id_value_t._pack_ = 1 # source:False
union_c__UA_amdsmi_func_id_value_t._fields_ = [
('id', ctypes.c_uint64),
('name', ctypes.POINTER(ctypes.c_char)),
('amd_id_0', union_amd_id_0),
('c__UA_amdsmi_func_id_value_t_0', union_c__UA_amdsmi_func_id_value_t_0),
]
amdsmi_func_id_value_t = union_amd_id
amdsmi_func_id_value_t = union_c__UA_amdsmi_func_id_value_t
uint64_t = ctypes.c_uint64
amdsmi_init = _libraries['libamd_smi.so'].amdsmi_init
amdsmi_init.restype = amdsmi_status_t
@@ -1417,7 +1400,7 @@ amdsmi_get_device_handles.restype = amdsmi_status_t
amdsmi_get_device_handles.argtypes = [amdsmi_socket_handle, ctypes.POINTER(ctypes.c_uint32), ctypes.POINTER(ctypes.POINTER(None))]
amdsmi_get_device_type = _libraries['libamd_smi.so'].amdsmi_get_device_type
amdsmi_get_device_type.restype = amdsmi_status_t
amdsmi_get_device_type.argtypes = [amdsmi_device_handle, ctypes.POINTER(device_type)]
amdsmi_get_device_type.argtypes = [amdsmi_device_handle, ctypes.POINTER(c__EA_device_type_t)]
amdsmi_get_device_handle_from_bdf = _libraries['libamd_smi.so'].amdsmi_get_device_handle_from_bdf
amdsmi_get_device_handle_from_bdf.restype = amdsmi_status_t
amdsmi_get_device_handle_from_bdf.argtypes = [amdsmi_bdf_t, ctypes.POINTER(ctypes.POINTER(None))]
@@ -1481,7 +1464,7 @@ amdsmi_get_bad_page_info.restype = amdsmi_status_t
amdsmi_get_bad_page_info.argtypes = [amdsmi_device_handle, ctypes.POINTER(ctypes.c_uint32), ctypes.POINTER(struct_c__SA_amdsmi_retired_page_record_t)]
amdsmi_get_ras_block_features_enabled = _libraries['libamd_smi.so'].amdsmi_get_ras_block_features_enabled
amdsmi_get_ras_block_features_enabled.restype = amdsmi_status_t
amdsmi_get_ras_block_features_enabled.argtypes = [amdsmi_device_handle, amdsmi_gpu_block, ctypes.POINTER(c__EA_amdsmi_ras_err_state_t)]
amdsmi_get_ras_block_features_enabled.argtypes = [amdsmi_device_handle, amdsmi_gpu_block_t, ctypes.POINTER(c__EA_amdsmi_ras_err_state_t)]
amdsmi_dev_get_memory_busy_percent = _libraries['libamd_smi.so'].amdsmi_dev_get_memory_busy_percent
amdsmi_dev_get_memory_busy_percent.restype = amdsmi_status_t
amdsmi_dev_get_memory_busy_percent.argtypes = [amdsmi_device_handle, ctypes.POINTER(ctypes.c_uint32)]
@@ -1517,10 +1500,10 @@ amdsmi_get_utilization_count.restype = amdsmi_status_t
amdsmi_get_utilization_count.argtypes = [amdsmi_device_handle, struct_c__SA_amdsmi_utilization_counter_t * 0, 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_device_handle, ctypes.POINTER(struct_amdsmi_pcie_info)]
amdsmi_get_pcie_link_status.argtypes = [amdsmi_device_handle, ctypes.POINTER(struct_c__SA_amdsmi_pcie_info_t)]
amdsmi_get_pcie_link_caps = _libraries['libamd_smi.so'].amdsmi_get_pcie_link_caps
amdsmi_get_pcie_link_caps.restype = amdsmi_status_t
amdsmi_get_pcie_link_caps.argtypes = [amdsmi_device_handle, ctypes.POINTER(struct_amdsmi_pcie_info)]
amdsmi_get_pcie_link_caps.argtypes = [amdsmi_device_handle, ctypes.POINTER(struct_c__SA_amdsmi_pcie_info_t)]
amdsmi_dev_get_perf_level = _libraries['libamd_smi.so'].amdsmi_dev_get_perf_level
amdsmi_dev_get_perf_level.restype = amdsmi_status_t
amdsmi_dev_get_perf_level.argtypes = [amdsmi_device_handle, ctypes.POINTER(c__EA_amdsmi_dev_perf_level_t)]
@@ -1634,7 +1617,7 @@ amdsmi_get_minmax_bandwidth.restype = amdsmi_status_t
amdsmi_get_minmax_bandwidth.argtypes = [amdsmi_device_handle, amdsmi_device_handle, ctypes.POINTER(ctypes.c_uint64), ctypes.POINTER(ctypes.c_uint64)]
amdsmi_topo_get_link_type = _libraries['libamd_smi.so'].amdsmi_topo_get_link_type
amdsmi_topo_get_link_type.restype = amdsmi_status_t
amdsmi_topo_get_link_type.argtypes = [amdsmi_device_handle, amdsmi_device_handle, ctypes.POINTER(ctypes.c_uint64), ctypes.POINTER(_AMDSMI_IO_LINK_TYPE)]
amdsmi_topo_get_link_type.argtypes = [amdsmi_device_handle, amdsmi_device_handle, ctypes.POINTER(ctypes.c_uint64), ctypes.POINTER(c__EA_AMDSMI_IO_LINK_TYPE)]
amdsmi_is_P2P_accessible = _libraries['libamd_smi.so'].amdsmi_is_P2P_accessible
amdsmi_is_P2P_accessible.restype = amdsmi_status_t
amdsmi_is_P2P_accessible.argtypes = [amdsmi_device_handle, amdsmi_device_handle, ctypes.POINTER(ctypes.c_bool)]
@@ -1652,7 +1635,7 @@ amdsmi_dev_close_supported_func_iterator.restype = amdsmi_status_t
amdsmi_dev_close_supported_func_iterator.argtypes = [ctypes.POINTER(ctypes.POINTER(struct_amdsmi_func_id_iter_handle))]
amdsmi_get_func_iter_value = _libraries['libamd_smi.so'].amdsmi_get_func_iter_value
amdsmi_get_func_iter_value.restype = amdsmi_status_t
amdsmi_get_func_iter_value.argtypes = [amdsmi_func_id_iter_handle_t, ctypes.POINTER(union_amd_id)]
amdsmi_get_func_iter_value.argtypes = [amdsmi_func_id_iter_handle_t, ctypes.POINTER(union_c__UA_amdsmi_func_id_value_t)]
amdsmi_init_event_notification = _libraries['libamd_smi.so'].amdsmi_init_event_notification
amdsmi_init_event_notification.restype = amdsmi_status_t
amdsmi_init_event_notification.argtypes = [amdsmi_device_handle]
@@ -1667,7 +1650,7 @@ amdsmi_stop_event_notification.restype = amdsmi_status_t
amdsmi_stop_event_notification.argtypes = [amdsmi_device_handle]
amdsmi_get_device_bdf = _libraries['libamd_smi.so'].amdsmi_get_device_bdf
amdsmi_get_device_bdf.restype = amdsmi_status_t
amdsmi_get_device_bdf.argtypes = [amdsmi_device_handle, ctypes.POINTER(union_amdsmi_bdf)]
amdsmi_get_device_bdf.argtypes = [amdsmi_device_handle, ctypes.POINTER(union_c__UA_amdsmi_bdf_t)]
amdsmi_get_device_uuid = _libraries['libamd_smi.so'].amdsmi_get_device_uuid
amdsmi_get_device_uuid.restype = amdsmi_status_t
amdsmi_get_device_uuid.argtypes = [amdsmi_device_handle, ctypes.POINTER(ctypes.c_uint32), ctypes.POINTER(ctypes.c_char)]
@@ -1676,46 +1659,46 @@ amdsmi_get_driver_version.restype = amdsmi_status_t
amdsmi_get_driver_version.argtypes = [amdsmi_device_handle, ctypes.POINTER(ctypes.c_int32), ctypes.POINTER(ctypes.c_char)]
amdsmi_get_asic_info = _libraries['libamd_smi.so'].amdsmi_get_asic_info
amdsmi_get_asic_info.restype = amdsmi_status_t
amdsmi_get_asic_info.argtypes = [amdsmi_device_handle, ctypes.POINTER(struct_amdsmi_asic_info)]
amdsmi_get_asic_info.argtypes = [amdsmi_device_handle, ctypes.POINTER(struct_c__SA_amdsmi_asic_info_t)]
amdsmi_get_board_info = _libraries['libamd_smi.so'].amdsmi_get_board_info
amdsmi_get_board_info.restype = amdsmi_status_t
amdsmi_get_board_info.argtypes = [amdsmi_device_handle, ctypes.POINTER(struct_amdsmi_board_info)]
amdsmi_get_board_info.argtypes = [amdsmi_device_handle, ctypes.POINTER(struct_c__SA_amdsmi_board_info_t)]
amdsmi_get_power_cap_info = _libraries['libamd_smi.so'].amdsmi_get_power_cap_info
amdsmi_get_power_cap_info.restype = amdsmi_status_t
amdsmi_get_power_cap_info.argtypes = [amdsmi_device_handle, uint32_t, ctypes.POINTER(struct_amdsmi_power_cap_info)]
amdsmi_get_power_cap_info.argtypes = [amdsmi_device_handle, uint32_t, ctypes.POINTER(struct_c__SA_amdsmi_power_cap_info_t)]
amdsmi_get_xgmi_info = _libraries['libamd_smi.so'].amdsmi_get_xgmi_info
amdsmi_get_xgmi_info.restype = amdsmi_status_t
amdsmi_get_xgmi_info.argtypes = [amdsmi_device_handle, ctypes.POINTER(struct_amdsmi_xgmi_info)]
amdsmi_get_xgmi_info.argtypes = [amdsmi_device_handle, ctypes.POINTER(struct_c__SA_amdsmi_xgmi_info_t)]
amdsmi_get_caps_info = _libraries['libamd_smi.so'].amdsmi_get_caps_info
amdsmi_get_caps_info.restype = amdsmi_status_t
amdsmi_get_caps_info.argtypes = [amdsmi_device_handle, ctypes.POINTER(struct_amdsmi_gpu_caps)]
amdsmi_get_caps_info.argtypes = [amdsmi_device_handle, ctypes.POINTER(struct_c__SA_amdsmi_gpu_caps_t)]
amdsmi_get_fw_info = _libraries['libamd_smi.so'].amdsmi_get_fw_info
amdsmi_get_fw_info.restype = amdsmi_status_t
amdsmi_get_fw_info.argtypes = [amdsmi_device_handle, ctypes.POINTER(struct_amdsmi_fw_info)]
amdsmi_get_fw_info.argtypes = [amdsmi_device_handle, ctypes.POINTER(struct_c__SA_amdsmi_fw_info_t)]
amdsmi_get_vbios_info = _libraries['libamd_smi.so'].amdsmi_get_vbios_info
amdsmi_get_vbios_info.restype = amdsmi_status_t
amdsmi_get_vbios_info.argtypes = [amdsmi_device_handle, ctypes.POINTER(struct_amdsmi_vbios_info)]
amdsmi_get_vbios_info.argtypes = [amdsmi_device_handle, ctypes.POINTER(struct_c__SA_amdsmi_vbios_info_t)]
amdsmi_get_gpu_activity = _libraries['libamd_smi.so'].amdsmi_get_gpu_activity
amdsmi_get_gpu_activity.restype = amdsmi_status_t
amdsmi_get_gpu_activity.argtypes = [amdsmi_device_handle, ctypes.POINTER(struct_amdsmi_engine_usage)]
amdsmi_get_gpu_activity.argtypes = [amdsmi_device_handle, ctypes.POINTER(struct_c__SA_amdsmi_engine_usage_t)]
amdsmi_get_power_measure = _libraries['libamd_smi.so'].amdsmi_get_power_measure
amdsmi_get_power_measure.restype = amdsmi_status_t
amdsmi_get_power_measure.argtypes = [amdsmi_device_handle, ctypes.POINTER(struct_amdsmi_power_measure)]
amdsmi_get_power_measure.argtypes = [amdsmi_device_handle, ctypes.POINTER(struct_c__SA_amdsmi_power_measure_t)]
amdsmi_get_clock_measure = _libraries['libamd_smi.so'].amdsmi_get_clock_measure
amdsmi_get_clock_measure.restype = amdsmi_status_t
amdsmi_get_clock_measure.argtypes = [amdsmi_device_handle, amdsmi_clk_type_t, ctypes.POINTER(struct_amdsmi_clk_measure)]
amdsmi_get_clock_measure.argtypes = [amdsmi_device_handle, amdsmi_clk_type_t, ctypes.POINTER(struct_c__SA_amdsmi_clk_measure_t)]
amdsmi_get_vram_usage = _libraries['libamd_smi.so'].amdsmi_get_vram_usage
amdsmi_get_vram_usage.restype = amdsmi_status_t
amdsmi_get_vram_usage.argtypes = [amdsmi_device_handle, ctypes.POINTER(struct_amdsmi_vram_info)]
amdsmi_get_vram_usage.argtypes = [amdsmi_device_handle, ctypes.POINTER(struct_c__SA_amdsmi_vram_info_t)]
amdsmi_get_target_frequency_range = _libraries['libamd_smi.so'].amdsmi_get_target_frequency_range
amdsmi_get_target_frequency_range.restype = amdsmi_status_t
amdsmi_get_target_frequency_range.argtypes = [amdsmi_device_handle, amdsmi_clk_type_t, ctypes.POINTER(struct_amdsmi_frequency_range)]
amdsmi_get_target_frequency_range.argtypes = [amdsmi_device_handle, amdsmi_clk_type_t, ctypes.POINTER(struct_c__SA_amdsmi_frequency_range_t)]
amdsmi_get_process_list = _libraries['libamd_smi.so'].amdsmi_get_process_list
amdsmi_get_process_list.restype = amdsmi_status_t
amdsmi_get_process_list.argtypes = [amdsmi_device_handle, ctypes.POINTER(ctypes.c_uint32), ctypes.POINTER(ctypes.c_uint32)]
amdsmi_get_process_info = _libraries['libamd_smi.so'].amdsmi_get_process_info
amdsmi_get_process_info.restype = amdsmi_status_t
amdsmi_get_process_info.argtypes = [amdsmi_device_handle, amdsmi_process_handle, ctypes.POINTER(struct_amdsmi_process_info)]
amdsmi_get_process_info.argtypes = [amdsmi_device_handle, amdsmi_process_handle, ctypes.POINTER(struct_c__SA_amdsmi_proc_info_t)]
amdsmi_get_ecc_error_count = _libraries['libamd_smi.so'].amdsmi_get_ecc_error_count
amdsmi_get_ecc_error_count.restype = amdsmi_status_t
amdsmi_get_ecc_error_count.argtypes = [amdsmi_device_handle, ctypes.POINTER(struct_c__SA_amdsmi_error_count_t)]
@@ -1842,11 +1825,10 @@ __all__ = \
'TEMPERATURE_TYPE_HBM_2', 'TEMPERATURE_TYPE_HBM_3',
'TEMPERATURE_TYPE_JUNCTION', 'TEMPERATURE_TYPE_PLX',
'TEMPERATURE_TYPE_VRAM', 'TEMPERATURE_TYPE__MAX', 'UNKNOWN',
'_AMDSMI_IO_LINK_TYPE', 'amdsmi_asic_info_t', 'amdsmi_bdf_t',
'amdsmi_bit_field', 'amdsmi_bit_field_t', 'amdsmi_board_info_t',
'amdsmi_clk_measure_t', 'amdsmi_clk_type', 'amdsmi_clk_type_t',
'amdsmi_clk_type_t__enumvalues', 'amdsmi_container_types',
'amdsmi_container_types_t',
'amd_metrics_table_header_t', 'amdsmi_asic_info_t',
'amdsmi_bdf_t', 'amdsmi_bit_field_t', 'amdsmi_board_info_t',
'amdsmi_clk_measure_t', 'amdsmi_clk_type_t',
'amdsmi_clk_type_t__enumvalues', 'amdsmi_container_types_t',
'amdsmi_container_types_t__enumvalues', 'amdsmi_control_counter',
'amdsmi_counter_command_t',
'amdsmi_counter_command_t__enumvalues',
@@ -1874,7 +1856,6 @@ __all__ = \
'amdsmi_dev_get_volt_metric', 'amdsmi_dev_get_vram_vendor',
'amdsmi_dev_open_supported_func_iterator',
'amdsmi_dev_open_supported_variant_iterator',
'amdsmi_dev_perf_level', 'amdsmi_dev_perf_level__enumvalues',
'amdsmi_dev_perf_level_t', 'amdsmi_dev_perf_level_t__enumvalues',
'amdsmi_dev_reset_fan', 'amdsmi_dev_reset_gpu',
'amdsmi_dev_reset_xgmi_error', 'amdsmi_dev_set_clk_freq',
@@ -1891,17 +1872,15 @@ __all__ = \
'amdsmi_event_type_t', 'amdsmi_event_type_t__enumvalues',
'amdsmi_evt_notification_data_t',
'amdsmi_evt_notification_type_t',
'amdsmi_evt_notification_type_t__enumvalues', 'amdsmi_freq_ind',
'amdsmi_freq_ind__enumvalues', 'amdsmi_freq_ind_t',
'amdsmi_freq_ind_t__enumvalues', 'amdsmi_freq_volt_region',
'amdsmi_freq_volt_region_t', 'amdsmi_frequencies',
'amdsmi_evt_notification_type_t__enumvalues', 'amdsmi_freq_ind_t',
'amdsmi_freq_ind_t__enumvalues', 'amdsmi_freq_volt_region_t',
'amdsmi_frequencies_t', 'amdsmi_frequency_range_t',
'amdsmi_func_id_iter_handle_t', 'amdsmi_func_id_value_t',
'amdsmi_fw_block', 'amdsmi_fw_block_t',
'amdsmi_fw_block_t__enumvalues', 'amdsmi_fw_info_t',
'amdsmi_get_asic_info', 'amdsmi_get_bad_page_info',
'amdsmi_get_board_info', 'amdsmi_get_caps_info',
'amdsmi_get_clock_measure', 'amdsmi_get_compute_process_gpus',
'amdsmi_fw_block_t', 'amdsmi_fw_block_t__enumvalues',
'amdsmi_fw_info_t', 'amdsmi_get_asic_info',
'amdsmi_get_bad_page_info', 'amdsmi_get_board_info',
'amdsmi_get_caps_info', 'amdsmi_get_clock_measure',
'amdsmi_get_compute_process_gpus',
'amdsmi_get_compute_process_info',
'amdsmi_get_compute_process_info_by_pid', 'amdsmi_get_device_bdf',
'amdsmi_get_device_handle_from_bdf', 'amdsmi_get_device_handles',
@@ -1919,86 +1898,95 @@ __all__ = \
'amdsmi_get_utilization_count', 'amdsmi_get_vbios_info',
'amdsmi_get_version', 'amdsmi_get_version_str',
'amdsmi_get_vram_usage', 'amdsmi_get_xgmi_info',
'amdsmi_gpu_block', 'amdsmi_gpu_block__enumvalues',
'amdsmi_gpu_block_t', 'amdsmi_gpu_block_t__enumvalues',
'amdsmi_gpu_caps_t', 'amdsmi_gpu_metrics_t', 'amdsmi_init',
'amdsmi_init_event_notification', 'amdsmi_init_flags',
'amdsmi_init_flags_t', 'amdsmi_init_flags_t__enumvalues',
'amdsmi_is_P2P_accessible', 'amdsmi_memory_page_status_t',
'amdsmi_init_event_notification', 'amdsmi_init_flags_t',
'amdsmi_init_flags_t__enumvalues', 'amdsmi_is_P2P_accessible',
'amdsmi_memory_page_status_t',
'amdsmi_memory_page_status_t__enumvalues', 'amdsmi_memory_type_t',
'amdsmi_memory_type_t__enumvalues', 'amdsmi_mm_ip',
'amdsmi_mm_ip_t', 'amdsmi_mm_ip_t__enumvalues',
'amdsmi_next_func_iter', 'amdsmi_od_vddc_point',
'amdsmi_od_vddc_point_t', 'amdsmi_od_volt_curve',
'amdsmi_od_volt_curve_t', 'amdsmi_od_volt_freq_data',
'amdsmi_od_volt_freq_data_t', 'amdsmi_pcie_bandwidth',
'amdsmi_pcie_bandwidth_t', 'amdsmi_pcie_info_t',
'amdsmi_power_cap_info_t', 'amdsmi_power_measure_t',
'amdsmi_power_profile_preset_masks',
'amdsmi_power_profile_preset_masks__enumvalues',
'amdsmi_power_profile_preset_masks_t',
'amdsmi_memory_type_t__enumvalues', 'amdsmi_mm_ip_t',
'amdsmi_mm_ip_t__enumvalues', 'amdsmi_next_func_iter',
'amdsmi_od_vddc_point_t', 'amdsmi_od_volt_curve_t',
'amdsmi_od_volt_freq_data_t', 'amdsmi_pcie_bandwidth_t',
'amdsmi_pcie_info_t', 'amdsmi_power_cap_info_t',
'amdsmi_power_measure_t', 'amdsmi_power_profile_preset_masks_t',
'amdsmi_power_profile_preset_masks_t__enumvalues',
'amdsmi_power_profile_status', 'amdsmi_power_profile_status_t',
'amdsmi_proc_info_t', 'amdsmi_process_handle',
'amdsmi_process_info_t', 'amdsmi_range', 'amdsmi_range_t',
'amdsmi_ras_err_state_t', 'amdsmi_ras_err_state_t__enumvalues',
'amdsmi_read_counter', 'amdsmi_retired_page_record_t',
'amdsmi_power_profile_status_t', 'amdsmi_proc_info_t',
'amdsmi_process_handle', 'amdsmi_process_info_t',
'amdsmi_range_t', 'amdsmi_ras_err_state_t',
'amdsmi_ras_err_state_t__enumvalues', 'amdsmi_read_counter',
'amdsmi_retired_page_record_t',
'amdsmi_set_event_notification_mask',
'amdsmi_set_perf_determinism_mode', 'amdsmi_shut_down',
'amdsmi_socket_handle', 'amdsmi_status_string', 'amdsmi_status_t',
'amdsmi_stop_event_notification', 'amdsmi_sw_component_t',
'amdsmi_sw_component_t__enumvalues', 'amdsmi_temperature_metric',
'amdsmi_temperature_metric__enumvalues',
'amdsmi_status_t__enumvalues', 'amdsmi_stop_event_notification',
'amdsmi_sw_component_t', 'amdsmi_sw_component_t__enumvalues',
'amdsmi_temperature_metric_t',
'amdsmi_temperature_metric_t__enumvalues',
'amdsmi_temperature_type', 'amdsmi_temperature_type_t',
'amdsmi_temperature_type_t',
'amdsmi_temperature_type_t__enumvalues',
'amdsmi_topo_get_link_type', 'amdsmi_topo_get_link_weight',
'amdsmi_topo_get_numa_affinity',
'amdsmi_topo_get_numa_node_number',
'amdsmi_utilization_counter_t', 'amdsmi_vbios_info_t',
'amdsmi_version', 'amdsmi_version_t', 'amdsmi_voltage_metric_t',
'amdsmi_version_t', 'amdsmi_voltage_metric_t',
'amdsmi_voltage_metric_t__enumvalues', 'amdsmi_voltage_type_t',
'amdsmi_voltage_type_t__enumvalues', 'amdsmi_vram_info_t',
'amdsmi_xgmi_info_t', 'amdsmi_xgmi_status_t',
'amdsmi_xgmi_status_t__enumvalues',
'amdsmi_xgmi_status_t__enumvalues', 'c__EA_AMDSMI_IO_LINK_TYPE',
'c__EA_AMDSMI_UTILIZATION_COUNTER_TYPE',
'c__EA_amdsmi_clk_type_t', 'c__EA_amdsmi_container_types_t',
'c__EA_amdsmi_counter_command_t', 'c__EA_amdsmi_dev_perf_level_t',
'c__EA_amdsmi_event_group_t', 'c__EA_amdsmi_event_type_t',
'c__EA_amdsmi_evt_notification_type_t', 'c__EA_amdsmi_freq_ind_t',
'c__EA_amdsmi_gpu_block_t', 'c__EA_amdsmi_memory_page_status_t',
'c__EA_amdsmi_memory_type_t',
'c__EA_amdsmi_fw_block_t', 'c__EA_amdsmi_gpu_block_t',
'c__EA_amdsmi_init_flags_t', 'c__EA_amdsmi_memory_page_status_t',
'c__EA_amdsmi_memory_type_t', 'c__EA_amdsmi_mm_ip_t',
'c__EA_amdsmi_power_profile_preset_masks_t',
'c__EA_amdsmi_ras_err_state_t', 'c__EA_amdsmi_sw_component_t',
'c__EA_amdsmi_ras_err_state_t', 'c__EA_amdsmi_status_t',
'c__EA_amdsmi_sw_component_t',
'c__EA_amdsmi_temperature_metric_t',
'c__EA_amdsmi_temperature_type_t',
'c__EA_amdsmi_voltage_metric_t', 'c__EA_amdsmi_voltage_type_t',
'c__EA_amdsmi_xgmi_status_t', 'device_type', 'device_type_t',
'device_type_t__enumvalues', 'size_t',
'struct_amd_metrics_table_header_t', 'struct_amdsmi_asic_info',
'struct_amdsmi_bdf_0', 'struct_amdsmi_board_info',
'struct_amdsmi_clk_measure', 'struct_amdsmi_engine_usage',
'struct_amdsmi_frequency_range',
'struct_amdsmi_func_id_iter_handle', 'struct_amdsmi_fw_info',
'struct_amdsmi_fw_info_0', 'struct_amdsmi_gpu_caps',
'struct_amdsmi_gpu_caps_0', 'struct_amdsmi_gpu_caps_1',
'struct_amdsmi_pcie_info', 'struct_amdsmi_power_cap_info',
'struct_amdsmi_power_measure', 'struct_amdsmi_process_info',
'struct_amdsmi_process_info_0', 'struct_amdsmi_process_info_1',
'struct_amdsmi_vbios_info', 'struct_amdsmi_vram_info',
'struct_amdsmi_xgmi_info', 'struct_c__SA_amdsmi_counter_value_t',
'c__EA_amdsmi_xgmi_status_t', 'c__EA_device_type_t',
'device_type_t', 'device_type_t__enumvalues', 'size_t',
'struct_amdsmi_func_id_iter_handle',
'struct_c__SA_amd_metrics_table_header_t',
'struct_c__SA_amdsmi_asic_info_t',
'struct_c__SA_amdsmi_board_info_t',
'struct_c__SA_amdsmi_clk_measure_t',
'struct_c__SA_amdsmi_counter_value_t',
'struct_c__SA_amdsmi_engine_usage_t',
'struct_c__SA_amdsmi_error_count_t',
'struct_c__SA_amdsmi_evt_notification_data_t',
'struct_c__SA_amdsmi_freq_volt_region_t',
'struct_c__SA_amdsmi_frequencies_t',
'struct_c__SA_amdsmi_frequency_range_t',
'struct_c__SA_amdsmi_fw_info_t',
'struct_c__SA_amdsmi_fw_info_t_0',
'struct_c__SA_amdsmi_gpu_caps_t',
'struct_c__SA_amdsmi_gpu_caps_t_0',
'struct_c__SA_amdsmi_gpu_caps_t_1',
'struct_c__SA_amdsmi_gpu_metrics_t',
'struct_c__SA_amdsmi_od_vddc_point_t',
'struct_c__SA_amdsmi_od_volt_curve_t',
'struct_c__SA_amdsmi_od_volt_freq_data_t',
'struct_c__SA_amdsmi_pcie_bandwidth_t',
'struct_c__SA_amdsmi_pcie_info_t',
'struct_c__SA_amdsmi_power_cap_info_t',
'struct_c__SA_amdsmi_power_measure_t',
'struct_c__SA_amdsmi_power_profile_status_t',
'struct_c__SA_amdsmi_proc_info_t',
'struct_c__SA_amdsmi_proc_info_t_0',
'struct_c__SA_amdsmi_proc_info_t_1',
'struct_c__SA_amdsmi_process_info_t',
'struct_c__SA_amdsmi_range_t',
'struct_c__SA_amdsmi_retired_page_record_t',
'struct_c__SA_amdsmi_utilization_counter_t',
'struct_c__SA_amdsmi_version_t', 'uint32_t', 'uint64_t',
'union_amd_id', 'union_amd_id_0', 'union_amdsmi_bdf']
'struct_c__SA_amdsmi_vbios_info_t',
'struct_c__SA_amdsmi_version_t',
'struct_c__SA_amdsmi_vram_info_t',
'struct_c__SA_amdsmi_xgmi_info_t', 'struct_c__UA_amdsmi_bdf_t_0',
'uint32_t', 'uint64_t', 'union_c__UA_amdsmi_bdf_t',
'union_c__UA_amdsmi_func_id_value_t',
'union_c__UA_amdsmi_func_id_value_t_0']
+3 -3
View File
@@ -386,7 +386,7 @@ amdsmi_status_t amdsmi_get_vram_usage(amdsmi_device_handle device_handle,
}
amdsmi_status_t amdsmi_get_caps_info(amdsmi_device_handle device_handle,
struct amdsmi_gpu_caps *info) {
amdsmi_gpu_caps_t *info) {
AMDSMI_CHECK_INIT();
@@ -512,7 +512,7 @@ amdsmi_status_t amdsmi_dev_get_id(amdsmi_device_handle device_handle,
// TODO(bliu) : add fw info from libdrm
amdsmi_status_t amdsmi_get_fw_info(amdsmi_device_handle device_handle,
amdsmi_fw_info_t *info) {
const std::map<amdsmi_fw_block, rsmi_fw_block_t> fw_in_rsmi = {
const std::map<amdsmi_fw_block_t, rsmi_fw_block_t> fw_in_rsmi = {
{ FW_ID_ASD, RSMI_FW_BLOCK_ASD},
{ FW_ID_CP_CE, RSMI_FW_BLOCK_CE},
{ FW_ID_DMCU, RSMI_FW_BLOCK_DMCU},
@@ -1524,7 +1524,7 @@ amdsmi_get_clock_measure(amdsmi_device_handle device_handle, amdsmi_clk_type_t c
}
amdsmi_status_t
amdsmi_get_ras_block_features_enabled(amdsmi_device_handle device_handle, amdsmi_gpu_block block, amdsmi_ras_err_state_t *state) {
amdsmi_get_ras_block_features_enabled(amdsmi_device_handle device_handle, amdsmi_gpu_block_t block, amdsmi_ras_err_state_t *state) {
AMDSMI_CHECK_INIT();
if (state == nullptr || block > AMDSMI_GPU_BLOCK_LAST) {
@@ -68,5 +68,5 @@ target_link_libraries(${TEST} amd_smi c stdc++ pthread GTest::gtest_main)
# TODO: Remove GTest from here in the future and rely on INSTALL_GTEST?
install(
TARGETS ${TEST} gtest gtest_main
DESTINATION ${SHARE_INSTALL_PREFIX}/tests/amd_smi
DESTINATION ${SHARE_INSTALL_PREFIX}/tests
COMPONENT tests)
@@ -93,7 +93,7 @@ void TestFrequenciesReadWrite::Run(void) {
amdsmi_status_t ret;
amdsmi_frequencies_t f;
uint32_t freq_bitmask;
amdsmi_clk_type amdsmi_clk;
amdsmi_clk_type_t amdsmi_clk;
TestBase::Run();
if (setup_failed_) {
@@ -106,7 +106,7 @@ void TestFrequenciesReadWrite::Run(void) {
for (uint32_t clk = (uint32_t)CLK_TYPE_FIRST;
clk <= CLK_TYPE__MAX; ++clk) {
amdsmi_clk = (amdsmi_clk_type)clk;
amdsmi_clk = (amdsmi_clk_type_t)clk;
auto freq_read = [&]() -> bool {
// Skip CLK_TYPE_PCIE, which does not supported in rocm-smi.
@@ -84,7 +84,7 @@ void TestVoltCurvRead::Close() {
TestBase::Close();
}
static void pt_rng_Mhz(std::string title, amdsmi_range *r) {
static void pt_rng_Mhz(std::string title, amdsmi_range_t *r) {
assert(r != nullptr);
std::cout << title << std::endl;
@@ -92,7 +92,7 @@ static void pt_rng_Mhz(std::string title, amdsmi_range *r) {
r->upper_bound/1000000 << " MHz" << std::endl;
}
static void pt_rng_mV(std::string title, amdsmi_range *r) {
static void pt_rng_mV(std::string title, amdsmi_range_t *r) {
assert(r != nullptr);
std::cout << title << std::endl;
@@ -105,7 +105,7 @@ static void print_pnt(amdsmi_od_vddc_point_t *pt) {
std::endl;
std::cout << "\t\t** Voltage: " << pt->voltage << "mV" << std::endl;
}
static void pt_vddc_curve(amdsmi_od_volt_curve *c) {
static void pt_vddc_curve(amdsmi_od_volt_curve_t *c) {
assert(c != nullptr);
for (uint32_t i = 0; i < AMDSMI_NUM_VOLTAGE_CURVE_POINTS; ++i) {
@@ -173,7 +173,7 @@ void TestBase::PrintDeviceHeader(amdsmi_device_handle dv_ind) {
std::cout << "\t**Device ID: 0x" << std::hex << val_ui16 << std::endl;
}
amdsmi_board_info board_info;
amdsmi_board_info_t board_info;
err = amdsmi_get_board_info(dv_ind, &board_info);
CHK_ERR_ASRT(err)
IF_VERB(STANDARD) {
@@ -214,7 +214,7 @@ const char *GetErrStateNameStr(amdsmi_ras_err_state_t st) {
const std::string GetVoltSensorNameStr(amdsmi_voltage_type_t st) {
return kVoltSensorNameMap.at(st);
}
const char *FreqEnumToStr(amdsmi_clk_type amdsmi_clk) {
const char *FreqEnumToStr(amdsmi_clk_type_t amdsmi_clk) {
static_assert(CLK_TYPE__MAX == CLK_TYPE_DCLK1,
"FreqEnumToStr() needs to be updated");
switch (amdsmi_clk) {
@@ -66,7 +66,7 @@ void PrintTestHeader(uint32_t dv_ind);
const char *GetPerfLevelStr(amdsmi_dev_perf_level_t lvl);
const char *GetBlockNameStr(amdsmi_gpu_block_t id);
const char *GetErrStateNameStr(amdsmi_ras_err_state_t st);
const char *FreqEnumToStr(amdsmi_clk_type amdsmi_clk);
const char *FreqEnumToStr(amdsmi_clk_type_t amdsmi_clk);
const std::string GetVoltSensorNameStr(amdsmi_voltage_type_t st);
#if ENABLE_SMI
@@ -60,5 +60,5 @@ target_link_libraries(${TEST} rocm_smi64 c stdc++ pthread GTest::gtest_main)
#install(
# TARGETS ${TEST}
# DESTINATION ${SHARE_INSTALL_PREFIX}/tests/amd_smi
# DESTINATION ${SHARE_INSTALL_PREFIX}/tests
# COMPONENT tests)