in tb_plugin/torch_tb_profiler/profiler/event_parser.py [0:0]
def _parse_step(self, event, comm_nodes):
ts = event.ts
dur = event.duration
evt_type = event.type
if evt_type == EventTypes.KERNEL:
if event.external_id in comm_nodes:
self.role_ranges[ProfileRole.Communication].append((ts, ts + dur))
else:
self.role_ranges[ProfileRole.Kernel].append((ts, ts + dur))
elif evt_type == EventTypes.MEMCPY:
self.role_ranges[ProfileRole.Memcpy].append((ts, ts + dur))
elif evt_type == EventTypes.MEMSET:
self.role_ranges[ProfileRole.Memset].append((ts, ts + dur))
elif evt_type == EventTypes.RUNTIME:
self.role_ranges[ProfileRole.Runtime].append((ts, ts + dur))
elif evt_type == EventTypes.OPERATOR and event.name.startswith("enumerate(DataLoader)#") \
and event.name.endswith(".__next__"):
self.role_ranges[ProfileRole.DataLoader].append((ts, ts + dur))
elif event.type == EventTypes.PROFILER_STEP:
self.steps.append((ts, ts + dur))
self.steps_names.append(str(event.step))
elif evt_type in [EventTypes.PYTHON, EventTypes.OPERATOR]:
if event.name in GlooOpNameSet:
self.role_ranges[ProfileRole.Communication].append((ts, ts + dur))
else:
self.role_ranges[ProfileRole.CpuOp].append((ts, ts + dur))
# Record host side min and max time.
if evt_type in [EventTypes.PYTHON, EventTypes.OPERATOR, EventTypes.PROFILER_STEP]:
self.cpu_min_ts = min(self.cpu_min_ts, ts)
self.cpu_max_ts = max(self.cpu_max_ts, ts + dur)
# Record global wise min and max time.
self.global_min_ts = min(self.global_min_ts, ts)
self.global_max_ts = max(self.global_max_ts, ts + dur)