7 #include <common/include/LabelsAndEventClasses.hpp> 23 return std::make_unique<TimelineUtilityMethods>(sendTimelinepacket);
27 std::unique_ptr<TimelineUtilityMethods> empty;
37 LabelsAndEventClasses::NAME_LABEL);
41 LabelsAndEventClasses::TYPE_LABEL);
45 LabelsAndEventClasses::INDEX_LABEL);
49 LabelsAndEventClasses::BACKENDID_LABEL);
53 LabelsAndEventClasses::CHILD_LABEL);
57 LabelsAndEventClasses::EXECUTION_OF_LABEL);
61 LabelsAndEventClasses::PROCESS_ID_LABEL);
65 LabelsAndEventClasses::LAYER);
69 LabelsAndEventClasses::WORKLOAD);
73 LabelsAndEventClasses::NETWORK);
77 LabelsAndEventClasses::CONNECTION);
81 LabelsAndEventClasses::INFERENCE);
85 LabelsAndEventClasses::WORKLOAD_EXECUTION);
89 LabelsAndEventClasses::ARMNN_PROFILING_SOL_EVENT_CLASS_NAME);
91 LabelsAndEventClasses::ARMNN_PROFILING_SOL_EVENT_CLASS_NAME_GUID);
95 LabelsAndEventClasses::ARMNN_PROFILING_EOL_EVENT_CLASS_NAME);
97 LabelsAndEventClasses::ARMNN_PROFILING_EOL_EVENT_CLASS_NAME_GUID);
125 const std::string& name,
126 const std::string& type)
141 m_SendTimelinePacket->SendTimelineEntityBinaryPacket(entityGuid);
151 const std::string& name,
152 ProfilingStaticGuid typeGuid)
161 m_SendTimelinePacket->SendTimelineEntityBinaryPacket(entityGuid);
173 if (labelName.empty())
183 m_SendTimelinePacket->SendTimelineLabelBinaryPacket(labelGuid, labelName);
189 const std::string& labelName,
190 ProfilingStaticGuid labelTypeGuid)
193 if (labelName.empty())
200 ProfilingStaticGuid labelGuid =
DeclareLabel(labelName);
214 ProfilingStaticGuid typeNameGuid)
224 LabelsAndEventClasses::TYPE_GUID);
238 const std::string& entityName,
239 const std::string& entityType)
242 if (entityName.empty())
249 if (entityType.empty())
266 LabelsAndEventClasses::EMPTY_GUID);
268 return childEntityGuid;
272 ProfilingGuid parentEntityGuid,
273 const std::string& entityName,
274 const std::string& entityType)
277 if (entityName.empty())
284 if (entityType.empty())
301 LabelsAndEventClasses::CHILD_GUID);
305 ProfilingGuid parentEntityGuid,
306 const std::string& entityName,
307 ProfilingStaticGuid typeGuid)
310 if (entityName.empty())
327 LabelsAndEventClasses::CHILD_GUID);
331 ProfilingGuid headGuid,
332 ProfilingGuid tailGuid,
333 ProfilingGuid relationshipCategory)
339 m_SendTimelinePacket->SendTimelineRelationshipBinaryPacket(relationshipType,
343 relationshipCategory);
344 return relationshipGuid;
348 ProfilingGuid headGuid,
349 ProfilingGuid tailGuid)
355 m_SendTimelinePacket->SendTimelineRelationshipBinaryPacket(relationshipType,
359 LabelsAndEventClasses::CONNECTION_GUID);
360 return relationshipGuid;
366 m_SendTimelinePacket->SendTimelineEntityBinaryPacket(entityGuid);
384 m_SendTimelinePacket->SendTimelineEventBinaryPacket(timestamp, threadId, eventGuid);
400 ProfilingGuid inferenceGuid)
403 CreateTypedEntity(workloadInferenceGuid, LabelsAndEventClasses::WORKLOAD_EXECUTION_GUID);
406 workloadInferenceGuid,
407 LabelsAndEventClasses::CHILD_GUID);
410 workloadInferenceGuid,
411 LabelsAndEventClasses::EXECUTION_OF_GUID);
412 RecordEvent(workloadInferenceGuid, LabelsAndEventClasses::ARMNN_PROFILING_SOL_EVENT_CLASS);
413 return workloadInferenceGuid;
418 RecordEvent(entityGuid, LabelsAndEventClasses::ARMNN_PROFILING_EOL_EVENT_CLASS);
ProfilingDynamicGuid RecordWorkloadInferenceAndStartOfLifeEvent(ProfilingGuid workloadGuid, ProfilingGuid inferenceGuid)
void RecordEndOfLifeEvent(ProfilingGuid entityGuid)
ProfilingState GetCurrentState() const
static std::unique_ptr< TimelineUtilityMethods > GetTimelineUtils(ProfilingService &profilingService)
ProfilingDynamicGuid CreateConnectionRelationship(ProfilingRelationshipType relationshipType, ProfilingGuid headGuid, ProfilingGuid tailGuid)
virtual void SendTimelineLabelBinaryPacket(uint64_t profilingGuid, const std::string &label)=0
Create and write a TimelineLabelBinaryPacket from the parameters to the buffer.
Head retains(parents) Tail.
Copyright (c) 2021 ARM Limited and Contributors.
ProfilingDynamicGuid CreateNamedTypedEntity(const std::string &name, const std::string &type)
virtual void Commit()=0
Commits the current buffer and reset the member variables.
ProfilingDynamicGuid CreateNamedTypedChildEntity(ProfilingGuid parentEntityGuid, const std::string &entityName, const std::string &entityType)
static ProfilingStaticGuid GetStaticId(const std::string &str)
void NameEntity(ProfilingGuid entityGuid, const std::string &name)
void CreateTypedEntity(ProfilingGuid entityGuid, ProfilingStaticGuid typeGuid)
std::unique_ptr< ISendTimelinePacket > GetSendTimelinePacket() const override
ProfilingDynamicGuid RecordEvent(ProfilingGuid entityGuid, ProfilingStaticGuid eventClassGuid)
ProfilingRelationshipType
bool IsTimelineReportingEnabled()
void MarkEntityWithLabel(ProfilingGuid entityGuid, const std::string &labelName, ProfilingStaticGuid labelLinkGuid)
void TypeEntity(ProfilingGuid entityGuid, const std::string &type)
ProfilingStaticGuid DeclareLabel(const std::string &labelName)
static ProfilingDynamicGuid GetNextGuid()
static void SendWellKnownLabelsAndEventClasses(ISendTimelinePacket &timelinePacket)
virtual void SendTimelineEventClassBinaryPacket(uint64_t profilingGuid, uint64_t nameGuid)=0
Create and write a TimelineEventClassBinaryPacket from the parameters to the buffer.
ProfilingDynamicGuid CreateRelationship(ProfilingRelationshipType relationshipType, ProfilingGuid headGuid, ProfilingGuid tailGuid, ProfilingGuid relationshipCategory)
void MarkEntityWithType(ProfilingGuid entityGuid, ProfilingStaticGuid typeNameGuid)