Move e2e matmul tests to own directory (#8520)
diff --git a/iree/test/e2e/matmul/BUILD b/iree/test/e2e/matmul/BUILD
new file mode 100644
index 0000000..5740031
--- /dev/null
+++ b/iree/test/e2e/matmul/BUILD
@@ -0,0 +1,140 @@
+# Copyright 2022 The IREE Authors
+#
+# Licensed under the Apache License v2.0 with LLVM Exceptions.
+# See https://llvm.org/LICENSE.txt for license information.
+# SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
+
+# End-to-end matrix multiplication tests.
+
+load("//build_tools/bazel:iree_trace_runner_test.bzl", "iree_generated_trace_runner_test")
+
+package(
+ default_visibility = ["//visibility:public"],
+ features = ["layering_check"],
+ licenses = ["notice"], # Apache 2.0
+)
+
+py_binary(
+ name = "generate_e2e_matmul_tests",
+ srcs = ["generate_e2e_matmul_tests.py"],
+)
+
+[iree_generated_trace_runner_test(
+ name = "e2e_matmul_direct_%s_small" % lhs_rhs_type,
+ generator = ":generate_e2e_matmul_tests",
+ generator_args = [
+ "--lhs_rhs_type=%s" % lhs_rhs_type,
+ "--shapes=small",
+ ],
+ target_backends_and_drivers = [
+ ("dylib-llvm-aot", "dylib"),
+ ("vmvx", "vmvx"),
+ ],
+ trace_runner = "//iree/tools:iree-e2e-matmul-test",
+) for lhs_rhs_type in [
+ "i8",
+ "f32",
+]]
+
+# Test asm
+[iree_generated_trace_runner_test(
+ name = "e2e_matmul_mmt4d_%s_small" % lhs_rhs_type,
+ compiler_flags = [
+ "--iree-flow-mmt4d-target-options=enable_generic_slow #pass_options_variant#",
+ ],
+ generator = ":generate_e2e_matmul_tests",
+ generator_args = [
+ "--lhs_rhs_type=%s" % lhs_rhs_type,
+ "--shapes=small",
+ ],
+ target_backends_and_drivers = [
+ ("dylib-llvm-aot", "dylib"),
+ ],
+ target_cpu_features_variants = ["default"] +
+ ([
+ "aarch64:+dotprod",
+ "aarch64:+i8mm",
+ ] if lhs_rhs_type == "i8" else []),
+ trace_runner = "//iree/tools:iree-e2e-matmul-test",
+) for lhs_rhs_type in [
+ "i8",
+ "f32",
+]]
+
+[iree_generated_trace_runner_test(
+ name = "e2e_matmul_mmt4d_%s_large" % lhs_rhs_type,
+ compiler_flags = [
+ "--iree-flow-mmt4d-target-options=enable_generic_slow #pass_options_variant#",
+ ],
+ generator = ":generate_e2e_matmul_tests",
+ generator_args = [
+ "--lhs_rhs_type=%s" % lhs_rhs_type,
+ "--shapes=large",
+ ],
+ target_backends_and_drivers = [
+ ("dylib-llvm-aot", "dylib"),
+ ],
+ target_cpu_features_variants = ["default"] +
+ ([
+ "aarch64:+dotprod",
+ "aarch64:+i8mm",
+ ] if lhs_rhs_type == "i8" else []),
+ trace_runner = "//iree/tools:iree-e2e-matmul-test",
+) for lhs_rhs_type in [
+ "i8",
+ "f32",
+]]
+
+# Test intrinsics. No need to run vmvx again, since it isn't affected by this
+# codegen flag. No need to run "large" sizes, since this only differs from other
+# tests in ways that are orthogonal to problem sizes.
+[iree_generated_trace_runner_test(
+ name = "e2e_matmul_mmt4d_%s_intrinsics_%s" % (lhs_rhs_type, size),
+ compiler_flags = [
+ "--iree-codegen-mmt4d-use-intrinsics",
+ "--iree-flow-mmt4d-target-options=enable_generic_slow #pass_options_variant#",
+ ],
+ generator = ":generate_e2e_matmul_tests",
+ generator_args = [
+ "--lhs_rhs_type=%s" % lhs_rhs_type,
+ "--shapes=%s" % size,
+ ],
+ target_backends_and_drivers = [
+ ("dylib-llvm-aot", "dylib"),
+ ],
+ target_cpu_features_variants = ["default"] +
+ ([
+ "aarch64:+dotprod",
+ "aarch64:+i8mm",
+ ] if lhs_rhs_type == "i8" else []),
+ trace_runner = "//iree/tools:iree-e2e-matmul-test",
+) for lhs_rhs_type in [
+ "i8",
+ "f32",
+] for size in [
+ "small",
+]]
+
+[iree_generated_trace_runner_test(
+ name = "e2e_matmul_direct_f32_gpu_large_%s" % compilation_info,
+ generator = ":generate_e2e_matmul_tests",
+ generator_args = [
+ "--lhs_rhs_type=f32",
+ "--shapes=gpu_large",
+ "--compilation_info=%s" % compilation_info,
+ ],
+ tags = [
+ # CUDA cuInit fails with sanitizer on.
+ "noasan",
+ "nomsan",
+ "notsan",
+ "noubsan",
+ "requires-gpu-nvidia",
+ ],
+ target_backends_and_drivers = [
+ ("cuda", "cuda"),
+ ],
+ trace_runner = "//iree/tools:iree-e2e-matmul-test",
+) for compilation_info in [
+ "LLVMGPUMatmulSimt",
+]]
diff --git a/iree/test/e2e/matmul/CMakeLists.txt b/iree/test/e2e/matmul/CMakeLists.txt
new file mode 100644
index 0000000..e7981f3
--- /dev/null
+++ b/iree/test/e2e/matmul/CMakeLists.txt
@@ -0,0 +1,200 @@
+################################################################################
+# Autogenerated by build_tools/bazel_to_cmake/bazel_to_cmake.py from #
+# iree/test/e2e/matmul/BUILD #
+# #
+# Use iree_cmake_extra_content from iree/build_defs.oss.bzl to add arbitrary #
+# CMake-only content. #
+# #
+# To disable autogeneration for this file entirely, delete this header. #
+################################################################################
+
+iree_add_all_subdirs()
+
+iree_generated_trace_runner_test(
+ NAME
+ e2e_matmul_direct_i8_small
+ GENERATOR
+ "generate_e2e_matmul_tests.py"
+ GENERATOR_ARGS
+ "--lhs_rhs_type=i8"
+ "--shapes=small"
+ TRACE_RUNNER
+ iree_tools_iree-e2e-matmul-test
+ TARGET_BACKENDS
+ "dylib-llvm-aot"
+ "vmvx"
+ DRIVERS
+ "dylib"
+ "vmvx"
+)
+
+iree_generated_trace_runner_test(
+ NAME
+ e2e_matmul_direct_f32_small
+ GENERATOR
+ "generate_e2e_matmul_tests.py"
+ GENERATOR_ARGS
+ "--lhs_rhs_type=f32"
+ "--shapes=small"
+ TRACE_RUNNER
+ iree_tools_iree-e2e-matmul-test
+ TARGET_BACKENDS
+ "dylib-llvm-aot"
+ "vmvx"
+ DRIVERS
+ "dylib"
+ "vmvx"
+)
+
+iree_generated_trace_runner_test(
+ NAME
+ e2e_matmul_mmt4d_i8_small
+ GENERATOR
+ "generate_e2e_matmul_tests.py"
+ GENERATOR_ARGS
+ "--lhs_rhs_type=i8"
+ "--shapes=small"
+ TRACE_RUNNER
+ iree_tools_iree-e2e-matmul-test
+ TARGET_BACKENDS
+ "dylib-llvm-aot"
+ DRIVERS
+ "dylib"
+ COMPILER_FLAGS
+ "--iree-flow-mmt4d-target-options=enable_generic_slow #pass_options_variant#"
+ TARGET_CPU_FEATURES_VARIANTS
+ "default"
+ "aarch64:+dotprod"
+ "aarch64:+i8mm"
+)
+
+iree_generated_trace_runner_test(
+ NAME
+ e2e_matmul_mmt4d_f32_small
+ GENERATOR
+ "generate_e2e_matmul_tests.py"
+ GENERATOR_ARGS
+ "--lhs_rhs_type=f32"
+ "--shapes=small"
+ TRACE_RUNNER
+ iree_tools_iree-e2e-matmul-test
+ TARGET_BACKENDS
+ "dylib-llvm-aot"
+ DRIVERS
+ "dylib"
+ COMPILER_FLAGS
+ "--iree-flow-mmt4d-target-options=enable_generic_slow #pass_options_variant#"
+ TARGET_CPU_FEATURES_VARIANTS
+ "default"
+)
+
+iree_generated_trace_runner_test(
+ NAME
+ e2e_matmul_mmt4d_i8_large
+ GENERATOR
+ "generate_e2e_matmul_tests.py"
+ GENERATOR_ARGS
+ "--lhs_rhs_type=i8"
+ "--shapes=large"
+ TRACE_RUNNER
+ iree_tools_iree-e2e-matmul-test
+ TARGET_BACKENDS
+ "dylib-llvm-aot"
+ DRIVERS
+ "dylib"
+ COMPILER_FLAGS
+ "--iree-flow-mmt4d-target-options=enable_generic_slow #pass_options_variant#"
+ TARGET_CPU_FEATURES_VARIANTS
+ "default"
+ "aarch64:+dotprod"
+ "aarch64:+i8mm"
+)
+
+iree_generated_trace_runner_test(
+ NAME
+ e2e_matmul_mmt4d_f32_large
+ GENERATOR
+ "generate_e2e_matmul_tests.py"
+ GENERATOR_ARGS
+ "--lhs_rhs_type=f32"
+ "--shapes=large"
+ TRACE_RUNNER
+ iree_tools_iree-e2e-matmul-test
+ TARGET_BACKENDS
+ "dylib-llvm-aot"
+ DRIVERS
+ "dylib"
+ COMPILER_FLAGS
+ "--iree-flow-mmt4d-target-options=enable_generic_slow #pass_options_variant#"
+ TARGET_CPU_FEATURES_VARIANTS
+ "default"
+)
+
+iree_generated_trace_runner_test(
+ NAME
+ e2e_matmul_mmt4d_i8_intrinsics_small
+ GENERATOR
+ "generate_e2e_matmul_tests.py"
+ GENERATOR_ARGS
+ "--lhs_rhs_type=i8"
+ "--shapes=small"
+ TRACE_RUNNER
+ iree_tools_iree-e2e-matmul-test
+ TARGET_BACKENDS
+ "dylib-llvm-aot"
+ DRIVERS
+ "dylib"
+ COMPILER_FLAGS
+ "--iree-codegen-mmt4d-use-intrinsics"
+ "--iree-flow-mmt4d-target-options=enable_generic_slow #pass_options_variant#"
+ TARGET_CPU_FEATURES_VARIANTS
+ "default"
+ "aarch64:+dotprod"
+ "aarch64:+i8mm"
+)
+
+iree_generated_trace_runner_test(
+ NAME
+ e2e_matmul_mmt4d_f32_intrinsics_small
+ GENERATOR
+ "generate_e2e_matmul_tests.py"
+ GENERATOR_ARGS
+ "--lhs_rhs_type=f32"
+ "--shapes=small"
+ TRACE_RUNNER
+ iree_tools_iree-e2e-matmul-test
+ TARGET_BACKENDS
+ "dylib-llvm-aot"
+ DRIVERS
+ "dylib"
+ COMPILER_FLAGS
+ "--iree-codegen-mmt4d-use-intrinsics"
+ "--iree-flow-mmt4d-target-options=enable_generic_slow #pass_options_variant#"
+ TARGET_CPU_FEATURES_VARIANTS
+ "default"
+)
+
+iree_generated_trace_runner_test(
+ NAME
+ e2e_matmul_direct_f32_gpu_large_LLVMGPUMatmulSimt
+ GENERATOR
+ "generate_e2e_matmul_tests.py"
+ GENERATOR_ARGS
+ "--lhs_rhs_type=f32"
+ "--shapes=gpu_large"
+ "--compilation_info=LLVMGPUMatmulSimt"
+ TRACE_RUNNER
+ iree_tools_iree-e2e-matmul-test
+ TARGET_BACKENDS
+ "cuda"
+ DRIVERS
+ "cuda"
+ LABELS
+ "noasan"
+ "nomsan"
+ "notsan"
+ "noubsan"
+ "requires-gpu-nvidia"
+)
+
+### BAZEL_TO_CMAKE_PRESERVES_ALL_CONTENT_BELOW_THIS_LINE ###
diff --git a/iree/test/e2e/regression/generate_e2e_matmul_tests.py b/iree/test/e2e/matmul/generate_e2e_matmul_tests.py
similarity index 100%
rename from iree/test/e2e/regression/generate_e2e_matmul_tests.py
rename to iree/test/e2e/matmul/generate_e2e_matmul_tests.py
diff --git a/iree/test/e2e/regression/BUILD b/iree/test/e2e/regression/BUILD
index 80c55a0..2e7dbc2 100644
--- a/iree/test/e2e/regression/BUILD
+++ b/iree/test/e2e/regression/BUILD
@@ -11,7 +11,6 @@
load("//build_tools/bazel:enforce_glob.bzl", "enforce_glob")
load("//build_tools/bazel:iree_lit_test.bzl", "iree_lit_test_suite")
load("//build_tools/bazel:iree_check_test.bzl", "iree_check_single_backend_test_suite")
-load("//build_tools/bazel:iree_trace_runner_test.bzl", "iree_generated_trace_runner_test")
package(
default_visibility = ["//visibility:public"],
@@ -120,128 +119,3 @@
],
target_backend = "cuda",
)
-
-py_binary(
- name = "generate_e2e_matmul_tests",
- srcs = ["generate_e2e_matmul_tests.py"],
-)
-
-[iree_generated_trace_runner_test(
- name = "e2e_matmul_direct_%s_small" % lhs_rhs_type,
- generator = ":generate_e2e_matmul_tests",
- generator_args = [
- "--lhs_rhs_type=%s" % lhs_rhs_type,
- "--shapes=small",
- ],
- target_backends_and_drivers = [
- ("dylib-llvm-aot", "dylib"),
- ("vmvx", "vmvx"),
- ],
- trace_runner = "//iree/tools:iree-e2e-matmul-test",
-) for lhs_rhs_type in [
- "i8",
- "f32",
-]]
-
-# Test asm
-[iree_generated_trace_runner_test(
- name = "e2e_matmul_mmt4d_%s_small" % lhs_rhs_type,
- compiler_flags = [
- "--iree-flow-mmt4d-target-options=enable_generic_slow #pass_options_variant#",
- ],
- generator = ":generate_e2e_matmul_tests",
- generator_args = [
- "--lhs_rhs_type=%s" % lhs_rhs_type,
- "--shapes=small",
- ],
- target_backends_and_drivers = [
- ("dylib-llvm-aot", "dylib"),
- ],
- target_cpu_features_variants = ["default"] +
- ([
- "aarch64:+dotprod",
- "aarch64:+i8mm",
- ] if lhs_rhs_type == "i8" else []),
- trace_runner = "//iree/tools:iree-e2e-matmul-test",
-) for lhs_rhs_type in [
- "i8",
- "f32",
-]]
-
-[iree_generated_trace_runner_test(
- name = "e2e_matmul_mmt4d_%s_large" % lhs_rhs_type,
- compiler_flags = [
- "--iree-flow-mmt4d-target-options=enable_generic_slow #pass_options_variant#",
- ],
- generator = ":generate_e2e_matmul_tests",
- generator_args = [
- "--lhs_rhs_type=%s" % lhs_rhs_type,
- "--shapes=large",
- ],
- target_backends_and_drivers = [
- ("dylib-llvm-aot", "dylib"),
- ],
- target_cpu_features_variants = ["default"] +
- ([
- "aarch64:+dotprod",
- "aarch64:+i8mm",
- ] if lhs_rhs_type == "i8" else []),
- trace_runner = "//iree/tools:iree-e2e-matmul-test",
-) for lhs_rhs_type in [
- "i8",
- "f32",
-]]
-
-# Test intrinsics. No need to run vmvx again, since it isn't affected by this
-# codegen flag. No need to run "large" sizes, since this only differs from other
-# tests in ways that are orthogonal to problem sizes.
-[iree_generated_trace_runner_test(
- name = "e2e_matmul_mmt4d_%s_intrinsics_%s" % (lhs_rhs_type, size),
- compiler_flags = [
- "--iree-codegen-mmt4d-use-intrinsics",
- "--iree-flow-mmt4d-target-options=enable_generic_slow #pass_options_variant#",
- ],
- generator = ":generate_e2e_matmul_tests",
- generator_args = [
- "--lhs_rhs_type=%s" % lhs_rhs_type,
- "--shapes=%s" % size,
- ],
- target_backends_and_drivers = [
- ("dylib-llvm-aot", "dylib"),
- ],
- target_cpu_features_variants = ["default"] +
- ([
- "aarch64:+dotprod",
- "aarch64:+i8mm",
- ] if lhs_rhs_type == "i8" else []),
- trace_runner = "//iree/tools:iree-e2e-matmul-test",
-) for lhs_rhs_type in [
- "i8",
- "f32",
-] for size in [
- "small",
-]]
-
-[iree_generated_trace_runner_test(
- name = "e2e_matmul_direct_f32_gpu_large_%s" % compilation_info,
- generator = ":generate_e2e_matmul_tests",
- generator_args = [
- "--lhs_rhs_type=f32",
- "--shapes=gpu_large",
- "--compilation_info=%s" % compilation_info,
- ],
- tags = [
- # CUDA cuInit fails with sanitizer on.
- "noasan",
- "nomsan",
- "notsan",
- "noubsan",
- "requires-gpu-nvidia",
- ],
- target_backends_and_drivers = [
- ("cuda", "cuda"),
- ],
- trace_runner = "//iree/tools:iree-e2e-matmul-test",
-) for compilation_info in [
- "LLVMGPUMatmulSimt",
-]]
diff --git a/iree/test/e2e/regression/CMakeLists.txt b/iree/test/e2e/regression/CMakeLists.txt
index 2105936..c1bf2f9 100644
--- a/iree/test/e2e/regression/CMakeLists.txt
+++ b/iree/test/e2e/regression/CMakeLists.txt
@@ -137,191 +137,4 @@
"requires-gpu-nvidia"
)
-iree_generated_trace_runner_test(
- NAME
- e2e_matmul_direct_i8_small
- GENERATOR
- "generate_e2e_matmul_tests.py"
- GENERATOR_ARGS
- "--lhs_rhs_type=i8"
- "--shapes=small"
- TRACE_RUNNER
- iree_tools_iree-e2e-matmul-test
- TARGET_BACKENDS
- "dylib-llvm-aot"
- "vmvx"
- DRIVERS
- "dylib"
- "vmvx"
-)
-
-iree_generated_trace_runner_test(
- NAME
- e2e_matmul_direct_f32_small
- GENERATOR
- "generate_e2e_matmul_tests.py"
- GENERATOR_ARGS
- "--lhs_rhs_type=f32"
- "--shapes=small"
- TRACE_RUNNER
- iree_tools_iree-e2e-matmul-test
- TARGET_BACKENDS
- "dylib-llvm-aot"
- "vmvx"
- DRIVERS
- "dylib"
- "vmvx"
-)
-
-iree_generated_trace_runner_test(
- NAME
- e2e_matmul_mmt4d_i8_small
- GENERATOR
- "generate_e2e_matmul_tests.py"
- GENERATOR_ARGS
- "--lhs_rhs_type=i8"
- "--shapes=small"
- TRACE_RUNNER
- iree_tools_iree-e2e-matmul-test
- TARGET_BACKENDS
- "dylib-llvm-aot"
- DRIVERS
- "dylib"
- COMPILER_FLAGS
- "--iree-flow-mmt4d-target-options=enable_generic_slow #pass_options_variant#"
- TARGET_CPU_FEATURES_VARIANTS
- "default"
- "aarch64:+dotprod"
- "aarch64:+i8mm"
-)
-
-iree_generated_trace_runner_test(
- NAME
- e2e_matmul_mmt4d_f32_small
- GENERATOR
- "generate_e2e_matmul_tests.py"
- GENERATOR_ARGS
- "--lhs_rhs_type=f32"
- "--shapes=small"
- TRACE_RUNNER
- iree_tools_iree-e2e-matmul-test
- TARGET_BACKENDS
- "dylib-llvm-aot"
- DRIVERS
- "dylib"
- COMPILER_FLAGS
- "--iree-flow-mmt4d-target-options=enable_generic_slow #pass_options_variant#"
- TARGET_CPU_FEATURES_VARIANTS
- "default"
-)
-
-iree_generated_trace_runner_test(
- NAME
- e2e_matmul_mmt4d_i8_large
- GENERATOR
- "generate_e2e_matmul_tests.py"
- GENERATOR_ARGS
- "--lhs_rhs_type=i8"
- "--shapes=large"
- TRACE_RUNNER
- iree_tools_iree-e2e-matmul-test
- TARGET_BACKENDS
- "dylib-llvm-aot"
- DRIVERS
- "dylib"
- COMPILER_FLAGS
- "--iree-flow-mmt4d-target-options=enable_generic_slow #pass_options_variant#"
- TARGET_CPU_FEATURES_VARIANTS
- "default"
- "aarch64:+dotprod"
- "aarch64:+i8mm"
-)
-
-iree_generated_trace_runner_test(
- NAME
- e2e_matmul_mmt4d_f32_large
- GENERATOR
- "generate_e2e_matmul_tests.py"
- GENERATOR_ARGS
- "--lhs_rhs_type=f32"
- "--shapes=large"
- TRACE_RUNNER
- iree_tools_iree-e2e-matmul-test
- TARGET_BACKENDS
- "dylib-llvm-aot"
- DRIVERS
- "dylib"
- COMPILER_FLAGS
- "--iree-flow-mmt4d-target-options=enable_generic_slow #pass_options_variant#"
- TARGET_CPU_FEATURES_VARIANTS
- "default"
-)
-
-iree_generated_trace_runner_test(
- NAME
- e2e_matmul_mmt4d_i8_intrinsics_small
- GENERATOR
- "generate_e2e_matmul_tests.py"
- GENERATOR_ARGS
- "--lhs_rhs_type=i8"
- "--shapes=small"
- TRACE_RUNNER
- iree_tools_iree-e2e-matmul-test
- TARGET_BACKENDS
- "dylib-llvm-aot"
- DRIVERS
- "dylib"
- COMPILER_FLAGS
- "--iree-codegen-mmt4d-use-intrinsics"
- "--iree-flow-mmt4d-target-options=enable_generic_slow #pass_options_variant#"
- TARGET_CPU_FEATURES_VARIANTS
- "default"
- "aarch64:+dotprod"
- "aarch64:+i8mm"
-)
-
-iree_generated_trace_runner_test(
- NAME
- e2e_matmul_mmt4d_f32_intrinsics_small
- GENERATOR
- "generate_e2e_matmul_tests.py"
- GENERATOR_ARGS
- "--lhs_rhs_type=f32"
- "--shapes=small"
- TRACE_RUNNER
- iree_tools_iree-e2e-matmul-test
- TARGET_BACKENDS
- "dylib-llvm-aot"
- DRIVERS
- "dylib"
- COMPILER_FLAGS
- "--iree-codegen-mmt4d-use-intrinsics"
- "--iree-flow-mmt4d-target-options=enable_generic_slow #pass_options_variant#"
- TARGET_CPU_FEATURES_VARIANTS
- "default"
-)
-
-iree_generated_trace_runner_test(
- NAME
- e2e_matmul_direct_f32_gpu_large_LLVMGPUMatmulSimt
- GENERATOR
- "generate_e2e_matmul_tests.py"
- GENERATOR_ARGS
- "--lhs_rhs_type=f32"
- "--shapes=gpu_large"
- "--compilation_info=LLVMGPUMatmulSimt"
- TRACE_RUNNER
- iree_tools_iree-e2e-matmul-test
- TARGET_BACKENDS
- "cuda"
- DRIVERS
- "cuda"
- LABELS
- "noasan"
- "nomsan"
- "notsan"
- "noubsan"
- "requires-gpu-nvidia"
-)
-
### BAZEL_TO_CMAKE_PRESERVES_ALL_CONTENT_BELOW_THIS_LINE ###