diff options
author | James Conroy <james.conroy@arm.com> | 2019-11-07 14:37:09 +0000 |
---|---|---|
committer | Matteo Martincigh <matteo.martincigh@arm.com> | 2019-11-08 15:56:05 +0000 |
commit | ffab16f9f23868b5b9338a1b63393f3be53211cb (patch) | |
tree | 66a2a3dcd418e08488f8ad2f6b9e96a80fac90ee | |
parent | 55e488a53c98af7dabf9f7b45572d02d850d8866 (diff) | |
download | armnn-ffab16f9f23868b5b9338a1b63393f3be53211cb.tar.gz |
IVGCVSW-4077 Disable NEON memory import
* Temporarily handles cases in CalculateEdgeStrategy
where dstFactory pointer is null when import is
disabled.
* This patch is required for ensuring debug layer
works correctly when executing a model on Neon.
Signed-off-by: James Conroy <james.conroy@arm.com>
Change-Id: I7304723246d362d6d9073c3d0b1224e194a8532c
-rw-r--r-- | src/armnn/Network.cpp | 6 | ||||
-rw-r--r-- | src/backends/neon/NeonTensorHandleFactory.cpp | 2 | ||||
-rw-r--r-- | src/backends/neon/test/NeonEndToEndTests.cpp | 10 |
3 files changed, 12 insertions, 6 deletions
diff --git a/src/armnn/Network.cpp b/src/armnn/Network.cpp index f4bfc7a88e..b1cb5a871a 100644 --- a/src/armnn/Network.cpp +++ b/src/armnn/Network.cpp @@ -699,6 +699,12 @@ EdgeStrategy CalculateEdgeStrategy(BackendsMap& backends, for (auto&& pref : dstPrefs) { ITensorHandleFactory* dstFactory = registry.GetFactory(pref); + + // Handles some cases where dstFactory is null when Neon memory import is disabled + if (!dstFactory) { + return EdgeStrategy::CopyToTarget; + } + if ((dstFactory->GetImportFlags() & srcFactory->GetExportFlags()) != 0) { return EdgeStrategy::ExportToTarget; diff --git a/src/backends/neon/NeonTensorHandleFactory.cpp b/src/backends/neon/NeonTensorHandleFactory.cpp index 80f46d2237..d5fef4ea95 100644 --- a/src/backends/neon/NeonTensorHandleFactory.cpp +++ b/src/backends/neon/NeonTensorHandleFactory.cpp @@ -104,7 +104,7 @@ MemorySourceFlags NeonTensorHandleFactory::GetExportFlags() const MemorySourceFlags NeonTensorHandleFactory::GetImportFlags() const { - return static_cast<MemorySourceFlags>(MemorySource::Malloc); + return 0; } } // namespace armnn diff --git a/src/backends/neon/test/NeonEndToEndTests.cpp b/src/backends/neon/test/NeonEndToEndTests.cpp index 5146a598c7..26c06758a4 100644 --- a/src/backends/neon/test/NeonEndToEndTests.cpp +++ b/src/backends/neon/test/NeonEndToEndTests.cpp @@ -366,27 +366,27 @@ BOOST_AUTO_TEST_CASE(NeonExportNonAlignedOutputPointerTest) ExportNonAlignedOutputPointerTest(defaultBackends); } -BOOST_AUTO_TEST_CASE(NeonImportAlignedPointerTest) +BOOST_AUTO_TEST_CASE(NeonImportAlignedPointerTest, * boost::unit_test::disabled()) { ImportAlignedPointerTest(defaultBackends); } -BOOST_AUTO_TEST_CASE(NeonImportOnlyWorkload) +BOOST_AUTO_TEST_CASE(NeonImportOnlyWorkload, * boost::unit_test::disabled()) { ImportOnlyWorkload(defaultBackends); } -BOOST_AUTO_TEST_CASE(NeonExportOnlyWorkload) +BOOST_AUTO_TEST_CASE(NeonExportOnlyWorkload, * boost::unit_test::disabled()) { ExportOnlyWorkload(defaultBackends); } -BOOST_AUTO_TEST_CASE(NeonImportAndExportWorkload) +BOOST_AUTO_TEST_CASE(NeonImportAndExportWorkload, * boost::unit_test::disabled()) { ImportAndExportWorkload(defaultBackends); } -BOOST_AUTO_TEST_CASE(NeonExportOutputWithSeveralOutputSlotConnectionsTest) +BOOST_AUTO_TEST_CASE(NeonExportOutputWithSeveralOutputSlotConnectionsTest, * boost::unit_test::disabled()) { ExportOutputWithSeveralOutputSlotConnectionsTest(defaultBackends); } |