From fc1d1e2200f3056572b158b8208bac456f48339f Mon Sep 17 00:00:00 2001 From: Michele Di Giorgio Date: Tue, 10 Apr 2018 14:24:35 +0100 Subject: 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 Reviewed-by: Anthony Barbier --- tests/validation/GLES_COMPUTE/ConvolutionLayer.cpp | 22 +++++++++++++++++++++- 1 file changed, 21 insertions(+), 1 deletion(-) (limited to 'tests/validation/GLES_COMPUTE') 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 tolerance_f16(half_float::half(0.2)); /**< Tolerance value for comparing reference's output against implementation's output for DataType::F16 */ +RelativeTolerance 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, framework::Dat validate(GCAccessor(_target), _reference, tolerance_f16, tolerance_num); } TEST_SUITE_END() + +TEST_SUITE(FP32) +FIXTURE_DATA_TEST_CASE(RunSmall, GCConvolutionLayerFixture, 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, 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() -- cgit v1.2.1