diff options
author | Narumol Prangnawarat <narumol.prangnawarat@arm.com> | 2019-12-09 17:24:41 +0000 |
---|---|---|
committer | Narumol Prangnawarat <narumol.prangnawarat@arm.com> | 2019-12-10 17:44:50 +0000 |
commit | 60a20fb62c992c4c6369bb7f532957f3e151f3d8 (patch) | |
tree | d9a33cbaeb33a24dddbf099d94f974493ed2cb60 /src/backends | |
parent | ed66d14ec0840282f74241dda46e02194278c3cc (diff) | |
download | armnn-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')
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: |