[SWDEV-508173] [AMDSMI] Python API missing function errors (#46)

* [SWDEV-508173] Updates include:
- Updating py-interface to import amdsmi_get_gpu_reg_table_info and amdsmi_get_gpu_pm_metrics_info.
- Updating the ctypes from byref to pointer.

Signed-off-by: Castillo, Juan <Juan.Castillo@amd.com>
Этот коммит содержится в:
Castillo, Juan
2025-01-21 14:11:41 -06:00
коммит произвёл GitHub
родитель 03a2368655
Коммит 9cc5c303a2
3 изменённых файлов: 40 добавлений и 7 удалений
+2
Просмотреть файл
@@ -231,6 +231,8 @@ 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
# # Enums
from .amdsmi_interface import AmdSmiInitFlags
+6 -6
Просмотреть файл
@@ -1778,12 +1778,12 @@ def amdsmi_get_gpu_pm_metrics_info(
processor_handle, amdsmi_wrapper.amdsmi_processor_handle
)
pm_metrics = ctypes.POINTER(amdsmi_wrapper.amdsmi_name_value_t)
num_mets = ctypes.c_uint32
pm_metrics = ctypes.POINTER(amdsmi_wrapper.amdsmi_name_value_t)()
num_mets = ctypes.c_uint32()
_check_res(
amdsmi_wrapper.amdsmi_get_gpu_pm_metrics_info(
processor_handle, ctypes.byref(pm_metrics), ctypes.byref(num_mets)
processor_handle, ctypes.pointer(pm_metrics), ctypes.byref(num_mets)
)
)
@@ -1807,12 +1807,12 @@ def amdsmi_get_gpu_reg_table_info(
processor_handle, amdsmi_wrapper.amdsmi_processor_handle
)
reg_metrics = ctypes.POINTER(amdsmi_wrapper.amdsmi_name_value_t)
num_regs = ctypes.c_uint32
reg_metrics = ctypes.POINTER(amdsmi_wrapper.amdsmi_name_value_t)()
num_regs = ctypes.c_uint32()
_check_res(
amdsmi_wrapper.amdsmi_get_gpu_reg_table_info(
processor_handle, reg_type, ctypes.byref(reg_metrics), ctypes.byref(num_regs)
processor_handle, reg_type, ctypes.pointer(reg_metrics), ctypes.byref(num_regs)
)
)
+32 -1
Просмотреть файл
@@ -20,6 +20,8 @@
# CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
import sys
import amdsmi.amdsmi_wrapper
sys.path.append("/opt/rocm/libexec/amdsmi_cli/")
try:
@@ -923,7 +925,36 @@ class TestAmdSmiPythonInterface(unittest.TestCase):
violation_status['active_gfx_clk_below_host_limit']))
print()
self.tearDown()
# Add test for amdsmi_get_gpu_reg_table_info
@handle_exceptions
def test_gpu_reg_table_info(self):
self.setUp()
print("\n\n###Test amdsmi_get_gpu_reg_table_info")
processors = amdsmi.amdsmi_get_processor_handles()
for i in range(0, len(processors)):
print("\n\n###Test Processor {}".format(i))
print("\n###Test amdsmi_get_gpu_reg_table_info \n")
reg_table_info = amdsmi.amdsmi_get_gpu_reg_table_info(processors[i], amdsmi.amdsmi_interface.AmdSmiRegType.PCIE)
print(" reg_table_info['reg_table'] is: {}".format(
reg_table_info['reg_table']))
print()
self.tearDown()
# Add test for amdsmi_get_gpu_pm_metrics_info
@handle_exceptions
def test_gpu_pm_metrics_info(self):
self.setUp()
print("\n\n###Test amdsmi_get_gpu_pm_metrics_info")
processors = amdsmi.amdsmi_get_processor_handles()
for i in range(0, len(processors)):
print("\n\n###Test Processor {}".format(i))
print("\n###Test amdsmi_get_gpu_pm_metrics_info \n")
pm_metrics_info = amdsmi.amdsmi_get_gpu_pm_metrics_info(processors[i])
print(" pm_metrics_info['pm_metrics'] is: {}".format(
pm_metrics_info['pm_metrics']))
print()
self.tearDown()
def test_walkthrough(self):
print("\n\n#######################################################################")