diff options
author | Keith Davis <keith.davis@arm.com> | 2021-07-20 11:25:22 +0100 |
---|---|---|
committer | Keith Davis <keith.davis@arm.com> | 2021-08-04 11:49:16 +0100 |
commit | 554fa09a0f3d6c9c572634c9d2de9bfb6c3218b0 (patch) | |
tree | 1820a2cadcc1f34667199acff2d044e5d2083ea2 /include/armnn/IProfiler.hpp | |
parent | 96fd98c28441618fbdf9376fe46a368ef06b19e1 (diff) | |
download | armnn-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.hpp | 12 |
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); |