diff options
author | Aron Virginas-Tar <Aron.Virginas-Tar@arm.com> | 2019-11-26 14:04:54 +0000 |
---|---|---|
committer | Aron Virginas-Tar <Aron.Virginas-Tar@arm.com> | 2019-11-26 15:00:28 +0000 |
commit | 21fc28bb68d7a6232eea3a0e8cfd800d95346ea4 (patch) | |
tree | 5eca96ac31e3f8c62da3ad7742834180a0f7eeac /src/backends/neon | |
parent | 9b6d4246804d39e5b7570992d63e31a044442385 (diff) | |
download | armnn-21fc28bb68d7a6232eea3a0e8cfd800d95346ea4.tar.gz |
IVGCVSW-3866 Add support for per-channel QSymm8 Convolution2d to Neon backend
Signed-off-by: Aron Virginas-Tar <Aron.Virginas-Tar@arm.com>
Change-Id: If7d366b2894050c53a651016165f34be1a2ce7a6
Diffstat (limited to 'src/backends/neon')
-rw-r--r-- | src/backends/neon/NeonLayerSupport.cpp | 5 | ||||
-rw-r--r-- | src/backends/neon/test/NeonLayerTests.cpp | 3 | ||||
-rw-r--r-- | src/backends/neon/workloads/NeonWorkloadUtils.hpp | 3 |
3 files changed, 6 insertions, 5 deletions
diff --git a/src/backends/neon/NeonLayerSupport.cpp b/src/backends/neon/NeonLayerSupport.cpp index ed0f41a888..4474b12d37 100644 --- a/src/backends/neon/NeonLayerSupport.cpp +++ b/src/backends/neon/NeonLayerSupport.cpp @@ -274,11 +274,6 @@ bool NeonLayerSupport::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/neon/test/NeonLayerTests.cpp b/src/backends/neon/test/NeonLayerTests.cpp index 26c55365cf..d74a4c6ebe 100644 --- a/src/backends/neon/test/NeonLayerTests.cpp +++ b/src/backends/neon/test/NeonLayerTests.cpp @@ -110,6 +110,9 @@ ARMNN_AUTO_TEST_CASE(DepthwiseConvolution2dMult2, false, armnn::DataLayout::NCHW) +ARMNN_AUTO_TEST_CASE(Convolution2dPerAxisQuantTestNchw, Convolution2dPerAxisQuantTest, DataLayout::NCHW); +ARMNN_AUTO_TEST_CASE(Convolution2dPerAxisQuantTestNhwc, Convolution2dPerAxisQuantTest, DataLayout::NHWC); + // DepthToSpace ARMNN_AUTO_TEST_CASE(DepthToSpaceNchwFloat32_1, DepthToSpaceTest1<DataType::Float32>, DataLayout::NCHW); ARMNN_AUTO_TEST_CASE(DepthToSpaceNchwFloat32_2, DepthToSpaceTest2<DataType::Float32>, DataLayout::NCHW); diff --git a/src/backends/neon/workloads/NeonWorkloadUtils.hpp b/src/backends/neon/workloads/NeonWorkloadUtils.hpp index f63946ec07..e9edc8901e 100644 --- a/src/backends/neon/workloads/NeonWorkloadUtils.hpp +++ b/src/backends/neon/workloads/NeonWorkloadUtils.hpp @@ -46,6 +46,9 @@ inline void InitializeArmComputeTensorData(arm_compute::Tensor& tensor, case DataType::QuantisedAsymm8: CopyArmComputeTensorData(tensor, handle->GetConstTensor<uint8_t>()); break; + case DataType::QuantizedSymm8PerAxis: + CopyArmComputeTensorData(tensor, handle->GetConstTensor<int8_t>()); + break; case DataType::Signed32: CopyArmComputeTensorData(tensor, handle->GetConstTensor<int32_t>()); break; |