diff options
Diffstat (limited to 'include')
-rw-r--r-- | include/armnn/IProfiler.hpp | 12 | ||||
-rw-r--r-- | include/armnn/IRuntime.hpp | 48 | ||||
-rw-r--r-- | include/armnn/backends/WorkloadInfo.hpp | 5 |
3 files changed, 44 insertions, 21 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); diff --git a/include/armnn/IRuntime.hpp b/include/armnn/IRuntime.hpp index fcb8c05e30..1bae94374e 100644 --- a/include/armnn/IRuntime.hpp +++ b/include/armnn/IRuntime.hpp @@ -33,44 +33,52 @@ struct INetworkProperties ARMNN_DEPRECATED_MSG("Please use INetworkProperties constructor with MemorySource argument") INetworkProperties(bool importEnabled = false, bool exportEnabled = false, - bool asyncEnabled = false) - : m_ImportEnabled(importEnabled) - , m_ExportEnabled(exportEnabled) - , m_AsyncEnabled(asyncEnabled) - , m_InputSource(m_ImportEnabled ? MemorySource::Malloc : MemorySource::Undefined) - , m_OutputSource(m_ExportEnabled ? MemorySource::Malloc : MemorySource::Undefined) + bool asyncEnabled = false, + bool profilingEnabled = false) + : m_ImportEnabled(importEnabled), + m_ExportEnabled(exportEnabled), + m_AsyncEnabled(asyncEnabled), + m_ProfilingEnabled(profilingEnabled), + m_InputSource(m_ImportEnabled ? MemorySource::Malloc : MemorySource::Undefined), + m_OutputSource(m_ExportEnabled ? MemorySource::Malloc : MemorySource::Undefined) {} ARMNN_DEPRECATED_MSG("Please use INetworkProperties constructor without numThreads argument") INetworkProperties(bool asyncEnabled, MemorySource m_InputSource, MemorySource m_OutputSource, - size_t numThreads) - : m_ImportEnabled(m_InputSource != MemorySource::Undefined) - , m_ExportEnabled(m_OutputSource != MemorySource::Undefined) - , m_AsyncEnabled(asyncEnabled) - , m_InputSource(m_InputSource) - , m_OutputSource(m_OutputSource) + size_t numThreads, + bool profilingEnabled = false) + : m_ImportEnabled(m_InputSource != MemorySource::Undefined), + m_ExportEnabled(m_OutputSource != MemorySource::Undefined), + m_AsyncEnabled(asyncEnabled), + m_ProfilingEnabled(profilingEnabled), + m_InputSource(m_InputSource), + m_OutputSource(m_OutputSource) { armnn::IgnoreUnused(numThreads); } INetworkProperties(bool asyncEnabled, MemorySource m_InputSource, - MemorySource m_OutputSource) - : m_ImportEnabled(m_InputSource != MemorySource::Undefined) - , m_ExportEnabled(m_OutputSource != MemorySource::Undefined) - , m_AsyncEnabled(asyncEnabled) - , m_InputSource(m_InputSource) - , m_OutputSource(m_OutputSource) - {} + MemorySource m_OutputSource, + bool profilingEnabled = false) + : m_ImportEnabled(m_InputSource != MemorySource::Undefined), + m_ExportEnabled(m_OutputSource != MemorySource::Undefined), + m_AsyncEnabled(asyncEnabled), + m_ProfilingEnabled(profilingEnabled), + m_InputSource(m_InputSource), + m_OutputSource(m_OutputSource) + {} /// Deprecated and will be removed in future release. const bool m_ImportEnabled; /// Deprecated and will be removed in future release. const bool m_ExportEnabled; - const bool m_AsyncEnabled; + const bool m_AsyncEnabled; + + const bool m_ProfilingEnabled; const MemorySource m_InputSource; const MemorySource m_OutputSource; diff --git a/include/armnn/backends/WorkloadInfo.hpp b/include/armnn/backends/WorkloadInfo.hpp index edf3581791..1d6967e134 100644 --- a/include/armnn/backends/WorkloadInfo.hpp +++ b/include/armnn/backends/WorkloadInfo.hpp @@ -11,12 +11,15 @@ namespace armnn { -/// Contains information about inputs and outputs to a layer. +/// Contains information about TensorInfos of a layer. /// This is needed at construction of workloads, but are not stored. struct WorkloadInfo { std::vector<TensorInfo> m_InputTensorInfos; std::vector<TensorInfo> m_OutputTensorInfos; + Optional<TensorInfo> m_WeightsTensorInfo = EmptyOptional(); + Optional<TensorInfo> m_BiasTensorInfo = EmptyOptional(); + Optional<std::string> m_ConvolutionMethod = EmptyOptional(); }; } //namespace armnn |