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
diff --git a/src/armnn/Network.cpp b/src/armnn/Network.cpp
index f4bfc7a..b1cb5a8 100644
--- a/src/armnn/Network.cpp
+++ b/src/armnn/Network.cpp
@@ -699,6 +699,12 @@
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 80f46d2..d5fef4e 100644
--- a/src/backends/neon/NeonTensorHandleFactory.cpp
+++ b/src/backends/neon/NeonTensorHandleFactory.cpp
@@ -104,7 +104,7 @@
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 5146a59..26c0675 100644
--- a/src/backends/neon/test/NeonEndToEndTests.cpp
+++ b/src/backends/neon/test/NeonEndToEndTests.cpp
@@ -366,27 +366,27 @@
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);
}