From ab3bd4d48e75f75c1729a177b35aff61ed0fcd4e Mon Sep 17 00:00:00 2001 From: Sadik Armagan Date: Tue, 25 Aug 2020 11:48:00 +0100 Subject: IVGCVSW-5109 'Add SupportsInPlaceComputation to TensorHandleFactories' * Added functionality to query if TensorHandleFactory supports InPlaceComputation Signed-off-by: Sadik Armagan Change-Id: Icf5bfc5f999fc5d03681dcb8cec88d921842458b --- src/backends/neon/NeonTensorHandleFactory.cpp | 5 +++++ src/backends/neon/NeonTensorHandleFactory.hpp | 2 ++ src/backends/neon/test/NeonTensorHandleTests.cpp | 9 +++++++++ src/backends/reference/test/RefTensorHandleTests.cpp | 9 +++++++++ 4 files changed, 25 insertions(+) (limited to 'src/backends') diff --git a/src/backends/neon/NeonTensorHandleFactory.cpp b/src/backends/neon/NeonTensorHandleFactory.cpp index ae6ab59efd..1dd83950cd 100644 --- a/src/backends/neon/NeonTensorHandleFactory.cpp +++ b/src/backends/neon/NeonTensorHandleFactory.cpp @@ -96,6 +96,11 @@ const FactoryId& NeonTensorHandleFactory::GetId() const return GetIdStatic(); } +bool NeonTensorHandleFactory::SupportsInPlaceComputation() const +{ + return true; +} + bool NeonTensorHandleFactory::SupportsSubTensors() const { return true; diff --git a/src/backends/neon/NeonTensorHandleFactory.hpp b/src/backends/neon/NeonTensorHandleFactory.hpp index 41875c988d..954a71451b 100644 --- a/src/backends/neon/NeonTensorHandleFactory.hpp +++ b/src/backends/neon/NeonTensorHandleFactory.hpp @@ -61,6 +61,8 @@ public: const FactoryId& GetId() const override; + bool SupportsInPlaceComputation() const override; + bool SupportsSubTensors() const override; MemorySourceFlags GetExportFlags() const override; diff --git a/src/backends/neon/test/NeonTensorHandleTests.cpp b/src/backends/neon/test/NeonTensorHandleTests.cpp index 97c7dd3474..3cea29323a 100644 --- a/src/backends/neon/test/NeonTensorHandleTests.cpp +++ b/src/backends/neon/test/NeonTensorHandleTests.cpp @@ -697,4 +697,13 @@ BOOST_AUTO_TEST_CASE(NeonTensorHandleFactoryImport) memoryManager->Release(); } +BOOST_AUTO_TEST_CASE(NeonTensorHandleSupportsInPlaceComputation) +{ + std::shared_ptr memoryManager = std::make_shared(); + NeonTensorHandleFactory handleFactory(memoryManager); + + // NeonTensorHandleFactory supports InPlaceComputation + ARMNN_ASSERT(handleFactory.SupportsInPlaceComputation()); +} + BOOST_AUTO_TEST_SUITE_END() diff --git a/src/backends/reference/test/RefTensorHandleTests.cpp b/src/backends/reference/test/RefTensorHandleTests.cpp index 3635a32472..1ef6de9b32 100644 --- a/src/backends/reference/test/RefTensorHandleTests.cpp +++ b/src/backends/reference/test/RefTensorHandleTests.cpp @@ -158,6 +158,15 @@ BOOST_AUTO_TEST_CASE(RefTensorHandleGetCapabilities) BOOST_CHECK(capabilities.empty()); } +BOOST_AUTO_TEST_CASE(RefTensorHandleSupportsInPlaceComputation) +{ + std::shared_ptr memoryManager = std::make_shared(); + RefTensorHandleFactory handleFactory(memoryManager); + + // RefTensorHandleFactory does not support InPlaceComputation + ARMNN_ASSERT(!(handleFactory.SupportsInPlaceComputation())); +} + #if !defined(__ANDROID__) // Only run these tests on non Android platforms BOOST_AUTO_TEST_CASE(CheckSourceType) -- cgit v1.2.1