[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:
gecommit door
GitHub
bovenliggende
8ed52616ad
commit
91021da055
@@ -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**.
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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)
|
||||
Verwijs in nieuw issue
Block a user