Skip to content

Commit fe55c34

Browse files
authored
[MLIR][test] Run SVE and SME Integration tests using qemu-aarch64 (#101568)
To run integration tests using qemu-aarch64 on x64 host, below flags are added to the cmake command when building mlir/llvm: -DMLIR_INCLUDE_INTEGRATION_TESTS=ON \ -DMLIR_RUN_ARM_SVE_TESTS=ON \ -DMLIR_RUN_ARM_SME_TESTS=ON \ -DARM_EMULATOR_EXECUTABLE="<...>/qemu-aarch64" \ -DARM_EMULATOR_OPTIONS="-L /usr/aarch64-linux-gnu" \ -DARM_EMULATOR_MLIR_CPU_RUNNER_EXECUTABLE="<llvm_arm64_build_top>/bin/mlir-cpu-runner-arm64" \ -DARM_EMULATOR_LLI_EXECUTABLE="<llvm_arm64_build_top>/bin/lli" \ -DARM_EMULATOR_UTILS_LIB_DIR="<llvm_arm64_build_top>/lib" The last three above are prebuilt on, or cross-built for, an aarch64 host. This patch introduced substittutions of "%native_mlir_runner_utils" etc. and use them in SVE/SME integration tests. When configured to run using qemu-aarch64, mlir runtime util libs will be loaded from ARM_EMULATOR_UTILS_LIB_DIR, if set. Some tests marked with 'UNSUPPORTED: target=aarch64{{.*}}' are still run when configured with ARM_EMULATOR_EXECUTABLE and the default target is not aarch64. A lit config feature 'mlir_arm_emulator' is added in mlir/test/lit.site.cfg.py.in and to UNSUPPORTED list of such tests.
1 parent e027e04 commit fe55c34

File tree

139 files changed

+270
-151
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

139 files changed

+270
-151
lines changed

mlir/test/Integration/Dialect/Linalg/CPU/ArmSME/fill-2d.mlir

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
// RUN: %mcr_aarch64_cmd \
77
// RUN: -e=entry -entry-point-result=void \
88
// RUN: -march=aarch64 -mattr="+sve,+sme" \
9-
// RUN: -shared-libs=%mlir_runner_utils,%mlir_c_runner_utils,%arm_sme_abi_shlib | \
9+
// RUN: -shared-libs=%native_mlir_runner_utils,%native_mlir_c_runner_utils,%native_arm_sme_abi_shlib | \
1010
// RUN: FileCheck %s
1111

1212
func.func @entry() {

mlir/test/Integration/Dialect/Linalg/CPU/ArmSME/matmul-transpose-a.mlir

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
// RUN: %mcr_aarch64_cmd \
66
// RUN: -e=main -entry-point-result=void \
77
// RUN: -march=aarch64 -mattr="+sve,+sme" \
8-
// RUN: -shared-libs=%mlir_runner_utils,%mlir_c_runner_utils,%arm_sme_abi_shlib | \
8+
// RUN: -shared-libs=%native_mlir_runner_utils,%native_mlir_c_runner_utils,%native_arm_sme_abi_shlib | \
99
// RUN: FileCheck %s
1010

1111
func.func @matmul_transpose_a(%A : tensor<?x?xf32>, %B : tensor<?x?xf32>, %C : tensor<?x?xf32>) {

mlir/test/Integration/Dialect/Linalg/CPU/ArmSME/matmul.mlir

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
// RUN: %mcr_aarch64_cmd \
55
// RUN: -e=main -entry-point-result=void \
66
// RUN: -march=aarch64 -mattr="+sve,+sme" \
7-
// RUN: -shared-libs=%mlir_runner_utils,%mlir_c_runner_utils,%arm_sme_abi_shlib | \
7+
// RUN: -shared-libs=%native_mlir_runner_utils,%native_mlir_c_runner_utils,%native_arm_sme_abi_shlib | \
88
// RUN: FileCheck %s
99

1010
func.func @matmul(%A : tensor<?x?xf32>, %B : tensor<?x?xf32>, %C : tensor<?x?xf32>) {

mlir/test/Integration/Dialect/Linalg/CPU/ArmSME/multi-tile-matmul-mixed-types.mlir

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
// RUN: %mcr_aarch64_cmd \
77
// RUN: -e=main -entry-point-result=void \
88
// RUN: -march=aarch64 -mattr="+sve,+sme" \
9-
// RUN: -shared-libs=%mlir_runner_utils,%mlir_c_runner_utils,%arm_sme_abi_shlib,%mlir_arm_runner_utils | \
9+
// RUN: -shared-libs=%native_mlir_runner_utils,%native_mlir_c_runner_utils,%native_arm_sme_abi_shlib,%native_mlir_arm_runner_utils | \
1010
// RUN: FileCheck %s
1111

1212
/// This is very similar to the SME multi-tile-matmul.mlir test, except that it

mlir/test/Integration/Dialect/Linalg/CPU/ArmSME/multi-tile-matmul.mlir

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
// RUN: %mcr_aarch64_cmd \
77
// RUN: -e=main -entry-point-result=void \
88
// RUN: -march=aarch64 -mattr="+sve,+sme" \
9-
// RUN: -shared-libs=%mlir_runner_utils,%mlir_c_runner_utils,%arm_sme_abi_shlib,%mlir_arm_runner_utils | \
9+
// RUN: -shared-libs=%native_mlir_runner_utils,%native_mlir_c_runner_utils,%native_arm_sme_abi_shlib,%native_mlir_arm_runner_utils | \
1010
// RUN: FileCheck %s
1111

1212
/// This is very similar to the SME matmul.mlir test, except that it uses a tile

mlir/test/Integration/Dialect/Linalg/CPU/ArmSME/use-too-many-tiles.mlir

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
// RUN: %mcr_aarch64_cmd \
44
// RUN: -e=main -entry-point-result=void \
55
// RUN: -march=aarch64 -mattr="+sve,+sme" \
6-
// RUN: -shared-libs=%mlir_runner_utils,%mlir_c_runner_utils,%arm_sme_abi_shlib | \
6+
// RUN: -shared-libs=%native_mlir_runner_utils,%native_mlir_c_runner_utils,%native_arm_sme_abi_shlib | \
77
// RUN: FileCheck %s
88

99
/// This function uses too many tiles! There's only two i16 tiles (ZA0.H and

mlir/test/Integration/Dialect/Linalg/CPU/ArmSVE/1d-depthwise-conv.mlir

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
// DEFINE: -convert-vector-to-llvm="enable-arm-sve" -test-lower-to-llvm -o %t
55
// DEFINE: %{entry_point} = conv
66
// DEFINE: %{run} = %mcr_aarch64_cmd %t -e %{entry_point} -entry-point-result=void --march=aarch64 --mattr="+sve"\
7-
// DEFINE: -shared-libs=%mlir_runner_utils,%mlir_c_runner_utils
7+
// DEFINE: -shared-libs=%native_mlir_runner_utils,%native_mlir_c_runner_utils
88

99
// RUN: rm -f %t && %{compile} && %{run} | FileCheck %s
1010

mlir/test/Integration/Dialect/Linalg/CPU/ArmSVE/fill-1d.mlir

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
// RUN: mlir-opt %s -transform-interpreter -test-transform-dialect-erase-schedule -lower-vector-mask -one-shot-bufferize -buffer-deallocation-pipeline -test-lower-to-llvm | \
2-
// RUN: %mcr_aarch64_cmd -e=entry -entry-point-result=void --march=aarch64 --mattr="+sve" -shared-libs=%mlir_runner_utils,%mlir_c_runner_utils | \
2+
// RUN: %mcr_aarch64_cmd -e=entry -entry-point-result=void --march=aarch64 --mattr="+sve" -shared-libs=%native_mlir_runner_utils,%native_mlir_c_runner_utils | \
33
// RUN: FileCheck %s
44

55
func.func @entry() {

mlir/test/Integration/Dialect/Linalg/CPU/ArmSVE/matmul.mlir

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
// DEFINE: -convert-vector-to-llvm="enable-arm-sve" -test-lower-to-llvm -o %t
55
// DEFINE: %{entry_point} = matmul_f32
66
// DEFINE: %{run} = %mcr_aarch64_cmd %t -e %{entry_point} -entry-point-result=void --march=aarch64 --mattr="+sve"\
7-
// DEFINE: -shared-libs=%mlir_runner_utils,%mlir_c_runner_utils
7+
// DEFINE: -shared-libs=%native_mlir_runner_utils,%native_mlir_c_runner_utils
88

99
// RUN: %{compile}
1010

mlir/test/Integration/Dialect/Linalg/CPU/ArmSVE/reduce_1d.mlir

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
// DEFINE: -convert-vector-to-llvm="enable-arm-sve" -test-lower-to-llvm -o %t
55
// DEFINE: %{entry_point} = reduce_1d_f32
66
// DEFINE: %{run} = %mcr_aarch64_cmd %t -e %{entry_point} -entry-point-result=void --march=aarch64 --mattr="+sve"\
7-
// DEFINE: -shared-libs=%mlir_native_utils_lib_dir/libmlir_runner_utils%shlibext,%mlir_native_utils_lib_dir/libmlir_c_runner_utils%shlibext
7+
// DEFINE: -shared-libs=%native_mlir_runner_utils,%native_mlir_c_runner_utils
88

99
// RUN: %{compile}
1010

0 commit comments

Comments
 (0)