aboutsummaryrefslogtreecommitdiff
path: root/include/armnn/IProfiler.hpp
diff options
context:
space:
mode:
authorKeith Davis <keith.davis@arm.com>2021-07-20 11:25:22 +0100
committerKeith Davis <keith.davis@arm.com>2021-08-04 11:49:16 +0100
commit554fa09a0f3d6c9c572634c9d2de9bfb6c3218b0 (patch)
tree1820a2cadcc1f34667199acff2d044e5d2083ea2 /include/armnn/IProfiler.hpp
parent96fd98c28441618fbdf9376fe46a368ef06b19e1 (diff)
downloadarmnn-554fa09a0f3d6c9c572634c9d2de9bfb6c3218b0.tar.gz
IVGCVSW-5980 JSON profiling output
* Add new ProfilingDetails class to construct operator details string * Add new macro which helps append layer details to ostream * Add ProfilingEnabled to NetworkProperties so that profiling can be realised when loading the network * Add further optional info to WorkloadInfo specific to convolutions * Generalise some JsonPrinter functions into JsonUtils for reusability * Remove explicit enabling of profiling within InferenceModel as it is done when loading network * Add ProfilingDetails macros to ConvolutionWorkloads for validation Signed-off-by: Keith Davis <keith.davis@arm.com> Change-Id: Ie84bc7dc667e72e6bcb635544f9ead7af1765690
Diffstat (limited to 'include/armnn/IProfiler.hpp')
-rw-r--r--include/armnn/IProfiler.hpp12
1 files changed, 12 insertions, 0 deletions
diff --git a/include/armnn/IProfiler.hpp b/include/armnn/IProfiler.hpp
index ac422b714f..1d350855f6 100644
--- a/include/armnn/IProfiler.hpp
+++ b/include/armnn/IProfiler.hpp
@@ -16,6 +16,8 @@ class ProfilerImpl;
class BackendId;
class Instrument;
class Event;
+struct WorkloadInfo;
+
class IProfiler
{
public:
@@ -41,12 +43,22 @@ public:
IProfiler();
private:
+
using InstrumentPtr = std::unique_ptr<Instrument>;
+
+ template<typename DescriptorType>
+ void AddLayerDetails(const std::string& name,
+ const DescriptorType& desc,
+ const WorkloadInfo& infos);
+
Event* BeginEvent(const BackendId& backendId,
const std::string& label,
std::vector<InstrumentPtr>&& instruments);
+
std::unique_ptr<ProfilerImpl> pProfilerImpl;
+
friend class ScopedProfilingEvent;
+ friend class ScopedProfilingUpdateDescriptions;
// Friend functions for unit testing, see ProfilerTests.cpp.
friend size_t GetProfilerEventSequenceSize(armnn::IProfiler* profiler);