IVGCVSW-6700 Disable importing on ClConv2d when datalayout is NCHW
Signed-off-by: David Monahan <David.Monahan@arm.com>
Change-Id: Ia916219a33535f4c288fa44fdc23961a3e54e788
diff --git a/src/backends/cl/test/ClImportTensorHandleTests.cpp b/src/backends/cl/test/ClImportTensorHandleTests.cpp
index 1617654..27cd136 100644
--- a/src/backends/cl/test/ClImportTensorHandleTests.cpp
+++ b/src/backends/cl/test/ClImportTensorHandleTests.cpp
@@ -225,7 +225,7 @@
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 @@
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 e4177e4..bba92d2 100644
--- a/src/backends/cl/workloads/ClConvolution2dWorkload.hpp
+++ b/src/backends/cl/workloads/ClConvolution2dWorkload.hpp
@@ -40,7 +40,19 @@
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;