blob: 83bc33587ca3b8e62a625eaee3576fdee1ce8304 [file] [log] [blame]
Jim Flynn97897022020-02-02 12:52:59 +00001//
2// Copyright © 2020 Arm Ltd. All rights reserved.
3// SPDX-License-Identifier: MIT
4//
5
6#pragma once
7
8#include <armnn/Optional.hpp>
9#include <armnn/BackendId.hpp>
10
11namespace armnn
12{
13
14namespace profiling
15{
16
17class ICounterRegistry
18{
19public:
20 virtual ~ICounterRegistry() {}
21
22 // Register profiling objects
Sadik Armagan4c998992020-02-25 12:44:44 +000023 virtual const Category* RegisterCategory (const std::string& categoryName) = 0;
Jim Flynn97897022020-02-02 12:52:59 +000024
25 virtual const Device* RegisterDevice (const std::string& deviceName,
26 uint16_t cores,
27 const Optional<std::string>& parentCategoryName) = 0;
28
29 virtual const CounterSet* RegisterCounterSet(const std::string& counterSetName,
30 uint16_t count,
31 const Optional<std::string>& parentCategoryName) = 0;
32
33 virtual const Counter* RegisterCounter(const BackendId& backendId,
34 const uint16_t uid,
35 const std::string& parentCategoryName,
36 uint16_t counterClass,
37 uint16_t interpolation,
38 double multiplier,
39 const std::string& name,
40 const std::string& description,
41 const Optional<std::string>& units,
42 const Optional<uint16_t>& numberOfCores,
43 const Optional<uint16_t>& deviceUid,
44 const Optional<uint16_t>& counterSetUid) = 0;
45
46};
47
48} // namespace profiling
49
50} // namespace armnn