ArmNN
 21.11
TimelineUtilityMethods.hpp
Go to the documentation of this file.
1 //
2 // Copyright © 2019 Arm Ltd and Contributors. All rights reserved.
3 // SPDX-License-Identifier: MIT
4 //
5 
6 #pragma once
7 
8 #include "ProfilingService.hpp"
10 
11 #include <armnn/Types.hpp>
12 
13 namespace armnn
14 {
15 
16 namespace profiling
17 {
18 
20 {
21 public:
22 
23  // static factory method which will return a pointer to a timelie utility methods
24  // object if profiling is enabled. Otherwise will return a null unique_ptr
25  static std::unique_ptr<TimelineUtilityMethods> GetTimelineUtils(ProfilingService& profilingService);
26 
28  std::unique_ptr<ISendTimelinePacket>& sendTimelinePacket)
29  : m_SendTimelinePacket(std::move(sendTimelinePacket)) {}
30 
32  : m_SendTimelinePacket(std::move(other.m_SendTimelinePacket)) {}
33 
34  TimelineUtilityMethods(const TimelineUtilityMethods& other) = delete;
35 
37 
39 
40  ~TimelineUtilityMethods() = default;
41 
42  static void SendWellKnownLabelsAndEventClasses(ISendTimelinePacket& timelinePacket);
43 
44  ProfilingDynamicGuid CreateNamedTypedEntity(const std::string& name, const std::string& type);
45 
46  void CreateNamedTypedEntity(ProfilingGuid entityGuid, const std::string& name, const std::string& type);
47 
48  void CreateNamedTypedEntity(ProfilingGuid entityGuid, const std::string& name, ProfilingStaticGuid typeGuid);
49 
50  void MarkEntityWithLabel(ProfilingGuid entityGuid, const std::string& labelName, ProfilingStaticGuid labelLinkGuid);
51 
52  ProfilingStaticGuid DeclareLabel(const std::string& labelName);
53 
54  void NameEntity(ProfilingGuid entityGuid, const std::string& name);
55 
56  void TypeEntity(ProfilingGuid entityGuid, const std::string& type);
57 
58  ProfilingDynamicGuid CreateNamedTypedChildEntity(ProfilingGuid parentEntityGuid,
59  const std::string& entityName,
60  const std::string& entityType);
61 
62  void CreateNamedTypedChildEntity(ProfilingGuid entityGuid,
63  ProfilingGuid parentEntityGuid,
64  const std::string& entityName,
65  const std::string& entityType);
66 
67  void CreateNamedTypedChildEntity(ProfilingGuid entityGuid,
68  ProfilingGuid parentEntityGuid,
69  const std::string& entityName,
70  ProfilingStaticGuid typeGuid);
71 
72  ProfilingDynamicGuid CreateRelationship(ProfilingRelationshipType relationshipType,
73  ProfilingGuid headGuid,
74  ProfilingGuid tailGuid,
75  ProfilingGuid relationshipCategory);
76 
77  ProfilingDynamicGuid CreateConnectionRelationship(ProfilingRelationshipType relationshipType,
78  ProfilingGuid headGuid,
79  ProfilingGuid tailGuid);
80 
81  void CreateTypedEntity(ProfilingGuid entityGuid, ProfilingStaticGuid typeGuid);
82 
83  void MarkEntityWithType(ProfilingGuid entityGuid, ProfilingStaticGuid typeNameGuid);
84 
85  ProfilingDynamicGuid RecordEvent(ProfilingGuid entityGuid, ProfilingStaticGuid eventClassGuid);
86 
87  ProfilingDynamicGuid RecordWorkloadInferenceAndStartOfLifeEvent(ProfilingGuid workloadGuid,
88  ProfilingGuid inferenceGuid);
89 
90  void RecordEndOfLifeEvent(ProfilingGuid entityGuid);
91 
92  void Commit() { m_SendTimelinePacket->Commit(); }
93 
94 private:
95  std::unique_ptr<ISendTimelinePacket> m_SendTimelinePacket;
96 };
97 
98 } // namespace profiling
99 
100 } // namespace armnn
ProfilingDynamicGuid RecordWorkloadInferenceAndStartOfLifeEvent(ProfilingGuid workloadGuid, ProfilingGuid inferenceGuid)
void RecordEndOfLifeEvent(ProfilingGuid entityGuid)
static std::unique_ptr< TimelineUtilityMethods > GetTimelineUtils(ProfilingService &profilingService)
ProfilingDynamicGuid CreateConnectionRelationship(ProfilingRelationshipType relationshipType, ProfilingGuid headGuid, ProfilingGuid tailGuid)
TimelineUtilityMethods & operator=(const TimelineUtilityMethods &other)=delete
Copyright (c) 2021 ARM Limited and Contributors.
ProfilingDynamicGuid CreateNamedTypedEntity(const std::string &name, const std::string &type)
ProfilingDynamicGuid CreateNamedTypedChildEntity(ProfilingGuid parentEntityGuid, const std::string &entityName, const std::string &entityType)
void NameEntity(ProfilingGuid entityGuid, const std::string &name)
void CreateTypedEntity(ProfilingGuid entityGuid, ProfilingStaticGuid typeGuid)
ProfilingDynamicGuid RecordEvent(ProfilingGuid entityGuid, ProfilingStaticGuid eventClassGuid)
void MarkEntityWithLabel(ProfilingGuid entityGuid, const std::string &labelName, ProfilingStaticGuid labelLinkGuid)
void TypeEntity(ProfilingGuid entityGuid, const std::string &type)
ProfilingStaticGuid DeclareLabel(const std::string &labelName)
TimelineUtilityMethods(TimelineUtilityMethods &&other)
static void SendWellKnownLabelsAndEventClasses(ISendTimelinePacket &timelinePacket)
TimelineUtilityMethods(std::unique_ptr< ISendTimelinePacket > &sendTimelinePacket)
ProfilingDynamicGuid CreateRelationship(ProfilingRelationshipType relationshipType, ProfilingGuid headGuid, ProfilingGuid tailGuid, ProfilingGuid relationshipCategory)
void MarkEntityWithType(ProfilingGuid entityGuid, ProfilingStaticGuid typeNameGuid)