From 5abc6b824abb845ecee862af6fd7221ae538e503 Mon Sep 17 00:00:00 2001 From: Jens Elofsson Date: Fri, 28 Jun 2024 11:02:09 +0200 Subject: [PATCH 1/2] Skip SME2 tests on non-SME2 hardware. Signed-off-by: Jens Elofsson --- test/tests/matmul_test.cpp | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/test/tests/matmul_test.cpp b/test/tests/matmul_test.cpp index e44f73e2..ac534645 100644 --- a/test/tests/matmul_test.cpp +++ b/test/tests/matmul_test.cpp @@ -22,6 +22,7 @@ #include "kai/kai_common.h" #include "test/common/compare.hpp" +#include "test/common/cpu_info.hpp" #include "test/common/data_format.hpp" #include "test/common/data_type.hpp" #include "test/common/float16.hpp" @@ -54,6 +55,8 @@ struct MatMulMethod { bool lhs_transposed; ///< LHS matrix is transposed. bool rhs_transposed; ///< RHS matrix is transposed. + bool is_sme2; ///< Test is a sme2 test + DataFormat dst_format; ///< Data format of the destination matrix. DataFormat lhs_format; ///< Data format of the LHS matrix. DataFormat packed_lhs_format; ///< Data format of the packed LHS matrix. @@ -326,6 +329,8 @@ static const std::array matmul_methods = { .lhs_transposed = false, .rhs_transposed = false, + .is_sme2 = false, + .dst_format = DataFormat(DataType::FP16), .lhs_format = DataFormat(DataType::FP16), .packed_lhs_format = DataFormat(DataType::UNKNOWN), @@ -372,6 +377,8 @@ static const std::array matmul_methods = { .lhs_transposed = false, .rhs_transposed = false, + .is_sme2 = true, + .dst_format = DataFormat(DataType::FP32), .lhs_format = DataFormat(DataType::FP32), .packed_lhs_format = DataFormat(DataType::FP32, 2 * get_sme_vector_length(), 1), @@ -548,6 +555,10 @@ TEST_P(MatMulTest, PackedLhs) { const auto& data = test_data(); const auto& method = matmul_methods.at(method_no); + if (method.is_sme2 && !cpu_has_sme2()) { + GTEST_SKIP(); + } + if (!method.is_pack_lhs_needed()) { GTEST_SKIP(); } @@ -595,6 +606,10 @@ TEST_P(MatMulTest, PackedRhs) { const auto& data = test_data(); const auto& method = matmul_methods.at(method_no); + if (method.is_sme2 && !cpu_has_sme2()) { + GTEST_SKIP(); + } + if (!method.is_pack_rhs_needed()) { GTEST_SKIP(); } @@ -662,6 +677,10 @@ TEST_P(MatMulTest, Output) { const auto& data = test_data(); const auto& method = matmul_methods.at(method_no); + if (method.is_sme2 && !cpu_has_sme2()) { + GTEST_SKIP(); + } + if (!method.has_main_kernel()) { GTEST_SKIP(); } -- GitLab From 7a34117bde993ae180137c541f6dc54226d535b7 Mon Sep 17 00:00:00 2001 From: Jens Elofsson Date: Mon, 1 Jul 2024 16:45:20 +0200 Subject: [PATCH 2/2] Remove sme-filter from CI. Filtering is now done in the testcases, so it's no longer needed to filter for SME in the CI. Signed-off-by: Jens Elofsson --- .gitlab-ci.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 69e27e03..8bfb29d1 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -89,7 +89,7 @@ test-linux-aarch64: needs: - build-clang script: - - ./build/kleidiai_test --gtest_filter=*:-*sme* --gtest_output=xml:kleidiai_test_results.xml + - ./build/kleidiai_test --gtest_output=xml:kleidiai_test_results.xml artifacts: when: always expire_in: 1 day @@ -105,7 +105,7 @@ test-linux-aarch64-cov: needs: - build-clang-cov script: - - ./build/kleidiai_test --gtest_filter=*:-*sme* --gtest_output=xml:kleidiai_test_results.xml + - ./build/kleidiai_test --gtest_output=xml:kleidiai_test_results.xml - mkdir -p build/coverage - gcovr --gcov-executable="llvm-cov gcov" --exclude-unreachable-branches --exclude=build --exclude=test --exclude-lines-by-pattern=".*KAI_(?:ASSERT|ASSUME|ERROR).*" --exclude-branches-by-pattern=".*KAI_(?:ASSERT|ASSUME).*" --json=build/coverage/linux-aarch64.json -j --root . build artifacts: @@ -133,7 +133,7 @@ test-linux-aarch64-cov-fvp: cd '$PWD' mkdir -p artifacts/$CI_PROJECT_DIR - GCOV_PREFIX=artifacts ./build/kleidiai_test --gtest_filter=*sme* --gtest_output=xml:artifacts/$CI_PROJECT_DIR/kleidiai_test_results.xml && echo 'FINISHED WITHOUT ERROR' + GCOV_PREFIX=artifacts ./build/kleidiai_test --gtest_output=xml:artifacts/$CI_PROJECT_DIR/kleidiai_test_results.xml && echo 'FINISHED WITHOUT ERROR' tar cvf artifacts.tar -C artifacts . sync -- GitLab