diff options
author | Georgios Pinitas <georgios.pinitas@arm.com> | 2017-11-29 14:27:24 +0000 |
---|---|---|
committer | Anthony Barbier <anthony.barbier@arm.com> | 2018-11-02 16:41:36 +0000 |
commit | 6fdfaa856b1eb69d6afbef5727b99756912fc6fa (patch) | |
tree | 1f1b916fc94a140ec16090a638f9d0531032d9bb /tests | |
parent | 47b5603a0db2797dda66a2b5dbbc451a740a5ecd (diff) | |
download | ComputeLibrary-6fdfaa856b1eb69d6afbef5727b99756912fc6fa.tar.gz |
COMPMID-713: Address failures in OCLGrind for CLDirectConvolution
-Changes way of clamping in the kernel side.
-Fills padding with quantized values
Change-Id: I94d17c341fd637fbb24390722162b551b62d16cb
Reviewed-on: https://eu-gerrit-1.euhpc.arm.com/111114
Reviewed-by: Anthony Barbier <anthony.barbier@arm.com>
Tested-by: BSG Visual Compute Jenkins server to access repositories on http://mpd-gerrit.cambridge.arm.com <bsgcomp@arm.com>
Diffstat (limited to 'tests')
-rw-r--r-- | tests/validation/CL/DirectConvolutionLayer.cpp | 2 | ||||
-rw-r--r-- | tests/validation/CPP/ConvolutionLayer.cpp | 3 | ||||
-rw-r--r-- | tests/validation/fixtures/DirectConvolutionLayerFixture.h | 4 |
3 files changed, 4 insertions, 5 deletions
diff --git a/tests/validation/CL/DirectConvolutionLayer.cpp b/tests/validation/CL/DirectConvolutionLayer.cpp index 08d53d5af3..e6a196ae46 100644 --- a/tests/validation/CL/DirectConvolutionLayer.cpp +++ b/tests/validation/CL/DirectConvolutionLayer.cpp @@ -196,7 +196,7 @@ using CLDirectConvolutionLayerQuantizedFixture = DirectConvolutionValidationQuan TEST_SUITE(Quantized) TEST_SUITE(QASYMM8) FIXTURE_DATA_TEST_CASE(Run, CLDirectConvolutionLayerQuantizedFixture<uint8_t>, framework::DatasetMode::ALL, combine(combine(data, framework::dataset::make("DataType", DataType::QASYMM8)), - framework::dataset::make("QuantizationInfo", { QuantizationInfo(2.f / 255, 127) }))) + framework::dataset::make("QuantizationInfo", { QuantizationInfo(2.f / 255, 10) }))) { // Validate output validate(CLAccessor(_target), _reference, tolerance_qasymm8); diff --git a/tests/validation/CPP/ConvolutionLayer.cpp b/tests/validation/CPP/ConvolutionLayer.cpp index a767912879..3884a930a2 100644 --- a/tests/validation/CPP/ConvolutionLayer.cpp +++ b/tests/validation/CPP/ConvolutionLayer.cpp @@ -210,8 +210,7 @@ void convolution3d(const SimpleTensor<uint8_t> &in, const SimpleTensor<uint8_t> acc = asymm_rounding_divide_by_pow2(asymm_int_mult(acc, output_multiplier), output_shift); acc += output_offset; - acc = std::max<int32_t>(acc, 0); - acc = std::min<int32_t>(acc, 255); + acc = clamp<int32_t>(acc, 0, 255); // Store the result *out_ptr = acc; diff --git a/tests/validation/fixtures/DirectConvolutionLayerFixture.h b/tests/validation/fixtures/DirectConvolutionLayerFixture.h index 1ec4d31304..b78f13acd1 100644 --- a/tests/validation/fixtures/DirectConvolutionLayerFixture.h +++ b/tests/validation/fixtures/DirectConvolutionLayerFixture.h @@ -73,7 +73,7 @@ protected: { case DataType::QASYMM8: { - std::uniform_int_distribution<uint8_t> distribution(0, 10); + std::uniform_int_distribution<uint8_t> distribution(0, 50); library->fill(tensor, distribution, i); break; } @@ -86,7 +86,7 @@ protected: } case DataType::S32: { - std::uniform_int_distribution<int32_t> distribution(-1000, 1000); + std::uniform_int_distribution<int32_t> distribution(-5, 5); library->fill(tensor, distribution, i); break; } |