we don't save event.name for the sake of memory saving. therefore we need to do it when we flush out xevents.

PiperOrigin-RevId: 297670929
Change-Id: Ib1e611229cf56f8e1eab08249853ec881480d3b9
This commit is contained in:
A. Unique TensorFlower 2020-02-27 13:16:10 -08:00 committed by TensorFlower Gardener
parent d675fbb6cf
commit 9ca4b6f117

View File

@ -65,6 +65,9 @@ void CreateXEvent(const CuptiTracerEvent& event, XPlaneBuilder* plane,
return;
}
std::string kernel_name = port::MaybeAbiDemangle(event.name.c_str());
if (kernel_name.empty()) {
kernel_name = GetTraceEventTypeName(event.type);
}
XEventMetadata* event_metadata = plane->GetOrCreateEventMetadata(kernel_name);
XEventBuilder xevent = line->AddEvent(*event_metadata);
xevent.SetTimestampNs(event.start_time_ns);
@ -95,12 +98,11 @@ void CreateXEvent(const CuptiTracerEvent& event, XPlaneBuilder* plane,
xevent.AddStatValue(*plane->GetOrCreateStatMetadata(
GetStatTypeStr(StatType::kKernelDetails)),
kernel_details);
}
if (event.type == CuptiTracerEventType::MemcpyH2D ||
event.type == CuptiTracerEventType::MemcpyD2H ||
event.type == CuptiTracerEventType::MemcpyD2D ||
event.type == CuptiTracerEventType::MemcpyP2P ||
event.type == CuptiTracerEventType::MemcpyOther) {
} else if (event.type == CuptiTracerEventType::MemcpyH2D ||
event.type == CuptiTracerEventType::MemcpyD2H ||
event.type == CuptiTracerEventType::MemcpyD2D ||
event.type == CuptiTracerEventType::MemcpyP2P ||
event.type == CuptiTracerEventType::MemcpyOther) {
const auto& memcpy_info = event.memcpy_info;
std::string memcpy_details =
absl::StrFormat("size:%u dest:%u async:%u", memcpy_info.num_bytes,