[SWDEV-524528] Modify the amd-smi monitor to use drm VRAM API (#228)

Updated the amd-smi monitor to use VRAM drm API.

Signed-off-by: Bindhiya Kanangot Balakrishnan <Bindhiya.KanangotBalakrishnan@amd.com>

[ROCm/amdsmi commit: af9afacfbd]
Этот коммит содержится в:
Kanangot Balakrishnan, Bindhiya
2025-04-01 17:05:14 -05:00
коммит произвёл GitHub
родитель 237334ef65
Коммит 17ed406553
+14 -11
Просмотреть файл
@@ -5352,11 +5352,13 @@ class AMDSMICommands():
if args.vram_usage and not args.default_output:
try:
vram_usage = amdsmi_interface.amdsmi_get_gpu_vram_usage(args.gpu)
monitor_values['vram_used'] = vram_usage['vram_used']
monitor_values['vram_free'] = vram_usage['vram_total'] - vram_usage['vram_used']
monitor_values['vram_total'] = vram_usage['vram_total']
monitor_values['vram_percent'] = round ((vram_usage['vram_used'] / vram_usage['vram_total']), 2)
vram_used = amdsmi_interface.amdsmi_get_gpu_memory_usage(args.gpu, amdsmi_interface.AmdSmiMemoryType.VRAM) // (1024*1024)
vram_total = amdsmi_interface.amdsmi_get_gpu_memory_total(args.gpu, amdsmi_interface.AmdSmiMemoryType.VRAM) // (1024*1024)
monitor_values['vram_used'] = vram_used
monitor_values['vram_free'] = vram_total - vram_used
monitor_values['vram_total'] = vram_total
monitor_values['vram_percent'] = round ((vram_used / vram_total), 2)
vram_usage_unit = "MB"
vram_percent_unit = "%"
if self.logger.is_human_readable_format():
@@ -5387,18 +5389,19 @@ class AMDSMICommands():
if args.vram_usage and args.default_output:
try:
vram_usage = amdsmi_interface.amdsmi_get_gpu_vram_usage(args.gpu)
vram_used = amdsmi_interface.amdsmi_get_gpu_memory_usage(args.gpu, amdsmi_interface.AmdSmiMemoryType.VRAM) // (1024*1024)
vram_total = amdsmi_interface.amdsmi_get_gpu_memory_total(args.gpu, amdsmi_interface.AmdSmiMemoryType.VRAM) // (1024*1024)
vram_usage_unit = "GB"
if self.logger.is_json_format():
monitor_values['vram_used'] = {"value" : round(vram_usage['vram_used']/1024,1),
monitor_values['vram_used'] = {"value" : round(vram_used/1024,1),
"unit" : vram_usage_unit}
monitor_values['vram_total'] = {"value" : round(vram_usage['vram_total']/1024,1),
monitor_values['vram_total'] = {"value" : round(vram_total/1024,1),
"unit" : vram_usage_unit}
elif self.logger.is_csv_format():
monitor_values['vram_used'] = round(vram_usage['vram_used']/1024,1)
monitor_values['vram_total'] = round(vram_usage['vram_total']/1024,1)
monitor_values['vram_used'] = round(vram_used/1024,1)
monitor_values['vram_total'] = round(vram_total/1024,1)
else:
monitor_values['vram_usage'] = f"{vram_usage['vram_used']/1024:5.1f}/{vram_usage['vram_total']/1024:5.1f} {vram_usage_unit}".rjust(16,' ')
monitor_values['vram_usage'] = f"{vram_used/1024:5.1f}/{vram_total/1024:5.1f} {vram_usage_unit}".rjust(16,' ')
except amdsmi_exception.AmdSmiLibraryException as e:
if self.logger.is_json_format():
monitor_values['vram_used'] = "N/A"