aboutsummaryrefslogtreecommitdiff
path: root/delegate/include/armnn_delegate.hpp
diff options
context:
space:
mode:
authorTeresa Charlin <teresa.charlinreyes@arm.com>2023-03-14 12:10:28 +0000
committerTeresa Charlin <teresa.charlinreyes@arm.com>2023-03-28 11:41:55 +0100
commitad1b3d7518429e2d16a2695d9b0bbf81b6565ac9 (patch)
treea5b8e1ad68a2437f007338f0b6195ca5ed2bddc3 /delegate/include/armnn_delegate.hpp
parent9cb3466b677a1048b8abb24661e92c4c83fdda04 (diff)
downloadarmnn-ad1b3d7518429e2d16a2695d9b0bbf81b6565ac9.tar.gz
IVGCVSW-7555 Restructure Delegate
* New folders created: * common is for common code where TfLite API is not used * classic is for existing delegate implementations * opaque is for new opaque delegate implementation, * tests is for shared between existing Delegate and Opaque Delegate which have test utils to work which delegate to use. * Existing delegate is built to libarmnnDelegate.so and opaque delegate is built as libarmnnOpaqueDelegate.so * Opaque structure is introduced but no API is added yet. * CmakeList.txt and delegate/CMakeList.txt have been modified and 2 new CmakeList.txt added * Rename BUILD_ARMNN_TFLITE_DELEGATE as BUILD_CLASSIC_DELEGATE * Rename BUILD_ARMNN_TFLITE_OPAQUE_DELEGATE as BUILD_OPAQUE_DELEGATE Signed-off-by: Teresa Charlin <teresa.charlinreyes@arm.com> Change-Id: Ib682b9ad0ac8d8acdc4ec6d9099bb0008a9fe8ed
Diffstat (limited to 'delegate/include/armnn_delegate.hpp')
-rw-r--r--delegate/include/armnn_delegate.hpp141
1 files changed, 3 insertions, 138 deletions
diff --git a/delegate/include/armnn_delegate.hpp b/delegate/include/armnn_delegate.hpp
index 9cfc397550..fd071eb24a 100644
--- a/delegate/include/armnn_delegate.hpp
+++ b/delegate/include/armnn_delegate.hpp
@@ -3,141 +3,6 @@
// SPDX-License-Identifier: MIT
//
-#pragma once
-
-#include "DelegateOptions.hpp"
-
-#include <tensorflow/lite/builtin_ops.h>
-#include <tensorflow/lite/c/builtin_op_data.h>
-#include <tensorflow/lite/c/common.h>
-#include <tensorflow/lite/minimal_logging.h>
-#include <tensorflow/lite/version.h>
-
-#if TF_MAJOR_VERSION > 2 || (TF_MAJOR_VERSION == 2 && TF_MINOR_VERSION > 3)
-#define ARMNN_POST_TFLITE_2_3
-#endif
-
-#if TF_MAJOR_VERSION > 2 || (TF_MAJOR_VERSION == 2 && TF_MINOR_VERSION > 4)
-#define ARMNN_POST_TFLITE_2_4
-#endif
-
-#if TF_MAJOR_VERSION > 2 || (TF_MAJOR_VERSION == 2 && TF_MINOR_VERSION > 5)
-#define ARMNN_POST_TFLITE_2_5
-#endif
-
-namespace armnnDelegate
-{
-
-struct DelegateData
-{
- DelegateData(const std::vector<armnn::BackendId>& backends)
- : m_Backends(backends)
- , m_Network(nullptr, nullptr)
- {}
-
- const std::vector<armnn::BackendId> m_Backends;
- armnn::INetworkPtr m_Network;
- std::vector<armnn::IOutputSlot*> m_OutputSlotForNode;
-};
-
-// Forward decleration for functions initializing the ArmNN Delegate
-DelegateOptions TfLiteArmnnDelegateOptionsDefault();
-
-TfLiteDelegate* TfLiteArmnnDelegateCreate(armnnDelegate::DelegateOptions options);
-
-void TfLiteArmnnDelegateDelete(TfLiteDelegate* tfLiteDelegate);
-
-TfLiteStatus DoPrepare(TfLiteContext* context, TfLiteDelegate* delegate);
-
-/// ArmNN Delegate
-class Delegate
-{
- friend class ArmnnSubgraph;
-public:
- explicit Delegate(armnnDelegate::DelegateOptions options);
-
- TfLiteIntArray* IdentifyOperatorsToDelegate(TfLiteContext* context);
-
- TfLiteDelegate* GetDelegate();
-
- /// Retrieve version in X.Y.Z form
- static const std::string GetVersion();
-
-private:
- /**
- * Returns a pointer to the armnn::IRuntime* this will be shared by all armnn_delegates.
- */
- armnn::IRuntime* GetRuntime(const armnn::IRuntime::CreationOptions& options)
- {
- static armnn::IRuntimePtr instance = armnn::IRuntime::Create(options);
- // Instantiated on first use.
- return instance.get();
- }
-
- TfLiteDelegate m_Delegate = {
- reinterpret_cast<void*>(this), // .data_
- DoPrepare, // .Prepare
- nullptr, // .CopyFromBufferHandle
- nullptr, // .CopyToBufferHandle
- nullptr, // .FreeBufferHandle
- kTfLiteDelegateFlagsNone, // .flags
- nullptr, // .opaque_delegate_builder
- };
-
- /// ArmNN Runtime pointer
- armnn::IRuntime* m_Runtime;
- /// ArmNN Delegate Options
- armnnDelegate::DelegateOptions m_Options;
-};
-
-/// ArmnnSubgraph class where parsing the nodes to ArmNN format and creating the ArmNN Graph
-class ArmnnSubgraph
-{
-public:
- static ArmnnSubgraph* Create(TfLiteContext* tfLiteContext,
- const TfLiteDelegateParams* parameters,
- const Delegate* delegate);
-
- TfLiteStatus Prepare(TfLiteContext* tfLiteContext);
-
- TfLiteStatus Invoke(TfLiteContext* tfLiteContext, TfLiteNode* tfLiteNode);
-
- static TfLiteStatus VisitNode(DelegateData& delegateData,
- TfLiteContext* tfLiteContext,
- TfLiteRegistration* tfLiteRegistration,
- TfLiteNode* tfLiteNode,
- int nodeIndex);
-
-private:
- ArmnnSubgraph(armnn::NetworkId networkId,
- armnn::IRuntime* runtime,
- std::vector<armnn::BindingPointInfo>& inputBindings,
- std::vector<armnn::BindingPointInfo>& outputBindings)
- : m_NetworkId(networkId), m_Runtime(runtime), m_InputBindings(inputBindings), m_OutputBindings(outputBindings)
- {}
-
- static TfLiteStatus AddInputLayer(DelegateData& delegateData,
- TfLiteContext* tfLiteContext,
- const TfLiteIntArray* inputs,
- std::vector<armnn::BindingPointInfo>& inputBindings);
-
- static TfLiteStatus AddOutputLayer(DelegateData& delegateData,
- TfLiteContext* tfLiteContext,
- const TfLiteIntArray* outputs,
- std::vector<armnn::BindingPointInfo>& outputBindings);
-
-
- /// The Network Id
- armnn::NetworkId m_NetworkId;
- /// ArmNN Rumtime
- armnn::IRuntime* m_Runtime;
-
- // Binding information for inputs and outputs
- std::vector<armnn::BindingPointInfo> m_InputBindings;
- std::vector<armnn::BindingPointInfo> m_OutputBindings;
-
-};
-
-} // armnnDelegate namespace
-
-
+#include <armnn/delegate/classic/include/armnn_delegate.hpp>
+#pragma message("armnn/delegate/include/armnn_delegate.hpp has been deprecated, it is due for removal in"\
+ " 24.02 release. Please use public interface ") \ No newline at end of file