ArmNN  NotReleased
RegisterBackendCounters.hpp
Go to the documentation of this file.
1 //
2 // Copyright © 2020 Arm Ltd. All rights reserved.
3 // SPDX-License-Identifier: MIT
4 //
5 
6 #pragma once
7 
9 #include "CounterIdMap.hpp"
10 #include "CounterDirectory.hpp"
11 #include "ProfilingService.hpp"
12 
13 namespace armnn
14 {
15 
16 namespace profiling
17 {
18 
20 {
21 public:
22 
23  RegisterBackendCounters(uint16_t currentMaxGlobalCounterID, const BackendId& backendId)
24  : m_CurrentMaxGlobalCounterID(currentMaxGlobalCounterID),
25  m_CounterDirectory(ProfilingService::Instance().GetCounterRegistry()),
26  m_BackendId(backendId) {}
27 
28  ~RegisterBackendCounters() = default;
29 
30  void RegisterCategory(const std::string& categoryName,
31  const Optional<uint16_t>& deviceUid = EmptyOptional(),
32  const Optional<uint16_t>& counterSetUid = EmptyOptional()) override;
33 
34  uint16_t RegisterDevice(const std::string& deviceName,
35  uint16_t cores = 0,
36  const Optional<std::string>& parentCategoryName = EmptyOptional()) override;
37 
38  uint16_t RegisterCounterSet(const std::string& counterSetName,
39  uint16_t count = 0,
40  const Optional<std::string>& parentCategoryName = EmptyOptional()) override;
41 
42  uint16_t RegisterCounter(const uint16_t uid,
43  const std::string& parentCategoryName,
44  uint16_t counterClass,
45  uint16_t interpolation,
46  double multiplier,
47  const std::string& name,
48  const std::string& description,
49  const Optional<std::string>& units = EmptyOptional(),
50  const Optional<uint16_t>& numberOfCores = EmptyOptional(),
51  const Optional<uint16_t>& deviceUid = EmptyOptional(),
52  const Optional<uint16_t>& counterSetUid = EmptyOptional()) override;
53 
54 private:
55  uint16_t m_CurrentMaxGlobalCounterID;
56  ICounterRegistry& m_CounterDirectory;
57  const BackendId& m_BackendId;
58 };
59 
60 } // namespace profiling
61 
62 } // namespace armnn
uint16_t RegisterCounter(const uint16_t uid, const std::string &parentCategoryName, uint16_t counterClass, uint16_t interpolation, double multiplier, const std::string &name, const std::string &description, const Optional< std::string > &units=EmptyOptional(), const Optional< uint16_t > &numberOfCores=EmptyOptional(), const Optional< uint16_t > &deviceUid=EmptyOptional(), const Optional< uint16_t > &counterSetUid=EmptyOptional()) override
RegisterBackendCounters(uint16_t currentMaxGlobalCounterID, const BackendId &backendId)
void RegisterCategory(const std::string &categoryName, const Optional< uint16_t > &deviceUid=EmptyOptional(), const Optional< uint16_t > &counterSetUid=EmptyOptional()) override
uint16_t RegisterCounterSet(const std::string &counterSetName, uint16_t count=0, const Optional< std::string > &parentCategoryName=EmptyOptional()) override
uint16_t RegisterDevice(const std::string &deviceName, uint16_t cores=0, const Optional< std::string > &parentCategoryName=EmptyOptional()) override