2 // Copyright © 2019 Arm Ltd. All rights reserved.
3 // SPDX-License-Identifier: MIT
8 #include "ProfilingUtils.hpp"
11 #include <armnn/BackendId.hpp>
12 #include <armnn/Optional.hpp>
13 #include <armnn/Types.hpp>
14 #include <BufferManager.hpp>
15 #include <ProfilingService.hpp>
17 using namespace armnn;
18 using namespace armnn::profiling;
20 uint32_t GetStreamMetaDataPacketSize();
22 inline unsigned int OffsetToNextWord(unsigned int numberOfBytes);
24 void VerifyTimelineHeaderBinary(const unsigned char* readableData,
26 uint32_t packetDataLength);
28 void VerifyTimelineLabelBinaryPacketData(Optional<ProfilingGuid> guid,
29 const std::string& label,
30 const unsigned char* readableData,
31 unsigned int& offset);
33 void VerifyTimelineEventClassBinaryPacketData(ProfilingGuid guid,
34 const unsigned char* readableData,
35 unsigned int& offset);
37 void VerifyTimelineRelationshipBinaryPacketData(ProfilingRelationshipType relationshipType,
38 Optional<ProfilingGuid> relationshipGuid,
39 Optional<ProfilingGuid> headGuid,
40 Optional<ProfilingGuid> tailGuid,
41 const unsigned char* readableData,
42 unsigned int& offset);
44 void VerifyTimelineEntityBinaryPacketData(Optional<ProfilingGuid> guid,
45 const unsigned char* readableData,
46 unsigned int& offset);
48 void VerifyTimelineEventBinaryPacket(Optional<uint64_t> timestamp,
49 Optional<std::thread::id> threadId,
50 Optional<ProfilingGuid> eventGuid,
51 const unsigned char* readableData,
52 unsigned int& offset);
54 void VerifyPostOptimisationStructureTestImpl(armnn::BackendId backendId);
62 class ProfilingServiceRuntimeHelper : public ProfilingService
65 ProfilingServiceRuntimeHelper(ProfilingService& profilingService)
66 : m_ProfilingService(profilingService) {}
67 ~ProfilingServiceRuntimeHelper() = default;
69 BufferManager& GetProfilingBufferManager()
71 return GetBufferManager(m_ProfilingService);
73 armnn::profiling::ProfilingService& m_ProfilingService;
75 void ForceTransitionToState(ProfilingState newState)
77 TransitionToState(m_ProfilingService, newState);
81 } // namespace profiling