diff options
author | David Monahan <David.Monahan@arm.com> | 2022-02-21 12:26:16 +0000 |
---|---|---|
committer | David Monahan <david.monahan@arm.com> | 2022-02-23 13:12:56 +0000 |
commit | 3826ab6dc5f93deede84f1a41fe8bed1400c3ca9 (patch) | |
tree | 45f3c2f74b73454adcb4a08ffefbbda3bbc22ad9 /src/backends | |
parent | b85113e7e0b20275892fc6ecce3a52f01cd1e435 (diff) | |
download | armnn-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
Diffstat (limited to 'src/backends')
-rw-r--r-- | src/backends/cl/test/ClImportTensorHandleTests.cpp | 4 | ||||
-rw-r--r-- | src/backends/cl/workloads/ClConvolution2dWorkload.hpp | 14 | ||||
-rw-r--r-- | src/backends/neon/NeonTensorHandle.hpp | 3 |
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; } |