From 899f64f711fdac95d88795f4e88f7770c0cb94be Mon Sep 17 00:00:00 2001 From: Keith Davis Date: Tue, 26 Nov 2019 16:01:18 +0000 Subject: IVGCVSW-3859 Per-channel QSymm8 support of Convolution2d in Cl Signed-off-by: Keith Davis Change-Id: Ie43f20e6fb2f9b4a1e9e9eb561fcf7b5d6a01806 --- src/backends/cl/ClLayerSupport.cpp | 5 ----- src/backends/cl/test/ClLayerTests.cpp | 3 +++ src/backends/cl/workloads/ClWorkloadUtils.hpp | 3 +++ 3 files changed, 6 insertions(+), 5 deletions(-) diff --git a/src/backends/cl/ClLayerSupport.cpp b/src/backends/cl/ClLayerSupport.cpp index 3e6ccb42b1..9a5c38381c 100644 --- a/src/backends/cl/ClLayerSupport.cpp +++ b/src/backends/cl/ClLayerSupport.cpp @@ -324,11 +324,6 @@ bool ClLayerSupport::IsConvolution2dSupported(const TensorInfo& input, const Optional& biases, Optional reasonIfUnsupported) const { - if (weights.HasPerAxisQuantization()) - { - return false; - } - // Multiplier > 1.0f currently not supported in ACL if ((input.GetQuantizationScale() * weights.GetQuantizationScale()) / output.GetQuantizationScale() > 1.0f) { diff --git a/src/backends/cl/test/ClLayerTests.cpp b/src/backends/cl/test/ClLayerTests.cpp index 67994357b6..16fe07c194 100644 --- a/src/backends/cl/test/ClLayerTests.cpp +++ b/src/backends/cl/test/ClLayerTests.cpp @@ -144,6 +144,9 @@ ARMNN_AUTO_TEST_CASE(Convolution2d2x2Dilation2x2Padding2x2Stride3x3NhwcUint8, false, DataLayout::NHWC) +ARMNN_AUTO_TEST_CASE(Convolution2dPerAxisQuantTestNchw, Convolution2dPerAxisQuantTest, DataLayout::NCHW); +ARMNN_AUTO_TEST_CASE(Convolution2dPerAxisQuantTestNhwc, Convolution2dPerAxisQuantTest, DataLayout::NHWC); + // Depthwise Convolution ARMNN_AUTO_TEST_CASE(DepthwiseConvolution2dDepthMul1, DepthwiseConvolution2dDepthMul1Test, true, DataLayout::NCHW) diff --git a/src/backends/cl/workloads/ClWorkloadUtils.hpp b/src/backends/cl/workloads/ClWorkloadUtils.hpp index f5e60e6315..ecaf2799e8 100644 --- a/src/backends/cl/workloads/ClWorkloadUtils.hpp +++ b/src/backends/cl/workloads/ClWorkloadUtils.hpp @@ -101,6 +101,9 @@ inline void InitializeArmComputeClTensorData(arm_compute::CLTensor& clTensor, case DataType::QuantisedAsymm8: CopyArmComputeClTensorData(clTensor, handle->GetConstTensor()); break; + case DataType::QuantizedSymm8PerAxis: + CopyArmComputeClTensorData(clTensor, handle->GetConstTensor()); + break; case DataType::Signed32: CopyArmComputeClTensorData(clTensor, handle->GetConstTensor()); break; -- cgit v1.2.1