mirror of
https://github.com/llvm/llvm-project.git
synced 2025-04-25 12:46:09 +00:00
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:
parent
5fd9babbfc
commit
d3fe2b538d
@ -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()
|
@ -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.
|
||||
|
@ -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)
|
||||
|
Loading…
x
Reference in New Issue
Block a user