[SWDEV-446039] Added Flat Process table to default output (#425)

Signed-off-by: gabrpham_amdeng <Gabriel.Pham@amd.com>
Signed-off-by: Maisam Arif <Maisam.Arif@amd.com>
Co-authored-by: Maisam Arif <Maisam.Arif@amd.com>
This commit is contained in:
Pham, Gabriel
2025-06-02 17:15:15 -05:00
gecommit door GitHub
bovenliggende 8ed52616ad
commit 91021da055
3 gewijzigde bestanden met toevoegingen van 56 en 29 verwijderingen
+21
Bestand weergeven
@@ -43,6 +43,27 @@ Full documentation for amd_smi_lib is available at [https://rocm.docs.amd.com/pr
| 0000:df:00.0 AMD Instinct MI300X | 0 % 40 °C 0 138/750 W |
| 7 7 6 SPX/NPS1 | 0 % N/A 283/196592 MB |
+--------------------------------------+---------------------------------------+
+------------------------------------------------------------------------------+
| Processes: |
| GPU PID Process Name VRAM_MEM MEM_USAGE NUM_CU |
|==============================================================================|
| 0 269867 rvs 17.9 GB 19.2 GB 38 |
| 0 269888 rvs 17.9 GB 19.2 GB 38 |
| 1 269867 rvs 17.9 GB 19.2 GB 38 |
| 1 269888 rvs 17.9 GB 19.2 GB 38 |
| 2 269867 rvs 17.9 GB 19.2 GB 38 |
| 2 269888 rvs 17.9 GB 19.2 GB 38 |
| 3 269867 rvs 17.9 GB 19.2 GB 76 |
| 3 269888 rvs 17.9 GB 19.2 GB 0 |
| 4 269867 rvs 17.9 GB 19.0 GB 37 |
| 4 269888 rvs 17.9 GB 19.2 GB 36 |
| 5 269867 rvs 17.9 GB 19.0 GB 76 |
| 5 269888 rvs 17.9 GB 19.2 GB 0 |
| 6 269867 rvs 17.9 GB 19.0 GB 76 |
| 6 269888 rvs 17.9 GB 19.2 GB 0 |
| 7 269867 rvs 17.9 GB 19.2 GB 34 |
| 7 269888 rvs 17.9 GB 19.2 GB 38 |
+------------------------------------------------------------------------------+
```
- **Added support for GPU metrics 1.8**.
+16 -14
Bestand weergeven
@@ -6526,9 +6526,9 @@ class AMDSMICommands():
default_table_info_dict.update({"version_info": version_info})
gpu_info_list = []
# all_process_list = []
all_process_list = []
all_process_list = []
# TODO: create new logger function to display table? or modify table?
# get info for each processor to display in default output
for processor in processors:
gpu_info_dict = {}
@@ -6651,20 +6651,22 @@ class AMDSMICommands():
gpu_info_list.append(gpu_info_dict)
# Running Processes
# try:
# raw_process_list = amdsmi_interface.amdsmi_get_gpu_process_list(processor)
# proc_info_dict = {"gpu": "N/A", "pid": "N/A", "name": "N/A", "vram": "N/A"}
# for proc in raw_process_list:
# proc_info_dict['gpu'] = gpu_id
# proc_info_dict['pid'] = proc['pid']
# proc_info_dict['name'] = proc['container_name']
# proc_info_dict['vram'] = str(proc['memory_usage']['vram_mem']) + " MB"
# all_process_list.append(proc_info_dict)
# except amdsmi_exception.AmdSmiLibraryException as e:
# logging.debug("Failed to get process list for gpu %s | %s", gpu_id, e.get_error_info())
try:
raw_process_list = amdsmi_interface.amdsmi_get_gpu_process_list(processor)
for proc in raw_process_list:
proc_info_dict = {"gpu": "N/A", "pid": "N/A", "name": "N/A", "vram": "N/A", "mem_usage": "N/A", "cu_occupancy": "N/A"}
proc_info_dict['gpu'] = gpu_id
proc_info_dict['pid'] = proc['pid']
proc_info_dict['name'] = proc['name']
proc_info_dict['vram'] = self.helpers.convert_bytes_to_readable(proc['memory_usage']['vram_mem'])
proc_info_dict['mem_usage'] = self.helpers.convert_bytes_to_readable(proc['mem'])
proc_info_dict['cu_occupancy'] = str(proc['cu_occupancy'])
all_process_list.append(proc_info_dict)
except amdsmi_exception.AmdSmiLibraryException as e:
logging.debug("Failed to get process list for gpu %s | %s", gpu_id, e.get_error_info())
default_table_info_dict.update({f"gpu_info_list": gpu_info_list})
# default_table_info_dict.update({"processes": all_process_list})
default_table_info_dict.update({"processes": all_process_list})
if self.logger.is_json_format():
self.logger.output = default_table_info_dict
+19 -15
Bestand weergeven
@@ -965,6 +965,7 @@ class AMDSMILogger():
default_line_2 = "|--------------------------------------+---------------------------------------|"
default_line_3 = "|======================================+=======================================|"
default_line_4 = "+--------------------------------------+---------------------------------------+"
default_line_5 = "|==============================================================================|"
# print the version information first
amd_smi_version = str(output['version_info']['amd-smi'])
@@ -1043,18 +1044,21 @@ class AMDSMILogger():
print(default_line_4)
# # print process list of all GPUs last
# print(default_line_1)
# print("| Processes: |")
# print("| GPU PID Process name VRAM_MEM |")
# print(default_line_5)
# if len(output['processes']) != 0:
# for process in output['processes']:
# gpu_id = str(process['gpu']).rjust(4)
# pid = str(process['pid']).ljust(7)
# process_name = str(process['name']).ljust(25)
# vram_mem = str(process['vram']).rjust(18)
# print("| {0:4s} {1:7s} {2:25s} {3:18s} |".format(gpu_id, pid, process_name, vram_mem))
# else:
# print("| No running processes found |")
# print(default_line_1)
# print process list of all GPUs last
print(default_line_1)
print("| Processes: |")
print("| GPU PID Process Name VRAM_MEM MEM_USAGE NUM_CU |")
print(default_line_5)
if len(output['processes']) != 0:
for process in output['processes']:
gpu_id = str(process['gpu']).rjust(4)
pid = str(process['pid']).rjust(9)
process_name = str(process['name']).ljust(29)
vram_mem = str(process['vram']).rjust(9)
mem_usage = str(process['mem_usage']).rjust(9)
cu_occupancy = str(process['cu_occupancy']).rjust(6)
print("| {0:4s} {1:9s} {2:29s} {3:9s} {4:9s} {5:6s} |".format(
gpu_id, pid, process_name, vram_mem, mem_usage, cu_occupancy))
else:
print("| No running processes found |")
print(default_line_1)