aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKeith Davis <keith.davis@arm.com>2019-11-26 16:01:18 +0000
committerÁron Virginás-Tar <aron.virginas-tar@arm.com>2019-11-27 10:07:47 +0000
commit899f64f711fdac95d88795f4e88f7770c0cb94be (patch)
treebf33be2312ce4540674706b310a05a2b567e11cb
parente9323ec3d8c638462e7269ecbef7d845b6a8b11a (diff)
downloadarmnn-899f64f711fdac95d88795f4e88f7770c0cb94be.tar.gz
IVGCVSW-3859 Per-channel QSymm8 support of Convolution2d in Cl
Signed-off-by: Keith Davis <keith.davis@arm.com> Change-Id: Ie43f20e6fb2f9b4a1e9e9eb561fcf7b5d6a01806
-rw-r--r--src/backends/cl/ClLayerSupport.cpp5
-rw-r--r--src/backends/cl/test/ClLayerTests.cpp3
-rw-r--r--src/backends/cl/workloads/ClWorkloadUtils.hpp3
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<TensorInfo>& biases,
Optional<std::string&> 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<uint8_t>());
break;
+ case DataType::QuantizedSymm8PerAxis:
+ CopyArmComputeClTensorData(clTensor, handle->GetConstTensor<int8_t>());
+ break;
case DataType::Signed32:
CopyArmComputeClTensorData(clTensor, handle->GetConstTensor<int32_t>());
break;