c6b7448227
* Add support for get and set APIs for CPUISOFreqPolicy and DFCState Control
- Add support for get and set APIs for CPUISOFreqPolicy and DFCState Control
in AMD SMI and also in the CLI tool
* CHANGELOG.md file updated
* SWDEV-562837: Update amdsmi-py-api.md as per the new APIs
Updated amdsmi-py-api.md as per the new APIs added.
---------
Signed-off-by: Soumya <sranjanr@amd.com>
Signed-off-by: gabrpham <Gabriel.Pham@amd.com>
Co-authored-by: Saka Sitharammurthy <SitharamMurthy.Saka@amd.com>
328 рядки
16 KiB
Python
328 рядки
16 KiB
Python
# Copyright (C) Advanced Micro Devices. All rights reserved.
|
|
#
|
|
# Permission is hereby granted, free of charge, to any person obtaining a copy of
|
|
# this software and associated documentation files (the "Software"), to deal in
|
|
# the Software without restriction, including without limitation the rights to
|
|
# use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
|
|
# the Software, and to permit persons to whom the Software is furnished to do so,
|
|
# subject to the following conditions:
|
|
#
|
|
# The above copyright notice and this permission notice shall be included in all
|
|
# copies or substantial portions of the Software.
|
|
#``
|
|
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
|
|
# FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
|
|
# COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
|
|
# IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
|
|
# CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
|
|
|
# Library Version is the tool/amdsmi_interface version
|
|
from ._version import __version__
|
|
|
|
# Library Initialization
|
|
from .amdsmi_interface import amdsmi_init
|
|
from .amdsmi_interface import amdsmi_shut_down
|
|
|
|
# Device Discovery
|
|
from .amdsmi_interface import amdsmi_get_processor_type
|
|
from .amdsmi_interface import amdsmi_get_processor_handles
|
|
from .amdsmi_interface import amdsmi_get_socket_handles
|
|
from .amdsmi_interface import amdsmi_get_socket_info
|
|
from .amdsmi_interface import amdsmi_get_processor_count_from_handles
|
|
from .amdsmi_interface import amdsmi_get_processor_handles_by_type
|
|
|
|
# ESMI Dependent Functions
|
|
try:
|
|
from .amdsmi_interface import amdsmi_get_cpusocket_handles
|
|
from .amdsmi_interface import amdsmi_get_cpucore_handles
|
|
from .amdsmi_interface import amdsmi_get_processor_info
|
|
from .amdsmi_interface import amdsmi_get_cpu_hsmp_proto_ver
|
|
from .amdsmi_interface import amdsmi_get_cpu_smu_fw_version
|
|
from .amdsmi_interface import amdsmi_get_cpu_core_energy
|
|
from .amdsmi_interface import amdsmi_get_cpu_socket_energy
|
|
from .amdsmi_interface import amdsmi_get_threads_per_core
|
|
from .amdsmi_interface import amdsmi_get_cpu_hsmp_driver_version
|
|
from .amdsmi_interface import amdsmi_get_cpu_prochot_status
|
|
from .amdsmi_interface import amdsmi_get_cpu_fclk_mclk
|
|
from .amdsmi_interface import amdsmi_get_cpu_cclk_limit
|
|
from .amdsmi_interface import amdsmi_get_cpu_socket_current_active_freq_limit
|
|
from .amdsmi_interface import amdsmi_get_cpu_socket_freq_range
|
|
from .amdsmi_interface import amdsmi_get_cpu_core_current_freq_limit
|
|
from .amdsmi_interface import amdsmi_get_cpu_socket_power
|
|
from .amdsmi_interface import amdsmi_get_cpu_socket_power_cap
|
|
from .amdsmi_interface import amdsmi_get_cpu_socket_power_cap_max
|
|
from .amdsmi_interface import amdsmi_get_cpu_pwr_svi_telemetry_all_rails
|
|
from .amdsmi_interface import amdsmi_set_cpu_socket_power_cap
|
|
from .amdsmi_interface import amdsmi_set_cpu_pwr_efficiency_mode
|
|
from .amdsmi_interface import amdsmi_get_cpu_core_boostlimit
|
|
from .amdsmi_interface import amdsmi_get_cpu_socket_c0_residency
|
|
from .amdsmi_interface import amdsmi_set_cpu_core_boostlimit
|
|
from .amdsmi_interface import amdsmi_set_cpu_socket_boostlimit
|
|
from .amdsmi_interface import amdsmi_get_cpu_ddr_bw
|
|
from .amdsmi_interface import amdsmi_get_cpu_socket_temperature
|
|
from .amdsmi_interface import amdsmi_get_cpu_dimm_temp_range_and_refresh_rate
|
|
from .amdsmi_interface import amdsmi_get_cpu_dimm_power_consumption
|
|
from .amdsmi_interface import amdsmi_get_cpu_dimm_thermal_sensor
|
|
from .amdsmi_interface import amdsmi_set_cpu_xgmi_width
|
|
from .amdsmi_interface import amdsmi_set_cpu_gmi3_link_width_range
|
|
from .amdsmi_interface import amdsmi_cpu_apb_enable
|
|
from .amdsmi_interface import amdsmi_cpu_apb_disable
|
|
from .amdsmi_interface import amdsmi_set_cpu_socket_lclk_dpm_level
|
|
from .amdsmi_interface import amdsmi_get_cpu_socket_lclk_dpm_level
|
|
from .amdsmi_interface import amdsmi_set_cpu_pcie_link_rate
|
|
from .amdsmi_interface import amdsmi_set_cpu_df_pstate_range
|
|
from .amdsmi_interface import amdsmi_get_cpu_current_io_bandwidth
|
|
from .amdsmi_interface import amdsmi_get_cpu_current_xgmi_bw
|
|
from .amdsmi_interface import amdsmi_get_hsmp_metrics_table_version
|
|
from .amdsmi_interface import amdsmi_get_hsmp_metrics_table
|
|
from .amdsmi_interface import amdsmi_first_online_core_on_cpu_socket
|
|
from .amdsmi_interface import amdsmi_get_cpu_family
|
|
from .amdsmi_interface import amdsmi_get_cpu_model
|
|
from .amdsmi_interface import amdsmi_get_cpu_model_name
|
|
from .amdsmi_interface import amdsmi_get_cpu_handles
|
|
from .amdsmi_interface import amdsmi_get_dfc_ctrl
|
|
from .amdsmi_interface import amdsmi_set_dfc_ctrl
|
|
from .amdsmi_interface import amdsmi_get_cpu_rail_isofreq_policy
|
|
from .amdsmi_interface import amdsmi_set_cpu_rail_isofreq_policy
|
|
except AttributeError:
|
|
pass
|
|
|
|
from .amdsmi_interface import amdsmi_get_processor_handle_from_bdf
|
|
from .amdsmi_interface import amdsmi_get_gpu_device_bdf
|
|
from .amdsmi_interface import amdsmi_get_gpu_device_uuid
|
|
from .amdsmi_interface import amdsmi_get_gpu_enumeration_info
|
|
|
|
# # Functions not dependent on ESMI library
|
|
from .amdsmi_interface import amdsmi_get_cpu_socket_count
|
|
from .amdsmi_interface import amdsmi_get_cpu_cores_per_socket
|
|
from .amdsmi_interface import amdsmi_get_cpu_affinity_with_scope
|
|
|
|
# # SW Version Information
|
|
from .amdsmi_interface import amdsmi_get_gpu_driver_info
|
|
|
|
# # ASIC and Bus Static Information
|
|
from .amdsmi_interface import amdsmi_get_gpu_asic_info
|
|
from .amdsmi_interface import amdsmi_get_gpu_kfd_info
|
|
from .amdsmi_interface import amdsmi_get_power_cap_info
|
|
from .amdsmi_interface import amdsmi_get_gpu_vram_info
|
|
from .amdsmi_interface import amdsmi_get_gpu_cache_info
|
|
from .amdsmi_interface import amdsmi_get_gpu_xcd_counter
|
|
from .amdsmi_interface import amdsmi_get_gpu_revision
|
|
|
|
# # Microcode and VBIOS Information
|
|
from .amdsmi_interface import amdsmi_get_gpu_vbios_info
|
|
from .amdsmi_interface import amdsmi_get_fw_info
|
|
|
|
# # GPU Monitoring
|
|
from .amdsmi_interface import amdsmi_get_gpu_activity
|
|
from .amdsmi_interface import amdsmi_get_gpu_vram_usage
|
|
from .amdsmi_interface import amdsmi_get_power_info
|
|
from .amdsmi_interface import amdsmi_get_clock_info
|
|
from .amdsmi_interface import amdsmi_get_gpu_busy_percent
|
|
|
|
from .amdsmi_interface import amdsmi_get_pcie_info
|
|
from .amdsmi_interface import amdsmi_get_gpu_bad_page_info
|
|
from .amdsmi_interface import amdsmi_get_gpu_bad_page_threshold
|
|
from .amdsmi_interface import amdsmi_get_violation_status
|
|
from .amdsmi_interface import amdsmi_get_gpu_xgmi_link_status
|
|
|
|
# # Event Notification
|
|
from .amdsmi_interface import amdsmi_init_gpu_event_notification
|
|
from .amdsmi_interface import amdsmi_set_gpu_event_notification_mask
|
|
from .amdsmi_interface import amdsmi_get_gpu_event_notification
|
|
from .amdsmi_interface import amdsmi_stop_gpu_event_notification
|
|
|
|
# # Process Information
|
|
from .amdsmi_interface import amdsmi_get_gpu_process_list
|
|
|
|
# # ECC Error Information
|
|
from .amdsmi_interface import amdsmi_get_gpu_total_ecc_count
|
|
|
|
# # Board Information
|
|
from .amdsmi_interface import amdsmi_get_gpu_board_info
|
|
|
|
# # Ras Information
|
|
from .amdsmi_interface import amdsmi_get_gpu_ras_feature_info
|
|
from .amdsmi_interface import amdsmi_get_gpu_ras_block_features_enabled
|
|
from .amdsmi_interface import amdsmi_get_gpu_cper_entries
|
|
from .amdsmi_interface import amdsmi_gpu_validate_ras_eeprom
|
|
|
|
# # Unsupported Functions In Virtual Environment
|
|
from .amdsmi_interface import amdsmi_set_gpu_pci_bandwidth
|
|
from .amdsmi_interface import amdsmi_set_power_cap
|
|
from .amdsmi_interface import amdsmi_set_gpu_power_profile
|
|
from .amdsmi_interface import amdsmi_set_gpu_clk_range
|
|
from .amdsmi_interface import amdsmi_set_gpu_clk_limit
|
|
from .amdsmi_interface import amdsmi_set_gpu_od_clk_info
|
|
from .amdsmi_interface import amdsmi_set_gpu_od_volt_info
|
|
from .amdsmi_interface import amdsmi_set_gpu_perf_level
|
|
from .amdsmi_interface import amdsmi_get_gpu_power_profile_presets
|
|
from .amdsmi_interface import amdsmi_reset_gpu
|
|
from .amdsmi_interface import amdsmi_gpu_driver_reload
|
|
from .amdsmi_interface import amdsmi_set_gpu_perf_determinism_mode
|
|
from .amdsmi_interface import amdsmi_set_gpu_fan_speed
|
|
from .amdsmi_interface import amdsmi_reset_gpu_fan
|
|
from .amdsmi_interface import amdsmi_set_clk_freq
|
|
from .amdsmi_interface import amdsmi_set_gpu_overdrive_level
|
|
from .amdsmi_interface import amdsmi_get_soc_pstate
|
|
from .amdsmi_interface import amdsmi_set_soc_pstate
|
|
from .amdsmi_interface import amdsmi_set_xgmi_plpd
|
|
from .amdsmi_interface import amdsmi_get_xgmi_plpd
|
|
from .amdsmi_interface import amdsmi_clean_gpu_local_data
|
|
from .amdsmi_interface import amdsmi_get_gpu_process_isolation
|
|
from .amdsmi_interface import amdsmi_set_gpu_process_isolation
|
|
from .amdsmi_interface import amdsmi_get_supported_power_cap
|
|
|
|
# # Physical State Queries
|
|
from .amdsmi_interface import amdsmi_get_gpu_fan_rpms
|
|
from .amdsmi_interface import amdsmi_get_gpu_fan_speed
|
|
from .amdsmi_interface import amdsmi_get_gpu_fan_speed_max
|
|
from .amdsmi_interface import amdsmi_get_temp_metric
|
|
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_get_gpu_overdrive_level
|
|
from .amdsmi_interface import amdsmi_get_gpu_mem_overdrive_level
|
|
from .amdsmi_interface import amdsmi_get_clk_freq
|
|
from .amdsmi_interface import amdsmi_get_gpu_od_volt_info
|
|
from .amdsmi_interface import amdsmi_get_gpu_metrics_info
|
|
from .amdsmi_interface import amdsmi_get_gpu_partition_metrics_info
|
|
from .amdsmi_interface import amdsmi_get_gpu_od_volt_curve_regions
|
|
from .amdsmi_interface import amdsmi_is_gpu_power_management_enabled
|
|
|
|
# # Performance Counters
|
|
from .amdsmi_interface import amdsmi_gpu_counter_group_supported
|
|
from .amdsmi_interface import amdsmi_gpu_create_counter
|
|
from .amdsmi_interface import amdsmi_gpu_destroy_counter
|
|
from .amdsmi_interface import amdsmi_gpu_control_counter
|
|
from .amdsmi_interface import amdsmi_gpu_read_counter
|
|
from .amdsmi_interface import amdsmi_get_gpu_available_counters
|
|
|
|
# # Error Query
|
|
from .amdsmi_interface import amdsmi_get_gpu_ecc_count
|
|
from .amdsmi_interface import amdsmi_get_gpu_ecc_enabled
|
|
from .amdsmi_interface import amdsmi_get_gpu_ecc_status
|
|
from .amdsmi_interface import amdsmi_status_code_to_string
|
|
|
|
# # System Information Query
|
|
from .amdsmi_interface import amdsmi_get_gpu_compute_process_info
|
|
from .amdsmi_interface import amdsmi_get_gpu_compute_process_info_by_pid
|
|
from .amdsmi_interface import amdsmi_get_gpu_compute_process_gpus
|
|
from .amdsmi_interface import amdsmi_gpu_xgmi_error_status
|
|
from .amdsmi_interface import amdsmi_reset_gpu_xgmi_error
|
|
from .amdsmi_interface import amdsmi_get_esmi_err_msg
|
|
|
|
# # PCIE information
|
|
from .amdsmi_interface import amdsmi_get_gpu_bdf_id
|
|
from .amdsmi_interface import amdsmi_get_gpu_pci_bandwidth
|
|
from .amdsmi_interface import amdsmi_get_gpu_pci_throughput
|
|
from .amdsmi_interface import amdsmi_get_gpu_pci_replay_counter
|
|
from .amdsmi_interface import amdsmi_get_gpu_topo_numa_affinity
|
|
|
|
# # Power information
|
|
from .amdsmi_interface import amdsmi_get_energy_count
|
|
|
|
# # Memory information
|
|
from .amdsmi_interface import amdsmi_get_gpu_memory_total
|
|
from .amdsmi_interface import amdsmi_get_gpu_memory_usage
|
|
from .amdsmi_interface import amdsmi_get_gpu_memory_reserved_pages
|
|
|
|
# # Events
|
|
from .amdsmi_interface import AmdSmiEventReader
|
|
|
|
# # Device Identification information
|
|
from .amdsmi_interface import amdsmi_get_gpu_vendor_name
|
|
from .amdsmi_interface import amdsmi_get_gpu_id
|
|
from .amdsmi_interface import amdsmi_get_gpu_vram_vendor
|
|
from .amdsmi_interface import amdsmi_get_gpu_subsystem_id
|
|
from .amdsmi_interface import amdsmi_get_gpu_subsystem_name
|
|
|
|
# # Hardware topology query
|
|
from .amdsmi_interface import amdsmi_topo_get_numa_node_number
|
|
from .amdsmi_interface import amdsmi_topo_get_link_weight
|
|
from .amdsmi_interface import amdsmi_get_minmax_bandwidth_between_processors
|
|
from .amdsmi_interface import amdsmi_get_link_metrics
|
|
from .amdsmi_interface import amdsmi_topo_get_link_type
|
|
from .amdsmi_interface import amdsmi_topo_get_p2p_status
|
|
from .amdsmi_interface import amdsmi_is_P2P_accessible
|
|
from .amdsmi_interface import amdsmi_get_xgmi_info
|
|
from .amdsmi_interface import amdsmi_get_link_topology_nearest
|
|
|
|
# # Partition Functions
|
|
from .amdsmi_interface import amdsmi_get_gpu_compute_partition
|
|
from .amdsmi_interface import amdsmi_set_gpu_compute_partition
|
|
from .amdsmi_interface import amdsmi_get_gpu_memory_partition
|
|
from .amdsmi_interface import amdsmi_set_gpu_memory_partition
|
|
from .amdsmi_interface import amdsmi_get_gpu_accelerator_partition_profile
|
|
from .amdsmi_interface import amdsmi_get_gpu_accelerator_partition_profile_config
|
|
from .amdsmi_interface import amdsmi_get_gpu_memory_partition_config
|
|
from .amdsmi_interface import amdsmi_set_gpu_accelerator_partition_profile
|
|
from .amdsmi_interface import amdsmi_set_gpu_memory_partition_mode
|
|
|
|
# # Individual GPU Metrics Functions
|
|
from .amdsmi_interface import amdsmi_get_gpu_metrics_header_info
|
|
from .amdsmi_interface import amdsmi_get_gpu_reg_table_info
|
|
from .amdsmi_interface import amdsmi_get_gpu_pm_metrics_info
|
|
|
|
# # Virtualization Mode Detection
|
|
from .amdsmi_interface import amdsmi_get_gpu_virtualization_mode
|
|
|
|
# # PTL implementation
|
|
from .amdsmi_interface import amdsmi_get_gpu_ptl_state
|
|
from .amdsmi_interface import amdsmi_set_gpu_ptl_state
|
|
from .amdsmi_interface import amdsmi_get_gpu_ptl_formats
|
|
from .amdsmi_interface import amdsmi_set_gpu_ptl_formats
|
|
|
|
# # Functions where library initialization is not needed
|
|
# # Version information
|
|
from .amdsmi_interface import amdsmi_get_lib_version
|
|
from .amdsmi_interface import amdsmi_get_rocm_version
|
|
|
|
# # Enums
|
|
from .amdsmi_interface import AmdSmiStatus
|
|
from .amdsmi_interface import AmdSmiInitFlags
|
|
from .amdsmi_interface import AmdSmiContainerTypes
|
|
from .amdsmi_interface import AmdSmiDeviceType
|
|
from .amdsmi_interface import AmdSmiMmIp
|
|
from .amdsmi_interface import AmdSmiFwBlock
|
|
from .amdsmi_interface import AmdSmiClkType
|
|
from .amdsmi_interface import AmdSmiClkLimitType
|
|
|
|
from .amdsmi_interface import AmdSmiRegType
|
|
from .amdsmi_interface import AmdSmiTemperatureType
|
|
from .amdsmi_interface import AmdSmiDevPerfLevel
|
|
from .amdsmi_interface import AmdSmiEventGroup
|
|
from .amdsmi_interface import AmdSmiEventType
|
|
from .amdsmi_interface import AmdSmiCounterCommand
|
|
from .amdsmi_interface import AmdSmiEvtNotificationType
|
|
from .amdsmi_interface import AmdSmiTemperatureMetric
|
|
from .amdsmi_interface import AmdSmiVoltageMetric
|
|
from .amdsmi_interface import AmdSmiVoltageType
|
|
from .amdsmi_interface import AmdSmiComputePartitionType
|
|
from .amdsmi_interface import AmdSmiMemoryPartitionType
|
|
from .amdsmi_interface import AmdSmiPowerProfilePresetMasks
|
|
from .amdsmi_interface import AmdSmiGpuBlock
|
|
from .amdsmi_interface import AmdSmiRasErrState
|
|
from .amdsmi_interface import AmdSmiMemoryType
|
|
from .amdsmi_interface import AmdSmiFreqInd
|
|
from .amdsmi_interface import AmdSmiXgmiStatus
|
|
from .amdsmi_interface import AmdSmiMemoryPageStatus
|
|
from .amdsmi_interface import AmdSmiLinkType
|
|
from .amdsmi_interface import AmdSmiUtilizationCounterType
|
|
from .amdsmi_interface import AmdSmiProcessorType
|
|
from .amdsmi_interface import AmdSmiVirtualizationMode
|
|
from .amdsmi_interface import AmdSmiVramType
|
|
from .amdsmi_interface import AmdSmiAffinityScope
|
|
from .amdsmi_interface import AmdSmiPtlData
|
|
|
|
# Exceptions
|
|
from .amdsmi_exception import AmdSmiLibraryException
|
|
from .amdsmi_exception import AmdSmiRetryException
|
|
from .amdsmi_exception import AmdSmiParameterException
|
|
from .amdsmi_exception import AmdSmiKeyException
|
|
from .amdsmi_exception import AmdSmiTimeoutException
|
|
from .amdsmi_exception import AmdSmiException
|