diff options
author | Michalis Spyrou <michalis.spyrou@arm.com> | 2020-07-13 15:15:33 +0100 |
---|---|---|
committer | Michalis Spyrou <michalis.spyrou@arm.com> | 2020-07-14 12:32:34 +0000 |
commit | 2232a201a9f72de483c12a7857c5f08b81cf7396 (patch) | |
tree | 39ceb116b88aa81eee0d74b37130d1f491a2a7f2 /tests | |
parent | 3a50166ff71f8379682fe6ece2a94b7a4bb3daa3 (diff) | |
download | ComputeLibrary-2232a201a9f72de483c12a7857c5f08b81cf7396.tar.gz |
COMPMID-3589: ADD CTS test failing with data type QUANT8_ASYMM
Pick the correct scales and offsets in case of broadcast.
Added tests for quantized QUANT8_ASYMM.
Change-Id: I04e90b8ae1f624b12bbdcf6ed9187e58b9135c85
Signed-off-by: Michalis Spyrou <michalis.spyrou@arm.com>
Reviewed-on: https://review.mlplatform.org/c/ml/ComputeLibrary/+/3562
Tested-by: Arm Jenkins <bsgcomp@arm.com>
Reviewed-by: Michele Di Giorgio <michele.digiorgio@arm.com>
Comments-Addressed: Arm Jenkins <bsgcomp@arm.com>
Diffstat (limited to 'tests')
-rw-r--r-- | tests/validation/NEON/ArithmeticAddition.cpp | 18 | ||||
-rw-r--r-- | tests/validation/fixtures/ArithmeticOperationsFixture.h | 14 |
2 files changed, 32 insertions, 0 deletions
diff --git a/tests/validation/NEON/ArithmeticAddition.cpp b/tests/validation/NEON/ArithmeticAddition.cpp index 0d2ce6c624..7b3d4f9ac0 100644 --- a/tests/validation/NEON/ArithmeticAddition.cpp +++ b/tests/validation/NEON/ArithmeticAddition.cpp @@ -210,6 +210,9 @@ TEST_SUITE_END() // Float template <typename T> using NEArithmeticAdditionQuantizedFixture = ArithmeticAdditionValidationQuantizedFixture<Tensor, Accessor, NEArithmeticAddition, T>; +template <typename T> +using NEArithmeticAdditionQuantizedBroadcastFixture = ArithmeticAdditionValidationQuantizedBroadcastFixture<Tensor, Accessor, NEArithmeticAddition, T>; + TEST_SUITE(Quantized) TEST_SUITE(QASYMM8) FIXTURE_DATA_TEST_CASE(RunSmall, @@ -247,6 +250,21 @@ FIXTURE_DATA_TEST_CASE(RunSmall, validate(Accessor(_target), _reference, tolerance_quant); #endif //__aarch64__ } + +FIXTURE_DATA_TEST_CASE(RunSmallBroadcast, NEArithmeticAdditionQuantizedBroadcastFixture<int8_t>, framework::DatasetMode::ALL, combine(combine(combine(combine(combine( + datasets::SmallShapesBroadcast(), ArithmeticAdditionQASYMM8SIGNEDDataset), + framework::dataset::make("ConvertPolicy", { ConvertPolicy::SATURATE })), + framework::dataset::make("Src0QInfo", { QuantizationInfo(0.5f, 20) })), + framework::dataset::make("Src1QInfo", { QuantizationInfo(0.5f, 10) })), + framework::dataset::make("OutQInfo", { QuantizationInfo(0.5f, 5) }))) +{ + // Validate output +#ifdef __aarch64__ + validate(Accessor(_target), _reference); +#else //__aarch64__ + validate(Accessor(_target), _reference, tolerance_quant); +#endif //__aarch64__ +} TEST_SUITE_END() // QASYMM8_SIGNED TEST_SUITE(QSYMM16) diff --git a/tests/validation/fixtures/ArithmeticOperationsFixture.h b/tests/validation/fixtures/ArithmeticOperationsFixture.h index 6e00c46042..9ba7bd3ef7 100644 --- a/tests/validation/fixtures/ArithmeticOperationsFixture.h +++ b/tests/validation/fixtures/ArithmeticOperationsFixture.h @@ -195,6 +195,20 @@ public: }; template <typename TensorType, typename AccessorType, typename FunctionType, typename T> +class ArithmeticAdditionValidationQuantizedBroadcastFixture : public ArithmeticOperationGenericFixture<TensorType, AccessorType, FunctionType, T> +{ +public: + template <typename...> + void setup(const TensorShape &shape0, const TensorShape &shape1, DataType data_type0, DataType data_type1, DataType output_data_type, + ConvertPolicy convert_policy, QuantizationInfo qinfo0, QuantizationInfo qinfo1, QuantizationInfo qinfo_out) + { + ArithmeticOperationGenericFixture<TensorType, AccessorType, FunctionType, T>::setup(reference::ArithmeticOperation::ADD, shape0, shape1, + data_type0, data_type1, output_data_type, convert_policy, + qinfo0, qinfo1, qinfo_out, ActivationLayerInfo(), false); + } +}; + +template <typename TensorType, typename AccessorType, typename FunctionType, typename T> class ArithmeticSubtractionBroadcastValidationFixture : public ArithmeticOperationGenericFixture<TensorType, AccessorType, FunctionType, T> { public: |