from msparser.add_info.add_info_bean import AddInfoBean
class DPUHcclTrackBean(AddInfoBean):
"""
DPU hccl information bean data for the data parsing by acl parser.
"""
def __init__(self: any, *args) -> None:
super().__init__(*args)
filed = args[0]
self._item_id = filed[6]
self._ccl_tag = filed[7]
self._group_name = filed[8]
self._local_rank = filed[9]
self._remote_rank = filed[10]
self._rank_size = filed[11]
self._stage = filed[12]
self._notify_id = filed[13]
self._start_time = filed[14]
self._duration_estimated = filed[15]
self._src_addr = filed[16]
self._dst_addr = filed[17]
self._data_size = filed[18]
self._task_id = filed[19]
self._aicpu_task_id = filed[20]
self._stream_id = filed[21]
self._plane_id = filed[22]
self._npu_device_id = filed[23]
self._dev_type = (filed[24] >> 12) & 0xF
self._dpu_device_id = filed[24] & 0xFFF
self._op_type = filed[25]
self._data_type = filed[26]
self._link_type = filed[27]
self._transport_type = filed[28]
self._rdma_type = filed[29]
self._role = filed[30]
self._work_flow_mode = filed[31]
@property
def item_id(self: any) -> str:
"""
hccl information id
:return: hccl information id
"""
return str(self._item_id)
@property
def ccl_tag(self: any) -> str:
"""
hash number for ccl
:return: hash number for ccl
"""
return str(self._ccl_tag)
@property
def group_name(self: any) -> str:
"""
hash number for ccl group
:return: hash number for ccl group
"""
return str(self._group_name)
@property
def local_rank(self: any) -> int:
"""
local rank number
:return: local rank number
"""
return self._local_rank
@property
def remote_rank(self: any) -> int:
"""
remote rank number
:return: remote rank number
"""
return self._remote_rank
@property
def rank_size(self: any) -> int:
"""
hccl information rank size
"""
return self._rank_size
@property
def stage(self: any) -> str:
"""
communicate algorithm stage
"""
return str(self._stage)
@property
def notify_id(self: any) -> str:
"""
notify id
"""
return str(self._notify_id)
@property
def start_time(self: any) -> int:
"""
start time
"""
return self._start_time
@property
def duration_estimated(self: any) -> float:
"""
duration estimated
"""
return float(self._duration_estimated)
@property
def src_addr(self: any) -> str:
"""
source address
"""
return str(self._src_addr)
@property
def dst_addr(self: any) -> str:
"""
destination address
"""
return str(self._dst_addr)
@property
def data_size(self: any) -> int:
"""
data size
"""
return self._data_size
@property
def task_id(self: any) -> int:
"""
task id
"""
return self._task_id
@property
def aicpu_task_id(self: any) -> int:
"""
ai cpu task id
"""
return self._aicpu_task_id
@property
def stream_id(self: any) -> int:
"""
stream id
"""
return self._stream_id
@property
def plane_id(self: any) -> int:
"""
plane id
"""
return self._plane_id
@property
def npu_device_id(self: any) -> int:
"""
npu device id
"""
return self._npu_device_id
@property
def is_dpu(self: any) -> bool:
"""
Used to distinguish the device type(DPU:1/NPU:0) of tasks.
"""
return bool(self._dev_type)
@property
def dpu_device_id(self: any) -> int:
"""
device id
"""
return self._dpu_device_id
@property
def op_type(self: any) -> str:
"""
op type
"""
return str(self._op_type)
@property
def data_type(self: any) -> str:
"""
data type
"""
return str(self._data_type)
@property
def link_type(self: any) -> str:
"""
link type
"""
return str(self._link_type)
@property
def transport_type(self: any) -> str:
"""
transport type
"""
return str(self._transport_type)
@property
def rdma_type(self: any) -> str:
"""
RDMA type
"""
return str(self._rdma_type)
@property
def role(self: any) -> str:
"""
role
"""
return str(self._role)
@property
def work_flow_mode(self: any) -> str:
"""
mode of the work flow
"""
return str(self._work_flow_mode)