IVGCVSW-5012 Enable zero copy for Neon
* Allow memory import if padding is not required in Neon
* AddMockImportBackend for fallback tests
* Refactor GraphUtils
* Memory import unit tests
* Fallback unit tests
Signed-off-by: Narumol Prangnawarat <narumol.prangnawarat@arm.com>
Change-Id: Ic2e141e12774bf6d915e77745b6f6d2d83d9b82d
diff --git a/src/armnn/Network.cpp b/src/armnn/Network.cpp
index 132924a..94a9961 100644
--- a/src/armnn/Network.cpp
+++ b/src/armnn/Network.cpp
@@ -912,7 +912,15 @@
if ((dstFactory->GetImportFlags() & srcFactory->GetExportFlags()) != 0)
{
- return EdgeStrategy::ExportToTarget;
+ auto srcCapability = srcFactory->GetCapabilities(&layer, &layer, CapabilityClass::PaddingRequired);
+ auto dstCapability = dstFactory->GetCapabilities(&connectedLayer,
+ &connectedLayer,
+ CapabilityClass::PaddingRequired);
+ // Do not require memory copy if the source and destination do not require padding.
+ if (srcCapability.empty() && dstCapability.empty())
+ {
+ return EdgeStrategy::ExportToTarget;
+ }
}
}
}