[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:
@@ -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,
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user