IVGCVSW-6249 Add ProfilingDetails Macros to all workloads in Ref, Neon, CL

 * Add functionality to only output network details in ExNet

Signed-off-by: Keith Davis <keith.davis@arm.com>
Change-Id: I0c45e67193f308ce7b86f1bb1a918a266fefba2e
diff --git a/include/armnn/IProfiler.hpp b/include/armnn/IProfiler.hpp
index 5fbb670..1b450d0 100644
--- a/include/armnn/IProfiler.hpp
+++ b/include/armnn/IProfiler.hpp
@@ -40,8 +40,8 @@
     void Print(std::ostream& outStream) const;
 
     /// Print out details of each layer within the network that possesses a descriptor.
-    /// Also outputs tensor info.
-    void EnableNetworkDetailsToStdOut();
+    /// Also outputs tensor info. This will be part of the profiling json output
+    void EnableNetworkDetailsToStdOut(ProfilingDetailsMethod detailsMethod);
 
     ~IProfiler();
     IProfiler();
diff --git a/include/armnn/IRuntime.hpp b/include/armnn/IRuntime.hpp
index 97a9c28..345cdeb 100644
--- a/include/armnn/IRuntime.hpp
+++ b/include/armnn/IRuntime.hpp
@@ -40,7 +40,7 @@
           m_ExportEnabled(exportEnabled),
           m_AsyncEnabled(asyncEnabled),
           m_ProfilingEnabled(profilingEnabled),
-          m_OutputNetworkDetails(false),
+          m_OutputNetworkDetailsMethod(ProfilingDetailsMethod::Undefined),
           m_InputSource(m_ImportEnabled ? MemorySource::Malloc : MemorySource::Undefined),
           m_OutputSource(m_ExportEnabled ? MemorySource::Malloc : MemorySource::Undefined)
     {}
@@ -55,7 +55,7 @@
           m_ExportEnabled(outputSource != MemorySource::Undefined),
           m_AsyncEnabled(asyncEnabled),
           m_ProfilingEnabled(profilingEnabled),
-          m_OutputNetworkDetails(false),
+          m_OutputNetworkDetailsMethod(ProfilingDetailsMethod::Undefined),
           m_InputSource(inputSource),
           m_OutputSource(outputSource)
     {
@@ -66,12 +66,12 @@
                        MemorySource inputSource,
                        MemorySource outputSource,
                        bool profilingEnabled = false,
-                       bool outputDetails = false)
+                       ProfilingDetailsMethod detailsMethod = ProfilingDetailsMethod::Undefined)
         : m_ImportEnabled(inputSource != MemorySource::Undefined),
           m_ExportEnabled(outputSource != MemorySource::Undefined),
           m_AsyncEnabled(asyncEnabled),
           m_ProfilingEnabled(profilingEnabled),
-          m_OutputNetworkDetails(outputDetails),
+          m_OutputNetworkDetailsMethod(detailsMethod),
           m_InputSource(inputSource),
           m_OutputSource(outputSource)
     {}
@@ -85,7 +85,7 @@
 
     const bool m_ProfilingEnabled;
 
-    const bool m_OutputNetworkDetails;
+    const ProfilingDetailsMethod m_OutputNetworkDetailsMethod;
 
     const MemorySource m_InputSource;
     const MemorySource m_OutputSource;
diff --git a/include/armnn/Types.hpp b/include/armnn/Types.hpp
index 056aa83..5e00026 100644
--- a/include/armnn/Types.hpp
+++ b/include/armnn/Types.hpp
@@ -56,6 +56,15 @@
     NHWC = 2
 };
 
+/// Define the behaviour of the internal profiler when outputting network details
+enum class ProfilingDetailsMethod
+{
+    Undefined = 0,
+    DetailsWithEvents = 1,
+    DetailsOnly = 2
+};
+
+
 enum class QosExecPriority
 {
     Low    = 0,