tree e675b94527051d1b8f756adb07c3b0bdc66ee599
parent 137e36507aeeefa0aecf12bbd3fbaf2defbfe376
author Scott Todd <scott.todd0@gmail.com> 1724175381 -0700
committer GitHub <noreply@github.com> 1724175381 +0000
gpgsig -----BEGIN PGP SIGNATURE-----
 
 wsFcBAABCAAQBQJmxNQVCRC1aQ7uu5UhlAAACtIQACR8kP8fwa19XtC/vpCinBxR
 eyxx8Chp5Cmje0MnUZHMQKf6MgP54VRNW1m37qPUDpSEnLMgHI/EtelVf5bF1Ggy
 AnwnlfD5/MeVXZsRIuKIEfQPFM11erXImRlC3IiLAu5unQDPt/pk+cMpgrHJpoGz
 64a2k67SeBmRY8CvOFG2wzFSNKuqKBdRa0Y9SxvaHnn5uRmFwz2/eIZhP+tb1wgm
 Ow/5wjNDWmQWUeBQQ9fvSn71C5QKGxty/ErSeP6mFOid70mV1DzCStO84u4FNMyG
 9eKMTiX9ODRX9JJGb+jIasypPQWtgt2YEV9JU6C3SI3OQqmbY9XQXnMXkM9UyWhG
 iGM9cbfZmcKZOLA+MF1P7l+NMUj7GXDi8muCijtFidvIiVlqvWmMpl1M9i1YKLe9
 hTKDkkpeUeUF04oCk7XmZVNAwPgXUlh/9R/Rc47nKyzDIg8K2Rk9IjzB7XJovHI/
 ba6p0O81ayFfoSDQdQU2epa3aXYO3JqMUPfTfsRF7VS2J7WCvmyztHE+N4QtY7xn
 iUP9B8wjbQABM4Ac05oGuTP67FYEmxM2RchZg7jlzmV4mOS1KC3G/A8jEwBlM9jF
 kr36t4J+qGU11IsxSM91IsvUN8RbeOAxNlVRObZciXLKE78C1gWdsThHcZeKtJZ7
 asbAf38oTJhx9w8Oa2VH
 =pvsg
 -----END PGP SIGNATURE-----
 

Revert "Add e2e test suite for the Attention - CPU Backend" (#18302)

Reverts iree-org/iree#17751. A few of the new tests are failing on
various platforms:

* Timeouts (after 60 seconds) in
`iree/tests/e2e/attention/e2e_attention_cpu_f16_f16_f16_large_llvm-cpu_local-task`
on GitHub-hosted Windows and macOS runners
*
https://github.com/iree-org/iree/actions/runs/10468974350/job/28990992473#step:8:2477
*
https://github.com/iree-org/iree/actions/runs/10468947894/job/28990909629#step:9:3076
    
    ```
1529/1568 Test #969:
iree/tests/e2e/attention/e2e_attention_cpu_f16_f16_f16_large_llvm-cpu_local-task
.............................***Timeout 60.07 sec
---
TEST[attention_2_2048_256_512_128_dtype_f16_f16_f16_f16_2_2048_256_512_128_256_1.0_0]
---
    Attention shape (BATCHxMxK1xK2xN): 2x2048x256x512x256x128
    ```

* Compilation error on arm64:
https://github.com/iree-org/iree/actions/runs/10468944505/job/28990909321#step:4:9815:

    ```
[415/1150] Generating
/work/build-arm64/tests/e2e/attention/e2e_attention_cpu_f16_f16_f16_medium_llvm-cpu_local-task_attention.vmfb
from
e2e_attention_cpu_f16_f16_f16_medium_llvm-cpu_local-task_attention.mlir
FAILED:
tests/e2e/attention/e2e_attention_cpu_f16_f16_f16_medium_llvm-cpu_local-task_attention.vmfb
/work/build-arm64/tests/e2e/attention/e2e_attention_cpu_f16_f16_f16_medium_llvm-cpu_local-task_attention.vmfb
cd /work/build-arm64/tests/e2e/attention &&
/work/build-arm64/tools/iree-compile --output-format=vm-bytecode
--mlir-print-op-on-diagnostic=false --iree-hal-target-backends=llvm-cpu
/work/build-arm64/tests/e2e/attention/e2e_attention_cpu_f16_f16_f16_medium_llvm-cpu_local-task_attention.mlir
-o
/work/build-arm64/tests/e2e/attention/e2e_attention_cpu_f16_f16_f16_medium_llvm-cpu_local-task_attention.vmfb
--iree-hal-executable-object-search-path=\"/work/build-arm64\"
--iree-llvmcpu-embedded-linker-path=\"/work/build-arm64/llvm-project/bin/lld\"
--iree-llvmcpu-wasm-linker-path=\"/work/build-arm64/llvm-project/bin/lld\"

/work/build-arm64/tests/e2e/attention/e2e_attention_cpu_f16_f16_f16_medium_llvm-cpu_local-task_attention.mlir:4:14:
error: Yield operand #2 is not equivalent to the corresponding iter
bbArg
      %result1 = iree_linalg_ext.attention {
                 ^

/work/build-arm64/tests/e2e/attention/e2e_attention_cpu_f16_f16_f16_medium_llvm-cpu_local-task_attention.mlir:1:1:
note: called from
func.func @attention_2_1024_128_256_64_dtype_f16_f16_f16_f16(%query:
tensor<2x1024x128xf16>, %key: tensor<2x256x128xf16>, %value:
tensor<2x256x64xf16>, %scale: f32) -> tensor<2x1024x64xf16> {
    ^

/work/build-arm64/tests/e2e/attention/e2e_attention_cpu_f16_f16_f16_medium_llvm-cpu_local-task_attention.mlir:4:14:
error: failed to run translation of source executable to target
executable for backend #hal.executable.target<"llvm-cpu",
"embedded-elf-arm_64", {cpu = "generic", cpu_features = "+reserve-x18",
data_layout =
"e-m:e-i8:8:32-i16:16:32-i64:64-i128:128-n32:64-S128-Fn32",
native_vector_size = 16 : i64, target_triple =
"aarch64-unknown-unknown-eabi-elf"}>
      %result1 = iree_linalg_ext.attention {
                 ^

/work/build-arm64/tests/e2e/attention/e2e_attention_cpu_f16_f16_f16_medium_llvm-cpu_local-task_attention.mlir:1:1:
note: called from
func.func @attention_2_1024_128_256_64_dtype_f16_f16_f16_f16(%query:
tensor<2x1024x128xf16>, %key: tensor<2x256x128xf16>, %value:
tensor<2x256x64xf16>, %scale: f32) -> tensor<2x1024x64xf16> {
    ^
    failed to translate executables
    ```