aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMatteo Martincigh <matteo.martincigh@arm.com>2019-05-22 14:28:16 +0100
committerMatteo Martincigh <matteo.martincigh@arm.com>2019-05-22 16:00:33 +0100
commitc3ba50e5e6e96ae057ccdb3761bf41a5691a53f0 (patch)
treed5750497300baf12f5958a021e887d375771d436
parent38a92584d5ac242e47a2fe1b6fee1cb136d51279 (diff)
downloadarmnn-c3ba50e5e6e96ae057ccdb3761bf41a5691a53f0.tar.gz
IVGCVSW-3132 Reintroduce SubGraph definition, but deprecated
* Restored old SubGraph class definition as an alias of SubgraphView for backward compatibility * Restored SubGraphUniquePtr * Restored CreateSubGraphConverter method (and the corresponding ISubGraphConverterPtr type) as a deprecated method that's been removed from the backend interface * Chaged the defautl implementation of OptimizeSubgraphView to call the deprecated OptimizeSubGraph * Changed the default implementation of OptimizeSubgraphView in the backends Change-Id: If69903926bf5ff2aae52c9b64b4572b355662757 Signed-off-by: Matteo Martincigh <matteo.martincigh@arm.com>
-rw-r--r--src/armnn/ISubgraphViewConverter.hpp7
-rw-r--r--src/armnn/SubgraphView.hpp5
-rw-r--r--src/backends/backendsCommon/IBackendInternal.hpp35
-rw-r--r--src/backends/cl/ClBackend.cpp10
-rw-r--r--src/backends/cl/ClBackend.hpp3
-rw-r--r--src/backends/neon/NeonBackend.cpp10
-rw-r--r--src/backends/neon/NeonBackend.hpp3
-rw-r--r--src/backends/reference/RefBackend.cpp10
-rw-r--r--src/backends/reference/RefBackend.hpp3
9 files changed, 54 insertions, 32 deletions
diff --git a/src/armnn/ISubgraphViewConverter.hpp b/src/armnn/ISubgraphViewConverter.hpp
index 4b2c10298d..34789a2b28 100644
--- a/src/armnn/ISubgraphViewConverter.hpp
+++ b/src/armnn/ISubgraphViewConverter.hpp
@@ -5,6 +5,8 @@
#pragma once
+#include <armnn/Deprecated.hpp>
+
#include <memory>
#include <vector>
#include <functional>
@@ -23,4 +25,9 @@ public:
virtual std::vector<CompiledBlobPtr> CompileNetwork() = 0;
};
+///
+/// Old ISubGraphConverter definition kept for backward compatibility only.
+///
+using ISubGraphConverter ARMNN_DEPRECATED_MSG("This type is no longer supported") = ISubgraphViewConverter;
+
} // namespace armnn
diff --git a/src/armnn/SubgraphView.hpp b/src/armnn/SubgraphView.hpp
index f29e0a18ae..1b9c308daa 100644
--- a/src/armnn/SubgraphView.hpp
+++ b/src/armnn/SubgraphView.hpp
@@ -96,4 +96,9 @@ private:
Layers m_Layers;
};
+///
+/// Old SubGraph definition kept for backward compatibility only.
+///
+using SubGraph ARMNN_DEPRECATED_MSG("SubGraph is deprecated, use SubgraphView instead") = SubgraphView;
+
} // namespace armnn
diff --git a/src/backends/backendsCommon/IBackendInternal.hpp b/src/backends/backendsCommon/IBackendInternal.hpp
index 72214b891e..fe9d620278 100644
--- a/src/backends/backendsCommon/IBackendInternal.hpp
+++ b/src/backends/backendsCommon/IBackendInternal.hpp
@@ -47,33 +47,46 @@ public:
using GraphUniquePtr = std::unique_ptr<Graph>;
using SubgraphViewUniquePtr = std::unique_ptr<SubgraphView>;
- virtual IMemoryManagerUniquePtr CreateMemoryManager() const = 0;
-
- virtual IWorkloadFactoryPtr CreateWorkloadFactory(
- const IMemoryManagerSharedPtr& memoryManager = nullptr) const = 0;
-
- virtual IBackendContextPtr CreateBackendContext(const IRuntime::CreationOptions&) const = 0;
-
- virtual ILayerSupportSharedPtr GetLayerSupport() const = 0;
+ ARMNN_NO_DEPRECATE_WARN_BEGIN
+ using ISubGraphConverterPtr ARMNN_DEPRECATED_MSG("This type is no longer supported")
+ = std::unique_ptr<ISubGraphConverter>;
+ using SubGraphUniquePtr ARMNN_DEPRECATED_MSG("SubGraph is deprecated, use SubgraphView instead")
+ = std::unique_ptr<SubGraph>;
+
+ ARMNN_DEPRECATED_MSG("This method is no longer supported")
+ virtual ISubGraphConverterPtr CreateSubGraphConverter(const std::shared_ptr<SubGraph>& subGraph) const
+ {
+ return ISubGraphConverterPtr{};
+ }
ARMNN_DEPRECATED_MSG("Use \"OptimizationViews OptimizeSubgraphView(const SubgraphView&)\" instead")
virtual Optimizations GetOptimizations() const = 0;
ARMNN_DEPRECATED_MSG("Use \"OptimizationViews OptimizeSubgraphView(const SubgraphView&)\" instead")
- virtual SubgraphViewUniquePtr OptimizeSubgraphView(const SubgraphView& subgraph, bool& optimizationAttempted) const
+ virtual SubGraphUniquePtr OptimizeSubGraph(const SubGraph& subGraph, bool& optimizationAttempted) const
{
optimizationAttempted = false;
return nullptr;
}
+ ARMNN_NO_DEPRECATE_WARN_END
+
+ virtual IMemoryManagerUniquePtr CreateMemoryManager() const = 0;
+
+ virtual IWorkloadFactoryPtr CreateWorkloadFactory(
+ const IMemoryManagerSharedPtr& memoryManager = nullptr) const = 0;
+
+ virtual IBackendContextPtr CreateBackendContext(const IRuntime::CreationOptions&) const = 0;
+
+ virtual ILayerSupportSharedPtr GetLayerSupport() const = 0;
- // Default implementation of OptimizeSubgraphView for backward compatibility with old API.
+ // Default implementation of OptimizeSubgraphView for backward compatibility with the old API.
// Override this method with a custom optimization implementation.
virtual OptimizationViews OptimizeSubgraphView(const SubgraphView& subgraph) const
{
bool optimizationAttempted = false;
ARMNN_NO_DEPRECATE_WARN_BEGIN
- SubgraphViewUniquePtr optSubgraph = OptimizeSubgraphView(subgraph, optimizationAttempted);
+ SubGraphUniquePtr optSubgraph = OptimizeSubGraph(subgraph, optimizationAttempted);
ARMNN_NO_DEPRECATE_WARN_END
OptimizationViews result;
diff --git a/src/backends/cl/ClBackend.cpp b/src/backends/cl/ClBackend.cpp
index 5d87d27381..332ae1e679 100644
--- a/src/backends/cl/ClBackend.cpp
+++ b/src/backends/cl/ClBackend.cpp
@@ -74,13 +74,13 @@ IBackendInternal::ILayerSupportSharedPtr ClBackend::GetLayerSupport() const
return layerSupport;
}
-IBackendInternal::SubgraphViewUniquePtr ClBackend::OptimizeSubgraphView(const SubgraphView& subgraph,
- bool& optimizationAttempted) const
+OptimizationViews ClBackend::OptimizeSubgraphView(const SubgraphView& subgraph) const
{
- // Not trying to optimize the given sub-graph
- optimizationAttempted = false;
+ OptimizationViews optimizationViews;
- return SubgraphViewUniquePtr{};
+ optimizationViews.AddUntouchedSubgraph(SubgraphView(subgraph));
+
+ return optimizationViews;
}
} // namespace armnn
diff --git a/src/backends/cl/ClBackend.hpp b/src/backends/cl/ClBackend.hpp
index 171c7d5737..12e8d8ef5a 100644
--- a/src/backends/cl/ClBackend.hpp
+++ b/src/backends/cl/ClBackend.hpp
@@ -28,8 +28,7 @@ public:
IBackendInternal::Optimizations GetOptimizations() const override;
IBackendInternal::ILayerSupportSharedPtr GetLayerSupport() const override;
- IBackendInternal::SubgraphViewUniquePtr OptimizeSubgraphView(const SubgraphView& subgraph,
- bool& optimizationAttempted) const override;
+ OptimizationViews OptimizeSubgraphView(const SubgraphView& subgraph) const override;
};
} // namespace armnn
diff --git a/src/backends/neon/NeonBackend.cpp b/src/backends/neon/NeonBackend.cpp
index 8defac1e60..d7be844c21 100644
--- a/src/backends/neon/NeonBackend.cpp
+++ b/src/backends/neon/NeonBackend.cpp
@@ -74,13 +74,13 @@ IBackendInternal::ILayerSupportSharedPtr NeonBackend::GetLayerSupport() const
return layerSupport;
}
-IBackendInternal::SubgraphViewUniquePtr NeonBackend::OptimizeSubgraphView(const SubgraphView& subgraph,
- bool& optimizationAttempted) const
+OptimizationViews NeonBackend::OptimizeSubgraphView(const SubgraphView& subgraph) const
{
- // Not trying to optimize the given sub-graph
- optimizationAttempted = false;
+ OptimizationViews optimizationViews;
- return SubgraphViewUniquePtr{};
+ optimizationViews.AddUntouchedSubgraph(SubgraphView(subgraph));
+
+ return optimizationViews;
}
} // namespace armnn
diff --git a/src/backends/neon/NeonBackend.hpp b/src/backends/neon/NeonBackend.hpp
index 0d03c2565e..398337f775 100644
--- a/src/backends/neon/NeonBackend.hpp
+++ b/src/backends/neon/NeonBackend.hpp
@@ -28,8 +28,7 @@ public:
IBackendInternal::Optimizations GetOptimizations() const override;
IBackendInternal::ILayerSupportSharedPtr GetLayerSupport() const override;
- IBackendInternal::SubgraphViewUniquePtr OptimizeSubgraphView(const SubgraphView& subgraph,
- bool& optimizationAttempted) const override;
+ OptimizationViews OptimizeSubgraphView(const SubgraphView& subgraph) const override;
};
} // namespace armnn
diff --git a/src/backends/reference/RefBackend.cpp b/src/backends/reference/RefBackend.cpp
index d7de161dec..0a296be016 100644
--- a/src/backends/reference/RefBackend.cpp
+++ b/src/backends/reference/RefBackend.cpp
@@ -67,13 +67,13 @@ IBackendInternal::ILayerSupportSharedPtr RefBackend::GetLayerSupport() const
return layerSupport;
}
-IBackendInternal::SubgraphViewUniquePtr RefBackend::OptimizeSubgraphView(const SubgraphView& subgraph,
- bool& optimizationAttempted) const
+OptimizationViews RefBackend::OptimizeSubgraphView(const SubgraphView& subgraph) const
{
- // Not trying to optimize the given sub-graph
- optimizationAttempted = false;
+ OptimizationViews optimizationViews;
- return SubgraphViewUniquePtr{};
+ optimizationViews.AddUntouchedSubgraph(SubgraphView(subgraph));
+
+ return optimizationViews;
}
} // namespace armnn
diff --git a/src/backends/reference/RefBackend.hpp b/src/backends/reference/RefBackend.hpp
index af756e8dab..06179bd939 100644
--- a/src/backends/reference/RefBackend.hpp
+++ b/src/backends/reference/RefBackend.hpp
@@ -28,8 +28,7 @@ public:
IBackendInternal::Optimizations GetOptimizations() const override;
IBackendInternal::ILayerSupportSharedPtr GetLayerSupport() const override;
- IBackendInternal::SubgraphViewUniquePtr OptimizeSubgraphView(const SubgraphView& subgraph,
- bool& optimizationAttempted) const override;
+ OptimizationViews OptimizeSubgraphView(const SubgraphView& subgraph) const override;
};
} // namespace armnn