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/NEON | |
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/NEON')
-rw-r--r-- | tests/validation/NEON/GEMM.cpp | 46 |
1 files changed, 45 insertions, 1 deletions
diff --git a/tests/validation/NEON/GEMM.cpp b/tests/validation/NEON/GEMM.cpp index 57e8ce7ea9..1145d0b79e 100644 --- a/tests/validation/NEON/GEMM.cpp +++ b/tests/validation/NEON/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/NEON/kernels/NEGEMMInterleave4x4Kernel.h" +#include "arm_compute/core/NEON/kernels/NEGEMMTranspose1xWKernel.h" #include "arm_compute/core/Types.h" #include "arm_compute/runtime/NEON/functions/NEGEMM.h" #include "arm_compute/runtime/Tensor.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 { @@ -61,11 +63,53 @@ const auto CNNDataTypes = framework::dataset::make("DataType", }); const auto data_interleave = framework::dataset::make("M", 8, 12) * framework::dataset::make("N", 8, 12); +const auto data_transpose = framework::dataset::make("M", 8, 14) * framework::dataset::make("N", 7, 14); + } // namespace TEST_SUITE(NEON) TEST_SUITE(GEMM) +TEST_SUITE(TRANSPOSE_1XW) +using NEGEMMTranspose1xW = NESynthetizeFunctionWithZeroConstantBorder<NEGEMMTranspose1xWKernel, 4>; +using NEGEMMTranspose1xWFixture = GEMMTranspose1xWValidationFixture<Tensor, Accessor, NEGEMMTranspose1xW, float>; +TEST_SUITE(FP32) +FIXTURE_DATA_TEST_CASE(RunSmall, NEGEMMTranspose1xWFixture, framework::DatasetMode::PRECOMMIT, data_transpose * framework::dataset::make("DataType", DataType::F32)) +{ + // Validate output + validate(Accessor(_target), _reference); +} +TEST_SUITE_END() // FP32 + +TEST_SUITE(Quantized) +TEST_SUITE(QS8) +using NEGEMMTranspose1xW = NESynthetizeFunctionWithZeroConstantBorder<NEGEMMTranspose1xWKernel, 16>; +using NEGEMMTranspose1xWFixture = GEMMTranspose1xWValidationFixedPointFixture<Tensor, Accessor, NEGEMMTranspose1xW, int8_t>; +FIXTURE_DATA_TEST_CASE(RunSmall, NEGEMMTranspose1xWFixture, framework::DatasetMode::PRECOMMIT, data_transpose * + framework::dataset::make("DataType", DataType::QS8) + * framework::dataset::make("FractionalBits", 1, 7)) +{ + // Validate output + validate(Accessor(_target), _reference); +} +TEST_SUITE_END() + +TEST_SUITE(QS16) +using NEGEMMTranspose1xW = NESynthetizeFunctionWithZeroConstantBorder<NEGEMMTranspose1xWKernel, 8>; +using NEGEMMTranspose1xWFixture = GEMMTranspose1xWValidationFixedPointFixture<Tensor, Accessor, NEGEMMTranspose1xW, int16_t>; +FIXTURE_DATA_TEST_CASE(RunSmall, NEGEMMTranspose1xWFixture, framework::DatasetMode::PRECOMMIT, data_transpose * + framework::dataset::make("DataType", DataType::QS16) + * framework::dataset::make("FractionalBits", 1, 14)) +{ + // Validate output + validate(Accessor(_target), _reference); +} +TEST_SUITE_END() + +TEST_SUITE_END() + +TEST_SUITE_END() // TRANSPOSE_1XW + TEST_SUITE(INTERLEAVE_4X4) using NEGEMMInterleave4x4 = NESynthetizeFunctionWithZeroConstantBorder<NEGEMMInterleave4x4Kernel, 4>; |