From ddc63694bc04c9ee951bbbe46978618633d35884 Mon Sep 17 00:00:00 2001 From: Maisam Arif Date: Sun, 24 Sep 2023 03:09:51 -0500 Subject: [PATCH] Moved clock locked under applicable clock Change-Id: Ie47b20d0d367a198d6978a5dc571811938cfd02f Signed-off-by: Maisam Arif --- amdsmi_cli/amdsmi_commands.py | 42 ++++++++++++++++++++------------ py-interface/amdsmi_interface.py | 2 +- 2 files changed, 28 insertions(+), 16 deletions(-) diff --git a/amdsmi_cli/amdsmi_commands.py b/amdsmi_cli/amdsmi_commands.py index 65d61ba873..e6b010b5cc 100644 --- a/amdsmi_cli/amdsmi_commands.py +++ b/amdsmi_cli/amdsmi_commands.py @@ -885,31 +885,43 @@ class AMDSMICommands(): values_dict['power'] = power_dict if args.clock: - clocks = {"gfx": "N/A", - "mem": "N/A", - "is_clk_locked": "N/A"} + clocks = {"gfx": "N/A", "mem": "N/A"} try: gfx_clock = amdsmi_interface.amdsmi_get_clock_info(args.gpu, amdsmi_interface.AmdSmiClkType.GFX) + + if self.logger.is_human_readable_format(): + unit = 'MHz' + for key, value in gfx_clock.items(): + gfx_clock[key] = f"{value} {unit}" + + clocks['gfx'] = gfx_clock + except amdsmi_exception.AmdSmiLibraryException as e: + logging.debug("Failed to get gfx clock info for gpu %s | %s", args.gpu, e.get_error_info()) + + try: + # is_clk_locked = amdsmi_interface.amdsmi_is_clk_locked(args.gpu, amdsmi_interface.AmdSmiClkType.GFX) + is_clk_locked = "N/A" + except amdsmi_exception.AmdSmiLibraryException as e: + is_clk_locked = "N/A" + logging.debug("Failed to get gfx clock lock status info for gpu %s | %s", args.gpu, e.get_error_info()) + + if isinstance(clocks['gfx'], dict): + clocks['gfx']['is_clk_locked'] = is_clk_locked + else: + clocks['gfx'] = {'is_clk_locked': is_clk_locked} + + try: mem_clock = amdsmi_interface.amdsmi_get_clock_info(args.gpu, amdsmi_interface.AmdSmiClkType.MEM) if self.logger.is_human_readable_format(): unit = 'MHz' - for clock_dict in [gfx_clock, mem_clock]: - for key, value in clock_dict.items(): - clock_dict[key] = f"{value} {unit}" + for key, value in mem_clock.items(): + mem_clock[key] = f"{value} {unit}" - clocks['gfx'] = gfx_clock clocks['mem'] = mem_clock except amdsmi_exception.AmdSmiLibraryException as e: - logging.debug("Failed to get gfx & mem clock info for gpu %s | %s", args.gpu, e.get_error_info()) - - try: - # is_clk_locked = amdsmi_interface.amdsmi_is_clk_locked(args.gpu) - is_clk_locked = "N/A" - clocks['is_clk_locked'] = is_clk_locked - except amdsmi_exception.AmdSmiLibraryException as e: - logging.debug("Failed to get clock lock status info for gpu %s | %s", args.gpu, e.get_error_info()) + logging.debug("Failed to get mem clock info for gpu %s | %s", args.gpu, e.get_error_info()) values_dict['clock'] = clocks if args.temperature: diff --git a/py-interface/amdsmi_interface.py b/py-interface/amdsmi_interface.py index 52a46e1d60..dfe52effbd 100644 --- a/py-interface/amdsmi_interface.py +++ b/py-interface/amdsmi_interface.py @@ -737,7 +737,7 @@ def amdsmi_get_gpu_activity( def amdsmi_get_clock_info( processor_handle: amdsmi_wrapper.amdsmi_processor_handle, clock_type: AmdSmiClkType, -) -> Dict[str, Any]: +) -> Dict[str, int]: if not isinstance(processor_handle, amdsmi_wrapper.amdsmi_processor_handle): raise AmdSmiParameterException( processor_handle, amdsmi_wrapper.amdsmi_processor_handle