aboutsummaryrefslogtreecommitdiff
path: root/src/armnn/Network.cpp
diff options
context:
space:
mode:
authorNarumol Prangnawarat <narumol.prangnawarat@arm.com>2020-08-14 11:51:12 +0100
committerJim Flynn <jim.flynn@arm.com>2020-08-16 14:47:00 +0000
commitb8d771ac2e6f847a64b3b203591c5b1c3e198d3a (patch)
tree289b769e179e495e45f2d2c2f9374703be32f9c2 /src/armnn/Network.cpp
parent9e132f57e3fc9d1cd12e3bca2dd3eb82549d7d84 (diff)
downloadarmnn-b8d771ac2e6f847a64b3b203591c5b1c3e198d3a.tar.gz
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
Diffstat (limited to 'src/armnn/Network.cpp')
-rw-r--r--src/armnn/Network.cpp10
1 files changed, 9 insertions, 1 deletions
diff --git a/src/armnn/Network.cpp b/src/armnn/Network.cpp
index 132924a19a..94a9961a81 100644
--- a/src/armnn/Network.cpp
+++ b/src/armnn/Network.cpp
@@ -912,7 +912,15 @@ EdgeStrategy CalculateEdgeStrategy(BackendsMap& backends,
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;
+ }
}
}
}