aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAron Virginas-Tar <Aron.Virginas-Tar@arm.com>2019-08-23 15:18:44 +0100
committerAron Virginas-Tar <Aron.Virginas-Tar@arm.com>2019-08-23 15:19:33 +0100
commit1a0f691a24b1514afe4d3ea6e1322357083af526 (patch)
treeb65317c876991eac63e80fc9d026a7e5dc6b6281
parent4e5fc1fb6c74fa6e4dcb24639db8fafd69a0a065 (diff)
downloadarmnn-1a0f691a24b1514afe4d3ea6e1322357083af526.tar.gz
IVGCVSW-3441 Create IProfilingConnection and ProfilingConnectionFactory
Signed-off-by: Aron Virginas-Tar <Aron.Virginas-Tar@arm.com> Change-Id: I912312f31d4fd82b23bafe8e3ec461b179f3e97a
-rw-r--r--CMakeLists.txt3
-rw-r--r--include/armnn/IRuntime.hpp17
-rw-r--r--src/profiling/IProfilingConnection.hpp32
-rw-r--r--src/profiling/ProfilingConnectionFactory.cpp22
-rw-r--r--src/profiling/ProfilingConnectionFactory.hpp32
5 files changed, 106 insertions, 0 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 0d587a7b67..8f08bf22c3 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -420,10 +420,13 @@ list(APPEND armnn_sources
src/profiling/CounterDirectory.cpp
src/profiling/CounterDirectory.hpp
src/profiling/EncodeVersion.hpp
+ src/profiling/IProfilingConnection.hpp
src/profiling/Packet.cpp
src/profiling/Packet.hpp
src/profiling/PacketVersionResolver.cpp
src/profiling/PacketVersionResolver.hpp
+ src/profiling/ProfilingConnectionFactory.cpp
+ src/profiling/ProfilingConnectionFactory.hpp
third-party/half/half.hpp
)
diff --git a/include/armnn/IRuntime.hpp b/include/armnn/IRuntime.hpp
index 3f3c998f3a..41e1c47c5c 100644
--- a/include/armnn/IRuntime.hpp
+++ b/include/armnn/IRuntime.hpp
@@ -44,6 +44,23 @@ public:
// Setting this value will override the paths set by the DYNAMIC_BACKEND_PATHS compiler directive
// Only a single path is allowed for the override
std::string m_DynamicBackendsPath;
+
+ struct ExternalProfilingOptions
+ {
+ ExternalProfilingOptions()
+ : m_EnableProfiling(false)
+ , m_OutgoingCaptureFile("")
+ , m_IncomingCaptureFile("")
+ , m_FileOnly(false)
+ , m_CapturePeriod(150u)
+ {}
+
+ bool m_EnableProfiling;
+ std::string m_OutgoingCaptureFile;
+ std::string m_IncomingCaptureFile;
+ bool m_FileOnly;
+ uint32_t m_CapturePeriod;
+ };
};
static IRuntime* CreateRaw(const CreationOptions& options);
diff --git a/src/profiling/IProfilingConnection.hpp b/src/profiling/IProfilingConnection.hpp
new file mode 100644
index 0000000000..c8387f2a83
--- /dev/null
+++ b/src/profiling/IProfilingConnection.hpp
@@ -0,0 +1,32 @@
+//
+// Copyright © 2017 Arm Ltd. All rights reserved.
+// SPDX-License-Identifier: MIT
+//
+
+#pragma once
+
+#include "Packet.hpp"
+
+#include <cstdint>
+
+namespace armnn
+{
+
+namespace profiling
+{
+
+class IProfilingConnection
+{
+public:
+ virtual bool IsOpen() = 0;
+
+ virtual void Close() = 0;
+
+ virtual bool WritePacket(const char* buffer, uint32_t length) = 0;
+
+ virtual Packet ReadPacket(uint32_t timeout) = 0;
+};
+
+} // namespace profiling
+
+} // namespace armnn
diff --git a/src/profiling/ProfilingConnectionFactory.cpp b/src/profiling/ProfilingConnectionFactory.cpp
new file mode 100644
index 0000000000..1b4924df72
--- /dev/null
+++ b/src/profiling/ProfilingConnectionFactory.cpp
@@ -0,0 +1,22 @@
+//
+// Copyright © 2017 Arm Ltd. All rights reserved.
+// SPDX-License-Identifier: MIT
+//
+
+#include "ProfilingConnectionFactory.hpp"
+
+namespace armnn
+{
+
+namespace profiling
+{
+
+std::unique_ptr<IProfilingConnection> ProfilingConnectionFactory::GetProfilingConnection(
+ const Runtime::CreationOptions::ExternalProfilingOptions& options) const
+{
+ return nullptr;
+}
+
+} // namespace profiling
+
+} // namespace armnn
diff --git a/src/profiling/ProfilingConnectionFactory.hpp b/src/profiling/ProfilingConnectionFactory.hpp
new file mode 100644
index 0000000000..102c82070e
--- /dev/null
+++ b/src/profiling/ProfilingConnectionFactory.hpp
@@ -0,0 +1,32 @@
+//
+// Copyright © 2017 Arm Ltd. All rights reserved.
+// SPDX-License-Identifier: MIT
+//
+
+#pragma once
+
+#include "IProfilingConnection.hpp"
+
+#include <Runtime.hpp>
+
+#include <memory>
+
+namespace armnn
+{
+
+namespace profiling
+{
+
+class ProfilingConnectionFactory final
+{
+public:
+ ProfilingConnectionFactory() = default;
+ ~ProfilingConnectionFactory() = default;
+
+ std::unique_ptr<IProfilingConnection> GetProfilingConnection(
+ const Runtime::CreationOptions::ExternalProfilingOptions& options) const;
+};
+
+} // namespace profiling
+
+} // namespace armnn