aboutsummaryrefslogtreecommitdiff
path: root/src/backends
diff options
context:
space:
mode:
authorNarumol Prangnawarat <narumol.prangnawarat@arm.com>2019-12-09 17:24:41 +0000
committerNarumol Prangnawarat <narumol.prangnawarat@arm.com>2019-12-10 17:44:50 +0000
commit60a20fb62c992c4c6369bb7f532957f3e151f3d8 (patch)
treed9a33cbaeb33a24dddbf099d94f974493ed2cb60 /src/backends
parented66d14ec0840282f74241dda46e02194278c3cc (diff)
downloadarmnn-60a20fb62c992c4c6369bb7f532957f3e151f3d8.tar.gz
IVGCVSW-4212 Example of standalone dynamic reference backend
* Add example to build dynamic reference backend * Add functions to clear dynamic backends * Fix the error when dynamic backend is not deregistered * Add DYARMNN_DYNAMIC_BACKEND_ENABLED to check disable empty dynamic backend when dynamic backend is enabled Signed-off-by: Narumol Prangnawarat <narumol.prangnawarat@arm.com> Change-Id: I1ef3a3f10ed6ca5ec18d0af04b007fc3bc71a3cb
Diffstat (limited to 'src/backends')
-rw-r--r--src/backends/backendsCommon/DynamicBackendUtils.cpp12
-rw-r--r--src/backends/backendsCommon/DynamicBackendUtils.hpp1
-rw-r--r--src/backends/backendsCommon/test/DynamicBackendTests.cpp2
-rw-r--r--src/backends/backendsCommon/test/DynamicBackendTests.hpp4
-rw-r--r--src/backends/backendsCommon/test/OptimizationViewsTests.cpp10
5 files changed, 21 insertions, 8 deletions
diff --git a/src/backends/backendsCommon/DynamicBackendUtils.cpp b/src/backends/backendsCommon/DynamicBackendUtils.cpp
index ab0006d739..f893458b88 100644
--- a/src/backends/backendsCommon/DynamicBackendUtils.cpp
+++ b/src/backends/backendsCommon/DynamicBackendUtils.cpp
@@ -310,6 +310,18 @@ std::vector<DynamicBackendPtr> DynamicBackendUtils::CreateDynamicBackends(const
return dynamicBackends;
}
+void DynamicBackendUtils::DeregisterDynamicBackends(const BackendIdSet& dynamicBackends)
+{
+ // Get a reference of the backend registry
+ BackendRegistry& backendRegistry = BackendRegistryInstance();
+
+ for (const auto& id : dynamicBackends)
+ {
+ backendRegistry.Deregister(id);
+ }
+
+}
+
BackendIdSet DynamicBackendUtils::RegisterDynamicBackends(const std::vector<DynamicBackendPtr>& dynamicBackends)
{
// Get a reference of the backend registry
diff --git a/src/backends/backendsCommon/DynamicBackendUtils.hpp b/src/backends/backendsCommon/DynamicBackendUtils.hpp
index 2763b9d7d2..f4cdd4db0c 100644
--- a/src/backends/backendsCommon/DynamicBackendUtils.hpp
+++ b/src/backends/backendsCommon/DynamicBackendUtils.hpp
@@ -42,6 +42,7 @@ public:
static std::vector<DynamicBackendPtr> CreateDynamicBackends(const std::vector<std::string>& sharedObjects);
static BackendIdSet RegisterDynamicBackends(const std::vector<DynamicBackendPtr>& dynamicBackends);
+ static void DeregisterDynamicBackends(const BackendIdSet& dynamicBackends);
protected:
/// Protected methods for testing purposes
diff --git a/src/backends/backendsCommon/test/DynamicBackendTests.cpp b/src/backends/backendsCommon/test/DynamicBackendTests.cpp
index c6606be9ff..40e063d8c4 100644
--- a/src/backends/backendsCommon/test/DynamicBackendTests.cpp
+++ b/src/backends/backendsCommon/test/DynamicBackendTests.cpp
@@ -55,7 +55,9 @@ ARMNN_SIMPLE_TEST_CASE(RegisterMultipleDynamicBackends, RegisterMultipleDynamicB
ARMNN_SIMPLE_TEST_CASE(RegisterMultipleInvalidDynamicBackends, RegisterMultipleInvalidDynamicBackendsTestImpl);
ARMNN_SIMPLE_TEST_CASE(RegisterMixedDynamicBackends, RegisterMixedDynamicBackendsTestImpl);
+#if !defined(ARMNN_DYNAMIC_BACKEND_ENABLED)
ARMNN_SIMPLE_TEST_CASE(RuntimeEmpty, RuntimeEmptyTestImpl);
+#endif
ARMNN_SIMPLE_TEST_CASE(RuntimeDynamicBackends, RuntimeDynamicBackendsTestImpl);
ARMNN_SIMPLE_TEST_CASE(RuntimeDuplicateDynamicBackends, RuntimeDuplicateDynamicBackendsTestImpl);
ARMNN_SIMPLE_TEST_CASE(RuntimeInvalidDynamicBackends, RuntimeInvalidDynamicBackendsTestImpl);
diff --git a/src/backends/backendsCommon/test/DynamicBackendTests.hpp b/src/backends/backendsCommon/test/DynamicBackendTests.hpp
index 561578e841..4238ef6f7d 100644
--- a/src/backends/backendsCommon/test/DynamicBackendTests.hpp
+++ b/src/backends/backendsCommon/test/DynamicBackendTests.hpp
@@ -1198,6 +1198,8 @@ void RegisterMixedDynamicBackendsTestImpl()
}
}
+#if !defined(ARMNN_DYNAMIC_BACKEND_ENABLED)
+
void RuntimeEmptyTestImpl()
{
using namespace armnn;
@@ -1218,6 +1220,8 @@ void RuntimeEmptyTestImpl()
BOOST_TEST(backendRegistry.Size() == 0);
}
+#endif
+
void RuntimeDynamicBackendsTestImpl()
{
using namespace armnn;
diff --git a/src/backends/backendsCommon/test/OptimizationViewsTests.cpp b/src/backends/backendsCommon/test/OptimizationViewsTests.cpp
index 5474f5ddac..639e1fd59e 100644
--- a/src/backends/backendsCommon/test/OptimizationViewsTests.cpp
+++ b/src/backends/backendsCommon/test/OptimizationViewsTests.cpp
@@ -25,14 +25,8 @@ void CheckLayers(Graph& graph)
{
case LayerType::Input:
++m_inputLayerCount;
- if (layer->GetGuid() == profiling::ProfilingGuid(0))
- {
- BOOST_TEST(layer->GetName() == "inLayer0");
- }
- else if (layer->GetGuid() == profiling::ProfilingGuid(1))
- {
- BOOST_TEST(layer->GetName() == "inLayer1");
- }
+ BOOST_TEST((layer->GetName() == std::string("inLayer0") ||
+ layer->GetName() == std::string("inLayer1")));
break;
// The Addition layer should become a PreCompiled Layer after Optimisation
case LayerType::PreCompiled: