ArmNN
 20.02
TimelineUtilityMethods.hpp
Go to the documentation of this file.
1 //
2 // Copyright © 2019 Arm Ltd. All rights reserved.
3 // SPDX-License-Identifier: MIT
4 //
5 
6 #pragma once
7 
9 #include <armnn/Types.hpp>
10 
11 namespace armnn
12 {
13 
14 namespace profiling
15 {
16 
18 {
19 public:
20 
21  // static factory method which will return a pointer to a timelie utility methods
22  // object if profiling is enabled. Otherwise will return a null unique_ptr
23  static std::unique_ptr<TimelineUtilityMethods> GetTimelineUtils();
24 
25  TimelineUtilityMethods(std::unique_ptr<ISendTimelinePacket>& sendTimelinePacket)
26  : m_SendTimelinePacket(std::move(sendTimelinePacket)) {}
27 
29  : m_SendTimelinePacket(std::move(other.m_SendTimelinePacket)) {}
30 
31  TimelineUtilityMethods(const TimelineUtilityMethods& other) = delete;
32 
34 
36 
37  ~TimelineUtilityMethods() = default;
38 
40 
41  ProfilingDynamicGuid CreateNamedTypedEntity(const std::string& name, const std::string& type);
42 
43  void CreateNamedTypedEntity(ProfilingGuid entityGuid, const std::string& name, const std::string& type);
44 
45  void CreateNamedTypedEntity(ProfilingGuid entityGuid, const std::string& name, ProfilingStaticGuid typeGuid);
46 
47  void MarkEntityWithLabel(ProfilingGuid entityGuid, const std::string &labelName, ProfilingStaticGuid labelLinkGuid);
48 
49  ProfilingStaticGuid DeclareLabel(const std::string& labelName);
50 
51  void NameEntity(ProfilingGuid entityGuid, const std::string& name);
52 
53  void TypeEntity(ProfilingGuid entityGuid, const std::string& type);
54 
56  const std::string& entityName,
57  const std::string& entityType);
58 
60  ProfilingGuid parentEntityGuid,
61  const std::string& entityName,
62  const std::string& entityType);
63 
65  ProfilingGuid parentEntityGuid,
66  const std::string& entityName,
67  ProfilingStaticGuid typeGuid);
68 
70  ProfilingGuid headGuid,
71  ProfilingGuid tailGuid);
72 
74  ProfilingGuid headGuid,
75  ProfilingGuid tailGuid);
76 
77  void CreateTypedEntity(ProfilingGuid entityGuid, ProfilingStaticGuid typeGuid);
78 
79  void MarkEntityWithType(ProfilingGuid entityGuid, ProfilingStaticGuid typeNameGuid);
80 
82 
84  ProfilingGuid inferenceGuid);
85 
86  void RecordEndOfLifeEvent(ProfilingGuid entityGuid);
87 
88  void Commit() { m_SendTimelinePacket->Commit(); }
89 
90 private:
91  std::unique_ptr<ISendTimelinePacket> m_SendTimelinePacket;
92 };
93 
94 } // namespace profiling
95 
96 } // namespace armnn
ProfilingDynamicGuid RecordWorkloadInferenceAndStartOfLifeEvent(ProfilingGuid workloadGuid, ProfilingGuid inferenceGuid)
void RecordEndOfLifeEvent(ProfilingGuid entityGuid)
ProfilingDynamicGuid CreateConnectionRelationship(ProfilingRelationshipType relationshipType, ProfilingGuid headGuid, ProfilingGuid tailGuid)
Strongly typed guids to distinguish between those generated at runtime, and those that are statically...
Definition: Types.hpp:294
static std::unique_ptr< TimelineUtilityMethods > GetTimelineUtils()
TimelineUtilityMethods & operator=(const TimelineUtilityMethods &other)=delete
Copyright (c) 2020 ARM Limited.
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)
TimelineUtilityMethods(std::unique_ptr< ISendTimelinePacket > &sendTimelinePacket)
ProfilingDynamicGuid CreateRelationship(ProfilingRelationshipType relationshipType, ProfilingGuid headGuid, ProfilingGuid tailGuid)
void MarkEntityWithType(ProfilingGuid entityGuid, ProfilingStaticGuid typeNameGuid)