Correctly tag Vulkan Ampere tests as requiring sm80 (#14039)
Also exclude requires-gpu-sm80 in the same places we exclude
requires-gpu-nvidia. I'm actually not sure how this wasn't causing
errors. I went with a relaxed regex of any label starting with
"requires-gpu" in our CMake build scripts, but Bazel requires listing
tags explicitly.
This actually also raised a question for me. Why are our tests for
Valhall tagges as "requires-gpu-nvidia"? I would expect these to not
even *run* on an Nvidia GPU... Do we just happen to not take advantage
of any Valhall-specific features?
diff --git a/.github/workflows/build_and_test_android.yml b/.github/workflows/build_and_test_android.yml
index 4797d9b..3fcaab8 100644
--- a/.github/workflows/build_and_test_android.yml
+++ b/.github/workflows/build_and_test_android.yml
@@ -116,9 +116,9 @@
- device-name: pixel-4
label-exclude: "vulkan"
- device-name: pixel-6-pro
- label-exclude: "^requires-gpu-nvidia$"
+ label-exclude: "^requires-gpu"
- device-name: moto-edge-x30
- label-exclude: "^requires-gpu-nvidia$"
+ label-exclude: "^requires-gpu"
name: test_on_${{ matrix.target.device-name }}
runs-on:
- self-hosted # must come first
diff --git a/build_tools/bazel/build_core.sh b/build_tools/bazel/build_core.sh
index 08a961a..ccad1ba 100755
--- a/build_tools/bazel/build_core.sh
+++ b/build_tools/bazel/build_core.sh
@@ -67,7 +67,7 @@
default_test_tag_filters+=("-driver=vulkan")
fi
if [[ "${IREE_NVIDIA_GPU_TESTS_DISABLE?}" == 1 ]]; then
- default_test_tag_filters+=("-requires-gpu-nvidia")
+ default_test_tag_filters+=("-requires-gpu-nvidia" "-requires-gpu-sm80")
fi
# Use user-environment variables if set, otherwise use CI-friendly defaults.
diff --git a/build_tools/cmake/build_and_test_asan.sh b/build_tools/cmake/build_and_test_asan.sh
index b29d4e2..30e5418 100755
--- a/build_tools/cmake/build_and_test_asan.sh
+++ b/build_tools/cmake/build_and_test_asan.sh
@@ -117,7 +117,7 @@
label_exclude_args+=("^vulkan_uses_vk_khr_shader_float16_int8$")
fi
if [[ "${IREE_NVIDIA_GPU_TESTS_DISABLE}" == 1 ]]; then
- label_exclude_args+=("^requires-gpu-nvidia$")
+ label_exclude_args+=("^requires-gpu")
fi
label_exclude_regex="($(IFS="|" ; echo "${label_exclude_args[*]?}"))"
diff --git a/build_tools/cmake/ctest_all.sh b/build_tools/cmake/ctest_all.sh
index 429315d..802cb0b 100755
--- a/build_tools/cmake/ctest_all.sh
+++ b/build_tools/cmake/ctest_all.sh
@@ -72,7 +72,7 @@
label_exclude_args+=("^vulkan_uses_vk_khr_shader_float16_int8$")
fi
if [[ "${IREE_NVIDIA_GPU_TESTS_DISABLE}" == 1 ]]; then
- label_exclude_args+=("^requires-gpu-nvidia$")
+ label_exclude_args+=("^requires-gpu$")
fi
IFS=',' read -ra extra_label_exclude_args <<< "${IREE_EXTRA_COMMA_SEPARATED_CTEST_LABELS_TO_EXCLUDE:-}"
diff --git a/tests/e2e/matmul/BUILD.bazel b/tests/e2e/matmul/BUILD.bazel
index 28a3daa..d35ba89 100644
--- a/tests/e2e/matmul/BUILD.bazel
+++ b/tests/e2e/matmul/BUILD.bazel
@@ -409,20 +409,18 @@
]]
[iree_generated_trace_runner_test(
- name = "e2e_matmul_direct_{0}_gpu_large_{1}".format(
- lhs_rhs_type,
- vulkan_target_and_pipeline[0],
- ),
+ name = "e2e_matmul_direct_{0}_gpu_large_valhall".format(lhs_rhs_type),
compiler_flags = [
- "--iree-vulkan-target-triple=%s" % vulkan_target_and_pipeline[0],
+ "--iree-vulkan-target-triple=valhall-unknown-android31",
],
generator = ":generate_e2e_matmul_tests",
generator_args = [
"--lhs_rhs_type=%s" % lhs_rhs_type,
"--shapes=gpu_large_aligned",
- "--compilation_info=%s" % vulkan_target_and_pipeline[1],
+ "--compilation_info=SPIRVVectorizeMali",
],
tags = [
+ # Nvidia GPUs support a superset of Valhall features
"requires-gpu-nvidia",
"vulkan_uses_vk_khr_shader_float16_int8",
],
@@ -430,10 +428,33 @@
("vulkan-spirv", "vulkan"),
],
trace_runner = "//tools:iree-e2e-matmul-test",
-) for vulkan_target_and_pipeline in [
- ("valhall-unknown-android31", "SPIRVVectorizeMali"),
- ("ampere-unknown-linux", "SPIRVVectorizeNVIDIA"),
-] for lhs_rhs_type in [
+) for lhs_rhs_type in [
+ "i8",
+ "f16",
+ "f32",
+]]
+
+[iree_generated_trace_runner_test(
+ name = "e2e_matmul_direct_{0}_gpu_large_ampere".format(lhs_rhs_type),
+ compiler_flags = [
+ "--iree-vulkan-target-triple=ampere-unknown-linux",
+ ],
+ generator = ":generate_e2e_matmul_tests",
+ generator_args = [
+ "--lhs_rhs_type=%s" % lhs_rhs_type,
+ "--shapes=gpu_large_aligned",
+ "--compilation_info=SPIRVVectorizeNVIDIA",
+ ],
+ tags = [
+ "requires-gpu-nvidia",
+ "requires-gpu-sm80",
+ "vulkan_uses_vk_khr_shader_float16_int8",
+ ],
+ target_backends_and_drivers = [
+ ("vulkan-spirv", "vulkan"),
+ ],
+ trace_runner = "//tools:iree-e2e-matmul-test",
+) for lhs_rhs_type in [
"i8",
"f16",
"f32",
diff --git a/tests/e2e/matmul/CMakeLists.txt b/tests/e2e/matmul/CMakeLists.txt
index 133d678..6a15c4e 100644
--- a/tests/e2e/matmul/CMakeLists.txt
+++ b/tests/e2e/matmul/CMakeLists.txt
@@ -538,7 +538,7 @@
iree_generated_trace_runner_test(
NAME
- e2e_matmul_direct_i8_gpu_large_valhall-unknown-android31
+ e2e_matmul_direct_i8_gpu_large_valhall
GENERATOR
"generate_e2e_matmul_tests.py"
GENERATOR_ARGS
@@ -560,7 +560,7 @@
iree_generated_trace_runner_test(
NAME
- e2e_matmul_direct_f16_gpu_large_valhall-unknown-android31
+ e2e_matmul_direct_f16_gpu_large_valhall
GENERATOR
"generate_e2e_matmul_tests.py"
GENERATOR_ARGS
@@ -582,7 +582,7 @@
iree_generated_trace_runner_test(
NAME
- e2e_matmul_direct_f32_gpu_large_valhall-unknown-android31
+ e2e_matmul_direct_f32_gpu_large_valhall
GENERATOR
"generate_e2e_matmul_tests.py"
GENERATOR_ARGS
@@ -604,7 +604,7 @@
iree_generated_trace_runner_test(
NAME
- e2e_matmul_direct_i8_gpu_large_ampere-unknown-linux
+ e2e_matmul_direct_i8_gpu_large_ampere
GENERATOR
"generate_e2e_matmul_tests.py"
GENERATOR_ARGS
@@ -621,12 +621,13 @@
"--iree-vulkan-target-triple=ampere-unknown-linux"
LABELS
"requires-gpu-nvidia"
+ "requires-gpu-sm80"
"vulkan_uses_vk_khr_shader_float16_int8"
)
iree_generated_trace_runner_test(
NAME
- e2e_matmul_direct_f16_gpu_large_ampere-unknown-linux
+ e2e_matmul_direct_f16_gpu_large_ampere
GENERATOR
"generate_e2e_matmul_tests.py"
GENERATOR_ARGS
@@ -643,12 +644,13 @@
"--iree-vulkan-target-triple=ampere-unknown-linux"
LABELS
"requires-gpu-nvidia"
+ "requires-gpu-sm80"
"vulkan_uses_vk_khr_shader_float16_int8"
)
iree_generated_trace_runner_test(
NAME
- e2e_matmul_direct_f32_gpu_large_ampere-unknown-linux
+ e2e_matmul_direct_f32_gpu_large_ampere
GENERATOR
"generate_e2e_matmul_tests.py"
GENERATOR_ARGS
@@ -665,6 +667,7 @@
"--iree-vulkan-target-triple=ampere-unknown-linux"
LABELS
"requires-gpu-nvidia"
+ "requires-gpu-sm80"
"vulkan_uses_vk_khr_shader_float16_int8"
)
diff --git a/tests/transform_dialect/cuda/BUILD.bazel b/tests/transform_dialect/cuda/BUILD.bazel
index ca1c2dc..7d43838 100644
--- a/tests/transform_dialect/cuda/BUILD.bazel
+++ b/tests/transform_dialect/cuda/BUILD.bazel
@@ -104,6 +104,7 @@
"nomsan",
"notsan",
"noubsan",
+ "requires-gpu-nvidia",
"requires-gpu-sm80",
"driver=cuda",
],
diff --git a/tests/transform_dialect/cuda/CMakeLists.txt b/tests/transform_dialect/cuda/CMakeLists.txt
index 2ccf09e..44d9758 100644
--- a/tests/transform_dialect/cuda/CMakeLists.txt
+++ b/tests/transform_dialect/cuda/CMakeLists.txt
@@ -81,6 +81,7 @@
"nomsan"
"notsan"
"noubsan"
+ "requires-gpu-nvidia"
"requires-gpu-sm80"
"driver=cuda"
)