[Mlir-commits] [mlir] d3fe2b5 - Revert "[mlir][test] Make SME e2e tests require an emulator (#86489)"
Andrzej Warzynski
llvmlistbot at llvm.org
Thu Apr 4 09:14:22 PDT 2024
Author: Andrzej Warzynski
Date: 2024-04-04T17:12:37+01:00
New Revision: d3fe2b538d53373f03ae096ccc05d07cb4d3ff3a
URL: https://github.com/llvm/llvm-project/commit/d3fe2b538d53373f03ae096ccc05d07cb4d3ff3a
DIFF: https://github.com/llvm/llvm-project/commit/d3fe2b538d53373f03ae096ccc05d07cb4d3ff3a.diff
LOG: Revert "[mlir][test] Make SME e2e tests require an emulator (#86489)"
This reverts commit 7b5255297dca377a37c8df066e9d9749ab96cfad.
Broken bot:
* https://lab.llvm.org/buildbot/#/builders/179/builds/9794
Added:
Modified:
mlir/docs/Dialects/ArmSME.md
mlir/test/CMakeLists.txt
Removed:
mlir/cmake/modules/MLIRCheckHardwareFeatures.cmake
################################################################################
diff --git a/mlir/cmake/modules/MLIRCheckHardwareFeatures.cmake b/mlir/cmake/modules/MLIRCheckHardwareFeatures.cmake
deleted file mode 100644
index fff0424593fb9a..00000000000000
--- a/mlir/cmake/modules/MLIRCheckHardwareFeatures.cmake
+++ /dev/null
@@ -1,101 +0,0 @@
-# A collection of helper CMake functions to detect hardware capabilities. At
-# the moment these are used when configuring MLIR integration tests.
-
-# Checks whether the specified hardware capability is supported by the host
-# Linux system. This is implemented by checking auxiliary vector feature
-# provided by the Linux kernel.
-#
-# check_hwcap(
-# hwcap_spec
-# output_var
-# )
-#
-# hwcap_spec - HWCAP value to check - these are defined in hwcap.h in the Linux
-# kernel.
-#
-# output_var - Output variable to use to save the results (TRUE for supported,
-# FALSE for not supported).
-#
-# EXAMPLES:
-#
-# check_hwcap("HWCAP2_SME" SME_EMULATOR_REQUIRED)
-#
-function(check_hwcap hwcap_spec output)
- set(hwcap_test_src
- [====[
- #include <asm/hwcap.h>
- #include <sys/auxv.h>
-
- int main(void)
- {
- long hwcaps = getauxval(AT_<HWCAP_VEC>);
- return (hwcaps & <HWCAP_SPEC>) != 0;
- }
- ]====]
- )
-
- # Extract from $hwcap_spec whether this is AT_HWCAP or AT_HWCAP2
- string(FIND ${hwcap_spec} "_" wsloc)
- string(SUBSTRING ${hwcap_spec} 0 ${wsloc} hwcap_vec)
-
- string(REPLACE "<HWCAP_VEC>" ${hwcap_vec} hwcap_test_src "${hwcap_test_src}")
- string(REPLACE "<HWCAP_SPEC>" ${hwcap_spec} hwcap_test_src "${hwcap_test_src}")
-
- set(hwcap_test_file ${CMAKE_BINARY_DIR}/${CMAKE_FILES_DIRECTORY}/hwcap_check.c)
- file(WRITE ${hwcap_test_file} "${hwcap_test_src}")
-
- # Compile _and_ run
- try_run(
- test_run_result test_compile_result
- ${CMAKE_BINARY_DIR}
- ${hwcap_test_file}
- )
- # Compilation will fail if hwcap_spec is not defined - this usually means
- # that your Linux kernel is too old.
- if(${test_compile_result} AND (DEFINED test_run_result))
- message(${test_run_result})
- message(STATUS "Checking whether ${hwcap_spec} is supported by the host system: ${test_run_result}")
- set(${output} ${test_run_result} PARENT_SCOPE)
- else()
- message(STATUS "Checking whether ${hwcap_spec} is supported by the host system: FALSE")
- endif()
-endfunction(check_hwcap)
-
-# For the given group of e2e tests (defined by the `mlir_e2e_tests` flag),
-# checks whether an emulator is required. If yes, verifies that the
-# corresponding CMake var pointing to an emulator (`emulator_exec`) has been
-# set.
-#
-# check_emulator(
-# mlir_e2e_tests
-# hwcap_spec
-# emulator_exec
-# )
-#
-# mlir_e2e_tests - MLIR CMake variables corresponding to the group of e2e tests
-# to check
-# hwcap_spec - HWCAP value to check. This should correspond to the hardware
-# capabilities required by the tests to be checked. Possible
-# values are defined in hwcap.h in the Linux kernel.
-# emulator_exec - variable the defines the emulator (ought to be set if
-# required, can be empty otherwise).
-#
-# EXAMPLES:
-#
-# check_emulator(MLIR_RUN_ARM_SVE_TESTS "HWCAP_SVE" ARM_EMULATOR_EXECUTABLE)
-#
-function(check_emulator mlir_e2e_tests hwcap_spec emulator_exec)
- if (NOT ${mlir_e2e_tests})
- return()
- endif()
-
- check_hwcap(${hwcap_spec} emulator_not_required)
- if (${emulator_not_required})
- return()
- endif()
-
- if (${emulator_exec} STREQUAL "")
- message(FATAL_ERROR "${mlir_e2e_tests} requires an emulator, but ${emulator_exec} is not set")
- endif()
-
-endfunction()
diff --git a/mlir/docs/Dialects/ArmSME.md b/mlir/docs/Dialects/ArmSME.md
index ce0a76ed60f19c..7326150bcd1156 100644
--- a/mlir/docs/Dialects/ArmSME.md
+++ b/mlir/docs/Dialects/ArmSME.md
@@ -6,7 +6,7 @@ This dialect defines custom and LLVM IR intrinsic operations that are used to
target Arm Scalable Matrix Extension. Through the available conversion and
ArmSME passes you can, for example, lower a
[linalg.matmul](https://mlir.llvm.org/docs/Dialects/Linalg/#linalgmatmul-linalgmatmulop)
-operation to Arm SME
+opereation to Arm SME
[FMOPA](https://developer.arm.com/documentation/ddi0602/2023-03/SME-Instructions/FMOPA--widening---Half-precision-floating-point-sum-of-outer-products-and-accumulate-)
(floating-point outer product) operations. See one of the in-tree end-to-end
integration tests for reference:
@@ -14,14 +14,6 @@ integration tests for reference:
* [Linalg/CPU/ArmSME/matmul.mlir](https://github.com/llvm/llvm-project/blob/main/mlir/test/Integration/Dialect/Linalg/CPU/ArmSME/matmul.mlir)
* [Vector/CPU/ArmSME/test-outerproduct-f64.mlir](https://github.com/llvm/llvm-project/blob/main/mlir/test/Integration/Dialect/Vector/CPU/ArmSME/test-outerproduct-f64.mlir)
-In order to run ArmSME integration tests, include these flags in the CMake
-invocation when configuring LLVM and MLIR:
-```bash
- -DMLIR_INCLUDE_INTEGRATION_TESTS=On
- -DMLIR_RUN_ARM_SME_TESTS=On
- -DARM_EMULATOR_EXECUTABLE=<path-to-emulator>
-```
-
These tests are run "post-commit" by the
[clang-aarch64-sve-vla](https://lab.llvm.org/buildbot/#/builders/197) LLVM
BuildBot worker.
diff --git a/mlir/test/CMakeLists.txt b/mlir/test/CMakeLists.txt
index 5319a9cb33e000..baf07ea1f010ac 100644
--- a/mlir/test/CMakeLists.txt
+++ b/mlir/test/CMakeLists.txt
@@ -1,5 +1,3 @@
-include(MLIRCheckHardwareFeatures)
-
add_subdirectory(CAPI)
add_subdirectory(lib)
@@ -41,10 +39,6 @@ if (MLIR_INCLUDE_INTEGRATION_TESTS)
option(MLIR_RUN_ARM_SVE_TESTS "Run Arm SVE tests.")
option(MLIR_RUN_ARM_SME_TESTS "Run Arm SME tests.")
- # Check whether an emulator is required - if yes then make sure that it's
- # been set.
- check_emulator(MLIR_RUN_ARM_SVE_TESTS "HWCAP_SVE" ARM_EMULATOR_EXECUTABLE)
- check_emulator(MLIR_RUN_ARM_SME_TESTS "HWCAP2_SME" ARM_EMULATOR_EXECUTABLE)
# The native target may not be enabled when cross compiling, raise an error.
if(NOT MLIR_ENABLE_EXECUTION_ENGINE)
More information about the Mlir-commits
mailing list