aboutsummaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorMichele Di Giorgio <michele.digiorgio@arm.com>2020-10-08 11:54:42 +0100
committerGeorgios Pinitas <georgios.pinitas@arm.com>2020-10-14 09:49:26 +0000
commitcf9e29e3bd2fcd772c156c7866425335bfdbde6a (patch)
treed363f53dec291cf2e93eaf339b6fb1a01e8a9b06 /tests
parent87350f47084d2b69daa11c3b1c7eb47e02260063 (diff)
downloadComputeLibrary-cf9e29e3bd2fcd772c156c7866425335bfdbde6a.tar.gz
COMPMID-3172: Remove padding from NEGEMMMatrixMultiplyKernel
Template parameter has been removed, which reduces the binary size by: - ~4 kB for armv8.2a - ~12 kB for armv8a Change-Id: Ib499a18a4980a3ee7b201507b943f900adf20a73 Signed-off-by: Michele Di Giorgio <michele.digiorgio@arm.com> Reviewed-on: https://review.mlplatform.org/c/ml/ComputeLibrary/+/4122 Tested-by: Arm Jenkins <bsgcomp@arm.com> Reviewed-by: Giorgio Arena <giorgio.arena@arm.com> Reviewed-by: Georgios Pinitas <georgios.pinitas@arm.com> Comments-Addressed: Arm Jenkins <bsgcomp@arm.com>
Diffstat (limited to 'tests')
-rw-r--r--tests/validation/NEON/GEMM.cpp34
1 files changed, 34 insertions, 0 deletions
diff --git a/tests/validation/NEON/GEMM.cpp b/tests/validation/NEON/GEMM.cpp
index dfac72f3a5..25e8f28dc3 100644
--- a/tests/validation/NEON/GEMM.cpp
+++ b/tests/validation/NEON/GEMM.cpp
@@ -87,6 +87,20 @@ bool validate_zero_padding(unsigned int dim0_value, unsigned int dim1_value)
return in.info()->padding().empty();
}
+/* Zero padding test for GEMM kernels */
+bool validate_gemm_zero_padding(const TensorShape shape0, const TensorShape shape1)
+{
+ // Create tensors
+ Tensor in0 = create_tensor<Tensor>(shape0, DataType::F32);
+ Tensor in1 = create_tensor<Tensor>(shape1, DataType::F32);
+ Tensor dst;
+
+ // Validate zero-padding
+ NEGEMMMatrixMultiplyKernel gemm;
+ gemm.configure(&in0, &in1, &dst, 1.0, false);
+
+ return in0.info()->padding().empty() && in1.info()->padding().empty() && dst.info()->padding().empty();
+}
} // namespace
TEST_SUITE(NEON)
@@ -182,6 +196,26 @@ template <typename T>
using NEGEMMFixtureDisabledC = GEMMValidationFixture<Tensor, Accessor, NEGEMM, T, true>;
TEST_SUITE(Float)
+DATA_TEST_CASE(ValidateZeroPadding, framework::DatasetMode::ALL, zip(framework::dataset::make("In0", { TensorShape(21U, 13U),
+ TensorShape(31U, 1U),
+ TensorShape(31U, 1U),
+ TensorShape(8U, 2U),
+ TensorShape(38U, 12U),
+ TensorShape(32U, 1U)
+ }),
+ framework::dataset::make("In1", { TensorShape(33U, 21U),
+ TensorShape(23U, 31U),
+ TensorShape(23U, 31U),
+ TensorShape(16U, 8U),
+ TensorShape(21U, 38U),
+ TensorShape(17U, 32U)
+ })),
+ shape0, shape1)
+{
+ bool status = validate_gemm_zero_padding(shape0, shape1);
+ ARM_COMPUTE_EXPECT(status, framework::LogLevel::ERRORS);
+}
+
#ifdef __ARM_FEATURE_FP16_VECTOR_ARITHMETIC
TEST_SUITE(FP16)
FIXTURE_DATA_TEST_CASE(RunSmall, NEGEMMFixture<half>, framework::DatasetMode::PRECOMMIT, combine(combine(datasets::SmallGEMMDataset(),