Bandwidth monitor

Bandwidth monitor#

AMD SMI: Bandwidth monitor

Modules

 HSMP Metrics Table
 
 Auxillary functions
 

Data Structures

struct  amdsmi_pcie_info_t::pcie_static_
 
struct  amdsmi_pcie_info_t::pcie_metric_
 
struct  amdsmi_gpu_cache_info_t::cache_
 
struct  amdsmi_fw_info_t::fw_info_list_
 
struct  amdsmi_nps_caps_t::nps_flags_
 
struct  amdsmi_memory_partition_config_t::numa_range_
 
struct  amdsmi_link_metrics_t::_links
 
struct  amdsmi_proc_info_t::engine_usage_
 
struct  amdsmi_proc_info_t::memory_usage_
 

Functions

amdsmi_status_t amdsmi_get_cpu_current_io_bandwidth (amdsmi_processor_handle processor_handle, amdsmi_link_id_bw_type_t link, uint32_t *io_bw)
 Get current input output bandwidth. More...
 
amdsmi_status_t amdsmi_get_cpu_current_xgmi_bw (amdsmi_processor_handle processor_handle, amdsmi_link_id_bw_type_t link, uint32_t *xgmi_bw)
 Get current input output bandwidth. More...
 

Variables

uint32_t amdsmi_hsmp_driver_version_t::major
 Major version number.
 
uint32_t amdsmi_hsmp_driver_version_t::minor
 Minor version number.
 
uint64_t amdsmi_range_t::lower_bound
 Lower bound of range.
 
uint64_t amdsmi_range_t::upper_bound
 Upper bound of range.
 
uint64_t amdsmi_range_t::reserved [2]
 
uint8_t amdsmi_xgmi_info_t::xgmi_lanes
 
uint64_t amdsmi_xgmi_info_t::xgmi_hive_id
 
uint64_t amdsmi_xgmi_info_t::xgmi_node_id
 
uint32_t amdsmi_xgmi_info_t::index
 
uint32_t amdsmi_xgmi_info_t::reserved [9]
 
uint32_t amdsmi_vram_usage_t::vram_total
 In MB.
 
uint32_t amdsmi_vram_usage_t::vram_used
 In MB.
 
uint32_t amdsmi_vram_usage_t::reserved [2]
 
uint64_t amdsmi_violation_status_t::reference_timestamp
 Represents CPU timestamp in microseconds (uS)
 
uint64_t amdsmi_violation_status_t::violation_timestamp
 Violation time. Units in nanoseconds (ns) {@linux_bm}, in milliseconds (ms) {@host}.
 
uint64_t amdsmi_violation_status_t::acc_counter
 Current accumulated counter; Max uint64 means unsupported.
 
uint64_t amdsmi_violation_status_t::acc_prochot_thrm
 Current accumulated processor hot violation count; Max uint64 means unsupported.
 
uint64_t amdsmi_violation_status_t::acc_ppt_pwr
 PVIOL; Current accumulated Package Power Tracking (PPT) count; Max uint64 means unsupported.
 
uint64_t amdsmi_violation_status_t::acc_socket_thrm
 TVIOL; Current accumulated Socket thermal count; Max uint64 means unsupported.
 
uint64_t amdsmi_violation_status_t::acc_vr_thrm
 Current accumulated voltage regulator count; Max uint64 means unsupported.
 
uint64_t amdsmi_violation_status_t::acc_hbm_thrm
 Current accumulated High Bandwidth Memory (HBM) thermal count; Max uint64 means unsupported.
 
uint64_t amdsmi_violation_status_t::acc_gfx_clk_below_host_limit
 Current graphic clock below host limit count; Max uint64 means unsupported.
 
uint64_t amdsmi_violation_status_t::per_prochot_thrm
 Processor hot violation % (greater than 0% is a violation); Max uint64 means unsupported.
 
uint64_t amdsmi_violation_status_t::per_ppt_pwr
 PVIOL; Package Power Tracking (PPT) violation % (greater than 0% is a violation); Max uint64 means unsupported.
 
uint64_t amdsmi_violation_status_t::per_socket_thrm
 TVIOL; Socket thermal violation % (greater than 0% is a violation); Max uint64 means unsupported.
 
uint64_t amdsmi_violation_status_t::per_vr_thrm
 Voltage regulator violation % (greater than 0% is a violation); Max uint64 means unsupported.
 
uint64_t amdsmi_violation_status_t::per_hbm_thrm
 High Bandwidth Memory (HBM) thermal violation % (greater than 0% is a violation); Max uint64 means unsupported.
 
uint64_t amdsmi_violation_status_t::per_gfx_clk_below_host_limit
 Graphics clock below host limit violation % (greater than 0% is a violation); Max uint64 means unsupported.
 
uint8_t amdsmi_violation_status_t::active_prochot_thrm
 Processor hot violation; 1 = active 0 = not active; Max uint8 means unsupported.
 
uint8_t amdsmi_violation_status_t::active_ppt_pwr
 Package Power Tracking (PPT) violation; 1 = active 0 = not active; Max uint8 means unsupported.
 
uint8_t amdsmi_violation_status_t::active_socket_thrm
 Socket thermal violation; 1 = active 0 = not active; Max uint8 means unsupported.
 
uint8_t amdsmi_violation_status_t::active_vr_thrm
 Voltage regulator violation; 1 = active 0 = not active; Max uint8 means unsupported.
 
uint8_t amdsmi_violation_status_t::active_hbm_thrm
 High Bandwidth Memory (HBM) thermal violation; 1 = active 0 = not active; Max uint8 means unsupported.
 
uint8_t amdsmi_violation_status_t::active_gfx_clk_below_host_limit
 Graphics clock below host limit violation; 1 = active 0 = not active; Max uint8 means unsupported.
 
uint64_t amdsmi_violation_status_t::reserved [3]
 Reserved for new violation info.
 
amdsmi_range_t amdsmi_frequency_range_t::supported_freq_range
 In MHz.
 
amdsmi_range_t amdsmi_frequency_range_t::current_freq_range
 In MHz.
 
uint32_t amdsmi_frequency_range_t::reserved [8]
 
uint64_t   amdsmi_bdf_t::function_number: 3
 
uint64_t   amdsmi_bdf_t::device_number: 5
 
uint64_t   amdsmi_bdf_t::bus_number: 8
 
uint64_t   amdsmi_bdf_t::domain_number: 48
 
struct {
   uint64_t   function_number: 3
 
   uint64_t   device_number: 5
 
   uint64_t   bus_number: 8
 
   uint64_t   domain_number: 48
 
}; 
 
uint64_t amdsmi_bdf_t::as_uint
 
uint32_t amdsmi_enumeration_info_t::drm_render
 
uint32_t amdsmi_enumeration_info_t::drm_card
 
uint32_t amdsmi_enumeration_info_t::hsa_id
 
uint32_t amdsmi_enumeration_info_t::hip_id
 
char amdsmi_enumeration_info_t::hip_uuid [AMDSMI_MAX_STRING_LENGTH]
 
uint16_t amdsmi_pcie_info_t::pcie_static_::max_pcie_width
 maximum number of PCIe lanes
 
uint32_t amdsmi_pcie_info_t::pcie_static_::max_pcie_speed
 maximum PCIe speed in GT/s
 
uint32_t amdsmi_pcie_info_t::pcie_static_::pcie_interface_version
 PCIe interface version.
 
amdsmi_card_form_factor_t amdsmi_pcie_info_t::pcie_static_::slot_type
 card form factor
 
uint32_t amdsmi_pcie_info_t::pcie_static_::max_pcie_interface_version
 maximum PCIe link generation
 
uint64_t amdsmi_pcie_info_t::pcie_static_::reserved [9]
 
struct amdsmi_pcie_info_t::pcie_static_ amdsmi_pcie_info_t::pcie_static
 
uint16_t amdsmi_pcie_info_t::pcie_metric_::pcie_width
 current PCIe width
 
uint32_t amdsmi_pcie_info_t::pcie_metric_::pcie_speed
 current PCIe speed in MT/s
 
uint32_t amdsmi_pcie_info_t::pcie_metric_::pcie_bandwidth
 current instantaneous PCIe bandwidth in Mb/s
 
uint64_t amdsmi_pcie_info_t::pcie_metric_::pcie_replay_count
 total number of the replays issued on the PCIe link
 
uint64_t amdsmi_pcie_info_t::pcie_metric_::pcie_l0_to_recovery_count
 total number of times the PCIe link transitioned from L0 to the recovery state
 
uint64_t amdsmi_pcie_info_t::pcie_metric_::pcie_replay_roll_over_count
 total number of replay rollovers issued on the PCIe link
 
uint64_t amdsmi_pcie_info_t::pcie_metric_::pcie_nak_sent_count
 total number of NAKs issued on the PCIe link by the device
 
uint64_t amdsmi_pcie_info_t::pcie_metric_::pcie_nak_received_count
 total number of NAKs issued on the PCIe link by the receiver
 
uint32_t amdsmi_pcie_info_t::pcie_metric_::pcie_lc_perf_other_end_recovery_count
 PCIe other end recovery counter.
 
uint64_t amdsmi_pcie_info_t::pcie_metric_::reserved [12]
 
struct amdsmi_pcie_info_t::pcie_metric_ amdsmi_pcie_info_t::pcie_metric
 
uint64_t amdsmi_pcie_info_t::reserved [32]
 
uint64_t amdsmi_power_cap_info_t::power_cap
 current power cap Units uW {@linux_bm} or W {@host}
 
uint64_t amdsmi_power_cap_info_t::default_power_cap
 default power cap Units uW {@linux_bm} or W {@host}
 
uint64_t amdsmi_power_cap_info_t::dpm_cap
 dpm power cap Units MHz {@linux_bm} or Hz {@host}
 
uint64_t amdsmi_power_cap_info_t::min_power_cap
 minimum power cap Units uW {@linux_bm} or W {@host}
 
uint64_t amdsmi_power_cap_info_t::max_power_cap
 maximum power cap Units uW {@linux_bm} or W {@host}
 
uint64_t amdsmi_power_cap_info_t::reserved [3]
 
char amdsmi_vbios_info_t::name [AMDSMI_MAX_STRING_LENGTH]
 
char amdsmi_vbios_info_t::build_date [AMDSMI_MAX_DATE_LENGTH]
 
char amdsmi_vbios_info_t::part_number [AMDSMI_MAX_STRING_LENGTH]
 
char amdsmi_vbios_info_t::version [AMDSMI_MAX_STRING_LENGTH]
 
uint64_t amdsmi_vbios_info_t::reserved [32]
 
uint32_t amdsmi_gpu_cache_info_t::num_cache_types
 
uint32_t amdsmi_gpu_cache_info_t::cache_::cache_properties
 amdsmi_cache_property_type_t which is a bitmask
 
uint32_t amdsmi_gpu_cache_info_t::cache_::cache_size
 In KB.
 
uint32_t amdsmi_gpu_cache_info_t::cache_::cache_level
 
uint32_t amdsmi_gpu_cache_info_t::cache_::max_num_cu_shared
 Indicates how many Compute Units share this cache instance.
 
uint32_t amdsmi_gpu_cache_info_t::cache_::num_cache_instance
 total number of instance of this cache type
 
uint32_t amdsmi_gpu_cache_info_t::cache_::reserved [3]
 
struct amdsmi_gpu_cache_info_t::cache_ amdsmi_gpu_cache_info_t::cache [AMDSMI_MAX_CACHE_TYPES]
 
uint32_t amdsmi_gpu_cache_info_t::reserved [15]
 
uint8_t amdsmi_fw_info_t::num_fw_info
 
amdsmi_fw_block_t amdsmi_fw_info_t::fw_info_list_::fw_id
 
uint64_t amdsmi_fw_info_t::fw_info_list_::fw_version
 
uint64_t amdsmi_fw_info_t::fw_info_list_::reserved [2]
 
struct amdsmi_fw_info_t::fw_info_list_ amdsmi_fw_info_t::fw_info_list [AMDSMI_FW_ID__MAX]
 
uint32_t amdsmi_fw_info_t::reserved [7]
 
char amdsmi_asic_info_t::market_name [AMDSMI_MAX_STRING_LENGTH]
 
uint32_t amdsmi_asic_info_t::vendor_id
 Use 32 bit to be compatible with other platform.
 
char amdsmi_asic_info_t::vendor_name [AMDSMI_MAX_STRING_LENGTH]
 
uint32_t amdsmi_asic_info_t::subvendor_id
 The subsystem vendor id.
 
uint64_t amdsmi_asic_info_t::device_id
 The device id of a GPU.
 
uint32_t amdsmi_asic_info_t::rev_id
 
char amdsmi_asic_info_t::asic_serial [AMDSMI_MAX_STRING_LENGTH]
 
uint32_t amdsmi_asic_info_t::oam_id
 0xFFFF if not supported
 
uint32_t amdsmi_asic_info_t::num_of_compute_units
 0xFFFFFFFF if not supported
 
uint64_t amdsmi_asic_info_t::target_graphics_version
 0xFFFFFFFFFFFFFFFF if not supported
 
uint32_t amdsmi_asic_info_t::reserved [22]
 
uint64_t amdsmi_kfd_info_t::kfd_id
 
uint32_t amdsmi_kfd_info_t::node_id
 
uint32_t amdsmi_kfd_info_t::current_partition_id
 
uint32_t amdsmi_kfd_info_t::reserved [12]
 
uint32_t amdsmi_nps_caps_t::nps_flags_::nps1_cap:1
 bool 1 = true; 0 = false
 
uint32_t amdsmi_nps_caps_t::nps_flags_::nps2_cap:1
 bool 1 = true; 0 = false
 
uint32_t amdsmi_nps_caps_t::nps_flags_::nps4_cap:1
 bool 1 = true; 0 = false
 
uint32_t amdsmi_nps_caps_t::nps_flags_::nps8_cap:1
 bool 1 = true; 0 = false
 
uint32_t amdsmi_nps_caps_t::nps_flags_::reserved:28
 
struct amdsmi_nps_caps_t::nps_flags_ amdsmi_nps_caps_t::nps_flags
 
uint32_t amdsmi_nps_caps_t::nps_cap_mask
 
amdsmi_nps_caps_t amdsmi_memory_partition_config_t::partition_caps
 
amdsmi_memory_partition_type_t amdsmi_memory_partition_config_t::mp_mode
 
uint32_t amdsmi_memory_partition_config_t::num_numa_ranges
 
amdsmi_vram_type_t amdsmi_memory_partition_config_t::numa_range_::memory_type
 
uint64_t amdsmi_memory_partition_config_t::numa_range_::start
 
uint64_t amdsmi_memory_partition_config_t::numa_range_::end
 
struct amdsmi_memory_partition_config_t::numa_range_ amdsmi_memory_partition_config_t::numa_range [AMDSMI_MAX_NUM_NUMA_NODES]
 
uint64_t amdsmi_memory_partition_config_t::reserved [11]
 
amdsmi_accelerator_partition_type_t amdsmi_accelerator_partition_profile_t::profile_type
 SPX, DPX, QPX, CPX and so on.
 
uint32_t amdsmi_accelerator_partition_profile_t::num_partitions
 On MI300X: SPX=>1, DPX=>2, QPX=>4, CPX=>8; length of resources.
 
amdsmi_nps_caps_t amdsmi_accelerator_partition_profile_t::memory_caps
 Possible memory partition capabilities.
 
uint32_t amdsmi_accelerator_partition_profile_t::profile_index
 Index in the profiles array in amdsmi_accelerator_partition_profile_t.
 
uint32_t amdsmi_accelerator_partition_profile_t::num_resources
 length of index_of_resources_profile
 
uint32_t amdsmi_accelerator_partition_profile_t::resources [AMDSMI_MAX_ACCELERATOR_PARTITIONS][AMDSMI_MAX_CP_PROFILE_RESOURCES]
 
uint64_t amdsmi_accelerator_partition_profile_t::reserved [13]
 
uint32_t amdsmi_accelerator_partition_resource_profile_t::profile_index
 
amdsmi_accelerator_partition_resource_type_t amdsmi_accelerator_partition_resource_profile_t::resource_type
 
uint32_t amdsmi_accelerator_partition_resource_profile_t::partition_resource
 Resources a partition can use, which may be shared.
 
uint32_t amdsmi_accelerator_partition_resource_profile_t::num_partitions_share_resource
 If it is greater than 1, then resource is shared.
 
uint64_t amdsmi_accelerator_partition_resource_profile_t::reserved [6]
 
uint32_t amdsmi_accelerator_partition_profile_config_t::num_profiles
 The length of profiles array.
 
uint32_t amdsmi_accelerator_partition_profile_config_t::num_resource_profiles
 
amdsmi_accelerator_partition_resource_profile_t amdsmi_accelerator_partition_profile_config_t::resource_profiles [AMDSMI_MAX_CP_PROFILE_RESOURCES]
 
uint32_t amdsmi_accelerator_partition_profile_config_t::default_profile_index
 The index of the default profile in the profiles array.
 
amdsmi_accelerator_partition_profile_t amdsmi_accelerator_partition_profile_config_t::profiles [AMDSMI_MAX_ACCELERATOR_PROFILE]
 
uint64_t amdsmi_accelerator_partition_profile_config_t::reserved [30]
 
uint32_t amdsmi_link_metrics_t::num_links
 number of links
 
amdsmi_bdf_t amdsmi_link_metrics_t::_links::bdf
 
uint32_t amdsmi_link_metrics_t::_links::bit_rate
 current link speed in Gb/s
 
uint32_t amdsmi_link_metrics_t::_links::max_bandwidth
 max bandwidth of the link in Gb/s
 
amdsmi_link_type_t amdsmi_link_metrics_t::_links::link_type
 type of the link
 
uint64_t amdsmi_link_metrics_t::_links::read
 total data received for each link in KB
 
uint64_t amdsmi_link_metrics_t::_links::write
 total data transfered for each link in KB
 
uint64_t amdsmi_link_metrics_t::_links::reserved [2]
 
struct amdsmi_link_metrics_t::_links amdsmi_link_metrics_t::links [AMDSMI_MAX_NUM_XGMI_PHYSICAL_LINK]
 
uint64_t amdsmi_link_metrics_t::reserved [7]
 
amdsmi_vram_type_t amdsmi_vram_info_t::vram_type
 
amdsmi_vram_vendor_type_t amdsmi_vram_info_t::vram_vendor
 
uint64_t amdsmi_vram_info_t::vram_size
 vram size in MB
 
uint32_t amdsmi_vram_info_t::vram_bit_width
 In bits.
 
uint64_t amdsmi_vram_info_t::vram_max_bandwidth
 The VRAM max bandwidth at current memory clock (GB/s)
 
uint64_t amdsmi_vram_info_t::reserved [4]
 
char amdsmi_driver_info_t::driver_version [AMDSMI_MAX_STRING_LENGTH]
 
char amdsmi_driver_info_t::driver_date [AMDSMI_MAX_STRING_LENGTH]
 
char amdsmi_driver_info_t::driver_name [AMDSMI_MAX_STRING_LENGTH]
 
char amdsmi_board_info_t::model_number [AMDSMI_MAX_STRING_LENGTH]
 
char amdsmi_board_info_t::product_serial [AMDSMI_MAX_STRING_LENGTH]
 
char amdsmi_board_info_t::fru_id [AMDSMI_MAX_STRING_LENGTH]
 
char amdsmi_board_info_t::product_name [AMDSMI_MAX_STRING_LENGTH]
 
char amdsmi_board_info_t::manufacturer_name [AMDSMI_MAX_STRING_LENGTH]
 
uint64_t amdsmi_board_info_t::reserved [32]
 
uint64_t amdsmi_power_info_t::socket_power
 Units in uW {@host}, Host only.
 
uint32_t amdsmi_power_info_t::current_socket_power
 Units in W {@linux_bm}, Linux only.
 
uint32_t amdsmi_power_info_t::average_socket_power
 Units in W {@linux_bm}, Linux only.
 
uint32_t amdsmi_power_info_t::gfx_voltage
 GFX voltage measurement in mV {@linux_bm} or V {@host}.
 
uint32_t amdsmi_power_info_t::soc_voltage
 SOC voltage measurement in mV {@linux_bm} or V {@host}.
 
uint32_t amdsmi_power_info_t::mem_voltage
 MEM voltage measurement in mV {@linux_bm} or V {@host}.
 
uint32_t amdsmi_power_info_t::power_limit
 The power limit in W {@linux_bm}, Linux only.
 
uint32_t amdsmi_power_info_t::reserved [2]
 
uint32_t amdsmi_clk_info_t::clk
 In MHz.
 
uint32_t amdsmi_clk_info_t::min_clk
 In MHz.
 
uint32_t amdsmi_clk_info_t::max_clk
 In MHz.
 
uint8_t amdsmi_clk_info_t::clk_locked
 True/False.
 
uint8_t amdsmi_clk_info_t::clk_deep_sleep
 In MHz.
 
uint32_t amdsmi_clk_info_t::reserved [4]
 
uint32_t amdsmi_engine_usage_t::gfx_activity
 In %.
 
uint32_t amdsmi_engine_usage_t::umc_activity
 In %.
 
uint32_t amdsmi_engine_usage_t::mm_activity
 In %.
 
uint32_t amdsmi_engine_usage_t::reserved [13]
 
char amdsmi_proc_info_t::name [AMDSMI_MAX_STRING_LENGTH]
 
amdsmi_process_handle_t amdsmi_proc_info_t::pid
 
uint64_t amdsmi_proc_info_t::mem
 In bytes.
 
uint64_t amdsmi_proc_info_t::engine_usage_::gfx
 In nano-secs.
 
uint64_t amdsmi_proc_info_t::engine_usage_::enc
 In nano-secs.
 
uint32_t amdsmi_proc_info_t::engine_usage_::reserved [12]
 
struct amdsmi_proc_info_t::engine_usage_ amdsmi_proc_info_t::engine_usage
 time the process spends using these engines in ns
 
uint64_t amdsmi_proc_info_t::memory_usage_::gtt_mem
 In MB.
 
uint64_t amdsmi_proc_info_t::memory_usage_::cpu_mem
 In MB.
 
uint64_t amdsmi_proc_info_t::memory_usage_::vram_mem
 In MB.
 
uint32_t amdsmi_proc_info_t::memory_usage_::reserved [10]
 
struct amdsmi_proc_info_t::memory_usage_ amdsmi_proc_info_t::memory_usage
 in bytes
 
char amdsmi_proc_info_t::container_name [AMDSMI_MAX_STRING_LENGTH]
 
uint32_t amdsmi_proc_info_t::reserved [12]
 
uint8_t amdsmi_p2p_capability_t::is_iolink_coherent
 1 = true, 0 = false, UINT8_MAX = Not defined
 
uint8_t amdsmi_p2p_capability_t::is_iolink_atomics_32bit
 1 = true, 0 = false, UINT8_MAX = Not defined
 
uint8_t amdsmi_p2p_capability_t::is_iolink_atomics_64bit
 1 = true, 0 = false, UINT8_MAX = Not defined
 
uint8_t amdsmi_p2p_capability_t::is_iolink_dma
 1 = true, 0 = false, UINT8_MAX = Not defined
 
uint8_t amdsmi_p2p_capability_t::is_iolink_bi_directional
 1 = true, 0 = false, UINT8_MAX = Not defined
 
uint64_t amdsmi_counter_value_t::value
 Counter value.
 
uint64_t amdsmi_counter_value_t::time_enabled
 Time that the counter was enabled in nanoseconds.
 
uint64_t amdsmi_counter_value_t::time_running
 Time that the counter was running in nanoseconds.
 
amdsmi_processor_handle amdsmi_evt_notification_data_t::processor_handle
 Handler of device that corresponds to the event.
 
amdsmi_evt_notification_type_t amdsmi_evt_notification_data_t::event
 Event type.
 
char amdsmi_evt_notification_data_t::message [MAX_EVENT_NOTIFICATION_MSG_SIZE]
 Event message.
 
amdsmi_utilization_counter_type_t amdsmi_utilization_counter_t::type
 Utilization counter type.
 
uint64_t amdsmi_utilization_counter_t::value
 Coarse grain activity counter value (average)
 
uint64_t amdsmi_utilization_counter_t::fine_value [AMDSMI_MAX_UTILIZATION_VALUES]
 Utilization counter value.
 
uint16_t amdsmi_utilization_counter_t::fine_value_count
 
uint64_t amdsmi_retired_page_record_t::page_address
 Start address of page.
 
uint64_t amdsmi_retired_page_record_t::page_size
 Page size.
 
amdsmi_memory_page_status_t amdsmi_retired_page_record_t::status
 Page "reserved" status.
 
amdsmi_bit_field_t amdsmi_power_profile_status_t::available_profiles
 
amdsmi_power_profile_preset_masks_t amdsmi_power_profile_status_t::current
 
uint32_t amdsmi_power_profile_status_t::num_profiles
 
bool amdsmi_frequencies_t::has_deep_sleep
 
uint32_t amdsmi_frequencies_t::num_supported
 
uint32_t amdsmi_frequencies_t::current
 
uint64_t amdsmi_frequencies_t::frequency [AMDSMI_MAX_NUM_FREQUENCIES]
 
uint32_t amdsmi_dpm_policy_entry_t::policy_id
 
char amdsmi_dpm_policy_entry_t::policy_description [AMDSMI_MAX_NAME]
 
uint32_t amdsmi_dpm_policy_t::num_supported
 The number of supported policies.
 
uint32_t amdsmi_dpm_policy_t::current
 The current policy index.
 
amdsmi_dpm_policy_entry_t amdsmi_dpm_policy_t::policies [AMDSMI_MAX_NUM_PM_POLICIES]
 List of policies.
 
amdsmi_frequencies_t amdsmi_pcie_bandwidth_t::transfer_rate
 Transfer rates (T/s) that are possible.
 
uint32_t amdsmi_pcie_bandwidth_t::lanes [AMDSMI_MAX_NUM_FREQUENCIES]
 List of lanes for corresponding transfer rate.
 
uint32_t amdsmi_version_t::year
 Last 2 digits of the Year released - To Be Depricated.
 
uint32_t amdsmi_version_t::major
 Major version.
 
uint32_t amdsmi_version_t::minor
 Minor version.
 
uint32_t amdsmi_version_t::release
 Patch, build or stepping version.
 
const char * amdsmi_version_t::build
 Full Build version string.
 
uint64_t amdsmi_od_vddc_point_t::frequency
 Frequency coordinate (in Hz)
 
uint64_t amdsmi_od_vddc_point_t::voltage
 Voltage coordinate (in mV)
 
amdsmi_range_t amdsmi_freq_volt_region_t::freq_range
 The frequency range for this VDDC Curve point.
 
amdsmi_range_t amdsmi_freq_volt_region_t::volt_range
 The voltage range for this VDDC Curve point.
 
amdsmi_od_vddc_point_t amdsmi_od_volt_curve_t::vc_points [AMDSMI_NUM_VOLTAGE_CURVE_POINTS]
 make up the voltage frequency curve points.
 
amdsmi_range_t amdsmi_od_volt_freq_data_t::curr_sclk_range
 The current SCLK frequency range in MHz.
 
amdsmi_range_t amdsmi_od_volt_freq_data_t::curr_mclk_range
 The current MCLK frequency range, upper bound only in MHz.
 
amdsmi_range_t amdsmi_od_volt_freq_data_t::sclk_freq_limits
 The range possible of SCLK values in MHz.
 
amdsmi_range_t amdsmi_od_volt_freq_data_t::mclk_freq_limits
 The range possible of MCLK values in MHz.
 
amdsmi_od_volt_curve_t amdsmi_od_volt_freq_data_t::curve
 The current voltage curve.
 
uint32_t amdsmi_od_volt_freq_data_t::num_regions
 The number of voltage curve regions.
 
uint32_t amdsmi_gpu_xcp_metrics_t::gfx_busy_inst [AMDSMI_MAX_NUM_XCC]
 v1.6 additions The max uint32_t will be used if that information is N/A More...
 
uint16_t amdsmi_gpu_xcp_metrics_t::jpeg_busy [AMDSMI_MAX_NUM_JPEG]
 Utilization Instantaneous in %.
 
uint16_t amdsmi_gpu_xcp_metrics_t::vcn_busy [AMDSMI_MAX_NUM_VCN]
 Utilization Instantaneous in %.
 
uint64_t amdsmi_gpu_xcp_metrics_t::gfx_busy_acc [AMDSMI_MAX_NUM_XCC]
 Utilization Accumulated in %.
 
uint64_t amdsmi_gpu_xcp_metrics_t::gfx_below_host_limit_acc [AMDSMI_MAX_NUM_XCC]
 v1.7 additions More...
 
amd_metrics_table_header_t amdsmi_gpu_metrics_t::common_header
 
uint16_t amdsmi_gpu_metrics_t::temperature_edge
 v1.0 Base More...
 
uint16_t amdsmi_gpu_metrics_t::temperature_hotspot
 
uint16_t amdsmi_gpu_metrics_t::temperature_mem
 
uint16_t amdsmi_gpu_metrics_t::temperature_vrgfx
 
uint16_t amdsmi_gpu_metrics_t::temperature_vrsoc
 
uint16_t amdsmi_gpu_metrics_t::temperature_vrmem
 
uint16_t amdsmi_gpu_metrics_t::average_gfx_activity
 Average Utilization (in %) More...
 
uint16_t amdsmi_gpu_metrics_t::average_umc_activity
 memory controller
 
uint16_t amdsmi_gpu_metrics_t::average_mm_activity
 UVD or VCN.
 
uint16_t amdsmi_gpu_metrics_t::average_socket_power
 Power (W) /Energy (15.259uJ per 1ns)
 
uint64_t amdsmi_gpu_metrics_t::energy_accumulator
 v1 mod. (32->64)
 
uint64_t amdsmi_gpu_metrics_t::system_clock_counter
 Driver attached timestamp (in ns) More...
 
uint16_t amdsmi_gpu_metrics_t::average_gfxclk_frequency
 Average clocks (MHz)
 
uint16_t amdsmi_gpu_metrics_t::average_socclk_frequency
 
uint16_t amdsmi_gpu_metrics_t::average_uclk_frequency
 
uint16_t amdsmi_gpu_metrics_t::average_vclk0_frequency
 
uint16_t amdsmi_gpu_metrics_t::average_dclk0_frequency
 
uint16_t amdsmi_gpu_metrics_t::average_vclk1_frequency
 
uint16_t amdsmi_gpu_metrics_t::average_dclk1_frequency
 
uint16_t amdsmi_gpu_metrics_t::current_gfxclk
 Current clocks (MHz)
 
uint16_t amdsmi_gpu_metrics_t::current_socclk
 
uint16_t amdsmi_gpu_metrics_t::current_uclk
 
uint16_t amdsmi_gpu_metrics_t::current_vclk0
 
uint16_t amdsmi_gpu_metrics_t::current_dclk0
 
uint16_t amdsmi_gpu_metrics_t::current_vclk1
 
uint16_t amdsmi_gpu_metrics_t::current_dclk1
 
uint32_t amdsmi_gpu_metrics_t::throttle_status
 Throttle status.
 
uint16_t amdsmi_gpu_metrics_t::current_fan_speed
 Fans (RPM)
 
uint16_t amdsmi_gpu_metrics_t::pcie_link_width
 Link width (number of lanes) /speed (0.1 GT/s) More...
 
uint16_t amdsmi_gpu_metrics_t::pcie_link_speed
 in 0.1 GT/s; v1 mod. (8->16)
 
uint32_t amdsmi_gpu_metrics_t::gfx_activity_acc
 new in v1
 
uint32_t amdsmi_gpu_metrics_t::mem_activity_acc
 new in v1
 
uint16_t amdsmi_gpu_metrics_t::temperature_hbm [AMDSMI_NUM_HBM_INSTANCES]
 new in v1
 
uint64_t amdsmi_gpu_metrics_t::firmware_timestamp
 PMFW attached timestamp (10ns resolution)
 
uint16_t amdsmi_gpu_metrics_t::voltage_soc
 In mV.
 
uint16_t amdsmi_gpu_metrics_t::voltage_gfx
 In mV.
 
uint16_t amdsmi_gpu_metrics_t::voltage_mem
 In mV.
 
uint64_t amdsmi_gpu_metrics_t::indep_throttle_status
 Throttle status.
 
uint16_t amdsmi_gpu_metrics_t::current_socket_power
 In Watts.
 
uint16_t amdsmi_gpu_metrics_t::vcn_activity [AMDSMI_MAX_NUM_VCN]
 Utilization (%)
 
uint32_t amdsmi_gpu_metrics_t::gfxclk_lock_status
 Clock Lock Status. Each bit corresponds to clock instance.
 
uint16_t amdsmi_gpu_metrics_t::xgmi_link_width
 XGMI bus width in GB/s.
 
uint16_t amdsmi_gpu_metrics_t::xgmi_link_speed
 XGMI bus bitrate in GB/s.
 
uint64_t amdsmi_gpu_metrics_t::pcie_bandwidth_acc
 PCIE accumulated bandwidth (GB/sec)
 
uint64_t amdsmi_gpu_metrics_t::pcie_bandwidth_inst
 PCIE instantaneous bandwidth (GB/sec)
 
uint64_t amdsmi_gpu_metrics_t::pcie_l0_to_recov_count_acc
 PCIE L0 to recovery state transition accumulated count.
 
uint64_t amdsmi_gpu_metrics_t::pcie_replay_count_acc
 PCIE replay accumulated count.
 
uint64_t amdsmi_gpu_metrics_t::pcie_replay_rover_count_acc
 PCIE replay rollover accumulated count.
 
uint64_t amdsmi_gpu_metrics_t::xgmi_read_data_acc [AMDSMI_MAX_NUM_XGMI_LINKS]
 XGMI accumulated data transfer size(KiloBytes) More...
 
uint64_t amdsmi_gpu_metrics_t::xgmi_write_data_acc [AMDSMI_MAX_NUM_XGMI_LINKS]
 In KB.
 
uint16_t amdsmi_gpu_metrics_t::current_gfxclks [AMDSMI_MAX_NUM_GFX_CLKS]
 XGMI current data transfer size(KiloBytes) More...
 
uint16_t amdsmi_gpu_metrics_t::current_socclks [AMDSMI_MAX_NUM_CLKS]
 In KB.
 
uint16_t amdsmi_gpu_metrics_t::current_vclk0s [AMDSMI_MAX_NUM_CLKS]
 In KB.
 
uint16_t amdsmi_gpu_metrics_t::current_dclk0s [AMDSMI_MAX_NUM_CLKS]
 In KB.
 
uint16_t amdsmi_gpu_metrics_t::jpeg_activity [AMDSMI_MAX_NUM_JPEG]
 v1.5 additions More...
 
uint32_t amdsmi_gpu_metrics_t::pcie_nak_sent_count_acc
 PCIE NAK sent accumulated count.
 
uint32_t amdsmi_gpu_metrics_t::pcie_nak_rcvd_count_acc
 PCIE NAK received accumulated count.
 
uint64_t amdsmi_gpu_metrics_t::accumulation_counter
 v1.6 additions More...
 
uint64_t amdsmi_gpu_metrics_t::prochot_residency_acc
 Accumulated throttler residencies.
 
uint64_t amdsmi_gpu_metrics_t::ppt_residency_acc
 Accumulated throttler residencies. More...
 
uint64_t amdsmi_gpu_metrics_t::socket_thm_residency_acc
 Accumulated throttler residencies. More...
 
uint64_t amdsmi_gpu_metrics_t::vr_thm_residency_acc
 
uint64_t amdsmi_gpu_metrics_t::hbm_thm_residency_acc
 
uint16_t amdsmi_gpu_metrics_t::num_partition
 Number of current partition.
 
amdsmi_gpu_xcp_metrics_t amdsmi_gpu_metrics_t::xcp_stats [AMDSMI_MAX_NUM_XCP]
 XCP (Graphic Cluster Partitions) metrics stats.
 
uint32_t amdsmi_gpu_metrics_t::pcie_lc_perf_other_end_recovery
 PCIE other end recovery counter.
 
uint64_t amdsmi_gpu_metrics_t::vram_max_bandwidth
 VRAM max bandwidth at max memory clock (GB/s)
 
uint16_t amdsmi_gpu_metrics_t::xgmi_link_status [AMDSMI_MAX_NUM_XGMI_LINKS]
 XGMI link status(up/down)
 
uint32_t amdsmi_xgmi_link_status_t::total_links
 The total links in the status array.
 
amdsmi_xgmi_link_status_type_t amdsmi_xgmi_link_status_t::status [AMDSMI_MAX_NUM_XGMI_LINKS]
 
uint64_t amdsmi_xgmi_link_status_t::reserved [7]
 
char amdsmi_name_value_t::name [MAX_AMDSMI_NAME_LENGTH]
 Name.
 
uint64_t amdsmi_name_value_t::value
 Use uint64_t to make it universal.
 
uint32_t amdsmi_ras_feature_t::ras_eeprom_version
 
uint32_t amdsmi_ras_feature_t::ecc_correction_schema_flag
 ecc_correction_schema mask
 
uint64_t amdsmi_error_count_t::correctable_count
 Accumulated correctable errors.
 
uint64_t amdsmi_error_count_t::uncorrectable_count
 Accumulated uncorrectable errors.
 
uint64_t amdsmi_error_count_t::deferred_count
 Accumulated deferred errors.
 
uint64_t amdsmi_error_count_t::reserved [5]
 
uint32_t amdsmi_process_info_t::process_id
 Process ID.
 
uint32_t amdsmi_process_info_t::pasid
 PASID (Not working in ROCm 6.4+, deprecating in 7.0)
 
uint64_t amdsmi_process_info_t::vram_usage
 VRAM usage in MB.
 
uint64_t amdsmi_process_info_t::sdma_usage
 SDMA usage in microseconds.
 
uint32_t amdsmi_process_info_t::cu_occupancy
 Compute Unit usage in percent.
 
uint32_t amdsmi_topology_nearest_t::count
 
amdsmi_processor_handle amdsmi_topology_nearest_t::processor_list [AMDSMI_MAX_DEVICES]
 
uint64_t amdsmi_topology_nearest_t::reserved [15]
 
uint8_t amdsmi_smu_fw_version_t::debug
 SMU fw Debug version number.
 
uint8_t amdsmi_smu_fw_version_t::minor
 SMU fw Minor version number.
 
uint8_t amdsmi_smu_fw_version_t::major
 SMU fw Major version number.
 
uint8_t amdsmi_smu_fw_version_t::unused
 reserved fields
 
uint32_t amdsmi_ddr_bw_metrics_t::max_bw
 DDR Maximum theoritical bandwidth in GB/s.
 
uint32_t amdsmi_ddr_bw_metrics_t::utilized_bw
 DDR bandwidth utilization in GB/s.
 
uint32_t amdsmi_ddr_bw_metrics_t::utilized_pct
 DDR bandwidth utilization in % of theoritical max.
 
uint8_t amdsmi_temp_range_refresh_rate_t::range: 3
 temp range[2:0](3 bit data)
 
uint8_t amdsmi_temp_range_refresh_rate_t::ref_rate: 1
 DDR refresh rate mode[3](1 bit data)
 
uint16_t amdsmi_dimm_power_t::power: 15
 Dimm power consumption[31:17](15 bits data)
 
uint16_t amdsmi_dimm_power_t::update_rate: 9
 Time since last update[16:8](9 bit data)
 
uint8_t amdsmi_dimm_power_t::dimm_addr
 Dimm address[7:0](8 bit data)
 
uint16_t amdsmi_dimm_thermal_t::sensor: 11
 Dimm thermal sensor[31:21](11 bit data)
 
uint16_t amdsmi_dimm_thermal_t::update_rate: 9
 Time since last update[16:8](9 bit data)
 
uint8_t amdsmi_dimm_thermal_t::dimm_addr
 Dimm address[7:0](8 bit data)
 
float amdsmi_dimm_thermal_t::temp
 temperature in degree celcius
 
amdsmi_io_bw_encoding_t amdsmi_link_id_bw_type_t::bw_type
 Bandwidth Type Information [1, 2, 4].
 
char * amdsmi_link_id_bw_type_t::link_name
 Link name [P0, P1, G0, G1 etc].
 
uint8_t amdsmi_dpm_level_t::max_dpm_level
 Max LCLK DPM level[15:8](8 bit data)
 
uint8_t amdsmi_dpm_level_t::min_dpm_level
 Min LCLK DPM level[7:0](8 bit data)
 

Detailed Description

Function Documentation

◆ amdsmi_get_cpu_current_io_bandwidth()

amdsmi_status_t amdsmi_get_cpu_current_io_bandwidth ( amdsmi_processor_handle  processor_handle,
amdsmi_link_id_bw_type_t  link,
uint32_t *  io_bw 
)

Get current input output bandwidth.

Platform:
cpu_bm
Parameters
[in]processor_handleCpu socket which to query
[in]link- link id and bw type to which io bandwidth to be obtained
[in,out]io_bw- Input buffer to fill bandwidth data
Returns
amdsmi_status_t | AMDSMI_STATUS_SUCCESS on success, non-zero on fail

◆ amdsmi_get_cpu_current_xgmi_bw()

amdsmi_status_t amdsmi_get_cpu_current_xgmi_bw ( amdsmi_processor_handle  processor_handle,
amdsmi_link_id_bw_type_t  link,
uint32_t *  xgmi_bw 
)

Get current input output bandwidth.

Platform:
cpu_bm
Parameters
[in]processor_handleCpu socket which to query
[in]link- link id and bw type to which xgmi bandwidth to be obtained
[in,out]xgmi_bw- Input buffer to fill bandwidth data
Returns
amdsmi_status_t | AMDSMI_STATUS_SUCCESS on success, non-zero on fail

Variable Documentation

◆ gfx_busy_inst

uint32_t amdsmi_gpu_xcp_metrics_t::gfx_busy_inst[AMDSMI_MAX_NUM_XCC]

v1.6 additions The max uint32_t will be used if that information is N/A

Utilization Instantaneous in %

◆ gfx_below_host_limit_acc

uint64_t amdsmi_gpu_xcp_metrics_t::gfx_below_host_limit_acc[AMDSMI_MAX_NUM_XCC]

v1.7 additions

Total App Clock Counter Accumulated

◆ temperature_edge

uint16_t amdsmi_gpu_metrics_t::temperature_edge

v1.0 Base

Temperature in C

◆ average_gfx_activity

uint16_t amdsmi_gpu_metrics_t::average_gfx_activity

Average Utilization (in %)

gfx

◆ system_clock_counter

uint64_t amdsmi_gpu_metrics_t::system_clock_counter

Driver attached timestamp (in ns)

v1 mod. (moved from top of struct)

◆ pcie_link_width

uint16_t amdsmi_gpu_metrics_t::pcie_link_width

Link width (number of lanes) /speed (0.1 GT/s)

v1 mod.(8->16)

◆ xgmi_read_data_acc

uint64_t amdsmi_gpu_metrics_t::xgmi_read_data_acc[AMDSMI_MAX_NUM_XGMI_LINKS]

XGMI accumulated data transfer size(KiloBytes)

In KB

◆ current_gfxclks

uint16_t amdsmi_gpu_metrics_t::current_gfxclks[AMDSMI_MAX_NUM_GFX_CLKS]

XGMI current data transfer size(KiloBytes)

In KB

◆ jpeg_activity

uint16_t amdsmi_gpu_metrics_t::jpeg_activity[AMDSMI_MAX_NUM_JPEG]

v1.5 additions

JPEG activity percent (encode/decode)

◆ accumulation_counter

uint64_t amdsmi_gpu_metrics_t::accumulation_counter

v1.6 additions

Accumulation cycle counter

◆ ppt_residency_acc

uint64_t amdsmi_gpu_metrics_t::ppt_residency_acc

Accumulated throttler residencies.

Prochot (thermal) - PPT (power) Package Power Tracking (PPT) violation % (greater than 0% is a violation); aka PVIOL

Ex. PVIOL/TVIOL calculations Where A and B are measurments recorded at prior points in time. Typically A is the earlier measured value and B is the latest measured value.

PVIOL % = (PptResidencyAcc (B) - PptResidencyAcc (A)) * 100/ (AccumulationCounter (B) - AccumulationCounter (A)) TVIOL % = (SocketThmResidencyAcc (B) - SocketThmResidencyAcc (A)) * 100 / (AccumulationCounter (B) - AccumulationCounter (A))

◆ socket_thm_residency_acc

uint64_t amdsmi_gpu_metrics_t::socket_thm_residency_acc

Accumulated throttler residencies.

Socket (thermal) - Socket thermal violation % (greater than 0% is a violation); aka TVIOL

Ex. PVIOL/TVIOL calculations Where A and B are measurments recorded at prior points in time. Typically A is the earlier measured value and B is the latest measured value.

PVIOL % = (PptResidencyAcc (B) - PptResidencyAcc (A)) * 100/ (AccumulationCounter (B) - AccumulationCounter (A)) TVIOL % = (SocketThmResidencyAcc (B) - SocketThmResidencyAcc (A)) * 100 / (AccumulationCounter (B) - AccumulationCounter (A))