[SWDEV-357472] Add evicted_ms metric (#620)

- **Added evicted_time metric for kfd processes**.  
  - Time that queues are evicted on a GPU in milliseconds
  - Added to CLI in `amd-smi monitor -q` and `amd-smi process`
  - Added to C API and Python API:
    - amdsmi_get_gpu_process_list()
    - amdsmi_get_gpu_compute_process_info()
    - amdsmi_get_gpu_compute_process_info_by_pid()

---------

Signed-off-by: Pryor, Adam <Adam.Pryor@amd.com>
This commit is contained in:
Pryor, Adam
2025-10-28 14:49:03 -05:00
committed by GitHub
szülő 6f222c11a6
commit 2144cfbba4
11 fájl változott, egészen pontosan 95 új sor hozzáadva és 31 régi sor törölve
+4 -1
Fájl megtekintése
@@ -2953,7 +2953,8 @@ def amdsmi_get_gpu_process_list(
"cpu_mem": process_list[index].memory_usage.cpu_mem,
"vram_mem": process_list[index].memory_usage.vram_mem,
},
"cu_occupancy": _validate_if_max_uint(process_list[index].cu_occupancy, MaxUIntegerTypes.UINT32_T)
"cu_occupancy": _validate_if_max_uint(process_list[index].cu_occupancy, MaxUIntegerTypes.UINT32_T),
"evicted_time": _validate_if_max_uint(process_list[index].evicted_time, MaxUIntegerTypes.UINT32_T)
})
return result
@@ -5303,6 +5304,7 @@ def amdsmi_get_gpu_compute_process_info() -> List[Dict[str, int]]:
"vram_usage": proc.vram_usage,
"sdma_usage": proc.sdma_usage,
"cu_occupancy": proc.cu_occupancy,
"evicted_time": proc.evicted_time,
}
for proc in procs
]
@@ -5324,6 +5326,7 @@ def amdsmi_get_gpu_compute_process_info_by_pid(pid: int) -> Dict[str, int]:
"vram_usage": proc.vram_usage,
"sdma_usage": proc.sdma_usage,
"cu_occupancy": proc.cu_occupancy,
"evicted_time": proc.evicted_time,
}
+10 -8
Fájl megtekintése
@@ -904,22 +904,22 @@ amdsmi_frequency_range_t = struct_amdsmi_frequency_range_t
class union_amdsmi_bdf_t(Union):
pass
class struct_amdsmi_bdf_t(Structure):
class struct_bdf_(Structure):
pass
struct_amdsmi_bdf_t._pack_ = 1 # source:False
struct_amdsmi_bdf_t._fields_ = [
struct_bdf_._pack_ = 1 # source:False
struct_bdf_._fields_ = [
('function_number', ctypes.c_uint64, 3),
('device_number', ctypes.c_uint64, 5),
('bus_number', ctypes.c_uint64, 8),
('domain_number', ctypes.c_uint64, 48),
]
class struct_bdf_(Structure):
class struct_amdsmi_bdf_t(Structure):
pass
struct_bdf_._pack_ = 1 # source:False
struct_bdf_._fields_ = [
struct_amdsmi_bdf_t._pack_ = 1 # source:False
struct_amdsmi_bdf_t._fields_ = [
('function_number', ctypes.c_uint64, 3),
('device_number', ctypes.c_uint64, 5),
('bus_number', ctypes.c_uint64, 8),
@@ -1397,7 +1397,9 @@ struct_amdsmi_proc_info_t._fields_ = [
('memory_usage', struct_memory_usage_),
('container_name', ctypes.c_char * 256),
('cu_occupancy', ctypes.c_uint32),
('reserved', ctypes.c_uint32 * 11),
('evicted_time', ctypes.c_uint32),
('reserved', ctypes.c_uint32 * 10),
('PADDING_1', ctypes.c_ubyte * 4),
]
amdsmi_proc_info_t = struct_amdsmi_proc_info_t
@@ -2196,7 +2198,7 @@ struct_amdsmi_process_info_t._fields_ = [
('vram_usage', ctypes.c_uint64),
('sdma_usage', ctypes.c_uint64),
('cu_occupancy', ctypes.c_uint32),
('PADDING_1', ctypes.c_ubyte * 4),
('evicted_time', ctypes.c_uint32),
]
amdsmi_process_info_t = struct_amdsmi_process_info_t