diff options
author | Michele Di Giorgio <michele.digiorgio@arm.com> | 2018-04-10 14:24:35 +0100 |
---|---|---|
committer | Anthony Barbier <anthony.barbier@arm.com> | 2018-11-02 16:49:37 +0000 |
commit | fc1d1e2200f3056572b158b8208bac456f48339f (patch) | |
tree | 754c5ea55f2170afc2503d2fd67759c538660715 /tests/validation/GLES_COMPUTE/ConvolutionLayer.cpp | |
parent | a72300a5e4d44cdadfe37f69e21f9bf628d19bb3 (diff) | |
download | ComputeLibrary-fc1d1e2200f3056572b158b8208bac456f48339f.tar.gz |
COMPMID-959: Add FP32 support to GLES GEMMConvolution
The following kernels were supposed to have FP32 support but this was not the
case because of bugs and missing shaders:
- GCCol2Im
- GCIm2Col
- GCWeightsReshape
Change-Id: Ie6ea464db0612757c71c3d40874e7bb0d60f170a
Reviewed-on: https://eu-gerrit-1.euhpc.arm.com/127572
Tested-by: Jenkins <bsgcomp@arm.com>
Reviewed-by: Anthony Barbier <anthony.barbier@arm.com>
Diffstat (limited to 'tests/validation/GLES_COMPUTE/ConvolutionLayer.cpp')
-rw-r--r-- | tests/validation/GLES_COMPUTE/ConvolutionLayer.cpp | 22 |
1 files changed, 21 insertions, 1 deletions
diff --git a/tests/validation/GLES_COMPUTE/ConvolutionLayer.cpp b/tests/validation/GLES_COMPUTE/ConvolutionLayer.cpp index 8808d82d34..a23c3ec4d7 100644 --- a/tests/validation/GLES_COMPUTE/ConvolutionLayer.cpp +++ b/tests/validation/GLES_COMPUTE/ConvolutionLayer.cpp @@ -45,13 +45,14 @@ namespace validation namespace { RelativeTolerance<half_float::half> tolerance_f16(half_float::half(0.2)); /**< Tolerance value for comparing reference's output against implementation's output for DataType::F16 */ +RelativeTolerance<float> tolerance_f32(0.00001f); /**< Tolerance value for comparing reference's output against implementation's output for DataType::F32 */ constexpr float tolerance_num = 0.07f; /**< Tolerance number */ /** CNN data types */ const auto CNNDataTypes = framework::dataset::make("DataType", { DataType::F16, - // DataType::F32, + DataType::F32, }); const auto ActivationFunctionsDataset = framework::dataset::make("ActivationInfo", { @@ -135,6 +136,25 @@ FIXTURE_DATA_TEST_CASE(RunLarge, GCConvolutionLayerFixture<half>, framework::Dat validate(GCAccessor(_target), _reference, tolerance_f16, tolerance_num); } TEST_SUITE_END() + +TEST_SUITE(FP32) +FIXTURE_DATA_TEST_CASE(RunSmall, GCConvolutionLayerFixture<float>, framework::DatasetMode::PRECOMMIT, combine(combine(combine(datasets::SmallConvolutionLayerDataset(), + framework::dataset::make("ReshapeWeights", { true, false })), + framework::dataset::make("DataType", DataType::F32)), + ActivationFunctionsDataset)) +{ + // Validate output + validate(GCAccessor(_target), _reference, tolerance_f32, tolerance_num); +} +FIXTURE_DATA_TEST_CASE(RunLarge, GCConvolutionLayerFixture<float>, framework::DatasetMode::NIGHTLY, combine(combine(combine(datasets::LargeConvolutionLayerDataset(), + framework::dataset::make("ReshapeWeights", { true, false })), + framework::dataset::make("DataType", DataType::F32)), + ActivationFunctionsDataset)) +{ + // Validate output + validate(GCAccessor(_target), _reference, tolerance_f32, tolerance_num); +} +TEST_SUITE_END() TEST_SUITE_END() TEST_SUITE_END() |