Refactor gpu_metrics usage in libraries
Signed-off-by: Maisam Arif <maisarif@amd.com>
Change-Id: I763638d4b546bf49b234e823df81028c357e8f49
[ROCm/amdsmi commit: d790ebc62b]
Cette révision appartient à :
@@ -524,13 +524,13 @@ class AMDSMICommands():
|
||||
if 'partition' in current_platform_args:
|
||||
if args.partition:
|
||||
try:
|
||||
compute_partition = amdsmi_interface.amdsmi_dev_compute_partition_get(args.gpu)
|
||||
compute_partition = amdsmi_interface.amdsmi_get_gpu_compute_partition(args.gpu)
|
||||
except amdsmi_exception.AmdSmiLibraryException as e:
|
||||
compute_partition = "N/A"
|
||||
logging.debug("Failed to get compute partition info for gpu %s | %s", gpu_id, e.get_error_info())
|
||||
|
||||
try:
|
||||
memory_partition = amdsmi_interface.amdsmi_dev_memory_partition_get(args.gpu)
|
||||
memory_partition = amdsmi_interface.amdsmi_get_gpu_memory_partition(args.gpu)
|
||||
except amdsmi_exception.AmdSmiLibraryException as e:
|
||||
memory_partition = "N/A"
|
||||
logging.debug("Failed to get memory partition info for gpu %s | %s", gpu_id, e.get_error_info())
|
||||
@@ -1943,7 +1943,7 @@ class AMDSMICommands():
|
||||
if args.compute_partition:
|
||||
compute_partition = amdsmi_interface.AmdSmiComputePartitionType[args.compute_partition]
|
||||
try:
|
||||
amdsmi_interface.amdsmi_dev_compute_partition_set(args.gpu, compute_partition)
|
||||
amdsmi_interface.amdsmi_set_gpu_compute_partition(args.gpu, compute_partition)
|
||||
except amdsmi_exception.AmdSmiLibraryException as e:
|
||||
if e.get_error_code() == amdsmi_interface.amdsmi_wrapper.AMDSMI_STATUS_NO_PERM:
|
||||
raise PermissionError('Command requires elevation') from e
|
||||
@@ -1952,7 +1952,7 @@ class AMDSMICommands():
|
||||
if args.memory_partition:
|
||||
memory_partition = amdsmi_interface.AmdSmiMemoryPartitionType[args.memory_partition]
|
||||
try:
|
||||
amdsmi_interface.amdsmi_dev_memory_partition_set(args.gpu, memory_partition)
|
||||
amdsmi_interface.amdsmi_set_gpu_memory_partition(args.gpu, memory_partition)
|
||||
except amdsmi_exception.AmdSmiLibraryException as e:
|
||||
if e.get_error_code() == amdsmi_interface.amdsmi_wrapper.AMDSMI_STATUS_NO_PERM:
|
||||
raise PermissionError('Command requires elevation') from e
|
||||
@@ -2165,7 +2165,7 @@ class AMDSMICommands():
|
||||
self.logger.store_output(args.gpu, 'reset_perf_determinism', result)
|
||||
if args.compute_partition:
|
||||
try:
|
||||
amdsmi_interface.amdsmi_dev_compute_partition_reset(args.gpu)
|
||||
amdsmi_interface.amdsmi_reset_gpu_compute_partition(args.gpu)
|
||||
result = 'Successfully reset compute partition'
|
||||
except amdsmi_exception.AmdSmiLibraryException as e:
|
||||
if e.get_error_code() == amdsmi_interface.amdsmi_wrapper.AMDSMI_STATUS_NO_PERM:
|
||||
@@ -2175,7 +2175,7 @@ class AMDSMICommands():
|
||||
self.logger.store_output(args.gpu, 'reset_compute_partition', result)
|
||||
if args.memory_partition:
|
||||
try:
|
||||
amdsmi_interface.amdsmi_dev_memory_partition_reset(args.gpu)
|
||||
amdsmi_interface.amdsmi_reset_gpu_memory_partition(args.gpu)
|
||||
result = 'Successfully reset memory partition'
|
||||
except amdsmi_exception.AmdSmiLibraryException as e:
|
||||
if e.get_error_code() == amdsmi_interface.amdsmi_wrapper.AMDSMI_STATUS_NO_PERM:
|
||||
|
||||
Fichier diff supprimé car celui-ci est trop grand
Voir la Diff
@@ -56,6 +56,7 @@ const std::map<rsmi_status_t, amdsmi_status_t> rsmi_status_map = {
|
||||
{RSMI_STATUS_SUCCESS, AMDSMI_STATUS_SUCCESS},
|
||||
{RSMI_STATUS_INVALID_ARGS, AMDSMI_STATUS_INVAL},
|
||||
{RSMI_STATUS_NOT_SUPPORTED, AMDSMI_STATUS_NOT_SUPPORTED},
|
||||
{RSMI_STATUS_FILE_ERROR, AMDSMI_STATUS_FILE_ERROR},
|
||||
{RSMI_STATUS_PERMISSION, AMDSMI_STATUS_NO_PERM},
|
||||
{RSMI_STATUS_OUT_OF_RESOURCES, AMDSMI_STATUS_OUT_OF_RESOURCES},
|
||||
{RSMI_STATUS_INTERNAL_EXCEPTION, AMDSMI_STATUS_INTERNAL_EXCEPTION},
|
||||
@@ -71,6 +72,8 @@ const std::map<rsmi_status_t, amdsmi_status_t> rsmi_status_map = {
|
||||
{RSMI_STATUS_UNEXPECTED_DATA, AMDSMI_STATUS_UNEXPECTED_DATA},
|
||||
{RSMI_STATUS_BUSY, AMDSMI_STATUS_BUSY},
|
||||
{RSMI_STATUS_REFCOUNT_OVERFLOW, AMDSMI_STATUS_REFCOUNT_OVERFLOW},
|
||||
{RSMI_STATUS_SETTING_UNAVAILABLE, AMDSMI_STATUS_SETTING_UNAVAILABLE},
|
||||
{RSMI_STATUS_AMDGPU_RESTART_ERR, AMDSMI_STATUS_AMDGPU_RESTART_ERR},
|
||||
{RSMI_STATUS_UNKNOWN_ERROR, AMDSMI_STATUS_UNKNOWN_ERROR},
|
||||
};
|
||||
|
||||
|
||||
Fichier diff supprimé car celui-ci est trop grand
Voir la Diff
@@ -130,7 +130,6 @@ from .amdsmi_interface import amdsmi_get_gpu_volt_metric
|
||||
# # Clock, Power and Performance Query
|
||||
from .amdsmi_interface import amdsmi_get_utilization_count
|
||||
from .amdsmi_interface import amdsmi_get_gpu_perf_level
|
||||
from .amdsmi_interface import amdsmi_set_gpu_perf_determinism_mode
|
||||
from .amdsmi_interface import amdsmi_get_gpu_overdrive_level
|
||||
from .amdsmi_interface import amdsmi_get_clk_freq
|
||||
from .amdsmi_interface import amdsmi_get_gpu_od_volt_info
|
||||
@@ -195,6 +194,59 @@ from .amdsmi_interface import amdsmi_topo_get_link_type
|
||||
from .amdsmi_interface import amdsmi_is_P2P_accessible
|
||||
from .amdsmi_interface import amdsmi_get_xgmi_info
|
||||
|
||||
# # Individual GPU Metrics Functions
|
||||
from .amdsmi_interface import amdsmi_get_gpu_metrics_temp_hotspot
|
||||
from .amdsmi_interface import amdsmi_get_gpu_metrics_temp_mem
|
||||
from .amdsmi_interface import amdsmi_get_gpu_metrics_temp_vrsoc
|
||||
from .amdsmi_interface import amdsmi_get_gpu_metrics_curr_socket_power
|
||||
from .amdsmi_interface import amdsmi_get_gpu_metrics_avg_gfx_activity
|
||||
from .amdsmi_interface import amdsmi_get_gpu_metrics_avg_umc_activity
|
||||
from .amdsmi_interface import amdsmi_get_gpu_metrics_energy_acc
|
||||
from .amdsmi_interface import amdsmi_get_gpu_metrics_system_clock_counter
|
||||
from .amdsmi_interface import amdsmi_get_gpu_metrics_firmware_timestamp
|
||||
from .amdsmi_interface import amdsmi_get_gpu_metrics_throttle_status
|
||||
from .amdsmi_interface import amdsmi_get_gpu_metrics_pcie_link_width
|
||||
from .amdsmi_interface import amdsmi_get_gpu_metrics_pcie_link_speed
|
||||
from .amdsmi_interface import amdsmi_get_gpu_metrics_xgmi_link_width
|
||||
from .amdsmi_interface import amdsmi_get_gpu_metrics_xgmi_link_speed
|
||||
from .amdsmi_interface import amdsmi_get_gpu_metrics_gfxclk_lock_status
|
||||
from .amdsmi_interface import amdsmi_get_gpu_metrics_gfx_activity_acc
|
||||
from .amdsmi_interface import amdsmi_get_gpu_metrics_mem_activity_acc
|
||||
from .amdsmi_interface import amdsmi_get_gpu_metrics_pcie_bandwidth_acc
|
||||
from .amdsmi_interface import amdsmi_get_gpu_metrics_pcie_bandwidth_inst
|
||||
from .amdsmi_interface import amdsmi_get_gpu_metrics_pcie_l0_recov_count_acc
|
||||
from .amdsmi_interface import amdsmi_get_gpu_metrics_pcie_replay_count_acc
|
||||
from .amdsmi_interface import amdsmi_get_gpu_metrics_pcie_replay_rover_count_acc
|
||||
from .amdsmi_interface import amdsmi_get_gpu_metrics_curr_uclk
|
||||
from .amdsmi_interface import amdsmi_get_gpu_metrics_temp_hbm
|
||||
from .amdsmi_interface import amdsmi_get_gpu_metrics_vcn_activity
|
||||
from .amdsmi_interface import amdsmi_get_gpu_metrics_xgmi_read_data
|
||||
from .amdsmi_interface import amdsmi_get_gpu_metrics_xgmi_write_data
|
||||
from .amdsmi_interface import amdsmi_get_gpu_metrics_curr_gfxclk
|
||||
from .amdsmi_interface import amdsmi_get_gpu_metrics_curr_socclk
|
||||
from .amdsmi_interface import amdsmi_get_gpu_metrics_curr_vclk0
|
||||
from .amdsmi_interface import amdsmi_get_gpu_metrics_curr_dclk0
|
||||
from .amdsmi_interface import amdsmi_get_gpu_metrics_temp_edge
|
||||
from .amdsmi_interface import amdsmi_get_gpu_metrics_temp_vrgfx
|
||||
from .amdsmi_interface import amdsmi_get_gpu_metrics_temp_vrmem
|
||||
from .amdsmi_interface import amdsmi_get_gpu_metrics_avg_mm_activity
|
||||
from .amdsmi_interface import amdsmi_get_gpu_metrics_curr_vclk1
|
||||
from .amdsmi_interface import amdsmi_get_gpu_metrics_curr_dclk1
|
||||
from .amdsmi_interface import amdsmi_get_gpu_metrics_indep_throttle_status
|
||||
from .amdsmi_interface import amdsmi_get_gpu_metrics_avg_socket_power
|
||||
from .amdsmi_interface import amdsmi_get_gpu_metrics_curr_fan_speed
|
||||
from .amdsmi_interface import amdsmi_get_gpu_metrics_avg_gfx_clock_frequency
|
||||
from .amdsmi_interface import amdsmi_get_gpu_metrics_avg_soc_clock_frequency
|
||||
from .amdsmi_interface import amdsmi_get_gpu_metrics_avg_uclock_frequency
|
||||
from .amdsmi_interface import amdsmi_get_gpu_metrics_avg_vclock0_frequency
|
||||
from .amdsmi_interface import amdsmi_get_gpu_metrics_avg_dclock0_frequency
|
||||
from .amdsmi_interface import amdsmi_get_gpu_metrics_avg_vclock1_frequency
|
||||
from .amdsmi_interface import amdsmi_get_gpu_metrics_avg_dclock1_frequency
|
||||
from .amdsmi_interface import amdsmi_get_gpu_metrics_volt_soc
|
||||
from .amdsmi_interface import amdsmi_get_gpu_metrics_volt_gfx
|
||||
from .amdsmi_interface import amdsmi_get_gpu_metrics_volt_mem
|
||||
from .amdsmi_interface import amdsmi_get_gpu_metrics_header_info
|
||||
|
||||
# # Enums
|
||||
from .amdsmi_interface import AmdSmiInitFlags
|
||||
from .amdsmi_interface import AmdSmiContainerTypes
|
||||
|
||||
Fichier diff supprimé car celui-ci est trop grand
Voir la Diff
@@ -284,6 +284,8 @@ amdsmi_status_t__enumvalues = {
|
||||
51: 'AMDSMI_NO_DRV',
|
||||
52: 'AMDSMI_FILE_NOT_FOUND',
|
||||
53: 'AMDSMI_ARG_PTR_NULL',
|
||||
54: 'AMDSMI_STATUS_AMDGPU_RESTART_ERR',
|
||||
55: 'AMDSMI_STATUS_SETTING_UNAVAILABLE',
|
||||
4294967294: 'AMDSMI_STATUS_MAP_ERROR',
|
||||
4294967295: 'AMDSMI_STATUS_UNKNOWN_ERROR',
|
||||
}
|
||||
@@ -326,6 +328,8 @@ AMDSMI_HSMP_TIMEOUT = 50
|
||||
AMDSMI_NO_DRV = 51
|
||||
AMDSMI_FILE_NOT_FOUND = 52
|
||||
AMDSMI_ARG_PTR_NULL = 53
|
||||
AMDSMI_STATUS_AMDGPU_RESTART_ERR = 54
|
||||
AMDSMI_STATUS_SETTING_UNAVAILABLE = 55
|
||||
AMDSMI_STATUS_MAP_ERROR = 4294967294
|
||||
AMDSMI_STATUS_UNKNOWN_ERROR = 4294967295
|
||||
amdsmi_status_t = ctypes.c_uint32 # enum
|
||||
@@ -1479,10 +1483,34 @@ struct_amdsmi_gpu_metrics_t._fields_ = [
|
||||
('current_fan_speed', ctypes.c_uint16),
|
||||
('pcie_link_width', ctypes.c_uint16),
|
||||
('pcie_link_speed', ctypes.c_uint16),
|
||||
('padding', ctypes.c_uint16),
|
||||
('PADDING_0', ctypes.c_ubyte * 2),
|
||||
('gfx_activity_acc', ctypes.c_uint32),
|
||||
('mem_activity_acc', ctypes.c_uint32),
|
||||
('temperature_hbm', ctypes.c_uint16 * 4),
|
||||
('firmware_timestamp', ctypes.c_uint64),
|
||||
('voltage_soc', ctypes.c_uint16),
|
||||
('voltage_gfx', ctypes.c_uint16),
|
||||
('voltage_mem', ctypes.c_uint16),
|
||||
('PADDING_1', ctypes.c_ubyte * 2),
|
||||
('indep_throttle_status', ctypes.c_uint64),
|
||||
('current_socket_power', ctypes.c_uint16),
|
||||
('vcn_activity', ctypes.c_uint16 * 4),
|
||||
('PADDING_2', ctypes.c_ubyte * 2),
|
||||
('gfxclk_lock_status', ctypes.c_uint32),
|
||||
('xgmi_link_width', ctypes.c_uint16),
|
||||
('xgmi_link_speed', ctypes.c_uint16),
|
||||
('PADDING_3', ctypes.c_ubyte * 4),
|
||||
('pcie_bandwidth_acc', ctypes.c_uint64),
|
||||
('pcie_bandwidth_inst', ctypes.c_uint64),
|
||||
('pcie_l0_to_recov_count_acc', ctypes.c_uint64),
|
||||
('pcie_replay_count_acc', ctypes.c_uint64),
|
||||
('pcie_replay_rover_count_acc', ctypes.c_uint64),
|
||||
('xgmi_read_data_acc', ctypes.c_uint64 * 8),
|
||||
('xgmi_write_data_acc', ctypes.c_uint64 * 8),
|
||||
('current_gfxclks', ctypes.c_uint16 * 8),
|
||||
('current_socclks', ctypes.c_uint16 * 4),
|
||||
('current_vclk0s', ctypes.c_uint16 * 4),
|
||||
('current_dclk0s', ctypes.c_uint16 * 4),
|
||||
]
|
||||
|
||||
amdsmi_gpu_metrics_t = struct_amdsmi_gpu_metrics_t
|
||||
@@ -1883,24 +1911,24 @@ amdsmi_topo_get_link_type.argtypes = [amdsmi_processor_handle, amdsmi_processor_
|
||||
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_processor_handle, amdsmi_processor_handle, ctypes.POINTER(ctypes.c_bool)]
|
||||
amdsmi_dev_compute_partition_get = _libraries['libamd_smi.so'].amdsmi_dev_compute_partition_get
|
||||
amdsmi_dev_compute_partition_get.restype = amdsmi_status_t
|
||||
amdsmi_dev_compute_partition_get.argtypes = [amdsmi_processor_handle, ctypes.POINTER(ctypes.c_char), uint32_t]
|
||||
amdsmi_dev_compute_partition_set = _libraries['libamd_smi.so'].amdsmi_dev_compute_partition_set
|
||||
amdsmi_dev_compute_partition_set.restype = amdsmi_status_t
|
||||
amdsmi_dev_compute_partition_set.argtypes = [amdsmi_processor_handle, amdsmi_compute_partition_type_t]
|
||||
amdsmi_dev_compute_partition_reset = _libraries['libamd_smi.so'].amdsmi_dev_compute_partition_reset
|
||||
amdsmi_dev_compute_partition_reset.restype = amdsmi_status_t
|
||||
amdsmi_dev_compute_partition_reset.argtypes = [amdsmi_processor_handle]
|
||||
amdsmi_dev_memory_partition_get = _libraries['libamd_smi.so'].amdsmi_dev_memory_partition_get
|
||||
amdsmi_dev_memory_partition_get.restype = amdsmi_status_t
|
||||
amdsmi_dev_memory_partition_get.argtypes = [amdsmi_processor_handle, ctypes.POINTER(ctypes.c_char), uint32_t]
|
||||
amdsmi_dev_memory_partition_set = _libraries['libamd_smi.so'].amdsmi_dev_memory_partition_set
|
||||
amdsmi_dev_memory_partition_set.restype = amdsmi_status_t
|
||||
amdsmi_dev_memory_partition_set.argtypes = [amdsmi_processor_handle, amdsmi_memory_partition_type_t]
|
||||
amdsmi_dev_memory_partition_reset = _libraries['libamd_smi.so'].amdsmi_dev_memory_partition_reset
|
||||
amdsmi_dev_memory_partition_reset.restype = amdsmi_status_t
|
||||
amdsmi_dev_memory_partition_reset.argtypes = [amdsmi_processor_handle]
|
||||
amdsmi_get_gpu_compute_partition = _libraries['libamd_smi.so'].amdsmi_get_gpu_compute_partition
|
||||
amdsmi_get_gpu_compute_partition.restype = amdsmi_status_t
|
||||
amdsmi_get_gpu_compute_partition.argtypes = [amdsmi_processor_handle, ctypes.POINTER(ctypes.c_char), uint32_t]
|
||||
amdsmi_set_gpu_compute_partition = _libraries['libamd_smi.so'].amdsmi_set_gpu_compute_partition
|
||||
amdsmi_set_gpu_compute_partition.restype = amdsmi_status_t
|
||||
amdsmi_set_gpu_compute_partition.argtypes = [amdsmi_processor_handle, amdsmi_compute_partition_type_t]
|
||||
amdsmi_reset_gpu_compute_partition = _libraries['libamd_smi.so'].amdsmi_reset_gpu_compute_partition
|
||||
amdsmi_reset_gpu_compute_partition.restype = amdsmi_status_t
|
||||
amdsmi_reset_gpu_compute_partition.argtypes = [amdsmi_processor_handle]
|
||||
amdsmi_get_gpu_memory_partition = _libraries['libamd_smi.so'].amdsmi_get_gpu_memory_partition
|
||||
amdsmi_get_gpu_memory_partition.restype = amdsmi_status_t
|
||||
amdsmi_get_gpu_memory_partition.argtypes = [amdsmi_processor_handle, ctypes.POINTER(ctypes.c_char), uint32_t]
|
||||
amdsmi_set_gpu_memory_partition = _libraries['libamd_smi.so'].amdsmi_set_gpu_memory_partition
|
||||
amdsmi_set_gpu_memory_partition.restype = amdsmi_status_t
|
||||
amdsmi_set_gpu_memory_partition.argtypes = [amdsmi_processor_handle, amdsmi_memory_partition_type_t]
|
||||
amdsmi_reset_gpu_memory_partition = _libraries['libamd_smi.so'].amdsmi_reset_gpu_memory_partition
|
||||
amdsmi_reset_gpu_memory_partition.restype = amdsmi_status_t
|
||||
amdsmi_reset_gpu_memory_partition.argtypes = [amdsmi_processor_handle]
|
||||
amdsmi_init_gpu_event_notification = _libraries['libamd_smi.so'].amdsmi_init_gpu_event_notification
|
||||
amdsmi_init_gpu_event_notification.restype = amdsmi_status_t
|
||||
amdsmi_init_gpu_event_notification.argtypes = [amdsmi_processor_handle]
|
||||
@@ -1967,6 +1995,173 @@ amdsmi_get_gpu_process_info.argtypes = [amdsmi_processor_handle, amdsmi_process_
|
||||
amdsmi_get_gpu_total_ecc_count = _libraries['libamd_smi.so'].amdsmi_get_gpu_total_ecc_count
|
||||
amdsmi_get_gpu_total_ecc_count.restype = amdsmi_status_t
|
||||
amdsmi_get_gpu_total_ecc_count.argtypes = [amdsmi_processor_handle, ctypes.POINTER(struct_amdsmi_error_count_t)]
|
||||
gpu_metric_temp_hbm_t = ctypes.c_uint16 * 4
|
||||
gpu_metric_vcn_activity_t = ctypes.c_uint16 * 4
|
||||
gpu_metric_xgmi_read_data_acc_t = ctypes.c_uint64 * 8
|
||||
gpu_metric_xgmi_write_data_acc_t = ctypes.c_uint64 * 8
|
||||
gpu_metric_curr_gfxclk_t = ctypes.c_uint16 * 8
|
||||
gpu_metric_curr_socclk_t = ctypes.c_uint16 * 4
|
||||
gpu_metric_curr_vclk0_t = ctypes.c_uint16 * 4
|
||||
gpu_metric_curr_dclk0_t = ctypes.c_uint16 * 4
|
||||
amdsmi_get_gpu_metrics_temp_hotspot = _libraries['libamd_smi.so'].amdsmi_get_gpu_metrics_temp_hotspot
|
||||
amdsmi_get_gpu_metrics_temp_hotspot.restype = amdsmi_status_t
|
||||
amdsmi_get_gpu_metrics_temp_hotspot.argtypes = [amdsmi_processor_handle, ctypes.POINTER(ctypes.c_uint16)]
|
||||
amdsmi_get_gpu_metrics_temp_mem = _libraries['libamd_smi.so'].amdsmi_get_gpu_metrics_temp_mem
|
||||
amdsmi_get_gpu_metrics_temp_mem.restype = amdsmi_status_t
|
||||
amdsmi_get_gpu_metrics_temp_mem.argtypes = [amdsmi_processor_handle, ctypes.POINTER(ctypes.c_uint16)]
|
||||
amdsmi_get_gpu_metrics_temp_vrsoc = _libraries['libamd_smi.so'].amdsmi_get_gpu_metrics_temp_vrsoc
|
||||
amdsmi_get_gpu_metrics_temp_vrsoc.restype = amdsmi_status_t
|
||||
amdsmi_get_gpu_metrics_temp_vrsoc.argtypes = [amdsmi_processor_handle, ctypes.POINTER(ctypes.c_uint16)]
|
||||
amdsmi_get_gpu_metrics_curr_socket_power = _libraries['libamd_smi.so'].amdsmi_get_gpu_metrics_curr_socket_power
|
||||
amdsmi_get_gpu_metrics_curr_socket_power.restype = amdsmi_status_t
|
||||
amdsmi_get_gpu_metrics_curr_socket_power.argtypes = [amdsmi_processor_handle, ctypes.POINTER(ctypes.c_uint16)]
|
||||
amdsmi_get_gpu_metrics_avg_gfx_activity = _libraries['libamd_smi.so'].amdsmi_get_gpu_metrics_avg_gfx_activity
|
||||
amdsmi_get_gpu_metrics_avg_gfx_activity.restype = amdsmi_status_t
|
||||
amdsmi_get_gpu_metrics_avg_gfx_activity.argtypes = [amdsmi_processor_handle, ctypes.POINTER(ctypes.c_uint16)]
|
||||
amdsmi_get_gpu_metrics_avg_umc_activity = _libraries['libamd_smi.so'].amdsmi_get_gpu_metrics_avg_umc_activity
|
||||
amdsmi_get_gpu_metrics_avg_umc_activity.restype = amdsmi_status_t
|
||||
amdsmi_get_gpu_metrics_avg_umc_activity.argtypes = [amdsmi_processor_handle, ctypes.POINTER(ctypes.c_uint16)]
|
||||
amdsmi_get_gpu_metrics_energy_acc = _libraries['libamd_smi.so'].amdsmi_get_gpu_metrics_energy_acc
|
||||
amdsmi_get_gpu_metrics_energy_acc.restype = amdsmi_status_t
|
||||
amdsmi_get_gpu_metrics_energy_acc.argtypes = [amdsmi_processor_handle, ctypes.POINTER(ctypes.c_uint64)]
|
||||
amdsmi_get_gpu_metrics_system_clock_counter = _libraries['libamd_smi.so'].amdsmi_get_gpu_metrics_system_clock_counter
|
||||
amdsmi_get_gpu_metrics_system_clock_counter.restype = amdsmi_status_t
|
||||
amdsmi_get_gpu_metrics_system_clock_counter.argtypes = [amdsmi_processor_handle, ctypes.POINTER(ctypes.c_uint64)]
|
||||
amdsmi_get_gpu_metrics_firmware_timestamp = _libraries['libamd_smi.so'].amdsmi_get_gpu_metrics_firmware_timestamp
|
||||
amdsmi_get_gpu_metrics_firmware_timestamp.restype = amdsmi_status_t
|
||||
amdsmi_get_gpu_metrics_firmware_timestamp.argtypes = [amdsmi_processor_handle, ctypes.POINTER(ctypes.c_uint64)]
|
||||
amdsmi_get_gpu_metrics_throttle_status = _libraries['libamd_smi.so'].amdsmi_get_gpu_metrics_throttle_status
|
||||
amdsmi_get_gpu_metrics_throttle_status.restype = amdsmi_status_t
|
||||
amdsmi_get_gpu_metrics_throttle_status.argtypes = [amdsmi_processor_handle, ctypes.POINTER(ctypes.c_uint32)]
|
||||
amdsmi_get_gpu_metrics_pcie_link_width = _libraries['libamd_smi.so'].amdsmi_get_gpu_metrics_pcie_link_width
|
||||
amdsmi_get_gpu_metrics_pcie_link_width.restype = amdsmi_status_t
|
||||
amdsmi_get_gpu_metrics_pcie_link_width.argtypes = [amdsmi_processor_handle, ctypes.POINTER(ctypes.c_uint16)]
|
||||
amdsmi_get_gpu_metrics_pcie_link_speed = _libraries['libamd_smi.so'].amdsmi_get_gpu_metrics_pcie_link_speed
|
||||
amdsmi_get_gpu_metrics_pcie_link_speed.restype = amdsmi_status_t
|
||||
amdsmi_get_gpu_metrics_pcie_link_speed.argtypes = [amdsmi_processor_handle, ctypes.POINTER(ctypes.c_uint16)]
|
||||
amdsmi_get_gpu_metrics_xgmi_link_width = _libraries['libamd_smi.so'].amdsmi_get_gpu_metrics_xgmi_link_width
|
||||
amdsmi_get_gpu_metrics_xgmi_link_width.restype = amdsmi_status_t
|
||||
amdsmi_get_gpu_metrics_xgmi_link_width.argtypes = [amdsmi_processor_handle, ctypes.POINTER(ctypes.c_uint16)]
|
||||
amdsmi_get_gpu_metrics_xgmi_link_speed = _libraries['libamd_smi.so'].amdsmi_get_gpu_metrics_xgmi_link_speed
|
||||
amdsmi_get_gpu_metrics_xgmi_link_speed.restype = amdsmi_status_t
|
||||
amdsmi_get_gpu_metrics_xgmi_link_speed.argtypes = [amdsmi_processor_handle, ctypes.POINTER(ctypes.c_uint16)]
|
||||
amdsmi_get_gpu_metrics_gfxclk_lock_status = _libraries['libamd_smi.so'].amdsmi_get_gpu_metrics_gfxclk_lock_status
|
||||
amdsmi_get_gpu_metrics_gfxclk_lock_status.restype = amdsmi_status_t
|
||||
amdsmi_get_gpu_metrics_gfxclk_lock_status.argtypes = [amdsmi_processor_handle, ctypes.POINTER(ctypes.c_uint32)]
|
||||
amdsmi_get_gpu_metrics_gfx_activity_acc = _libraries['libamd_smi.so'].amdsmi_get_gpu_metrics_gfx_activity_acc
|
||||
amdsmi_get_gpu_metrics_gfx_activity_acc.restype = amdsmi_status_t
|
||||
amdsmi_get_gpu_metrics_gfx_activity_acc.argtypes = [amdsmi_processor_handle, ctypes.POINTER(ctypes.c_uint32)]
|
||||
amdsmi_get_gpu_metrics_mem_activity_acc = _libraries['libamd_smi.so'].amdsmi_get_gpu_metrics_mem_activity_acc
|
||||
amdsmi_get_gpu_metrics_mem_activity_acc.restype = amdsmi_status_t
|
||||
amdsmi_get_gpu_metrics_mem_activity_acc.argtypes = [amdsmi_processor_handle, ctypes.POINTER(ctypes.c_uint32)]
|
||||
amdsmi_get_gpu_metrics_pcie_bandwidth_acc = _libraries['libamd_smi.so'].amdsmi_get_gpu_metrics_pcie_bandwidth_acc
|
||||
amdsmi_get_gpu_metrics_pcie_bandwidth_acc.restype = amdsmi_status_t
|
||||
amdsmi_get_gpu_metrics_pcie_bandwidth_acc.argtypes = [amdsmi_processor_handle, ctypes.POINTER(ctypes.c_uint64)]
|
||||
amdsmi_get_gpu_metrics_pcie_bandwidth_inst = _libraries['libamd_smi.so'].amdsmi_get_gpu_metrics_pcie_bandwidth_inst
|
||||
amdsmi_get_gpu_metrics_pcie_bandwidth_inst.restype = amdsmi_status_t
|
||||
amdsmi_get_gpu_metrics_pcie_bandwidth_inst.argtypes = [amdsmi_processor_handle, ctypes.POINTER(ctypes.c_uint64)]
|
||||
amdsmi_get_gpu_metrics_pcie_l0_recov_count_acc = _libraries['libamd_smi.so'].amdsmi_get_gpu_metrics_pcie_l0_recov_count_acc
|
||||
amdsmi_get_gpu_metrics_pcie_l0_recov_count_acc.restype = amdsmi_status_t
|
||||
amdsmi_get_gpu_metrics_pcie_l0_recov_count_acc.argtypes = [amdsmi_processor_handle, ctypes.POINTER(ctypes.c_uint64)]
|
||||
amdsmi_get_gpu_metrics_pcie_replay_count_acc = _libraries['libamd_smi.so'].amdsmi_get_gpu_metrics_pcie_replay_count_acc
|
||||
amdsmi_get_gpu_metrics_pcie_replay_count_acc.restype = amdsmi_status_t
|
||||
amdsmi_get_gpu_metrics_pcie_replay_count_acc.argtypes = [amdsmi_processor_handle, ctypes.POINTER(ctypes.c_uint64)]
|
||||
amdsmi_get_gpu_metrics_pcie_replay_rover_count_acc = _libraries['libamd_smi.so'].amdsmi_get_gpu_metrics_pcie_replay_rover_count_acc
|
||||
amdsmi_get_gpu_metrics_pcie_replay_rover_count_acc.restype = amdsmi_status_t
|
||||
amdsmi_get_gpu_metrics_pcie_replay_rover_count_acc.argtypes = [amdsmi_processor_handle, ctypes.POINTER(ctypes.c_uint64)]
|
||||
amdsmi_get_gpu_metrics_curr_uclk = _libraries['libamd_smi.so'].amdsmi_get_gpu_metrics_curr_uclk
|
||||
amdsmi_get_gpu_metrics_curr_uclk.restype = amdsmi_status_t
|
||||
amdsmi_get_gpu_metrics_curr_uclk.argtypes = [amdsmi_processor_handle, ctypes.POINTER(ctypes.c_uint16)]
|
||||
amdsmi_get_gpu_metrics_temp_hbm = _libraries['libamd_smi.so'].amdsmi_get_gpu_metrics_temp_hbm
|
||||
amdsmi_get_gpu_metrics_temp_hbm.restype = amdsmi_status_t
|
||||
amdsmi_get_gpu_metrics_temp_hbm.argtypes = [amdsmi_processor_handle, ctypes.POINTER(ctypes.c_uint16 * 4)]
|
||||
amdsmi_get_gpu_metrics_vcn_activity = _libraries['libamd_smi.so'].amdsmi_get_gpu_metrics_vcn_activity
|
||||
amdsmi_get_gpu_metrics_vcn_activity.restype = amdsmi_status_t
|
||||
amdsmi_get_gpu_metrics_vcn_activity.argtypes = [amdsmi_processor_handle, ctypes.POINTER(ctypes.c_uint16 * 4)]
|
||||
amdsmi_get_gpu_metrics_xgmi_read_data = _libraries['libamd_smi.so'].amdsmi_get_gpu_metrics_xgmi_read_data
|
||||
amdsmi_get_gpu_metrics_xgmi_read_data.restype = amdsmi_status_t
|
||||
amdsmi_get_gpu_metrics_xgmi_read_data.argtypes = [amdsmi_processor_handle, ctypes.POINTER(ctypes.c_uint64 * 8)]
|
||||
amdsmi_get_gpu_metrics_xgmi_write_data = _libraries['libamd_smi.so'].amdsmi_get_gpu_metrics_xgmi_write_data
|
||||
amdsmi_get_gpu_metrics_xgmi_write_data.restype = amdsmi_status_t
|
||||
amdsmi_get_gpu_metrics_xgmi_write_data.argtypes = [amdsmi_processor_handle, ctypes.POINTER(ctypes.c_uint64 * 8)]
|
||||
amdsmi_get_gpu_metrics_curr_gfxclk = _libraries['libamd_smi.so'].amdsmi_get_gpu_metrics_curr_gfxclk
|
||||
amdsmi_get_gpu_metrics_curr_gfxclk.restype = amdsmi_status_t
|
||||
amdsmi_get_gpu_metrics_curr_gfxclk.argtypes = [amdsmi_processor_handle, ctypes.POINTER(ctypes.c_uint16 * 8)]
|
||||
amdsmi_get_gpu_metrics_curr_socclk = _libraries['libamd_smi.so'].amdsmi_get_gpu_metrics_curr_socclk
|
||||
amdsmi_get_gpu_metrics_curr_socclk.restype = amdsmi_status_t
|
||||
amdsmi_get_gpu_metrics_curr_socclk.argtypes = [amdsmi_processor_handle, ctypes.POINTER(ctypes.c_uint16 * 4)]
|
||||
amdsmi_get_gpu_metrics_curr_vclk0 = _libraries['libamd_smi.so'].amdsmi_get_gpu_metrics_curr_vclk0
|
||||
amdsmi_get_gpu_metrics_curr_vclk0.restype = amdsmi_status_t
|
||||
amdsmi_get_gpu_metrics_curr_vclk0.argtypes = [amdsmi_processor_handle, ctypes.POINTER(ctypes.c_uint16 * 4)]
|
||||
amdsmi_get_gpu_metrics_curr_dclk0 = _libraries['libamd_smi.so'].amdsmi_get_gpu_metrics_curr_dclk0
|
||||
amdsmi_get_gpu_metrics_curr_dclk0.restype = amdsmi_status_t
|
||||
amdsmi_get_gpu_metrics_curr_dclk0.argtypes = [amdsmi_processor_handle, ctypes.POINTER(ctypes.c_uint16 * 4)]
|
||||
amdsmi_get_gpu_metrics_temp_edge = _libraries['libamd_smi.so'].amdsmi_get_gpu_metrics_temp_edge
|
||||
amdsmi_get_gpu_metrics_temp_edge.restype = amdsmi_status_t
|
||||
amdsmi_get_gpu_metrics_temp_edge.argtypes = [amdsmi_processor_handle, ctypes.POINTER(ctypes.c_uint16)]
|
||||
amdsmi_get_gpu_metrics_temp_vrgfx = _libraries['libamd_smi.so'].amdsmi_get_gpu_metrics_temp_vrgfx
|
||||
amdsmi_get_gpu_metrics_temp_vrgfx.restype = amdsmi_status_t
|
||||
amdsmi_get_gpu_metrics_temp_vrgfx.argtypes = [amdsmi_processor_handle, ctypes.POINTER(ctypes.c_uint16)]
|
||||
amdsmi_get_gpu_metrics_temp_vrmem = _libraries['libamd_smi.so'].amdsmi_get_gpu_metrics_temp_vrmem
|
||||
amdsmi_get_gpu_metrics_temp_vrmem.restype = amdsmi_status_t
|
||||
amdsmi_get_gpu_metrics_temp_vrmem.argtypes = [amdsmi_processor_handle, ctypes.POINTER(ctypes.c_uint16)]
|
||||
amdsmi_get_gpu_metrics_avg_mm_activity = _libraries['libamd_smi.so'].amdsmi_get_gpu_metrics_avg_mm_activity
|
||||
amdsmi_get_gpu_metrics_avg_mm_activity.restype = amdsmi_status_t
|
||||
amdsmi_get_gpu_metrics_avg_mm_activity.argtypes = [amdsmi_processor_handle, ctypes.POINTER(ctypes.c_uint16)]
|
||||
amdsmi_get_gpu_metrics_curr_vclk1 = _libraries['libamd_smi.so'].amdsmi_get_gpu_metrics_curr_vclk1
|
||||
amdsmi_get_gpu_metrics_curr_vclk1.restype = amdsmi_status_t
|
||||
amdsmi_get_gpu_metrics_curr_vclk1.argtypes = [amdsmi_processor_handle, ctypes.POINTER(ctypes.c_uint16)]
|
||||
amdsmi_get_gpu_metrics_curr_dclk1 = _libraries['libamd_smi.so'].amdsmi_get_gpu_metrics_curr_dclk1
|
||||
amdsmi_get_gpu_metrics_curr_dclk1.restype = amdsmi_status_t
|
||||
amdsmi_get_gpu_metrics_curr_dclk1.argtypes = [amdsmi_processor_handle, ctypes.POINTER(ctypes.c_uint16)]
|
||||
amdsmi_get_gpu_metrics_indep_throttle_status = _libraries['libamd_smi.so'].amdsmi_get_gpu_metrics_indep_throttle_status
|
||||
amdsmi_get_gpu_metrics_indep_throttle_status.restype = amdsmi_status_t
|
||||
amdsmi_get_gpu_metrics_indep_throttle_status.argtypes = [amdsmi_processor_handle, ctypes.POINTER(ctypes.c_uint64)]
|
||||
amdsmi_get_gpu_metrics_avg_socket_power = _libraries['libamd_smi.so'].amdsmi_get_gpu_metrics_avg_socket_power
|
||||
amdsmi_get_gpu_metrics_avg_socket_power.restype = amdsmi_status_t
|
||||
amdsmi_get_gpu_metrics_avg_socket_power.argtypes = [amdsmi_processor_handle, ctypes.POINTER(ctypes.c_uint16)]
|
||||
amdsmi_get_gpu_metrics_curr_fan_speed = _libraries['libamd_smi.so'].amdsmi_get_gpu_metrics_curr_fan_speed
|
||||
amdsmi_get_gpu_metrics_curr_fan_speed.restype = amdsmi_status_t
|
||||
amdsmi_get_gpu_metrics_curr_fan_speed.argtypes = [amdsmi_processor_handle, ctypes.POINTER(ctypes.c_uint16)]
|
||||
amdsmi_get_gpu_metrics_avg_gfx_clock_frequency = _libraries['libamd_smi.so'].amdsmi_get_gpu_metrics_avg_gfx_clock_frequency
|
||||
amdsmi_get_gpu_metrics_avg_gfx_clock_frequency.restype = amdsmi_status_t
|
||||
amdsmi_get_gpu_metrics_avg_gfx_clock_frequency.argtypes = [amdsmi_processor_handle, ctypes.POINTER(ctypes.c_uint16)]
|
||||
amdsmi_get_gpu_metrics_avg_soc_clock_frequency = _libraries['libamd_smi.so'].amdsmi_get_gpu_metrics_avg_soc_clock_frequency
|
||||
amdsmi_get_gpu_metrics_avg_soc_clock_frequency.restype = amdsmi_status_t
|
||||
amdsmi_get_gpu_metrics_avg_soc_clock_frequency.argtypes = [amdsmi_processor_handle, ctypes.POINTER(ctypes.c_uint16)]
|
||||
amdsmi_get_gpu_metrics_avg_uclock_frequency = _libraries['libamd_smi.so'].amdsmi_get_gpu_metrics_avg_uclock_frequency
|
||||
amdsmi_get_gpu_metrics_avg_uclock_frequency.restype = amdsmi_status_t
|
||||
amdsmi_get_gpu_metrics_avg_uclock_frequency.argtypes = [amdsmi_processor_handle, ctypes.POINTER(ctypes.c_uint16)]
|
||||
amdsmi_get_gpu_metrics_avg_vclock0_frequency = _libraries['libamd_smi.so'].amdsmi_get_gpu_metrics_avg_vclock0_frequency
|
||||
amdsmi_get_gpu_metrics_avg_vclock0_frequency.restype = amdsmi_status_t
|
||||
amdsmi_get_gpu_metrics_avg_vclock0_frequency.argtypes = [amdsmi_processor_handle, ctypes.POINTER(ctypes.c_uint16)]
|
||||
amdsmi_get_gpu_metrics_avg_dclock0_frequency = _libraries['libamd_smi.so'].amdsmi_get_gpu_metrics_avg_dclock0_frequency
|
||||
amdsmi_get_gpu_metrics_avg_dclock0_frequency.restype = amdsmi_status_t
|
||||
amdsmi_get_gpu_metrics_avg_dclock0_frequency.argtypes = [amdsmi_processor_handle, ctypes.POINTER(ctypes.c_uint16)]
|
||||
amdsmi_get_gpu_metrics_avg_vclock1_frequency = _libraries['libamd_smi.so'].amdsmi_get_gpu_metrics_avg_vclock1_frequency
|
||||
amdsmi_get_gpu_metrics_avg_vclock1_frequency.restype = amdsmi_status_t
|
||||
amdsmi_get_gpu_metrics_avg_vclock1_frequency.argtypes = [amdsmi_processor_handle, ctypes.POINTER(ctypes.c_uint16)]
|
||||
amdsmi_get_gpu_metrics_avg_dclock1_frequency = _libraries['libamd_smi.so'].amdsmi_get_gpu_metrics_avg_dclock1_frequency
|
||||
amdsmi_get_gpu_metrics_avg_dclock1_frequency.restype = amdsmi_status_t
|
||||
amdsmi_get_gpu_metrics_avg_dclock1_frequency.argtypes = [amdsmi_processor_handle, ctypes.POINTER(ctypes.c_uint16)]
|
||||
amdsmi_get_gpu_metrics_volt_soc = _libraries['libamd_smi.so'].amdsmi_get_gpu_metrics_volt_soc
|
||||
amdsmi_get_gpu_metrics_volt_soc.restype = amdsmi_status_t
|
||||
amdsmi_get_gpu_metrics_volt_soc.argtypes = [amdsmi_processor_handle, ctypes.POINTER(ctypes.c_uint16)]
|
||||
amdsmi_get_gpu_metrics_volt_gfx = _libraries['libamd_smi.so'].amdsmi_get_gpu_metrics_volt_gfx
|
||||
amdsmi_get_gpu_metrics_volt_gfx.restype = amdsmi_status_t
|
||||
amdsmi_get_gpu_metrics_volt_gfx.argtypes = [amdsmi_processor_handle, ctypes.POINTER(ctypes.c_uint16)]
|
||||
amdsmi_get_gpu_metrics_volt_mem = _libraries['libamd_smi.so'].amdsmi_get_gpu_metrics_volt_mem
|
||||
amdsmi_get_gpu_metrics_volt_mem.restype = amdsmi_status_t
|
||||
amdsmi_get_gpu_metrics_volt_mem.argtypes = [amdsmi_processor_handle, ctypes.POINTER(ctypes.c_uint16)]
|
||||
amdsmi_get_gpu_metrics_header_info = _libraries['libamd_smi.so'].amdsmi_get_gpu_metrics_header_info
|
||||
amdsmi_get_gpu_metrics_header_info.restype = amdsmi_status_t
|
||||
amdsmi_get_gpu_metrics_header_info.argtypes = [amdsmi_processor_handle, ctypes.POINTER(struct_amd_metrics_table_header_t)]
|
||||
amdsmi_get_gpu_metrics_xcd_counter = _libraries['libamd_smi.so'].amdsmi_get_gpu_metrics_xcd_counter
|
||||
amdsmi_get_gpu_metrics_xcd_counter.restype = amdsmi_status_t
|
||||
amdsmi_get_gpu_metrics_xcd_counter.argtypes = [amdsmi_processor_handle, ctypes.POINTER(ctypes.c_uint16)]
|
||||
amdsmi_get_gpu_metrics_log = _libraries['libamd_smi.so'].amdsmi_get_gpu_metrics_log
|
||||
amdsmi_get_gpu_metrics_log.restype = amdsmi_status_t
|
||||
amdsmi_get_gpu_metrics_log.argtypes = [amdsmi_processor_handle]
|
||||
amdsmi_get_cpu_core_energy = _libraries['libamd_smi.so'].amdsmi_get_cpu_core_energy
|
||||
amdsmi_get_cpu_core_energy.restype = amdsmi_status_t
|
||||
amdsmi_get_cpu_core_energy.argtypes = [amdsmi_processor_handle, uint32_t, ctypes.POINTER(ctypes.c_uint64)]
|
||||
@@ -2157,9 +2352,9 @@ __all__ = \
|
||||
'AMDSMI_RAS_ERR_STATE_SING_C', 'AMDSMI_SLOT_TYPE__CEM',
|
||||
'AMDSMI_SLOT_TYPE__OAM', 'AMDSMI_SLOT_TYPE__PCIE',
|
||||
'AMDSMI_SLOT_TYPE__RESERVED', 'AMDSMI_STATUS_ADDRESS_FAULT',
|
||||
'AMDSMI_STATUS_API_FAILED', 'AMDSMI_STATUS_BUSY',
|
||||
'AMDSMI_STATUS_DRIVER_NOT_LOADED', 'AMDSMI_STATUS_DRM_ERROR',
|
||||
'AMDSMI_STATUS_FAIL_LOAD_MODULE',
|
||||
'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_FAIL_LOAD_SYMBOL', 'AMDSMI_STATUS_FILE_ERROR',
|
||||
'AMDSMI_STATUS_INIT_ERROR', 'AMDSMI_STATUS_INPUT_OUT_OF_BOUNDS',
|
||||
'AMDSMI_STATUS_INSUFFICIENT_SIZE',
|
||||
@@ -2172,15 +2367,16 @@ __all__ = \
|
||||
'AMDSMI_STATUS_NO_PERM', 'AMDSMI_STATUS_NO_SLOT',
|
||||
'AMDSMI_STATUS_OUT_OF_RESOURCES',
|
||||
'AMDSMI_STATUS_REFCOUNT_OVERFLOW', 'AMDSMI_STATUS_RETRY',
|
||||
'AMDSMI_STATUS_SUCCESS', 'AMDSMI_STATUS_TIMEOUT',
|
||||
'AMDSMI_STATUS_UNEXPECTED_DATA', 'AMDSMI_STATUS_UNEXPECTED_SIZE',
|
||||
'AMDSMI_STATUS_UNKNOWN_ERROR', 'AMDSMI_TEMP_CRITICAL',
|
||||
'AMDSMI_TEMP_CRITICAL_HYST', 'AMDSMI_TEMP_CRIT_MIN',
|
||||
'AMDSMI_TEMP_CRIT_MIN_HYST', 'AMDSMI_TEMP_CURRENT',
|
||||
'AMDSMI_TEMP_EMERGENCY', 'AMDSMI_TEMP_EMERGENCY_HYST',
|
||||
'AMDSMI_TEMP_FIRST', 'AMDSMI_TEMP_HIGHEST', 'AMDSMI_TEMP_LAST',
|
||||
'AMDSMI_TEMP_LOWEST', 'AMDSMI_TEMP_MAX', 'AMDSMI_TEMP_MAX_HYST',
|
||||
'AMDSMI_TEMP_MIN', 'AMDSMI_TEMP_MIN_HYST', 'AMDSMI_TEMP_OFFSET',
|
||||
'AMDSMI_STATUS_SETTING_UNAVAILABLE', 'AMDSMI_STATUS_SUCCESS',
|
||||
'AMDSMI_STATUS_TIMEOUT', 'AMDSMI_STATUS_UNEXPECTED_DATA',
|
||||
'AMDSMI_STATUS_UNEXPECTED_SIZE', 'AMDSMI_STATUS_UNKNOWN_ERROR',
|
||||
'AMDSMI_TEMP_CRITICAL', 'AMDSMI_TEMP_CRITICAL_HYST',
|
||||
'AMDSMI_TEMP_CRIT_MIN', 'AMDSMI_TEMP_CRIT_MIN_HYST',
|
||||
'AMDSMI_TEMP_CURRENT', 'AMDSMI_TEMP_EMERGENCY',
|
||||
'AMDSMI_TEMP_EMERGENCY_HYST', 'AMDSMI_TEMP_FIRST',
|
||||
'AMDSMI_TEMP_HIGHEST', 'AMDSMI_TEMP_LAST', 'AMDSMI_TEMP_LOWEST',
|
||||
'AMDSMI_TEMP_MAX', 'AMDSMI_TEMP_MAX_HYST', 'AMDSMI_TEMP_MIN',
|
||||
'AMDSMI_TEMP_MIN_HYST', 'AMDSMI_TEMP_OFFSET',
|
||||
'AMDSMI_UTILIZATION_COUNTER_FIRST',
|
||||
'AMDSMI_UTILIZATION_COUNTER_LAST', 'AMDSMI_VOLT_AVERAGE',
|
||||
'AMDSMI_VOLT_CURRENT', 'AMDSMI_VOLT_FIRST', 'AMDSMI_VOLT_HIGHEST',
|
||||
@@ -2257,12 +2453,7 @@ __all__ = \
|
||||
'amdsmi_container_types_t', 'amdsmi_counter_command_t',
|
||||
'amdsmi_counter_value_t', 'amdsmi_cpu_apb_disable',
|
||||
'amdsmi_cpu_apb_enable', 'amdsmi_cpusocket_handle',
|
||||
'amdsmi_ddr_bw_metrics_t', 'amdsmi_dev_compute_partition_get',
|
||||
'amdsmi_dev_compute_partition_reset',
|
||||
'amdsmi_dev_compute_partition_set',
|
||||
'amdsmi_dev_memory_partition_get',
|
||||
'amdsmi_dev_memory_partition_reset',
|
||||
'amdsmi_dev_memory_partition_set', 'amdsmi_dev_perf_level_t',
|
||||
'amdsmi_ddr_bw_metrics_t', 'amdsmi_dev_perf_level_t',
|
||||
'amdsmi_dimm_power_t', 'amdsmi_dimm_thermal_t',
|
||||
'amdsmi_dpm_level_t', 'amdsmi_driver_info_t',
|
||||
'amdsmi_engine_usage_t', 'amdsmi_error_count_t',
|
||||
@@ -2300,6 +2491,7 @@ __all__ = \
|
||||
'amdsmi_get_gpu_available_counters',
|
||||
'amdsmi_get_gpu_bad_page_info', 'amdsmi_get_gpu_bdf_id',
|
||||
'amdsmi_get_gpu_board_info', 'amdsmi_get_gpu_cache_info',
|
||||
'amdsmi_get_gpu_compute_partition',
|
||||
'amdsmi_get_gpu_compute_process_gpus',
|
||||
'amdsmi_get_gpu_compute_process_info',
|
||||
'amdsmi_get_gpu_compute_process_info_by_pid',
|
||||
@@ -2308,9 +2500,62 @@ __all__ = \
|
||||
'amdsmi_get_gpu_ecc_enabled', 'amdsmi_get_gpu_ecc_status',
|
||||
'amdsmi_get_gpu_event_notification', 'amdsmi_get_gpu_fan_rpms',
|
||||
'amdsmi_get_gpu_fan_speed', 'amdsmi_get_gpu_fan_speed_max',
|
||||
'amdsmi_get_gpu_id', 'amdsmi_get_gpu_memory_reserved_pages',
|
||||
'amdsmi_get_gpu_id', 'amdsmi_get_gpu_memory_partition',
|
||||
'amdsmi_get_gpu_memory_reserved_pages',
|
||||
'amdsmi_get_gpu_memory_total', 'amdsmi_get_gpu_memory_usage',
|
||||
'amdsmi_get_gpu_metrics_info',
|
||||
'amdsmi_get_gpu_metrics_avg_dclock0_frequency',
|
||||
'amdsmi_get_gpu_metrics_avg_dclock1_frequency',
|
||||
'amdsmi_get_gpu_metrics_avg_gfx_activity',
|
||||
'amdsmi_get_gpu_metrics_avg_gfx_clock_frequency',
|
||||
'amdsmi_get_gpu_metrics_avg_mm_activity',
|
||||
'amdsmi_get_gpu_metrics_avg_soc_clock_frequency',
|
||||
'amdsmi_get_gpu_metrics_avg_socket_power',
|
||||
'amdsmi_get_gpu_metrics_avg_uclock_frequency',
|
||||
'amdsmi_get_gpu_metrics_avg_umc_activity',
|
||||
'amdsmi_get_gpu_metrics_avg_vclock0_frequency',
|
||||
'amdsmi_get_gpu_metrics_avg_vclock1_frequency',
|
||||
'amdsmi_get_gpu_metrics_curr_dclk0',
|
||||
'amdsmi_get_gpu_metrics_curr_dclk1',
|
||||
'amdsmi_get_gpu_metrics_curr_fan_speed',
|
||||
'amdsmi_get_gpu_metrics_curr_gfxclk',
|
||||
'amdsmi_get_gpu_metrics_curr_socclk',
|
||||
'amdsmi_get_gpu_metrics_curr_socket_power',
|
||||
'amdsmi_get_gpu_metrics_curr_uclk',
|
||||
'amdsmi_get_gpu_metrics_curr_vclk0',
|
||||
'amdsmi_get_gpu_metrics_curr_vclk1',
|
||||
'amdsmi_get_gpu_metrics_energy_acc',
|
||||
'amdsmi_get_gpu_metrics_firmware_timestamp',
|
||||
'amdsmi_get_gpu_metrics_gfx_activity_acc',
|
||||
'amdsmi_get_gpu_metrics_gfxclk_lock_status',
|
||||
'amdsmi_get_gpu_metrics_header_info',
|
||||
'amdsmi_get_gpu_metrics_indep_throttle_status',
|
||||
'amdsmi_get_gpu_metrics_info', 'amdsmi_get_gpu_metrics_log',
|
||||
'amdsmi_get_gpu_metrics_mem_activity_acc',
|
||||
'amdsmi_get_gpu_metrics_pcie_bandwidth_acc',
|
||||
'amdsmi_get_gpu_metrics_pcie_bandwidth_inst',
|
||||
'amdsmi_get_gpu_metrics_pcie_l0_recov_count_acc',
|
||||
'amdsmi_get_gpu_metrics_pcie_link_speed',
|
||||
'amdsmi_get_gpu_metrics_pcie_link_width',
|
||||
'amdsmi_get_gpu_metrics_pcie_replay_count_acc',
|
||||
'amdsmi_get_gpu_metrics_pcie_replay_rover_count_acc',
|
||||
'amdsmi_get_gpu_metrics_system_clock_counter',
|
||||
'amdsmi_get_gpu_metrics_temp_edge',
|
||||
'amdsmi_get_gpu_metrics_temp_hbm',
|
||||
'amdsmi_get_gpu_metrics_temp_hotspot',
|
||||
'amdsmi_get_gpu_metrics_temp_mem',
|
||||
'amdsmi_get_gpu_metrics_temp_vrgfx',
|
||||
'amdsmi_get_gpu_metrics_temp_vrmem',
|
||||
'amdsmi_get_gpu_metrics_temp_vrsoc',
|
||||
'amdsmi_get_gpu_metrics_throttle_status',
|
||||
'amdsmi_get_gpu_metrics_vcn_activity',
|
||||
'amdsmi_get_gpu_metrics_volt_gfx',
|
||||
'amdsmi_get_gpu_metrics_volt_mem',
|
||||
'amdsmi_get_gpu_metrics_volt_soc',
|
||||
'amdsmi_get_gpu_metrics_xcd_counter',
|
||||
'amdsmi_get_gpu_metrics_xgmi_link_speed',
|
||||
'amdsmi_get_gpu_metrics_xgmi_link_width',
|
||||
'amdsmi_get_gpu_metrics_xgmi_read_data',
|
||||
'amdsmi_get_gpu_metrics_xgmi_write_data',
|
||||
'amdsmi_get_gpu_od_volt_curve_regions',
|
||||
'amdsmi_get_gpu_od_volt_info', 'amdsmi_get_gpu_overdrive_level',
|
||||
'amdsmi_get_gpu_pci_bandwidth',
|
||||
@@ -2355,9 +2600,10 @@ __all__ = \
|
||||
'amdsmi_process_info_t', 'amdsmi_processor_handle',
|
||||
'amdsmi_range_t', 'amdsmi_ras_err_state_t',
|
||||
'amdsmi_ras_feature_t', 'amdsmi_reset_gpu',
|
||||
'amdsmi_reset_gpu_fan', 'amdsmi_reset_gpu_xgmi_error',
|
||||
'amdsmi_retired_page_record_t', 'amdsmi_set_clk_freq',
|
||||
'amdsmi_set_cpu_core_boostlimit',
|
||||
'amdsmi_reset_gpu_compute_partition', 'amdsmi_reset_gpu_fan',
|
||||
'amdsmi_reset_gpu_memory_partition',
|
||||
'amdsmi_reset_gpu_xgmi_error', 'amdsmi_retired_page_record_t',
|
||||
'amdsmi_set_clk_freq', 'amdsmi_set_cpu_core_boostlimit',
|
||||
'amdsmi_set_cpu_df_pstate_range',
|
||||
'amdsmi_set_cpu_gmi3_link_width_range',
|
||||
'amdsmi_set_cpu_pcie_link_rate',
|
||||
@@ -2365,11 +2611,11 @@ __all__ = \
|
||||
'amdsmi_set_cpu_socket_boostlimit',
|
||||
'amdsmi_set_cpu_socket_lclk_dpm_level',
|
||||
'amdsmi_set_cpu_socket_power_cap', 'amdsmi_set_cpu_xgmi_width',
|
||||
'amdsmi_set_gpu_clk_range',
|
||||
'amdsmi_set_gpu_clk_range', 'amdsmi_set_gpu_compute_partition',
|
||||
'amdsmi_set_gpu_event_notification_mask',
|
||||
'amdsmi_set_gpu_fan_speed', 'amdsmi_set_gpu_od_clk_info',
|
||||
'amdsmi_set_gpu_od_volt_info', 'amdsmi_set_gpu_overdrive_level',
|
||||
'amdsmi_set_gpu_pci_bandwidth',
|
||||
'amdsmi_set_gpu_fan_speed', 'amdsmi_set_gpu_memory_partition',
|
||||
'amdsmi_set_gpu_od_clk_info', 'amdsmi_set_gpu_od_volt_info',
|
||||
'amdsmi_set_gpu_overdrive_level', 'amdsmi_set_gpu_pci_bandwidth',
|
||||
'amdsmi_set_gpu_perf_determinism_mode',
|
||||
'amdsmi_set_gpu_perf_level', 'amdsmi_set_gpu_power_profile',
|
||||
'amdsmi_set_power_cap', 'amdsmi_shut_down',
|
||||
@@ -2385,7 +2631,11 @@ __all__ = \
|
||||
'amdsmi_voltage_type_t', 'amdsmi_vram_info_t',
|
||||
'amdsmi_vram_type_t', 'amdsmi_vram_usage_t',
|
||||
'amdsmi_vram_vendor_type_t', 'amdsmi_xgmi_info_t',
|
||||
'amdsmi_xgmi_status_t', 'processor_type_t', 'size_t',
|
||||
'amdsmi_xgmi_status_t', 'gpu_metric_curr_dclk0_t',
|
||||
'gpu_metric_curr_gfxclk_t', 'gpu_metric_curr_socclk_t',
|
||||
'gpu_metric_curr_vclk0_t', 'gpu_metric_temp_hbm_t',
|
||||
'gpu_metric_vcn_activity_t', 'gpu_metric_xgmi_read_data_acc_t',
|
||||
'gpu_metric_xgmi_write_data_acc_t', 'processor_type_t', 'size_t',
|
||||
'struct_amd_metrics_table_header_t', 'struct_amdsmi_asic_info_t',
|
||||
'struct_amdsmi_board_info_t', 'struct_amdsmi_clk_info_t',
|
||||
'struct_amdsmi_counter_value_t', 'struct_amdsmi_ddr_bw_metrics_t',
|
||||
|
||||
@@ -1019,7 +1019,7 @@ amdsmi_is_P2P_accessible(amdsmi_processor_handle processor_handle_src,
|
||||
|
||||
// Compute Partition functions
|
||||
amdsmi_status_t
|
||||
amdsmi_dev_compute_partition_get(amdsmi_processor_handle processor_handle,
|
||||
amdsmi_get_gpu_compute_partition(amdsmi_processor_handle processor_handle,
|
||||
char *compute_partition, uint32_t len) {
|
||||
AMDSMI_CHECK_INIT();
|
||||
return rsmi_wrapper(rsmi_dev_compute_partition_get, processor_handle,
|
||||
@@ -1027,7 +1027,7 @@ amdsmi_dev_compute_partition_get(amdsmi_processor_handle processor_handle,
|
||||
}
|
||||
|
||||
amdsmi_status_t
|
||||
amdsmi_dev_compute_partition_set(amdsmi_processor_handle processor_handle,
|
||||
amdsmi_set_gpu_compute_partition(amdsmi_processor_handle processor_handle,
|
||||
amdsmi_compute_partition_type_t compute_partition) {
|
||||
AMDSMI_CHECK_INIT();
|
||||
return rsmi_wrapper(rsmi_dev_compute_partition_set, processor_handle,
|
||||
@@ -1035,14 +1035,14 @@ amdsmi_dev_compute_partition_set(amdsmi_processor_handle processor_handle,
|
||||
}
|
||||
|
||||
amdsmi_status_t
|
||||
amdsmi_dev_compute_partition_reset(amdsmi_processor_handle processor_handle) {
|
||||
amdsmi_reset_gpu_compute_partition(amdsmi_processor_handle processor_handle) {
|
||||
AMDSMI_CHECK_INIT();
|
||||
return rsmi_wrapper(rsmi_dev_compute_partition_reset, processor_handle);
|
||||
}
|
||||
|
||||
// Memory Partition functions
|
||||
amdsmi_status_t
|
||||
amdsmi_dev_memory_partition_get(amdsmi_processor_handle processor_handle,
|
||||
amdsmi_get_gpu_memory_partition(amdsmi_processor_handle processor_handle,
|
||||
char *memory_partition, uint32_t len) {
|
||||
AMDSMI_CHECK_INIT();
|
||||
return rsmi_wrapper(rsmi_dev_memory_partition_get, processor_handle,
|
||||
@@ -1050,7 +1050,7 @@ amdsmi_dev_memory_partition_get(amdsmi_processor_handle processor_handle,
|
||||
}
|
||||
|
||||
amdsmi_status_t
|
||||
amdsmi_dev_memory_partition_set(amdsmi_processor_handle processor_handle,
|
||||
amdsmi_set_gpu_memory_partition(amdsmi_processor_handle processor_handle,
|
||||
amdsmi_memory_partition_type_t memory_partition) {
|
||||
AMDSMI_CHECK_INIT();
|
||||
return rsmi_wrapper(rsmi_dev_memory_partition_set, processor_handle,
|
||||
@@ -1058,7 +1058,7 @@ amdsmi_dev_memory_partition_set(amdsmi_processor_handle processor_handle,
|
||||
}
|
||||
|
||||
amdsmi_status_t
|
||||
amdsmi_dev_memory_partition_reset(amdsmi_processor_handle processor_handle) {
|
||||
amdsmi_reset_gpu_memory_partition(amdsmi_processor_handle processor_handle) {
|
||||
AMDSMI_CHECK_INIT();
|
||||
return rsmi_wrapper(rsmi_dev_memory_partition_reset, processor_handle);
|
||||
}
|
||||
@@ -2155,6 +2155,589 @@ amdsmi_status_t amdsmi_get_processor_handle_from_bdf(amdsmi_bdf_t bdf,
|
||||
return AMDSMI_STATUS_API_FAILED;
|
||||
}
|
||||
|
||||
amdsmi_status_t
|
||||
amdsmi_get_gpu_metrics_temp_hotspot(amdsmi_processor_handle processor_handle,
|
||||
uint16_t *hotspot_value)
|
||||
{
|
||||
AMDSMI_CHECK_INIT();
|
||||
// nullptr api supported
|
||||
|
||||
return rsmi_wrapper(rsmi_dev_metrics_temp_hotspot_get, processor_handle,
|
||||
hotspot_value);
|
||||
}
|
||||
|
||||
amdsmi_status_t
|
||||
amdsmi_get_gpu_metrics_temp_mem(amdsmi_processor_handle processor_handle,
|
||||
uint16_t *mem_value)
|
||||
{
|
||||
AMDSMI_CHECK_INIT();
|
||||
// nullptr api supported
|
||||
|
||||
return rsmi_wrapper(rsmi_dev_metrics_temp_mem_get, processor_handle,
|
||||
mem_value);
|
||||
}
|
||||
|
||||
amdsmi_status_t
|
||||
amdsmi_get_gpu_metrics_temp_vrsoc(amdsmi_processor_handle processor_handle,
|
||||
uint16_t *vrsoc_value)
|
||||
{
|
||||
AMDSMI_CHECK_INIT();
|
||||
// nullptr api supported
|
||||
|
||||
return rsmi_wrapper(rsmi_dev_metrics_temp_vrsoc_get, processor_handle,
|
||||
vrsoc_value);
|
||||
}
|
||||
|
||||
amdsmi_status_t
|
||||
amdsmi_get_gpu_metrics_curr_socket_power(amdsmi_processor_handle processor_handle,
|
||||
uint16_t *socket_power_value)
|
||||
{
|
||||
AMDSMI_CHECK_INIT();
|
||||
// nullptr api supported
|
||||
|
||||
return rsmi_wrapper(rsmi_dev_metrics_curr_socket_power_get, processor_handle,
|
||||
socket_power_value);
|
||||
}
|
||||
|
||||
amdsmi_status_t
|
||||
amdsmi_get_gpu_metrics_avg_gfx_activity(amdsmi_processor_handle processor_handle,
|
||||
uint16_t *gfx_activity_value)
|
||||
{
|
||||
AMDSMI_CHECK_INIT();
|
||||
// nullptr api supported
|
||||
|
||||
return rsmi_wrapper(rsmi_dev_metrics_avg_gfx_activity_get, processor_handle,
|
||||
gfx_activity_value);
|
||||
}
|
||||
|
||||
amdsmi_status_t
|
||||
amdsmi_get_gpu_metrics_avg_umc_activity(amdsmi_processor_handle processor_handle,
|
||||
uint16_t *umc_activity_value)
|
||||
{
|
||||
AMDSMI_CHECK_INIT();
|
||||
// nullptr api supported
|
||||
|
||||
return rsmi_wrapper(rsmi_dev_metrics_avg_umc_activity_get, processor_handle,
|
||||
umc_activity_value);
|
||||
}
|
||||
|
||||
amdsmi_status_t
|
||||
amdsmi_get_gpu_metrics_energy_acc(amdsmi_processor_handle processor_handle,
|
||||
uint64_t *energy_acc_value)
|
||||
{
|
||||
AMDSMI_CHECK_INIT();
|
||||
// nullptr api supported
|
||||
|
||||
return rsmi_wrapper(rsmi_dev_metrics_energy_acc_get, processor_handle,
|
||||
energy_acc_value);
|
||||
}
|
||||
|
||||
amdsmi_status_t
|
||||
amdsmi_get_gpu_metrics_system_clock_counter(amdsmi_processor_handle processor_handle,
|
||||
uint64_t *system_clock_counter_value)
|
||||
{
|
||||
AMDSMI_CHECK_INIT();
|
||||
// nullptr api supported
|
||||
|
||||
return rsmi_wrapper(rsmi_dev_metrics_system_clock_counter_get, processor_handle,
|
||||
system_clock_counter_value);
|
||||
}
|
||||
|
||||
amdsmi_status_t
|
||||
amdsmi_get_gpu_metrics_firmware_timestamp(amdsmi_processor_handle processor_handle,
|
||||
uint64_t *firmware_timestamp_value)
|
||||
{
|
||||
AMDSMI_CHECK_INIT();
|
||||
// nullptr api supported
|
||||
|
||||
return rsmi_wrapper(rsmi_dev_metrics_firmware_timestamp_get, processor_handle,
|
||||
firmware_timestamp_value);
|
||||
}
|
||||
|
||||
amdsmi_status_t
|
||||
amdsmi_get_gpu_metrics_throttle_status(amdsmi_processor_handle processor_handle,
|
||||
uint32_t *throttle_status_value)
|
||||
{
|
||||
AMDSMI_CHECK_INIT();
|
||||
// nullptr api supported
|
||||
|
||||
return rsmi_wrapper(rsmi_dev_metrics_throttle_status_get, processor_handle,
|
||||
throttle_status_value);
|
||||
}
|
||||
|
||||
amdsmi_status_t
|
||||
amdsmi_get_gpu_metrics_pcie_link_width(amdsmi_processor_handle processor_handle,
|
||||
uint16_t *pcie_link_width_value)
|
||||
{
|
||||
AMDSMI_CHECK_INIT();
|
||||
// nullptr api supported
|
||||
|
||||
return rsmi_wrapper(rsmi_dev_metrics_pcie_link_width_get, processor_handle,
|
||||
pcie_link_width_value);
|
||||
}
|
||||
|
||||
amdsmi_status_t
|
||||
amdsmi_get_gpu_metrics_pcie_link_speed(amdsmi_processor_handle processor_handle,
|
||||
uint16_t *pcie_link_speed_value)
|
||||
{
|
||||
AMDSMI_CHECK_INIT();
|
||||
// nullptr api supported
|
||||
|
||||
return rsmi_wrapper(rsmi_dev_metrics_pcie_link_speed_get, processor_handle,
|
||||
pcie_link_speed_value);
|
||||
}
|
||||
|
||||
amdsmi_status_t
|
||||
amdsmi_get_gpu_metrics_xgmi_link_width(amdsmi_processor_handle processor_handle,
|
||||
uint16_t *xgmi_link_width_value)
|
||||
{
|
||||
AMDSMI_CHECK_INIT();
|
||||
// nullptr api supported
|
||||
|
||||
return rsmi_wrapper(rsmi_dev_metrics_xgmi_link_width_get, processor_handle,
|
||||
xgmi_link_width_value);
|
||||
}
|
||||
|
||||
amdsmi_status_t
|
||||
amdsmi_get_gpu_metrics_xgmi_link_speed(amdsmi_processor_handle processor_handle,
|
||||
uint16_t *xgmi_link_speed_value)
|
||||
{
|
||||
AMDSMI_CHECK_INIT();
|
||||
// nullptr api supported
|
||||
|
||||
return rsmi_wrapper(rsmi_dev_metrics_xgmi_link_speed_get, processor_handle,
|
||||
xgmi_link_speed_value);
|
||||
}
|
||||
|
||||
amdsmi_status_t
|
||||
amdsmi_get_gpu_metrics_gfxclk_lock_status(amdsmi_processor_handle processor_handle,
|
||||
uint32_t *gfxclk_lock_status_value)
|
||||
{
|
||||
AMDSMI_CHECK_INIT();
|
||||
// nullptr api supported
|
||||
|
||||
return rsmi_wrapper(rsmi_dev_metrics_gfxclk_lock_status_get, processor_handle,
|
||||
gfxclk_lock_status_value);
|
||||
}
|
||||
|
||||
amdsmi_status_t
|
||||
amdsmi_get_gpu_metrics_gfx_activity_acc(amdsmi_processor_handle processor_handle,
|
||||
uint32_t *gfx_activity_acc_value)
|
||||
{
|
||||
AMDSMI_CHECK_INIT();
|
||||
// nullptr api supported
|
||||
|
||||
return rsmi_wrapper(rsmi_dev_metrics_gfx_activity_acc_get, processor_handle,
|
||||
gfx_activity_acc_value);
|
||||
}
|
||||
|
||||
amdsmi_status_t
|
||||
amdsmi_get_gpu_metrics_mem_activity_acc(amdsmi_processor_handle processor_handle,
|
||||
uint32_t *mem_activity_acc_value)
|
||||
{
|
||||
AMDSMI_CHECK_INIT();
|
||||
// nullptr api supported
|
||||
|
||||
return rsmi_wrapper(rsmi_dev_metrics_mem_activity_acc_get, processor_handle,
|
||||
mem_activity_acc_value);
|
||||
}
|
||||
|
||||
amdsmi_status_t
|
||||
amdsmi_get_gpu_metrics_pcie_bandwidth_acc(amdsmi_processor_handle processor_handle,
|
||||
uint64_t *pcie_bandwidth_acc_value)
|
||||
{
|
||||
AMDSMI_CHECK_INIT();
|
||||
// nullptr api supported
|
||||
|
||||
return rsmi_wrapper(rsmi_dev_metrics_pcie_bandwidth_acc_get, processor_handle,
|
||||
pcie_bandwidth_acc_value);
|
||||
}
|
||||
|
||||
amdsmi_status_t
|
||||
amdsmi_get_gpu_metrics_pcie_bandwidth_inst(amdsmi_processor_handle processor_handle,
|
||||
uint64_t *pcie_bandwidth_inst_value)
|
||||
{
|
||||
AMDSMI_CHECK_INIT();
|
||||
// nullptr api supported
|
||||
|
||||
return rsmi_wrapper(rsmi_dev_metrics_pcie_bandwidth_inst_get, processor_handle,
|
||||
pcie_bandwidth_inst_value);
|
||||
}
|
||||
|
||||
amdsmi_status_t
|
||||
amdsmi_get_gpu_metrics_pcie_l0_recov_count_acc(amdsmi_processor_handle processor_handle,
|
||||
uint64_t *pcie_count_acc_value)
|
||||
{
|
||||
AMDSMI_CHECK_INIT();
|
||||
// nullptr api supported
|
||||
|
||||
return rsmi_wrapper(rsmi_dev_metrics_pcie_l0_recov_count_acc_get, processor_handle,
|
||||
pcie_count_acc_value);
|
||||
}
|
||||
|
||||
amdsmi_status_t
|
||||
amdsmi_get_gpu_metrics_pcie_replay_count_acc(amdsmi_processor_handle processor_handle,
|
||||
uint64_t *pcie_count_acc_value)
|
||||
{
|
||||
AMDSMI_CHECK_INIT();
|
||||
// nullptr api supported
|
||||
|
||||
return rsmi_wrapper(rsmi_dev_metrics_pcie_replay_count_acc_get, processor_handle,
|
||||
pcie_count_acc_value);
|
||||
}
|
||||
|
||||
amdsmi_status_t
|
||||
amdsmi_get_gpu_metrics_pcie_replay_rover_count_acc(amdsmi_processor_handle processor_handle,
|
||||
uint64_t *pcie_count_acc_value)
|
||||
{
|
||||
AMDSMI_CHECK_INIT();
|
||||
// nullptr api supported
|
||||
|
||||
return rsmi_wrapper(rsmi_dev_metrics_pcie_replay_rover_count_acc_get, processor_handle,
|
||||
pcie_count_acc_value);
|
||||
}
|
||||
|
||||
amdsmi_status_t
|
||||
amdsmi_get_gpu_metrics_curr_uclk(amdsmi_processor_handle processor_handle,
|
||||
uint16_t *uclk_value)
|
||||
{
|
||||
AMDSMI_CHECK_INIT();
|
||||
// nullptr api supported
|
||||
|
||||
return rsmi_wrapper(rsmi_dev_metrics_curr_uclk_get, processor_handle,
|
||||
uclk_value);
|
||||
}
|
||||
|
||||
amdsmi_status_t
|
||||
amdsmi_get_gpu_metrics_temp_hbm(amdsmi_processor_handle processor_handle,
|
||||
gpu_metric_temp_hbm_t *temp_hbm_value)
|
||||
{
|
||||
AMDSMI_CHECK_INIT();
|
||||
// nullptr api supported
|
||||
|
||||
return rsmi_wrapper(rsmi_dev_metrics_temp_hbm_get, processor_handle,
|
||||
reinterpret_cast<GPUMetricTempHbm_t*>(temp_hbm_value));
|
||||
}
|
||||
|
||||
amdsmi_status_t
|
||||
amdsmi_get_gpu_metrics_vcn_activity(amdsmi_processor_handle processor_handle,
|
||||
gpu_metric_vcn_activity_t *vcn_activity_value)
|
||||
{
|
||||
AMDSMI_CHECK_INIT();
|
||||
// nullptr api supported
|
||||
|
||||
return rsmi_wrapper(rsmi_dev_metrics_vcn_activity_get, processor_handle,
|
||||
reinterpret_cast<GPUMetricVcnActivity_t*>(vcn_activity_value));
|
||||
}
|
||||
|
||||
amdsmi_status_t
|
||||
amdsmi_get_gpu_metrics_xgmi_read_data(amdsmi_processor_handle processor_handle,
|
||||
gpu_metric_xgmi_read_data_acc_t *xgmi_read_data_acc_value)
|
||||
{
|
||||
AMDSMI_CHECK_INIT();
|
||||
// nullptr api supported
|
||||
|
||||
return rsmi_wrapper(rsmi_dev_metrics_xgmi_read_data_get, processor_handle,
|
||||
reinterpret_cast<GPUMetricXgmiReadDataAcc_t*>(xgmi_read_data_acc_value));
|
||||
}
|
||||
|
||||
amdsmi_status_t
|
||||
amdsmi_get_gpu_metrics_xgmi_write_data(amdsmi_processor_handle processor_handle,
|
||||
gpu_metric_xgmi_write_data_acc_t *xgmi_write_data_acc_value)
|
||||
{
|
||||
AMDSMI_CHECK_INIT();
|
||||
// nullptr api supported
|
||||
|
||||
return rsmi_wrapper(rsmi_dev_metrics_xgmi_write_data_get, processor_handle,
|
||||
reinterpret_cast<GPUMetricXgmiWriteDataAcc_t*>(xgmi_write_data_acc_value));
|
||||
}
|
||||
|
||||
amdsmi_status_t
|
||||
amdsmi_get_gpu_metrics_curr_gfxclk(amdsmi_processor_handle processor_handle,
|
||||
gpu_metric_curr_gfxclk_t *curr_gfxclk_value)
|
||||
{
|
||||
AMDSMI_CHECK_INIT();
|
||||
// nullptr api supported
|
||||
|
||||
return rsmi_wrapper(rsmi_dev_metrics_curr_gfxclk_get, processor_handle,
|
||||
reinterpret_cast<GPUMetricCurrGfxClk_t*>(curr_gfxclk_value));
|
||||
}
|
||||
|
||||
amdsmi_status_t
|
||||
amdsmi_get_gpu_metrics_curr_socclk(amdsmi_processor_handle processor_handle,
|
||||
gpu_metric_curr_socclk_t *current_socclk_value)
|
||||
{
|
||||
AMDSMI_CHECK_INIT();
|
||||
// nullptr api supported
|
||||
|
||||
return rsmi_wrapper(rsmi_dev_metrics_curr_socclk_get, processor_handle,
|
||||
reinterpret_cast<GPUMetricCurrSocClk_t*>(current_socclk_value));
|
||||
}
|
||||
|
||||
amdsmi_status_t
|
||||
amdsmi_get_gpu_metrics_curr_vclk0(amdsmi_processor_handle processor_handle,
|
||||
gpu_metric_curr_vclk0_t *current_vclk_value)
|
||||
{
|
||||
AMDSMI_CHECK_INIT();
|
||||
// nullptr api supported
|
||||
|
||||
return rsmi_wrapper(rsmi_dev_metrics_curr_vclk0_get, processor_handle,
|
||||
reinterpret_cast<GPUMetricCurrVClk0_t*>(current_vclk_value));
|
||||
}
|
||||
|
||||
amdsmi_status_t
|
||||
amdsmi_get_gpu_metrics_curr_dclk0(amdsmi_processor_handle processor_handle,
|
||||
gpu_metric_curr_dclk0_t *current_dclk_value)
|
||||
{
|
||||
AMDSMI_CHECK_INIT();
|
||||
// nullptr api supported
|
||||
|
||||
return rsmi_wrapper(rsmi_dev_metrics_curr_dclk0_get, processor_handle,
|
||||
reinterpret_cast<GPUMetricCurrDClk0_t*>(current_dclk_value));
|
||||
}
|
||||
|
||||
amdsmi_status_t
|
||||
amdsmi_get_gpu_metrics_temp_edge(amdsmi_processor_handle processor_handle,
|
||||
uint16_t *edge_value)
|
||||
{
|
||||
AMDSMI_CHECK_INIT();
|
||||
// nullptr api supported
|
||||
|
||||
return rsmi_wrapper(rsmi_dev_metrics_temp_edge_get, processor_handle,
|
||||
edge_value);
|
||||
}
|
||||
|
||||
amdsmi_status_t
|
||||
amdsmi_get_gpu_metrics_temp_vrgfx(amdsmi_processor_handle processor_handle,
|
||||
uint16_t *vrgfx_value)
|
||||
{
|
||||
AMDSMI_CHECK_INIT();
|
||||
// nullptr api supported
|
||||
|
||||
return rsmi_wrapper(rsmi_dev_metrics_temp_vrgfx_get, processor_handle,
|
||||
vrgfx_value);
|
||||
}
|
||||
|
||||
amdsmi_status_t
|
||||
amdsmi_get_gpu_metrics_temp_vrmem(amdsmi_processor_handle processor_handle,
|
||||
uint16_t *vrmem_value)
|
||||
{
|
||||
AMDSMI_CHECK_INIT();
|
||||
// nullptr api supported
|
||||
|
||||
return rsmi_wrapper(rsmi_dev_metrics_temp_vrmem_get, processor_handle,
|
||||
vrmem_value);
|
||||
}
|
||||
|
||||
amdsmi_status_t
|
||||
amdsmi_get_gpu_metrics_avg_mm_activity(amdsmi_processor_handle processor_handle,
|
||||
uint16_t *mm_activity_value)
|
||||
{
|
||||
AMDSMI_CHECK_INIT();
|
||||
// nullptr api supported
|
||||
|
||||
return rsmi_wrapper(rsmi_dev_metrics_avg_mm_activity_get, processor_handle,
|
||||
mm_activity_value);
|
||||
}
|
||||
|
||||
amdsmi_status_t
|
||||
amdsmi_get_gpu_metrics_curr_vclk1(amdsmi_processor_handle processor_handle,
|
||||
uint16_t *current_vclk_value)
|
||||
{
|
||||
AMDSMI_CHECK_INIT();
|
||||
// nullptr api supported
|
||||
|
||||
return rsmi_wrapper(rsmi_dev_metrics_curr_vclk1_get, processor_handle,
|
||||
current_vclk_value);
|
||||
}
|
||||
|
||||
amdsmi_status_t
|
||||
amdsmi_get_gpu_metrics_curr_dclk1(amdsmi_processor_handle processor_handle,
|
||||
uint16_t *current_dclk_value)
|
||||
{
|
||||
AMDSMI_CHECK_INIT();
|
||||
// nullptr api supported
|
||||
|
||||
return rsmi_wrapper(rsmi_dev_metrics_curr_dclk1_get, processor_handle,
|
||||
current_dclk_value);
|
||||
}
|
||||
|
||||
amdsmi_status_t
|
||||
amdsmi_get_gpu_metrics_indep_throttle_status(amdsmi_processor_handle processor_handle,
|
||||
uint64_t *throttle_status_value)
|
||||
{
|
||||
AMDSMI_CHECK_INIT();
|
||||
// nullptr api supported
|
||||
|
||||
return rsmi_wrapper(rsmi_dev_metrics_indep_throttle_status_get, processor_handle,
|
||||
throttle_status_value);
|
||||
}
|
||||
|
||||
amdsmi_status_t
|
||||
amdsmi_get_gpu_metrics_avg_socket_power(amdsmi_processor_handle processor_handle,
|
||||
uint16_t *socket_power_value)
|
||||
{
|
||||
AMDSMI_CHECK_INIT();
|
||||
// nullptr api supported
|
||||
|
||||
return rsmi_wrapper(rsmi_dev_metrics_avg_socket_power_get, processor_handle,
|
||||
socket_power_value);
|
||||
}
|
||||
|
||||
amdsmi_status_t
|
||||
amdsmi_get_gpu_metrics_curr_fan_speed(amdsmi_processor_handle processor_handle,
|
||||
uint16_t *fan_speed_value)
|
||||
{
|
||||
AMDSMI_CHECK_INIT();
|
||||
// nullptr api supported
|
||||
|
||||
return rsmi_wrapper(rsmi_dev_metrics_curr_fan_speed_get, processor_handle,
|
||||
fan_speed_value);
|
||||
}
|
||||
|
||||
amdsmi_status_t
|
||||
amdsmi_get_gpu_metrics_avg_gfx_clock_frequency(amdsmi_processor_handle processor_handle,
|
||||
uint16_t *clock_frequency_value)
|
||||
{
|
||||
AMDSMI_CHECK_INIT();
|
||||
// nullptr api supported
|
||||
|
||||
return rsmi_wrapper(rsmi_dev_metrics_avg_gfx_clock_frequency_get, processor_handle,
|
||||
clock_frequency_value);
|
||||
}
|
||||
|
||||
amdsmi_status_t
|
||||
amdsmi_get_gpu_metrics_avg_soc_clock_frequency(amdsmi_processor_handle processor_handle,
|
||||
uint16_t *clock_frequency_value)
|
||||
{
|
||||
AMDSMI_CHECK_INIT();
|
||||
// nullptr api supported
|
||||
|
||||
return rsmi_wrapper(rsmi_dev_metrics_avg_soc_clock_frequency_get, processor_handle,
|
||||
clock_frequency_value);
|
||||
}
|
||||
|
||||
amdsmi_status_t
|
||||
amdsmi_get_gpu_metrics_avg_uclock_frequency(amdsmi_processor_handle processor_handle,
|
||||
uint16_t *clock_frequency_value)
|
||||
{
|
||||
AMDSMI_CHECK_INIT();
|
||||
// nullptr api supported
|
||||
|
||||
return rsmi_wrapper(rsmi_dev_metrics_avg_uclock_frequency_get, processor_handle,
|
||||
clock_frequency_value);
|
||||
}
|
||||
|
||||
amdsmi_status_t
|
||||
amdsmi_get_gpu_metrics_avg_vclock0_frequency(amdsmi_processor_handle processor_handle,
|
||||
uint16_t *clock_frequency_value)
|
||||
{
|
||||
AMDSMI_CHECK_INIT();
|
||||
// nullptr api supported
|
||||
|
||||
return rsmi_wrapper(rsmi_dev_metrics_avg_vclock0_frequency_get, processor_handle,
|
||||
clock_frequency_value);
|
||||
}
|
||||
|
||||
amdsmi_status_t
|
||||
amdsmi_get_gpu_metrics_avg_dclock0_frequency(amdsmi_processor_handle processor_handle,
|
||||
uint16_t *clock_frequency_value)
|
||||
{
|
||||
AMDSMI_CHECK_INIT();
|
||||
// nullptr api supported
|
||||
|
||||
return rsmi_wrapper(rsmi_dev_metrics_avg_dclock0_frequency_get, processor_handle,
|
||||
clock_frequency_value);
|
||||
}
|
||||
|
||||
amdsmi_status_t
|
||||
amdsmi_get_gpu_metrics_avg_vclock1_frequency(amdsmi_processor_handle processor_handle,
|
||||
uint16_t *clock_frequency_value)
|
||||
{
|
||||
AMDSMI_CHECK_INIT();
|
||||
// nullptr api supported
|
||||
|
||||
return rsmi_wrapper(rsmi_dev_metrics_avg_vclock1_frequency_get, processor_handle,
|
||||
clock_frequency_value);
|
||||
}
|
||||
|
||||
amdsmi_status_t
|
||||
amdsmi_get_gpu_metrics_avg_dclock1_frequency(amdsmi_processor_handle processor_handle,
|
||||
uint16_t *clock_frequency_value)
|
||||
{
|
||||
AMDSMI_CHECK_INIT();
|
||||
// nullptr api supported
|
||||
|
||||
return rsmi_wrapper(rsmi_dev_metrics_avg_dclock1_frequency_get, processor_handle,
|
||||
clock_frequency_value);
|
||||
}
|
||||
|
||||
amdsmi_status_t
|
||||
amdsmi_get_gpu_metrics_volt_soc(amdsmi_processor_handle processor_handle,
|
||||
uint16_t *voltage_value)
|
||||
{
|
||||
AMDSMI_CHECK_INIT();
|
||||
// nullptr api supported
|
||||
|
||||
return rsmi_wrapper(rsmi_dev_metrics_volt_soc_get, processor_handle,
|
||||
voltage_value);
|
||||
}
|
||||
|
||||
amdsmi_status_t
|
||||
amdsmi_get_gpu_metrics_volt_gfx(amdsmi_processor_handle processor_handle,
|
||||
uint16_t *voltage_value)
|
||||
{
|
||||
AMDSMI_CHECK_INIT();
|
||||
// nullptr api supported
|
||||
|
||||
return rsmi_wrapper(rsmi_dev_metrics_volt_gfx_get, processor_handle,
|
||||
voltage_value);
|
||||
}
|
||||
|
||||
amdsmi_status_t
|
||||
amdsmi_get_gpu_metrics_volt_mem(amdsmi_processor_handle processor_handle,
|
||||
uint16_t *voltage_value)
|
||||
{
|
||||
AMDSMI_CHECK_INIT();
|
||||
// nullptr api supported
|
||||
|
||||
return rsmi_wrapper(rsmi_dev_metrics_volt_mem_get, processor_handle,
|
||||
voltage_value);
|
||||
}
|
||||
|
||||
|
||||
amdsmi_status_t
|
||||
amdsmi_get_gpu_metrics_header_info(amdsmi_processor_handle processor_handle,
|
||||
amd_metrics_table_header_t *header_value)
|
||||
{
|
||||
AMDSMI_CHECK_INIT();
|
||||
// nullptr api supported
|
||||
|
||||
return rsmi_wrapper(rsmi_dev_metrics_header_info_get, processor_handle,
|
||||
reinterpret_cast<metrics_table_header_t*>(header_value));
|
||||
}
|
||||
|
||||
amdsmi_status_t
|
||||
amdsmi_get_gpu_metrics_xcd_counter(amdsmi_processor_handle processor_handle,
|
||||
uint16_t *xcd_counter_value)
|
||||
{
|
||||
AMDSMI_CHECK_INIT();
|
||||
// nullptr api supported
|
||||
|
||||
return rsmi_wrapper(rsmi_dev_metrics_xcd_counter_get, processor_handle,
|
||||
xcd_counter_value);
|
||||
}
|
||||
|
||||
amdsmi_status_t
|
||||
amdsmi_get_gpu_metrics_log(amdsmi_processor_handle processor_handle)
|
||||
{
|
||||
AMDSMI_CHECK_INIT();
|
||||
// nullptr api supported
|
||||
|
||||
return rsmi_wrapper(rsmi_dev_metrics_log_get, processor_handle);
|
||||
}
|
||||
|
||||
|
||||
#ifdef ENABLE_ESMI_LIB
|
||||
amdsmi_status_t amdsmi_get_cpu_hsmp_proto_ver(amdsmi_cpusocket_handle socket_handle,
|
||||
uint32_t *proto_ver)
|
||||
|
||||
@@ -100,7 +100,7 @@ void TestGpuMetricsRead::Run(void) {
|
||||
PrintDeviceHeader(processor_handles_[i]);
|
||||
|
||||
IF_VERB(STANDARD) {
|
||||
std::cout << "\t**GPU METRICS:\n";
|
||||
std::cout << "\t**GPU METRICS: Using static struct (Backwards Compatibility):\n";
|
||||
}
|
||||
amdsmi_gpu_metrics_t smu;
|
||||
err = amdsmi_get_gpu_metrics_info(processor_handles_[i], &smu);
|
||||
@@ -191,4 +191,381 @@ void TestGpuMetricsRead::Run(void) {
|
||||
err = amdsmi_get_gpu_metrics_info(processor_handles_[i], nullptr);
|
||||
ASSERT_EQ(err, AMDSMI_STATUS_INVAL);
|
||||
}
|
||||
|
||||
|
||||
//
|
||||
auto val_ui16 = uint16_t(0);
|
||||
auto val_ui32 = uint32_t(0);
|
||||
auto val_ui64 = uint64_t(0);
|
||||
auto status_code(amdsmi_status_t::AMDSMI_STATUS_SUCCESS);
|
||||
for (uint32_t i = 0; i < num_monitor_devs(); ++i) {
|
||||
PrintDeviceHeader(processor_handles_[i]);
|
||||
|
||||
auto temp_edge_value = val_ui16;
|
||||
status_code = amdsmi_get_gpu_metrics_temp_edge(processor_handles_[i], &temp_edge_value);
|
||||
if (status_code != AMDSMI_STATUS_NOT_SUPPORTED) {
|
||||
CHK_ERR_ASRT(status_code);
|
||||
}
|
||||
|
||||
auto temp_hotspot_value = val_ui16;
|
||||
status_code = amdsmi_get_gpu_metrics_temp_hotspot(processor_handles_[i], &temp_hotspot_value);
|
||||
CHK_ERR_ASRT(status_code);
|
||||
|
||||
auto temp_mem_value = val_ui16;
|
||||
status_code = amdsmi_get_gpu_metrics_temp_mem(processor_handles_[i], &temp_mem_value);
|
||||
CHK_ERR_ASRT(status_code);
|
||||
|
||||
auto temp_vrgfx_value = val_ui16;
|
||||
status_code = amdsmi_get_gpu_metrics_temp_vrgfx(processor_handles_[i], &temp_vrgfx_value);
|
||||
if (status_code != AMDSMI_STATUS_NOT_SUPPORTED) {
|
||||
CHK_ERR_ASRT(status_code);
|
||||
}
|
||||
|
||||
auto temp_vrsoc_value = val_ui16;
|
||||
status_code = amdsmi_get_gpu_metrics_temp_vrsoc(processor_handles_[i], &temp_vrsoc_value);
|
||||
CHK_ERR_ASRT(status_code);
|
||||
|
||||
auto temp_vrmem_value = val_ui16;
|
||||
status_code = amdsmi_get_gpu_metrics_temp_vrmem(processor_handles_[i], &temp_vrmem_value);
|
||||
if (status_code != AMDSMI_STATUS_NOT_SUPPORTED) {
|
||||
CHK_ERR_ASRT(status_code);
|
||||
}
|
||||
|
||||
gpu_metric_temp_hbm_t temp_hbm_values;
|
||||
status_code = amdsmi_get_gpu_metrics_temp_hbm(processor_handles_[i], &temp_hbm_values);
|
||||
CHK_ERR_ASRT(status_code);
|
||||
|
||||
auto temp_curr_socket_power_value = val_ui16;
|
||||
status_code = amdsmi_get_gpu_metrics_curr_socket_power(processor_handles_[i], &temp_curr_socket_power_value);
|
||||
if (status_code != AMDSMI_STATUS_NOT_SUPPORTED) {
|
||||
CHK_ERR_ASRT(status_code);
|
||||
}
|
||||
|
||||
auto temp_energy_accum_value = val_ui64;
|
||||
status_code = amdsmi_get_gpu_metrics_energy_acc(processor_handles_[i], &temp_energy_accum_value);
|
||||
CHK_ERR_ASRT(status_code);
|
||||
|
||||
auto temp_avg_socket_power_value = val_ui16;
|
||||
status_code = amdsmi_get_gpu_metrics_avg_socket_power(processor_handles_[i], &temp_avg_socket_power_value);
|
||||
if (status_code != AMDSMI_STATUS_NOT_SUPPORTED) {
|
||||
CHK_ERR_ASRT(status_code);
|
||||
}
|
||||
|
||||
auto temp_avg_gfx_activity_value = val_ui16;
|
||||
status_code = amdsmi_get_gpu_metrics_avg_gfx_activity(processor_handles_[i], &temp_avg_gfx_activity_value);
|
||||
CHK_ERR_ASRT(status_code);
|
||||
|
||||
auto temp_avg_umc_activity_value = val_ui16;
|
||||
status_code = amdsmi_get_gpu_metrics_avg_umc_activity(processor_handles_[i], &temp_avg_umc_activity_value);
|
||||
CHK_ERR_ASRT(status_code);
|
||||
|
||||
auto temp_avg_mm_activity_value = val_ui16;
|
||||
status_code = amdsmi_get_gpu_metrics_avg_mm_activity(processor_handles_[i], &temp_avg_mm_activity_value);
|
||||
if (status_code != AMDSMI_STATUS_NOT_SUPPORTED) {
|
||||
CHK_ERR_ASRT(status_code);
|
||||
}
|
||||
|
||||
gpu_metric_vcn_activity_t temp_vcn_values;
|
||||
status_code = amdsmi_get_gpu_metrics_vcn_activity(processor_handles_[i], &temp_vcn_values);
|
||||
if (status_code != AMDSMI_STATUS_NOT_SUPPORTED) {
|
||||
CHK_ERR_ASRT(status_code);
|
||||
}
|
||||
|
||||
auto temp_mem_activity_accum_value = val_ui32;
|
||||
status_code = amdsmi_get_gpu_metrics_mem_activity_acc(processor_handles_[i], &temp_mem_activity_accum_value);
|
||||
CHK_ERR_ASRT(status_code);
|
||||
|
||||
auto temp_gfx_activity_accum_value = val_ui32;
|
||||
status_code = amdsmi_get_gpu_metrics_gfx_activity_acc(processor_handles_[i], &temp_gfx_activity_accum_value);
|
||||
CHK_ERR_ASRT(status_code);
|
||||
|
||||
auto temp_avg_gfx_clock_freq_value = val_ui16;
|
||||
status_code = amdsmi_get_gpu_metrics_avg_gfx_clock_frequency(processor_handles_[i], &temp_avg_gfx_clock_freq_value);
|
||||
if (status_code != AMDSMI_STATUS_NOT_SUPPORTED) {
|
||||
CHK_ERR_ASRT(status_code);
|
||||
}
|
||||
|
||||
auto temp_avg_soc_clock_freq_value = val_ui16;
|
||||
status_code = amdsmi_get_gpu_metrics_avg_soc_clock_frequency(processor_handles_[i], &temp_avg_soc_clock_freq_value);
|
||||
if (status_code != AMDSMI_STATUS_NOT_SUPPORTED) {
|
||||
CHK_ERR_ASRT(status_code);
|
||||
}
|
||||
|
||||
auto temp_avg_uclock_freq_value = val_ui16;
|
||||
status_code = amdsmi_get_gpu_metrics_avg_uclock_frequency(processor_handles_[i], &temp_avg_uclock_freq_value);
|
||||
if (status_code != AMDSMI_STATUS_NOT_SUPPORTED) {
|
||||
CHK_ERR_ASRT(status_code);
|
||||
}
|
||||
|
||||
auto temp_avg_vclock0_freq_value = val_ui16;
|
||||
status_code = amdsmi_get_gpu_metrics_avg_vclock0_frequency(processor_handles_[i], &temp_avg_vclock0_freq_value);
|
||||
if (status_code != AMDSMI_STATUS_NOT_SUPPORTED) {
|
||||
CHK_ERR_ASRT(status_code);
|
||||
}
|
||||
|
||||
auto temp_avg_dclock0_freq_value = val_ui16;
|
||||
status_code = amdsmi_get_gpu_metrics_avg_dclock0_frequency(processor_handles_[i], &temp_avg_dclock0_freq_value);
|
||||
if (status_code != AMDSMI_STATUS_NOT_SUPPORTED) {
|
||||
CHK_ERR_ASRT(status_code);
|
||||
}
|
||||
|
||||
auto temp_avg_vclock1_freq_value = val_ui16;
|
||||
status_code = amdsmi_get_gpu_metrics_avg_vclock1_frequency(processor_handles_[i], &temp_avg_vclock1_freq_value);
|
||||
if (status_code != AMDSMI_STATUS_NOT_SUPPORTED) {
|
||||
CHK_ERR_ASRT(status_code);
|
||||
}
|
||||
|
||||
auto temp_avg_dclock1_freq_value = val_ui16;
|
||||
status_code = amdsmi_get_gpu_metrics_avg_dclock1_frequency(processor_handles_[i], &temp_avg_dclock1_freq_value);
|
||||
if (status_code != AMDSMI_STATUS_NOT_SUPPORTED) {
|
||||
CHK_ERR_ASRT(status_code);
|
||||
}
|
||||
|
||||
auto temp_curr_vclk1_value = val_ui16;
|
||||
status_code = amdsmi_get_gpu_metrics_curr_vclk1(processor_handles_[i], &temp_curr_vclk1_value);
|
||||
if (status_code != AMDSMI_STATUS_NOT_SUPPORTED) {
|
||||
CHK_ERR_ASRT(status_code);
|
||||
}
|
||||
|
||||
auto temp_curr_dclk1_value = val_ui16;
|
||||
status_code = amdsmi_get_gpu_metrics_curr_dclk1(processor_handles_[i], &temp_curr_dclk1_value);
|
||||
if (status_code != AMDSMI_STATUS_NOT_SUPPORTED) {
|
||||
CHK_ERR_ASRT(status_code);
|
||||
}
|
||||
|
||||
auto temp_curr_uclk_value = val_ui16;
|
||||
status_code = amdsmi_get_gpu_metrics_curr_uclk(processor_handles_[i], &temp_curr_uclk_value);
|
||||
CHK_ERR_ASRT(status_code);
|
||||
|
||||
gpu_metric_curr_dclk0_t temp_curr_dclk0_values;
|
||||
status_code = amdsmi_get_gpu_metrics_curr_dclk0(processor_handles_[i], &temp_curr_dclk0_values);
|
||||
if (status_code != AMDSMI_STATUS_NOT_SUPPORTED) {
|
||||
CHK_ERR_ASRT(status_code);
|
||||
}
|
||||
|
||||
gpu_metric_curr_gfxclk_t temp_curr_gfxclk_values;
|
||||
status_code = amdsmi_get_gpu_metrics_curr_gfxclk(processor_handles_[i], &temp_curr_gfxclk_values);
|
||||
if (status_code != AMDSMI_STATUS_NOT_SUPPORTED) {
|
||||
CHK_ERR_ASRT(status_code);
|
||||
}
|
||||
|
||||
gpu_metric_curr_socclk_t temp_curr_socclk_values;
|
||||
status_code = amdsmi_get_gpu_metrics_curr_socclk(processor_handles_[i], &temp_curr_socclk_values);
|
||||
if (status_code != AMDSMI_STATUS_NOT_SUPPORTED) {
|
||||
CHK_ERR_ASRT(status_code);
|
||||
}
|
||||
|
||||
gpu_metric_curr_vclk0_t temp_curr_vclk0_values;
|
||||
status_code = amdsmi_get_gpu_metrics_curr_vclk0(processor_handles_[i], &temp_curr_vclk0_values);
|
||||
if (status_code != AMDSMI_STATUS_NOT_SUPPORTED) {
|
||||
CHK_ERR_ASRT(status_code);
|
||||
}
|
||||
|
||||
auto temp_indep_throttle_status_value = val_ui64;
|
||||
status_code = amdsmi_get_gpu_metrics_indep_throttle_status(processor_handles_[i], &temp_indep_throttle_status_value);
|
||||
if (status_code != AMDSMI_STATUS_NOT_SUPPORTED) {
|
||||
CHK_ERR_ASRT(status_code);
|
||||
}
|
||||
|
||||
auto temp_throttle_status_value = val_ui32;
|
||||
status_code = amdsmi_get_gpu_metrics_throttle_status(processor_handles_[i], &temp_throttle_status_value);
|
||||
CHK_ERR_ASRT(status_code);
|
||||
|
||||
auto temp_gfxclk_lock_status_value = val_ui32;
|
||||
status_code = amdsmi_get_gpu_metrics_gfxclk_lock_status(processor_handles_[i], &temp_gfxclk_lock_status_value);
|
||||
if (status_code != AMDSMI_STATUS_NOT_SUPPORTED) {
|
||||
CHK_ERR_ASRT(status_code);
|
||||
}
|
||||
|
||||
auto temp_curr_fan_speed_value = val_ui16;
|
||||
status_code = amdsmi_get_gpu_metrics_curr_fan_speed(processor_handles_[i], &temp_curr_fan_speed_value);
|
||||
if (status_code != AMDSMI_STATUS_NOT_SUPPORTED) {
|
||||
CHK_ERR_ASRT(status_code);
|
||||
}
|
||||
|
||||
auto temp_pcie_link_width_value = val_ui16;
|
||||
status_code = amdsmi_get_gpu_metrics_pcie_link_width(processor_handles_[i], &temp_pcie_link_width_value);
|
||||
CHK_ERR_ASRT(status_code);
|
||||
|
||||
auto temp_pcie_link_speed_value = val_ui16;
|
||||
status_code = amdsmi_get_gpu_metrics_pcie_link_speed(processor_handles_[i], &temp_pcie_link_speed_value);
|
||||
CHK_ERR_ASRT(status_code);
|
||||
|
||||
auto temp_pcie_bandwidth_accum_value = val_ui64;
|
||||
status_code = amdsmi_get_gpu_metrics_pcie_bandwidth_acc(processor_handles_[i], &temp_pcie_bandwidth_accum_value);
|
||||
if (status_code != AMDSMI_STATUS_NOT_SUPPORTED) {
|
||||
CHK_ERR_ASRT(status_code);
|
||||
}
|
||||
|
||||
auto temp_pcie_bandwidth_inst_value = val_ui64;
|
||||
status_code = amdsmi_get_gpu_metrics_pcie_bandwidth_inst(processor_handles_[i], &temp_pcie_bandwidth_inst_value);
|
||||
if (status_code != AMDSMI_STATUS_NOT_SUPPORTED) {
|
||||
CHK_ERR_ASRT(status_code);
|
||||
}
|
||||
|
||||
auto temp_pcie_l0_recov_count_accum_value = val_ui64;
|
||||
status_code = amdsmi_get_gpu_metrics_pcie_l0_recov_count_acc(processor_handles_[i], &temp_pcie_l0_recov_count_accum_value);
|
||||
if (status_code != AMDSMI_STATUS_NOT_SUPPORTED) {
|
||||
CHK_ERR_ASRT(status_code);
|
||||
}
|
||||
|
||||
auto temp_pcie_replay_count_accum_value = val_ui64;
|
||||
status_code = amdsmi_get_gpu_metrics_pcie_replay_count_acc(processor_handles_[i], &temp_pcie_replay_count_accum_value);
|
||||
if (status_code != AMDSMI_STATUS_NOT_SUPPORTED) {
|
||||
CHK_ERR_ASRT(status_code);
|
||||
}
|
||||
|
||||
auto temp_pcie_replay_rover_count_accum_value = val_ui64;
|
||||
status_code = amdsmi_get_gpu_metrics_pcie_replay_rover_count_acc(processor_handles_[i], &temp_pcie_replay_rover_count_accum_value);
|
||||
if (status_code != AMDSMI_STATUS_NOT_SUPPORTED) {
|
||||
CHK_ERR_ASRT(status_code);
|
||||
}
|
||||
|
||||
auto temp_xgmi_link_width_value = val_ui16;
|
||||
status_code = amdsmi_get_gpu_metrics_xgmi_link_width(processor_handles_[i], &temp_xgmi_link_width_value);
|
||||
if (status_code != AMDSMI_STATUS_NOT_SUPPORTED) {
|
||||
CHK_ERR_ASRT(status_code);
|
||||
}
|
||||
|
||||
auto temp_xgmi_link_speed_value = val_ui16;
|
||||
status_code = amdsmi_get_gpu_metrics_xgmi_link_speed(processor_handles_[i], &temp_xgmi_link_speed_value);
|
||||
if (status_code != AMDSMI_STATUS_NOT_SUPPORTED) {
|
||||
CHK_ERR_ASRT(status_code);
|
||||
}
|
||||
|
||||
gpu_metric_xgmi_read_data_acc_t temp_xgmi_read_values;
|
||||
status_code = amdsmi_get_gpu_metrics_xgmi_read_data(processor_handles_[i], &temp_xgmi_read_values);
|
||||
if (status_code != AMDSMI_STATUS_NOT_SUPPORTED) {
|
||||
CHK_ERR_ASRT(status_code);
|
||||
}
|
||||
|
||||
gpu_metric_xgmi_write_data_acc_t temp_xgmi_write_values;
|
||||
status_code = amdsmi_get_gpu_metrics_xgmi_write_data(processor_handles_[i], &temp_xgmi_write_values);
|
||||
if (status_code != AMDSMI_STATUS_NOT_SUPPORTED) {
|
||||
CHK_ERR_ASRT(status_code);
|
||||
}
|
||||
|
||||
auto temp_voltage_soc_value = val_ui16;
|
||||
status_code = amdsmi_get_gpu_metrics_volt_soc(processor_handles_[i], &temp_voltage_soc_value);
|
||||
if (status_code != AMDSMI_STATUS_NOT_SUPPORTED) {
|
||||
CHK_ERR_ASRT(status_code);
|
||||
}
|
||||
|
||||
auto temp_voltage_gfx_value = val_ui16;
|
||||
status_code = amdsmi_get_gpu_metrics_volt_gfx(processor_handles_[i], &temp_voltage_gfx_value);
|
||||
if (status_code != AMDSMI_STATUS_NOT_SUPPORTED) {
|
||||
CHK_ERR_ASRT(status_code);
|
||||
}
|
||||
|
||||
auto temp_voltage_mem_value = val_ui16;
|
||||
status_code = amdsmi_get_gpu_metrics_volt_mem(processor_handles_[i], &temp_voltage_mem_value);
|
||||
if (status_code != AMDSMI_STATUS_NOT_SUPPORTED) {
|
||||
CHK_ERR_ASRT(status_code);
|
||||
}
|
||||
|
||||
auto temp_system_clock_counter_value = val_ui64;
|
||||
status_code = amdsmi_get_gpu_metrics_system_clock_counter(processor_handles_[i], &temp_system_clock_counter_value);
|
||||
CHK_ERR_ASRT(status_code);
|
||||
|
||||
auto temp_firmware_timestamp_value = val_ui64;
|
||||
status_code = amdsmi_get_gpu_metrics_firmware_timestamp(processor_handles_[i], &temp_firmware_timestamp_value);
|
||||
CHK_ERR_ASRT(status_code);
|
||||
|
||||
auto temp_xcd_counter_value = val_ui16;
|
||||
status_code = amdsmi_get_gpu_metrics_xcd_counter(processor_handles_[i], &temp_xcd_counter_value);
|
||||
if (status_code != AMDSMI_STATUS_NOT_SUPPORTED) {
|
||||
CHK_ERR_ASRT(status_code);
|
||||
}
|
||||
|
||||
IF_VERB(STANDARD) {
|
||||
std::cout << "\n";
|
||||
std::cout << "\t[Temperature]" << "\n";
|
||||
std::cout << "\t -> temp_edge(): " << temp_edge_value << "\n";
|
||||
std::cout << "\t -> temp_hotspot(): " << temp_hotspot_value << "\n";
|
||||
std::cout << "\t -> temp_mem(): " << temp_mem_value << "\n";
|
||||
std::cout << "\t -> temp_vrgfx(): " << temp_vrgfx_value << "\n";
|
||||
std::cout << "\t -> temp_vrsoc(): " << temp_vrsoc_value << "\n";
|
||||
std::cout << "\t -> temp_vrmem(): " << temp_vrmem_value << "\n";
|
||||
std::cout << "\t -> temp_hbm(): " << temp_hbm_values << "\n";
|
||||
|
||||
std::cout << "\n";
|
||||
std::cout << "\t[Power/Energy]" << "\n";
|
||||
std::cout << "\t -> current_socket_power(): " << temp_curr_socket_power_value << "\n";
|
||||
std::cout << "\t -> energy_accum(): " << temp_energy_accum_value << "\n";
|
||||
std::cout << "\t -> average_socket_power(): " << temp_avg_socket_power_value << "\n";
|
||||
|
||||
std::cout << "\n";
|
||||
std::cout << "\t[Utilization]" << "\n";
|
||||
std::cout << "\t -> average_gfx_activity(): " << temp_avg_gfx_activity_value << "\n";
|
||||
std::cout << "\t -> average_umc_activity(): " << temp_avg_umc_activity_value << "\n";
|
||||
std::cout << "\t -> average_mm_activity(): " << temp_avg_mm_activity_value << "\n";
|
||||
std::cout << "\t -> vcn_activity(): " << temp_vcn_values << "\n";
|
||||
std::cout << "\t -> mem_activity_accum(): " << temp_mem_activity_accum_value << "\n";
|
||||
std::cout << "\t -> gfx_activity_accum(): " << temp_gfx_activity_accum_value << "\n";
|
||||
|
||||
std::cout << "\n";
|
||||
std::cout << "\t[Average Clock]" << "\n";
|
||||
std::cout << "\t -> average_gfx_clock_frequency(): " << temp_avg_gfx_clock_freq_value << "\n";
|
||||
std::cout << "\t -> average_soc_clock_frequency(): " << temp_avg_soc_clock_freq_value << "\n";
|
||||
std::cout << "\t -> average_uclock_frequency(): " << temp_avg_uclock_freq_value << "\n";
|
||||
std::cout << "\t -> average_vclock0_frequency(): " << temp_avg_vclock0_freq_value << "\n";
|
||||
std::cout << "\t -> average_dclock0_frequency(): " << temp_avg_dclock0_freq_value << "\n";
|
||||
std::cout << "\t -> average_vclock1_frequency(): " << temp_avg_vclock1_freq_value << "\n";
|
||||
std::cout << "\t -> average_dclock1_frequency(): " << temp_avg_dclock1_freq_value << "\n";
|
||||
|
||||
std::cout << "\n";
|
||||
std::cout << "\t[Current Clock]" << "\n";
|
||||
std::cout << "\t -> current_vclock1(): " << temp_curr_vclk1_value << "\n";
|
||||
std::cout << "\t -> current_dclock1(): " << temp_curr_dclk1_value << "\n";
|
||||
std::cout << "\t -> current_uclock(): " << temp_curr_uclk_value << "\n";
|
||||
std::cout << "\t -> current_dclk0(): " << temp_curr_dclk0_values << "\n";
|
||||
std::cout << "\t -> current_gfxclk(): " << temp_curr_gfxclk_values << "\n";
|
||||
std::cout << "\t -> current_soc_clock(): " << temp_curr_socclk_values << "\n";
|
||||
std::cout << "\t -> current_vclk0(): " << temp_curr_vclk0_values << "\n";
|
||||
|
||||
std::cout << "\n";
|
||||
std::cout << "\t[Throttle]" << "\n";
|
||||
std::cout << "\t -> indep_throttle_status(): " << temp_indep_throttle_status_value << "\n";
|
||||
std::cout << "\t -> throttle_status(): " << temp_throttle_status_value << "\n";
|
||||
|
||||
std::cout << "\n";
|
||||
std::cout << "\t[Gfx Clock Lock]" << "\n";
|
||||
std::cout << "\t -> gfxclk_lock_status(): " << temp_gfxclk_lock_status_value << "\n";
|
||||
|
||||
std::cout << "\n";
|
||||
std::cout << "\t[Current Fan Speed]" << "\n";
|
||||
std::cout << "\t -> current_fan_speed(): " << temp_curr_fan_speed_value << "\n";
|
||||
|
||||
std::cout << "\n";
|
||||
std::cout << "\t[Link/Bandwidth/Speed]" << "\n";
|
||||
std::cout << "\t -> pcie_link_width(): " << temp_pcie_link_width_value << "\n";
|
||||
std::cout << "\t -> pcie_link_speed(): " << temp_pcie_link_speed_value << "\n";
|
||||
std::cout << "\t -> pcie_bandwidth_accum(): " << temp_pcie_bandwidth_accum_value << "\n";
|
||||
std::cout << "\t -> pcie_bandwidth_inst(): " << temp_pcie_bandwidth_inst_value << "\n";
|
||||
std::cout << "\t -> pcie_l0_recov_count_accum(): " << temp_pcie_l0_recov_count_accum_value << "\n";
|
||||
std::cout << "\t -> pcie_replay_count_accum(): " << temp_pcie_replay_count_accum_value << "\n";
|
||||
std::cout << "\t -> pcie_replay_rollover_count_accum(): " << temp_pcie_replay_rover_count_accum_value << "\n";
|
||||
std::cout << "\t -> xgmi_link_width(): " << temp_xgmi_link_width_value << "\n";
|
||||
std::cout << "\t -> xgmi_link_speed(): " << temp_xgmi_link_speed_value << "\n";
|
||||
std::cout << "\t -> xgmi_read_data(): " << temp_xgmi_read_values << "\n";
|
||||
std::cout << "\t -> xgmi_write_data(): " << temp_xgmi_write_values << "\n";
|
||||
|
||||
std::cout << "\n";
|
||||
std::cout << "\t[Voltage]" << "\n";
|
||||
std::cout << "\t -> voltage_soc(): " << temp_voltage_soc_value << "\n";
|
||||
std::cout << "\t -> voltage_gfx(): " << temp_voltage_gfx_value << "\n";
|
||||
std::cout << "\t -> voltage_mem(): " << temp_voltage_mem_value << "\n";
|
||||
|
||||
std::cout << "\n";
|
||||
std::cout << "\t[Timestamp]" << "\n";
|
||||
std::cout << "\t -> system_clock_counter(): " << temp_system_clock_counter_value << "\n";
|
||||
std::cout << "\t -> firmware_timestamp(): " << temp_firmware_timestamp_value << "\n";
|
||||
|
||||
std::cout << "\n";
|
||||
std::cout << "\t[XCD CounterVoltage]" << "\n";
|
||||
std::cout << "\t -> xcd_counter(): " << temp_xcd_counter_value << "\n";
|
||||
std::cout << "\n\n";
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -108,7 +108,7 @@ void TestTempRead::Run(void) {
|
||||
return;
|
||||
}
|
||||
|
||||
uint32_t type;
|
||||
uint32_t type(0);
|
||||
for (uint32_t x = 0; x < num_iterations(); ++x) {
|
||||
for (uint32_t i = 0; i < num_monitor_devs(); ++i) {
|
||||
PrintDeviceHeader(processor_handles_[i]);
|
||||
|
||||
Référencer dans un nouveau ticket
Bloquer un utilisateur