diff options
author | Pablo Tello <pablo.tello@arm.com> | 2017-12-07 15:20:55 +0000 |
---|---|---|
committer | Anthony Barbier <anthony.barbier@arm.com> | 2018-11-02 16:42:33 +0000 |
commit | 088cc7ff4623b268275f38c1ffb6d373584335ed (patch) | |
tree | c7a1a1b855aa24dc2067c0b076584762e88a5ed5 /tests/validation/CL/GEMM.cpp | |
parent | 25f23680b211b6dd27c006cb9575e816e8f80bb5 (diff) | |
download | ComputeLibrary-088cc7ff4623b268275f38c1ffb6d373584335ed.tar.gz |
COMPMID: GEMMTranspose1xW tests.
Change-Id: I62a7a1871b93fafc65eb58fa550bc86179bdffe7
Reviewed-on: https://eu-gerrit-1.euhpc.arm.com/112489
Tested-by: Jenkins <bsgcomp@arm.com>
Reviewed-by: Georgios Pinitas <georgios.pinitas@arm.com>
Reviewed-by: Gian Marco Iodice <gianmarco.iodice@arm.com>
Diffstat (limited to 'tests/validation/CL/GEMM.cpp')
-rw-r--r-- | tests/validation/CL/GEMM.cpp | 46 |
1 files changed, 45 insertions, 1 deletions
diff --git a/tests/validation/CL/GEMM.cpp b/tests/validation/CL/GEMM.cpp index 255f5d934a..5114ed6c13 100644 --- a/tests/validation/CL/GEMM.cpp +++ b/tests/validation/CL/GEMM.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2017 ARM Limited. + * Copyright (c) 2017, 2018 ARM Limited. * * SPDX-License-Identifier: MIT * @@ -22,6 +22,7 @@ * SOFTWARE. */ #include "arm_compute/core/CL/kernels/CLGEMMInterleave4x4Kernel.h" +#include "arm_compute/core/CL/kernels/CLGEMMTranspose1xWKernel.h" #include "arm_compute/core/Types.h" #include "arm_compute/runtime/CL/CLTensor.h" #include "arm_compute/runtime/CL/CLTensorAllocator.h" @@ -37,6 +38,7 @@ #include "tests/validation/Validation.h" #include "tests/validation/fixtures/GEMMFixture.h" #include "tests/validation/fixtures/GEMMInterleave4x4Fixture.h" +#include "tests/validation/fixtures/GEMMTranspose1xWFixture.h" namespace arm_compute { @@ -62,6 +64,8 @@ const auto CNNDataTypes = framework::dataset::make("DataType", }); } // namespace +const auto data_transpose = framework::dataset::make("M", 8, 14) * framework::dataset::make("N", 7, 14); + TEST_SUITE(CL) TEST_SUITE(GEMM) @@ -131,6 +135,46 @@ DATA_TEST_CASE(Configuration, framework::DatasetMode::ALL, combine(framework::da template <typename T> using CLGEMMFixture = GEMMValidationFixture<CLTensor, CLAccessor, CLGEMM, T>; +TEST_SUITE(TRANSPOSE_1XW) +using CLGEMMTranspose1xW = CLSynthetizeFunctionWithZeroConstantBorder<CLGEMMTranspose1xWKernel, 4>; +using CLGEMMTranspose1xWFixture = GEMMTranspose1xWValidationFixture<CLTensor, CLAccessor, CLGEMMTranspose1xW, float>; +TEST_SUITE(FP32) +FIXTURE_DATA_TEST_CASE(RunSmall, CLGEMMTranspose1xWFixture, framework::DatasetMode::PRECOMMIT, data_transpose * framework::dataset::make("DataType", DataType::F32)) +{ + // Validate output + validate(CLAccessor(_target), _reference); +} +TEST_SUITE_END() // FP32 + +TEST_SUITE(Quantized) +TEST_SUITE(QS8) +using CLGEMMTranspose1xW = CLSynthetizeFunctionWithZeroConstantBorder<CLGEMMTranspose1xWKernel, 16>; +using CLGEMMTranspose1xWFixture = GEMMTranspose1xWValidationFixedPointFixture<CLTensor, CLAccessor, CLGEMMTranspose1xW, int8_t>; +FIXTURE_DATA_TEST_CASE(RunSmall, CLGEMMTranspose1xWFixture, framework::DatasetMode::PRECOMMIT, data_transpose * + framework::dataset::make("DataType", DataType::QS8) + * framework::dataset::make("FractionalBits", 1, 7)) +{ + // Validate output + validate(CLAccessor(_target), _reference); +} +TEST_SUITE_END() + +TEST_SUITE(QS16) +using CLGEMMTranspose1xW = CLSynthetizeFunctionWithZeroConstantBorder<CLGEMMTranspose1xWKernel, 8>; +using CLGEMMTranspose1xWFixture = GEMMTranspose1xWValidationFixedPointFixture<CLTensor, CLAccessor, CLGEMMTranspose1xW, int16_t>; +FIXTURE_DATA_TEST_CASE(RunSmall, CLGEMMTranspose1xWFixture, framework::DatasetMode::PRECOMMIT, data_transpose * + framework::dataset::make("DataType", DataType::QS16) + * framework::dataset::make("FractionalBits", 1, 14)) +{ + // Validate output + validate(CLAccessor(_target), _reference); +} +TEST_SUITE_END() + +TEST_SUITE_END() + +TEST_SUITE_END() //TRANSPOSE_1XW + TEST_SUITE(Float) TEST_SUITE(FP16) FIXTURE_DATA_TEST_CASE(RunSmall, CLGEMMFixture<half>, framework::DatasetMode::PRECOMMIT, combine(datasets::SmallGEMMDataset(), framework::dataset::make("DataType", DataType::F16))) |