[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>
Этот коммит содержится в:
коммит произвёл
GitHub
родитель
03a2368655
Коммит
9cc5c303a2
@@ -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
|
||||
|
||||
@@ -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)
|
||||
)
|
||||
)
|
||||
|
||||
|
||||
@@ -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#######################################################################")
|
||||
|
||||
Ссылка в новой задаче
Block a user