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
This commit is contained in:
Andrzej Warzynski 2024-04-04 17:12:37 +01:00
parent 5fd9babbfc
commit d3fe2b538d
3 changed files with 1 additions and 116 deletions

View File

@ -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()

View File

@ -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 target Arm Scalable Matrix Extension. Through the available conversion and
ArmSME passes you can, for example, lower a ArmSME passes you can, for example, lower a
[linalg.matmul](https://mlir.llvm.org/docs/Dialects/Linalg/#linalgmatmul-linalgmatmulop) [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-) [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 (floating-point outer product) operations. See one of the in-tree end-to-end
integration tests for reference: 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) * [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) * [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 These tests are run "post-commit" by the
[clang-aarch64-sve-vla](https://lab.llvm.org/buildbot/#/builders/197) LLVM [clang-aarch64-sve-vla](https://lab.llvm.org/buildbot/#/builders/197) LLVM
BuildBot worker. BuildBot worker.

View File

@ -1,5 +1,3 @@
include(MLIRCheckHardwareFeatures)
add_subdirectory(CAPI) add_subdirectory(CAPI)
add_subdirectory(lib) 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_SVE_TESTS "Run Arm SVE tests.")
option(MLIR_RUN_ARM_SME_TESTS "Run Arm SME 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. # The native target may not be enabled when cross compiling, raise an error.
if(NOT MLIR_ENABLE_EXECUTION_ENGINE) if(NOT MLIR_ENABLE_EXECUTION_ENGINE)