aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDavid Monahan <David.Monahan@arm.com>2022-02-21 12:26:16 +0000
committerDavid Monahan <david.monahan@arm.com>2022-02-23 13:12:56 +0000
commit3826ab6dc5f93deede84f1a41fe8bed1400c3ca9 (patch)
tree45f3c2f74b73454adcb4a08ffefbbda3bbc22ad9
parentb85113e7e0b20275892fc6ecce3a52f01cd1e435 (diff)
downloadarmnn-3826ab6dc5f93deede84f1a41fe8bed1400c3ca9.tar.gz
IVGCVSW-6700 Disable importing on ClConv2d when datalayout is NCHW
Signed-off-by: David Monahan <David.Monahan@arm.com> Change-Id: Ia916219a33535f4c288fa44fdc23961a3e54e788
-rw-r--r--src/backends/cl/test/ClImportTensorHandleTests.cpp4
-rw-r--r--src/backends/cl/workloads/ClConvolution2dWorkload.hpp14
-rw-r--r--src/backends/neon/NeonTensorHandle.hpp3
3 files changed, 16 insertions, 5 deletions
diff --git a/src/backends/cl/test/ClImportTensorHandleTests.cpp b/src/backends/cl/test/ClImportTensorHandleTests.cpp
index 161765484d..27cd1365fd 100644
--- a/src/backends/cl/test/ClImportTensorHandleTests.cpp
+++ b/src/backends/cl/test/ClImportTensorHandleTests.cpp
@@ -225,7 +225,7 @@ TEST_CASE_FIXTURE(ClContextControlFixture, "ClCanBeImported")
TensorInfo info({ 1, 24, 16, 3 }, DataType::Float32);
// create TensorHandle for memory import
- auto handle = handleFactory.CreateTensorHandle(info);
+ auto handle = handleFactory.CreateTensorHandle(info, DataLayout::NHWC);
// Get CLtensor
arm_compute::CLTensor& tensor = PolymorphicDowncast<ClImportTensorHandle*>(handle.get())->GetTensor();
@@ -252,7 +252,7 @@ TEST_CASE("ClCanBeImportedAlignedMemory")
TensorInfo info({ 1, 1, 1, 1 }, DataType::Float32);
// create TensorHandle (Memory Managed status is irrelevant)
- auto handle = handleFactory.CreateTensorHandle(info);
+ auto handle = handleFactory.CreateTensorHandle(info, DataLayout::NHWC);
// Get CLtensor
arm_compute::CLTensor& tensor = PolymorphicDowncast<ClImportTensorHandle*>(handle.get())->GetTensor();
diff --git a/src/backends/cl/workloads/ClConvolution2dWorkload.hpp b/src/backends/cl/workloads/ClConvolution2dWorkload.hpp
index e4177e4327..bba92d2ad0 100644
--- a/src/backends/cl/workloads/ClConvolution2dWorkload.hpp
+++ b/src/backends/cl/workloads/ClConvolution2dWorkload.hpp
@@ -40,7 +40,19 @@ public:
arm_compute::ConvolutionMethod GetConvolutionMethod() const;
- bool SupportsTensorHandleReplacement() const override { return true;};
+ bool SupportsTensorHandleReplacement() const override
+ {
+ // NCHW DataLayout on ACL still uses paddding for alignment on the Conv2d workload so importing is unreliable.
+ if (m_Data.m_Parameters.m_DataLayout == DataLayout::NCHW)
+ {
+ return false;
+ }
+ else
+ {
+ return true;
+ }
+ }
+
protected:
void Reconfigure() override;
diff --git a/src/backends/neon/NeonTensorHandle.hpp b/src/backends/neon/NeonTensorHandle.hpp
index f40b5fc2e5..9445cb1c75 100644
--- a/src/backends/neon/NeonTensorHandle.hpp
+++ b/src/backends/neon/NeonTensorHandle.hpp
@@ -116,8 +116,7 @@ public:
bool CanBeImported(void* memory, MemorySource source) override
{
- armnn::IgnoreUnused(source);
- if (reinterpret_cast<uintptr_t>(memory) % m_TypeAlignment)
+ if (source != MemorySource::Malloc || reinterpret_cast<uintptr_t>(memory) % m_TypeAlignment)
{
return false;
}