diff options
author | Sadik Armagan <sadik.armagan@arm.com> | 2020-04-17 12:45:14 +0100 |
---|---|---|
committer | TeresaARM <teresa.charlinreyes@arm.com> | 2020-04-27 14:49:42 +0000 |
commit | 303980c502c721f13d65e7087be6c0758df65044 (patch) | |
tree | f1a9ab898b3121b988b8328161eddeb6a608e73f /src/backends/backendsCommon | |
parent | 49c52a1e3be742cd7785ccc36c31cbbe495c4003 (diff) | |
download | armnn-303980c502c721f13d65e7087be6c0758df65044.tar.gz |
IVGCVSW-4668 Add TENSOR_QUANT8_ASYMM_SIGNED data type support to CpuRef operators
Signed-off-by: Teresa Charlin <teresa.charlinreyes@arm.com>
Signed-off-by: Sadik Armagan <sadik.armagan@arm.com>
Change-Id: I094125ba80699cc3cf5226bda6662a54e6caa988
Diffstat (limited to 'src/backends/backendsCommon')
10 files changed, 274 insertions, 25 deletions
diff --git a/src/backends/backendsCommon/WorkloadData.cpp b/src/backends/backendsCommon/WorkloadData.cpp index 5fe056e669..d1249a492f 100644 --- a/src/backends/backendsCommon/WorkloadData.cpp +++ b/src/backends/backendsCommon/WorkloadData.cpp @@ -365,8 +365,8 @@ void ValidateWeightDataType(const TensorInfo& inputInfo, ARMNN_NO_DEPRECATE_WARN_BEGIN const std::vector<DataType> validTypes = { - DataType::QAsymmU8, DataType::QAsymmS8, + DataType::QAsymmU8, DataType::QSymmS8, DataType::QuantizedSymm8PerAxis // deprecated }; @@ -633,6 +633,7 @@ void ArgMinMaxQueueDescriptor::Validate(const WorkloadInfo& workloadInfo) const DataType::BFloat16, DataType::Float16, DataType::Float32, + DataType::QAsymmS8, DataType::QAsymmU8, DataType::QSymmS16, DataType::Signed32 @@ -715,6 +716,7 @@ void SplitterQueueDescriptor::Validate(const WorkloadInfo& workloadInfo) const DataType::Float16, DataType::Boolean, DataType::Signed32, + DataType::QAsymmS8, DataType::QAsymmU8, DataType::QSymmS16 }; @@ -852,6 +854,7 @@ void ConcatQueueDescriptor::Validate(const WorkloadInfo& workloadInfo) const DataType::Float16, DataType::Boolean, DataType::Signed32, + DataType::QAsymmS8, DataType::QAsymmU8, DataType::QSymmS16 }; @@ -940,6 +943,7 @@ void StackQueueDescriptor::Validate(const WorkloadInfo& workloadInfo) const DataType::Float16, DataType::Boolean, DataType::Signed32, + DataType::QAsymmS8, DataType::QAsymmU8, DataType::QSymmS16 }; @@ -1040,6 +1044,7 @@ void NormalizationQueueDescriptor::Validate(const WorkloadInfo& workloadInfo) co DataType::BFloat16, DataType::Float16, DataType::Float32, + DataType::QAsymmS8, DataType::QAsymmU8, DataType::QSymmS16 }; @@ -1101,11 +1106,11 @@ void MultiplicationQueueDescriptor::Validate(const WorkloadInfo& workloadInfo) c std::vector<DataType> supportedTypes = { DataType::BFloat16, + DataType::Float16, DataType::Float32, - DataType::QAsymmU8, DataType::QAsymmS8, - DataType::QSymmS16, - DataType::Float16 + DataType::QAsymmU8, + DataType::QSymmS16 }; ValidateDataTypes(inputTensorInfo0, supportedTypes, descriptorName); @@ -1138,6 +1143,7 @@ void BatchNormalizationQueueDescriptor::Validate(const WorkloadInfo& workloadInf DataType::BFloat16, DataType::Float16, DataType::Float32, + DataType::QAsymmS8, DataType::QAsymmU8, DataType::QSymmS16 }; @@ -1209,12 +1215,12 @@ void Convolution2dQueueDescriptor::Validate(const WorkloadInfo& workloadInfo) co std::vector<DataType> supportedTypes = { DataType::BFloat16, + DataType::Float16, DataType::Float32, DataType::QAsymmS8, DataType::QAsymmU8, DataType::QSymmS16, - DataType::QSymmS8, - DataType::Float16 + DataType::QSymmS8 }; ValidateDataTypes(inputTensorInfo, supportedTypes, descriptorName); @@ -1298,11 +1304,11 @@ void DepthwiseConvolution2dQueueDescriptor::Validate(const WorkloadInfo& workloa std::vector<DataType> supportedTypes = { DataType::BFloat16, + DataType::Float16, DataType::Float32, - DataType::QAsymmU8, DataType::QAsymmS8, - DataType::QSymmS16, - DataType::Float16 + DataType::QAsymmU8, + DataType::QSymmS16 }; ValidateDataTypes(inputTensorInfo, supportedTypes, descriptorName); @@ -1383,6 +1389,7 @@ void ResizeBilinearQueueDescriptor::Validate(const WorkloadInfo& workloadInfo) c DataType::BFloat16, DataType::Float16, DataType::Float32, + DataType::QAsymmS8, DataType::QAsymmU8, DataType::QSymmS16 }; @@ -1535,6 +1542,7 @@ void L2NormalizationQueueDescriptor::Validate(const WorkloadInfo& workloadInfo) DataType::BFloat16, DataType::Float32, DataType::Float16, + DataType::QAsymmS8, DataType::QAsymmU8, DataType::QSymmS16 }; @@ -1587,11 +1595,11 @@ void ConstantQueueDescriptor::Validate(const WorkloadInfo& workloadInfo) const DataType::BFloat16, DataType::Float32, DataType::Float16, - DataType::Signed32, - DataType::QAsymmU8, DataType::QAsymmS8, + DataType::QAsymmU8, DataType::QSymmS8, - DataType::QSymmS16 + DataType::QSymmS16, + DataType::Signed32 }; ValidateDataTypes(outputTensorInfo, supportedTypes, descriptorName); @@ -1615,10 +1623,10 @@ void ReshapeQueueDescriptor::Validate(const WorkloadInfo& workloadInfo) const DataType::BFloat16, DataType::Float32, DataType::Float16, - DataType::Signed32, - DataType::QSymmS16, DataType::QAsymmS8, - DataType::QAsymmU8 + DataType::QAsymmU8, + DataType::QSymmS16, + DataType::Signed32 }; ValidateDataTypes(inputTensorInfo, supportedTypes, descriptorName); @@ -1683,6 +1691,7 @@ void SpaceToBatchNdQueueDescriptor::Validate(const WorkloadInfo& workloadInfo) c DataType::BFloat16, DataType::Float16, DataType::Float32, + DataType::QAsymmS8, DataType::QAsymmU8, DataType::QSymmS16 }; @@ -1709,6 +1718,7 @@ void SpaceToDepthQueueDescriptor::Validate(const WorkloadInfo& workloadInfo) con DataType::BFloat16, DataType::Float32, DataType::Float16, + DataType::QAsymmS8, DataType::QAsymmU8, DataType::QSymmS16 }; @@ -2146,11 +2156,12 @@ void DivisionQueueDescriptor::Validate(const WorkloadInfo& workloadInfo) const std::vector<DataType> supportedTypes = { + DataType::BFloat16, + DataType::Float16, DataType::Float32, + DataType::QAsymmS8, DataType::QAsymmU8, - DataType::QSymmS16, - DataType::Float16, - DataType::BFloat16 + DataType::QSymmS16 }; ValidateDataTypes(inputTensorInfo0, supportedTypes, descriptorName); @@ -2178,11 +2189,12 @@ void SubtractionQueueDescriptor::Validate(const WorkloadInfo& workloadInfo) cons std::vector<DataType> supportedTypes = { + DataType::BFloat16, + DataType::Float16, DataType::Float32, + DataType::QAsymmS8, DataType::QAsymmU8, - DataType::QSymmS16, - DataType::Float16, - DataType::BFloat16 + DataType::QSymmS16 }; ValidateDataTypes(inputTensorInfo0, supportedTypes, descriptorName); @@ -2213,10 +2225,10 @@ void MaximumQueueDescriptor::Validate(const WorkloadInfo& workloadInfo) const DataType::BFloat16, DataType::Float16, DataType::Float32, - DataType::Signed32, DataType::QAsymmS8, DataType::QAsymmU8, - DataType::QSymmS16 + DataType::QSymmS16, + DataType::Signed32 }; ValidateDataTypes(inputTensorInfo0, supportedTypes, descriptorName); @@ -2246,6 +2258,7 @@ void MeanQueueDescriptor::Validate(const WorkloadInfo& workloadInfo) const DataType::BFloat16, DataType::Float32, DataType::Float16, + DataType::QAsymmS8, DataType::QAsymmU8, DataType::QSymmS16 }; @@ -2340,6 +2353,7 @@ void BatchToSpaceNdQueueDescriptor::Validate(const WorkloadInfo& workloadInfo) c DataType::BFloat16, DataType::Float32, DataType::Float16, + DataType::QAsymmS8, DataType::QAsymmU8, DataType::QSymmS16 }; @@ -2363,6 +2377,7 @@ void StridedSliceQueueDescriptor::Validate(const WorkloadInfo& workloadInfo) con DataType::BFloat16, DataType::Float16, DataType::Float32, + DataType::QAsymmS8, DataType::QAsymmU8, DataType::QSymmS16 }; @@ -2420,9 +2435,10 @@ void MinimumQueueDescriptor::Validate(const WorkloadInfo& workloadInfo) const DataType::BFloat16, DataType::Float16, DataType::Float32, - DataType::Signed32, + DataType::QAsymmS8, DataType::QAsymmU8, - DataType::QSymmS16 + DataType::QSymmS16, + DataType::Signed32 }; ValidateDataTypes(inputTensorInfo0, supportedTypes, descriptorName); @@ -2510,6 +2526,7 @@ void RsqrtQueueDescriptor::Validate(const WorkloadInfo& workloadInfo) const DataType::BFloat16, DataType::Float16, DataType::Float32, + DataType::QAsymmS8, DataType::QAsymmU8, DataType::QSymmS16 }; @@ -2539,6 +2556,7 @@ void GatherQueueDescriptor::Validate(const WorkloadInfo& workloadInfo) const DataType::BFloat16, DataType::Float16, DataType::Float32, + DataType::QAsymmS8, DataType::QAsymmU8, DataType::QSymmS16 }; @@ -2586,6 +2604,7 @@ void DetectionPostProcessQueueDescriptor::Validate(const WorkloadInfo& workloadI DataType::BFloat16, DataType::Float32, DataType::Float16, + DataType::QAsymmS8, DataType::QAsymmU8, DataType::QSymmS16 }; @@ -2678,6 +2697,7 @@ void SwitchQueueDescriptor::Validate(const WorkloadInfo& workloadInfo) const { DataType::BFloat16, DataType::Float32, + DataType::QAsymmS8, DataType::QAsymmU8, DataType::QSymmS16 }; @@ -2722,6 +2742,7 @@ void PreluQueueDescriptor::Validate(const WorkloadInfo& workloadInfo) const DataType::BFloat16, DataType::Float16, DataType::Float32, + DataType::QAsymmS8, DataType::QAsymmU8, DataType::QSymmS16 }; @@ -2785,6 +2806,7 @@ void TransposeConvolution2dQueueDescriptor::Validate(const WorkloadInfo& workloa DataType::BFloat16, DataType::Float32, DataType::Float16, + DataType::QAsymmS8, DataType::QAsymmU8, DataType::QSymmS16 }; @@ -3010,6 +3032,7 @@ void AbsQueueDescriptor::Validate(const WorkloadInfo& workloadInfo) const DataType::BFloat16, DataType::Float16, DataType::Float32, + DataType::QAsymmS8, DataType::QAsymmU8, DataType::QSymmS16, DataType::Signed32 @@ -3092,6 +3115,7 @@ void DepthToSpaceQueueDescriptor::Validate(const WorkloadInfo& workloadInfo) con DataType::BFloat16, DataType::Float32, DataType::Float16, + DataType::QAsymmS8, DataType::QAsymmU8, DataType::QSymmS16 }; @@ -3167,6 +3191,7 @@ void ElementwiseUnaryQueueDescriptor::Validate(const WorkloadInfo& workloadInfo) DataType::BFloat16, DataType::Float16, DataType::Float32, + DataType::QAsymmS8, DataType::QAsymmU8, DataType::QSymmS16, DataType::Signed32 diff --git a/src/backends/backendsCommon/test/layerTests/AbsTestImpl.cpp b/src/backends/backendsCommon/test/layerTests/AbsTestImpl.cpp index e6c6a96a9f..2cbc059044 100644 --- a/src/backends/backendsCommon/test/layerTests/AbsTestImpl.cpp +++ b/src/backends/backendsCommon/test/layerTests/AbsTestImpl.cpp @@ -114,6 +114,11 @@ Abs2dTest<armnn::DataType::Signed32>( armnn::IWorkloadFactory& workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager); +template LayerTestResult<armnn::ResolveType<armnn::DataType::QAsymmS8>, 2> +Abs2dTest<armnn::DataType::QAsymmS8>( + armnn::IWorkloadFactory& workloadFactory, + const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager); + template LayerTestResult<armnn::ResolveType<armnn::DataType::QAsymmU8>, 2> Abs2dTest<armnn::DataType::QAsymmU8>( armnn::IWorkloadFactory& workloadFactory, @@ -134,6 +139,11 @@ Abs3dTest<armnn::DataType::Float16>( armnn::IWorkloadFactory& workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager); +template LayerTestResult<armnn::ResolveType<armnn::DataType::QAsymmS8>, 3> +Abs3dTest<armnn::DataType::QAsymmS8>( + armnn::IWorkloadFactory& workloadFactory, + const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager); + template LayerTestResult<armnn::ResolveType<armnn::DataType::Signed32>, 3> Abs3dTest<armnn::DataType::Signed32>( armnn::IWorkloadFactory& workloadFactory, diff --git a/src/backends/backendsCommon/test/layerTests/ArgMinMaxTestImpl.cpp b/src/backends/backendsCommon/test/layerTests/ArgMinMaxTestImpl.cpp index 20dcef5dd4..45ac05387a 100644 --- a/src/backends/backendsCommon/test/layerTests/ArgMinMaxTestImpl.cpp +++ b/src/backends/backendsCommon/test/layerTests/ArgMinMaxTestImpl.cpp @@ -263,6 +263,11 @@ ArgMaxSimpleTest<armnn::DataType::Float32>( const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager); template LayerTestResult<int32_t, 3> +ArgMaxSimpleTest<armnn::DataType::QAsymmS8>( + armnn::IWorkloadFactory& workloadFactory, + const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager); + +template LayerTestResult<int32_t, 3> ArgMaxSimpleTest<armnn::DataType::QAsymmU8>( armnn::IWorkloadFactory& workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager); @@ -283,6 +288,11 @@ ArgMinSimpleTest<armnn::DataType::Float32>( const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager); template LayerTestResult<int32_t, 3> +ArgMinSimpleTest<armnn::DataType::QAsymmS8>( + armnn::IWorkloadFactory& workloadFactory, + const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager); + +template LayerTestResult<int32_t, 3> ArgMinSimpleTest<armnn::DataType::QAsymmU8>( armnn::IWorkloadFactory& workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager); @@ -303,6 +313,11 @@ ArgMinChannelTest<armnn::DataType::Float32>( const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager); template LayerTestResult<int32_t, 3> +ArgMinChannelTest<armnn::DataType::QAsymmS8>( + armnn::IWorkloadFactory& workloadFactory, + const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager); + +template LayerTestResult<int32_t, 3> ArgMinChannelTest<armnn::DataType::QAsymmU8>( armnn::IWorkloadFactory& workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager); @@ -323,6 +338,11 @@ ArgMaxChannelTest<armnn::DataType::Float32>( const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager); template LayerTestResult<int32_t, 3> +ArgMaxChannelTest<armnn::DataType::QAsymmS8>( + armnn::IWorkloadFactory& workloadFactory, + const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager); + +template LayerTestResult<int32_t, 3> ArgMaxChannelTest<armnn::DataType::QAsymmU8>( armnn::IWorkloadFactory& workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager); @@ -348,6 +368,11 @@ ArgMaxHeightTest<armnn::DataType::Signed32>( const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager); template LayerTestResult<int32_t, 3> +ArgMaxHeightTest<armnn::DataType::QAsymmS8>( + armnn::IWorkloadFactory& workloadFactory, + const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager); + +template LayerTestResult<int32_t, 3> ArgMaxHeightTest<armnn::DataType::QAsymmU8>( armnn::IWorkloadFactory& workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager); @@ -363,6 +388,11 @@ ArgMinWidthTest<armnn::DataType::Signed32>( const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager); template LayerTestResult<int32_t, 3> +ArgMinWidthTest<armnn::DataType::QAsymmS8>( + armnn::IWorkloadFactory& workloadFactory, + const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager); + +template LayerTestResult<int32_t, 3> ArgMinWidthTest<armnn::DataType::QAsymmU8>( armnn::IWorkloadFactory& workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager); diff --git a/src/backends/backendsCommon/test/layerTests/Conv2dTestImpl.cpp b/src/backends/backendsCommon/test/layerTests/Conv2dTestImpl.cpp index c66027efdf..154ece2657 100644 --- a/src/backends/backendsCommon/test/layerTests/Conv2dTestImpl.cpp +++ b/src/backends/backendsCommon/test/layerTests/Conv2dTestImpl.cpp @@ -1019,6 +1019,7 @@ LayerTestResult<T, 4> Convolution2d3x3DilationTestCommon( switch (ArmnnType) { case armnn::DataType::QAsymmU8: + case armnn::DataType::QAsymmS8: { qScale = 0.1f; qOffset = 128; @@ -2520,6 +2521,7 @@ LayerTestResult<T, 4> DepthwiseConvolution2d3x3DilationTestCommon( int32_t qOffset; switch (ArmnnType) { + case armnn::DataType::QAsymmS8: case armnn::DataType::QAsymmU8: { qScale = 0.1f; @@ -3022,6 +3024,13 @@ Convolution2d3x3Dilation3x3Test<armnn::DataType::Float32, armnn::DataType::Float bool, armnn::DataLayout); +template LayerTestResult<armnn::ResolveType<armnn::DataType::QAsymmS8>, 4> +Convolution2d3x3Dilation3x3Test<armnn::DataType::QAsymmS8, armnn::DataType::Signed32>( + armnn::IWorkloadFactory&, + const armnn::IBackendInternal::IMemoryManagerSharedPtr&, + bool, + armnn::DataLayout); + template LayerTestResult<armnn::ResolveType<armnn::DataType::QAsymmU8>, 4> Convolution2d3x3Dilation3x3Test<armnn::DataType::QAsymmU8, armnn::DataType::Signed32>( armnn::IWorkloadFactory&, @@ -3050,6 +3059,13 @@ Convolution2d2x3x3Dilation3x3Test<armnn::DataType::BFloat16, armnn::DataType::BF bool, armnn::DataLayout); +template LayerTestResult<armnn::ResolveType<armnn::DataType::QAsymmS8>, 4> +Convolution2d2x3x3Dilation3x3Test<armnn::DataType::QAsymmS8, armnn::DataType::Signed32>( + armnn::IWorkloadFactory&, + const armnn::IBackendInternal::IMemoryManagerSharedPtr&, + bool, + armnn::DataLayout); + template LayerTestResult<armnn::ResolveType<armnn::DataType::QAsymmU8>, 4> Convolution2d2x3x3Dilation3x3Test<armnn::DataType::QAsymmU8, armnn::DataType::Signed32>( armnn::IWorkloadFactory&, @@ -3078,6 +3094,13 @@ Convolution2d2x2Dilation2x2Padding2x2Stride3x3Test<armnn::DataType::Float32, arm bool biasEnabled, const armnn::DataLayout layout); +template LayerTestResult<armnn::ResolveType<armnn::DataType::QAsymmS8>, 4> +Convolution2d2x2Dilation2x2Padding2x2Stride3x3Test<armnn::DataType::QAsymmS8, armnn::DataType::Signed32>( + armnn::IWorkloadFactory &workloadFactory, + const armnn::IBackendInternal::IMemoryManagerSharedPtr &memoryManager, + bool biasEnabled, + const armnn::DataLayout layout); + template LayerTestResult<armnn::ResolveType<armnn::DataType::QAsymmU8>, 4> Convolution2d2x2Dilation2x2Padding2x2Stride3x3Test<armnn::DataType::QAsymmU8, armnn::DataType::Signed32>( armnn::IWorkloadFactory &workloadFactory, @@ -3106,6 +3129,13 @@ DepthwiseConvolution2d3x3Dilation3x3Test<armnn::DataType::Float32, armnn::DataTy bool, armnn::DataLayout); +template LayerTestResult<armnn::ResolveType<armnn::DataType::QAsymmS8>, 4> +DepthwiseConvolution2d3x3Dilation3x3Test<armnn::DataType::QAsymmS8, armnn::DataType::Signed32>( + armnn::IWorkloadFactory&, + const armnn::IBackendInternal::IMemoryManagerSharedPtr&, + bool, + armnn::DataLayout); + template LayerTestResult<armnn::ResolveType<armnn::DataType::QAsymmU8>, 4> DepthwiseConvolution2d3x3Dilation3x3Test<armnn::DataType::QAsymmU8, armnn::DataType::Signed32>( armnn::IWorkloadFactory&, @@ -3134,6 +3164,13 @@ DepthwiseConvolution2d2x3x3Dilation3x3Test<armnn::DataType::Float32, armnn::Data bool, armnn::DataLayout); +template LayerTestResult<armnn::ResolveType<armnn::DataType::QAsymmS8>, 4> +DepthwiseConvolution2d2x3x3Dilation3x3Test<armnn::DataType::QAsymmS8, armnn::DataType::Signed32>( + armnn::IWorkloadFactory&, + const armnn::IBackendInternal::IMemoryManagerSharedPtr&, + bool, + armnn::DataLayout); + template LayerTestResult<armnn::ResolveType<armnn::DataType::QAsymmU8>, 4> DepthwiseConvolution2d2x3x3Dilation3x3Test<armnn::DataType::QAsymmU8, armnn::DataType::Signed32>( armnn::IWorkloadFactory&, diff --git a/src/backends/backendsCommon/test/layerTests/DepthToSpaceTestImpl.cpp b/src/backends/backendsCommon/test/layerTests/DepthToSpaceTestImpl.cpp index 4d4a6bc156..69994ddb03 100644 --- a/src/backends/backendsCommon/test/layerTests/DepthToSpaceTestImpl.cpp +++ b/src/backends/backendsCommon/test/layerTests/DepthToSpaceTestImpl.cpp @@ -307,6 +307,31 @@ DepthToSpaceTest4<armnn::DataType::QAsymmU8>( const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager, armnn::DataLayout dataLayout); +// QuantisedAsymmS8 +template LayerTestResult<armnn::ResolveType<armnn::DataType::QAsymmS8>, 4> +DepthToSpaceTest1<armnn::DataType::QAsymmS8>( + armnn::IWorkloadFactory& workloadFactory, + const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager, + armnn::DataLayout dataLayout); + +template LayerTestResult<armnn::ResolveType<armnn::DataType::QAsymmS8>, 4> +DepthToSpaceTest2<armnn::DataType::QAsymmS8>( + armnn::IWorkloadFactory& workloadFactory, + const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager, + armnn::DataLayout dataLayout); + +template LayerTestResult<armnn::ResolveType<armnn::DataType::QAsymmS8>, 4> +DepthToSpaceTest3<armnn::DataType::QAsymmS8>( + armnn::IWorkloadFactory& workloadFactory, + const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager, + armnn::DataLayout dataLayout); + +template LayerTestResult<armnn::ResolveType<armnn::DataType::QAsymmS8>, 4> +DepthToSpaceTest4<armnn::DataType::QAsymmS8>( + armnn::IWorkloadFactory& workloadFactory, + const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager, + armnn::DataLayout dataLayout); + // QuantisedSymm16 template LayerTestResult<armnn::ResolveType<armnn::DataType::QSymmS16>, 4> DepthToSpaceTest1<armnn::DataType::QSymmS16>( diff --git a/src/backends/backendsCommon/test/layerTests/NegTestImpl.cpp b/src/backends/backendsCommon/test/layerTests/NegTestImpl.cpp index aace926dcb..f2ed22238e 100644 --- a/src/backends/backendsCommon/test/layerTests/NegTestImpl.cpp +++ b/src/backends/backendsCommon/test/layerTests/NegTestImpl.cpp @@ -133,6 +133,11 @@ Neg2dTest<armnn::DataType::Float16>( armnn::IWorkloadFactory& workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager); +template LayerTestResult<armnn::ResolveType<armnn::DataType::QAsymmS8>, 2> +Neg2dTest<armnn::DataType::QAsymmS8>( + armnn::IWorkloadFactory& workloadFactory, + const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager); + template LayerTestResult<armnn::ResolveType<armnn::DataType::QAsymmU8>, 2> Neg2dTest<armnn::DataType::QAsymmU8>( armnn::IWorkloadFactory& workloadFactory, @@ -153,6 +158,11 @@ Neg3dTest<armnn::DataType::Float16>( armnn::IWorkloadFactory& workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager); +template LayerTestResult<armnn::ResolveType<armnn::DataType::QAsymmS8>, 3> +Neg3dTest<armnn::DataType::QAsymmS8>( + armnn::IWorkloadFactory& workloadFactory, + const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager); + template LayerTestResult<armnn::ResolveType<armnn::DataType::QAsymmU8>, 3> Neg3dTest<armnn::DataType::QAsymmU8>( armnn::IWorkloadFactory& workloadFactory, diff --git a/src/backends/backendsCommon/test/layerTests/ReshapeTestImpl.cpp b/src/backends/backendsCommon/test/layerTests/ReshapeTestImpl.cpp index 5ed947d8c3..979d0a7f73 100644 --- a/src/backends/backendsCommon/test/layerTests/ReshapeTestImpl.cpp +++ b/src/backends/backendsCommon/test/layerTests/ReshapeTestImpl.cpp @@ -176,6 +176,11 @@ SimpleReshapeTest<armnn::DataType::Float32>( armnn::IWorkloadFactory& workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager); +template LayerTestResult<armnn::ResolveType<armnn::DataType::QAsymmS8>, 4> +SimpleReshapeTest<armnn::DataType::QAsymmS8>( + armnn::IWorkloadFactory& workloadFactory, + const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager); + template LayerTestResult<armnn::ResolveType<armnn::DataType::QAsymmU8>, 4> SimpleReshapeTest<armnn::DataType::QAsymmU8>( armnn::IWorkloadFactory& workloadFactory, @@ -191,6 +196,11 @@ Reshape5dTest<armnn::DataType::Float32>( armnn::IWorkloadFactory& workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager); +template LayerTestResult<armnn::ResolveType<armnn::DataType::QAsymmS8>, 5> +Reshape5dTest<armnn::DataType::QAsymmS8>( + armnn::IWorkloadFactory& workloadFactory, + const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager); + template LayerTestResult<armnn::ResolveType<armnn::DataType::QAsymmU8>, 5> Reshape5dTest<armnn::DataType::QAsymmU8>( armnn::IWorkloadFactory& workloadFactory, diff --git a/src/backends/backendsCommon/test/layerTests/ResizeTestImpl.cpp b/src/backends/backendsCommon/test/layerTests/ResizeTestImpl.cpp index e95f18b7a5..f12f53c794 100644 --- a/src/backends/backendsCommon/test/layerTests/ResizeTestImpl.cpp +++ b/src/backends/backendsCommon/test/layerTests/ResizeTestImpl.cpp @@ -727,6 +727,71 @@ ResizeNearestNeighborMagTest<armnn::DataType::QAsymmU8>( float outQuantScale, int32_t outQuantOffset); +// QAsymmS8 +template LayerTestResult<armnn::ResolveType<armnn::DataType::QAsymmS8>, 4> +ResizeBilinearNopTest<armnn::DataType::QAsymmS8>( + armnn::IWorkloadFactory& workloadFactory, + const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager, + const armnn::DataLayout dataLayout); + +template LayerTestResult<armnn::ResolveType<armnn::DataType::QAsymmS8>, 4> +SimpleResizeBilinearTest<armnn::DataType::QAsymmS8>( + armnn::IWorkloadFactory& workloadFactory, + const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager, + const armnn::DataLayout dataLayout); + +template LayerTestResult<armnn::ResolveType<armnn::DataType::QAsymmS8>, 4> +ResizeBilinearSqMinTest<armnn::DataType::QAsymmS8>( + armnn::IWorkloadFactory& workloadFactory, + const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager, + const armnn::DataLayout dataLayout); + +template LayerTestResult<armnn::ResolveType<armnn::DataType::QAsymmS8>, 4> +ResizeBilinearMinTest<armnn::DataType::QAsymmS8>( + armnn::IWorkloadFactory& workloadFactory, + const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager, + const armnn::DataLayout dataLayout); + +template LayerTestResult<armnn::ResolveType<armnn::DataType::QAsymmS8>, 4> +ResizeBilinearMagTest<armnn::DataType::QAsymmS8>( + armnn::IWorkloadFactory& workloadFactory, + const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager, + const armnn::DataLayout dataLayout); + +template LayerTestResult<armnn::ResolveType<armnn::DataType::QAsymmS8>, 4> +ResizeNearestNeighborNopTest<armnn::DataType::QAsymmS8>( + armnn::IWorkloadFactory& workloadFactory, + const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager, + const armnn::DataLayout dataLayout); + +template LayerTestResult<armnn::ResolveType<armnn::DataType::QAsymmS8>, 4> +SimpleResizeNearestNeighborTest<armnn::DataType::QAsymmS8>( + armnn::IWorkloadFactory& workloadFactory, + const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager, + const armnn::DataLayout dataLayout); + +template LayerTestResult<armnn::ResolveType<armnn::DataType::QAsymmS8>, 4> +ResizeNearestNeighborSqMinTest<armnn::DataType::QAsymmS8>( + armnn::IWorkloadFactory& workloadFactory, + const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager, + const armnn::DataLayout dataLayout); + +template LayerTestResult<armnn::ResolveType<armnn::DataType::QAsymmS8>, 4> +ResizeNearestNeighborMinTest<armnn::DataType::QAsymmS8>( + armnn::IWorkloadFactory& workloadFactory, + const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager, + const armnn::DataLayout dataLayout); + +template LayerTestResult<armnn::ResolveType<armnn::DataType::QAsymmS8>, 4> +ResizeNearestNeighborMagTest<armnn::DataType::QAsymmS8>( + armnn::IWorkloadFactory& workloadFactory, + const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager, + const armnn::DataLayout dataLayout, + float inQuantScale, + int32_t inQuantOffset, + float outQuantScale, + int32_t outQuantOffset); + // QSymm16 template LayerTestResult<armnn::ResolveType<armnn::DataType::QSymmS16>, 4> ResizeBilinearNopTest<armnn::DataType::QSymmS16>( diff --git a/src/backends/backendsCommon/test/layerTests/RsqrtTestImpl.cpp b/src/backends/backendsCommon/test/layerTests/RsqrtTestImpl.cpp index ca423835dc..367c82fb7c 100644 --- a/src/backends/backendsCommon/test/layerTests/RsqrtTestImpl.cpp +++ b/src/backends/backendsCommon/test/layerTests/RsqrtTestImpl.cpp @@ -133,6 +133,11 @@ Rsqrt2dTest<armnn::DataType::Float16>( armnn::IWorkloadFactory& workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager); +template LayerTestResult<armnn::ResolveType<armnn::DataType::QAsymmS8>, 2> +Rsqrt2dTest<armnn::DataType::QAsymmS8>( + armnn::IWorkloadFactory& workloadFactory, + const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager); + template LayerTestResult<armnn::ResolveType<armnn::DataType::QAsymmU8>, 2> Rsqrt2dTest<armnn::DataType::QAsymmU8>( armnn::IWorkloadFactory& workloadFactory, @@ -153,6 +158,11 @@ Rsqrt3dTest<armnn::DataType::Float16>( armnn::IWorkloadFactory& workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager); +template LayerTestResult<armnn::ResolveType<armnn::DataType::QAsymmS8>, 3> +Rsqrt3dTest<armnn::DataType::QAsymmS8>( + armnn::IWorkloadFactory& workloadFactory, + const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager); + template LayerTestResult<armnn::ResolveType<armnn::DataType::QAsymmU8>, 3> Rsqrt3dTest<armnn::DataType::QAsymmU8>( armnn::IWorkloadFactory& workloadFactory, diff --git a/src/backends/backendsCommon/test/layerTests/TransposeConvolution2dTestImpl.cpp b/src/backends/backendsCommon/test/layerTests/TransposeConvolution2dTestImpl.cpp index 07f52584ca..813c623cff 100644 --- a/src/backends/backendsCommon/test/layerTests/TransposeConvolution2dTestImpl.cpp +++ b/src/backends/backendsCommon/test/layerTests/TransposeConvolution2dTestImpl.cpp @@ -671,6 +671,13 @@ SimpleTransposeConvolution2dTest<armnn::DataType::Float32, armnn::DataType::Floa bool biasEnabled, const armnn::DataLayout layout); +template LayerTestResult<armnn::ResolveType<armnn::DataType::QAsymmS8>, 4> +SimpleTransposeConvolution2dTest<armnn::DataType::QAsymmS8, armnn::DataType::Signed32>( + armnn::IWorkloadFactory& workloadFactory, + const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager, + bool biasEnabled, + const armnn::DataLayout layout); + template LayerTestResult<armnn::ResolveType<armnn::DataType::QAsymmU8>, 4> SimpleTransposeConvolution2dTest<armnn::DataType::QAsymmU8, armnn::DataType::Signed32>( armnn::IWorkloadFactory& workloadFactory, @@ -692,6 +699,13 @@ PaddedTransposeConvolution2dTest<armnn::DataType::Float32, armnn::DataType::Floa bool biasEnabled, const armnn::DataLayout layout); +template LayerTestResult<armnn::ResolveType<armnn::DataType::QAsymmS8>, 4> +PaddedTransposeConvolution2dTest<armnn::DataType::QAsymmS8, armnn::DataType::Signed32>( + armnn::IWorkloadFactory& workloadFactory, + const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager, + bool biasEnabled, + const armnn::DataLayout layout); + template LayerTestResult<armnn::ResolveType<armnn::DataType::QAsymmU8>, 4> PaddedTransposeConvolution2dTest<armnn::DataType::QAsymmU8, armnn::DataType::Signed32>( armnn::IWorkloadFactory& workloadFactory, @@ -713,6 +727,13 @@ StridedTransposeConvolution2dTest<armnn::DataType::Float32, armnn::DataType::Flo bool biasEnabled, const armnn::DataLayout layout); +template LayerTestResult<armnn::ResolveType<armnn::DataType::QAsymmS8>, 4> +StridedTransposeConvolution2dTest<armnn::DataType::QAsymmS8, armnn::DataType::Signed32>( + armnn::IWorkloadFactory& workloadFactory, + const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager, + bool biasEnabled, + const armnn::DataLayout layout); + template LayerTestResult<armnn::ResolveType<armnn::DataType::QAsymmU8>, 4> StridedTransposeConvolution2dTest<armnn::DataType::QAsymmU8, armnn::DataType::Signed32>( armnn::IWorkloadFactory& workloadFactory, @@ -733,6 +754,12 @@ MultiChannelTransposeConvolution2dTest<armnn::DataType::Float32, armnn::DataType const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager, const armnn::DataLayout layout); +template LayerTestResult<armnn::ResolveType<armnn::DataType::QAsymmS8>, 4> +MultiChannelTransposeConvolution2dTest<armnn::DataType::QAsymmS8, armnn::DataType::Signed32>( + armnn::IWorkloadFactory& workloadFactory, + const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager, + const armnn::DataLayout layout); + template LayerTestResult<armnn::ResolveType<armnn::DataType::QAsymmU8>, 4> MultiChannelTransposeConvolution2dTest<armnn::DataType::QAsymmU8, armnn::DataType::Signed32>( armnn::IWorkloadFactory& workloadFactory, |