diff options
-rw-r--r-- | src/core/CL/kernels/CLReductionOperationKernel.cpp | 2 | ||||
-rw-r--r-- | tests/validation/CL/ReductionOperation.cpp | 26 |
2 files changed, 25 insertions, 3 deletions
diff --git a/src/core/CL/kernels/CLReductionOperationKernel.cpp b/src/core/CL/kernels/CLReductionOperationKernel.cpp index a2a5f2be6d..ff824fce33 100644 --- a/src/core/CL/kernels/CLReductionOperationKernel.cpp +++ b/src/core/CL/kernels/CLReductionOperationKernel.cpp @@ -152,7 +152,7 @@ void CLReductionOperationKernel::configure(const ICLTensor *input, ICLTensor *ou if(is_data_type_quantized(data_type)) { - data_type_promoted = get_cl_dot8_acc_type_from_data_type(data_type); + data_type_promoted = "int"; } else { diff --git a/tests/validation/CL/ReductionOperation.cpp b/tests/validation/CL/ReductionOperation.cpp index 8ec3eb208f..b013af15d1 100644 --- a/tests/validation/CL/ReductionOperation.cpp +++ b/tests/validation/CL/ReductionOperation.cpp @@ -118,7 +118,8 @@ FIXTURE_DATA_TEST_CASE(RunSmall4D, CLReductionOperationFixture<half>, framework: } FIXTURE_DATA_TEST_CASE(RunLarge, CLReductionOperationFixture<half>, framework::DatasetMode::NIGHTLY, combine(combine(combine(combine(datasets::LargeShapes(), framework::dataset::make("DataType", DataType::F16)), framework::dataset::make("Axis", { 0, 1, 2, 3 })), concat(ReductionOperationsSumProd, - ReductionOperationsMinMax)), KeepDimensions)) + ReductionOperationsMinMax)), + KeepDimensions)) { // Validate output validate(CLAccessor(_target), _reference, rel_tolerance_f16, 0, tolerance_f16); @@ -135,7 +136,8 @@ FIXTURE_DATA_TEST_CASE(RunSmall4D, CLReductionOperationFixture<float>, framework } FIXTURE_DATA_TEST_CASE(RunLarge, CLReductionOperationFixture<float>, framework::DatasetMode::NIGHTLY, combine(combine(combine(combine(datasets::LargeShapes(), framework::dataset::make("DataType", DataType::F32)), framework::dataset::make("Axis", { 0, 1, 2, 3 })), concat(ReductionOperationsSumProd, - ReductionOperationsMinMax)), KeepDimensions)) + ReductionOperationsMinMax)), + KeepDimensions)) { // Validate output validate(CLAccessor(_target), _reference, rel_tolerance_f32, 0, tolerance_f32); @@ -147,6 +149,26 @@ template <typename T> using CLReductionOperationQuantizedFixture = ReductionOperationQuantizedFixture<CLTensor, CLAccessor, CLReductionOperation, T>; TEST_SUITE(Quantized) +TEST_SUITE(QASYMM8) +FIXTURE_DATA_TEST_CASE(RunSmall, CLReductionOperationQuantizedFixture<uint8_t>, framework::DatasetMode::ALL, + combine(combine(combine(combine(combine(datasets::Small4DShapes(), framework::dataset::make("DataType", DataType::QASYMM8)), framework::dataset::make("Axis", { 0, 1, 2, 3 })), + ReductionOperationsSumProd), + framework::dataset::make("QuantizationInfo", QuantizationInfo(1.f / 64, 2))), + KeepDimensions)) +{ + // Validate output + validate(CLAccessor(_target), _reference, tolerance_qasymm8); +} +FIXTURE_DATA_TEST_CASE(RunSmallMinMax, CLReductionOperationQuantizedFixture<uint8_t>, framework::DatasetMode::ALL, + combine(combine(combine(combine(combine(datasets::Small4DShapes(), framework::dataset::make("DataType", DataType::QASYMM8)), framework::dataset::make("Axis", { 0, 1, 2, 3 })), + ReductionOperationsMinMax), + framework::dataset::make("QuantizationInfo", QuantizationInfo(1.f / 64, 2))), + KeepDimensions)) +{ + // Validate output + validate(CLAccessor(_target), _reference); +} +TEST_SUITE_END() // QASYMM8 TEST_SUITE(QASYMM8_SIGNED) FIXTURE_DATA_TEST_CASE(RunSmall, CLReductionOperationQuantizedFixture<int8_t>, framework::DatasetMode::ALL, combine(combine(combine(combine(combine(datasets::Small4DShapes(), framework::dataset::make("DataType", DataType::QASYMM8_SIGNED)), framework::dataset::make("Axis", { 0, 1, 2, 3 })), |