diff options
author | Sheri Zhang <sheri.zhang@arm.com> | 2020-07-16 15:52:25 +0100 |
---|---|---|
committer | Michalis Spyrou <michalis.spyrou@arm.com> | 2020-07-21 09:46:07 +0000 |
commit | a449a3638aaaa32414384219a0041b86591a7f41 (patch) | |
tree | 3454f181212f84a99217bc8dee2dc1946ecfc699 /tests/validation/NEON/PixelWiseMultiplication.cpp | |
parent | 406a13f0b414d5c0375a46beec8dd9363a1cca56 (diff) | |
download | ComputeLibrary-a449a3638aaaa32414384219a0041b86591a7f41.tar.gz |
COMPMID-3600: MUL unit test failing with data type QUANT8_ASYMM
Add broadcast support for NEPixelWiseMultiplicationKernel with QASYMM8/QASYMM8_SIGNED
Add test case for QASYMM8 broadcast
Fix QASYMM8 saturation issue
Signed-off-by: Sheri Zhang <sheri.zhang@arm.com>
Change-Id: Ie67cfa8b94ab542133b031efbff8379cc57cfc2d
Reviewed-on: https://review.mlplatform.org/c/ml/ComputeLibrary/+/3586
Comments-Addressed: Arm Jenkins <bsgcomp@arm.com>
Tested-by: Arm Jenkins <bsgcomp@arm.com>
Reviewed-by: Michalis Spyrou <michalis.spyrou@arm.com>
Diffstat (limited to 'tests/validation/NEON/PixelWiseMultiplication.cpp')
-rw-r--r-- | tests/validation/NEON/PixelWiseMultiplication.cpp | 23 |
1 files changed, 20 insertions, 3 deletions
diff --git a/tests/validation/NEON/PixelWiseMultiplication.cpp b/tests/validation/NEON/PixelWiseMultiplication.cpp index c806b23255..0b88628912 100644 --- a/tests/validation/NEON/PixelWiseMultiplication.cpp +++ b/tests/validation/NEON/PixelWiseMultiplication.cpp @@ -113,10 +113,12 @@ using NEPixelWiseMultiplicationToS16Fixture = PixelWiseMultiplicationValidationF template <typename T> using NEPixelWiseMultiplicationToF16Fixture = PixelWiseMultiplicationValidationFixture<Tensor, Accessor, NEPixelWiseMultiplication, T, half_float::half>; template <typename T> -using NEPixelWiseMultiplicationToF32Fixture = PixelWiseMultiplicationValidationFixture<Tensor, Accessor, NEPixelWiseMultiplication, T, float>; -template <typename T> -using NEPixelWiseMultiplicationBroadcastFixture = PixelWiseMultiplicationBroadcastValidationFixture<Tensor, Accessor, NEPixelWiseMultiplication, T, float>; +using NEPixelWiseMultiplicationToF32Fixture = PixelWiseMultiplicationValidationFixture<Tensor, Accessor, NEPixelWiseMultiplication, T, float>; using NEPixelWiseMultiplicationU8U8ToS16Fixture = PixelWiseMultiplicationValidationFixture<Tensor, Accessor, NEPixelWiseMultiplication, uint8_t, uint8_t, int16_t>; +template <typename T> +using NEPixelWiseMultiplicationBroadcastFixture = PixelWiseMultiplicationBroadcastValidationFixture<Tensor, Accessor, NEPixelWiseMultiplication, T, float>; +using NEPixelWiseMultiplicationBroadcastQASYMM8Fixture = PixelWiseMultiplicationBroadcastValidationQuantizedFixture<Tensor, Accessor, NEPixelWiseMultiplication, uint8_t, uint8_t>; +using NEPixelWiseMultiplicationBroadcastQASYMM8SignedFixture = PixelWiseMultiplicationBroadcastValidationQuantizedFixture<Tensor, Accessor, NEPixelWiseMultiplication, int8_t, int8_t>; TEST_SUITE(NEON) TEST_SUITE(PixelWiseMultiplication) @@ -317,6 +319,21 @@ FIXTURE_DATA_TEST_CASE(RunSmall, NEPixelWiseMultiplicationQASYMM8Fixture, framew validate(Accessor(_target), _reference, tolerance_qasymm8); } TEST_SUITE_END() // ScaleOther +TEST_SUITE(Broadcast) +FIXTURE_DATA_TEST_CASE(RunSmall, NEPixelWiseMultiplicationBroadcastQASYMM8Fixture, framework::DatasetMode::ALL, + combine(combine(combine(combine(combine(combine(combine(datasets::SmallShapesBroadcast(), + framework::dataset::make("DataTypeIn1", DataType::QASYMM8)), + framework::dataset::make("DataTypeIn2", DataType::QASYMM8)), + framework::dataset::make("DataTypeOut", DataType::QASYMM8)), + framework::dataset::make("Scale", { scale_other })), + PixelWiseMultiplicationPolicySTZDataset), + PixelWiseMultiplicationQASYMM8QuantDataset), + framework::dataset::make("InPlace", { false }))) +{ + // Validate output + validate(Accessor(_target), _reference, tolerance_qasymm8); +} +TEST_SUITE_END() // Broadcast TEST_SUITE_END() // QASYMM8 TEST_SUITE(QSYMM16) TEST_SUITE(Scale255) |