Commit 5b07710
fix: QVAC-21320 keep clip FA on backends without the efficient-FA query (Metal/CUDA)
The FA-gate defaulted efficient_fa=false, so on non-Vulkan GPU backends (Metal, CUDA) — where ggml_backend_supports_efficient_fa is not implemented — flash attention was wrongly disabled. The resulting explicit-attention clip path overflows the pre-sized compute buffer at high n_pos (image_tile_mode=disabled + image_max_tokens=4096), hitting GGML_ASSERT in ggml-backend.cpp:2043 (SIGABRT) on darwin/iOS Metal integration tests.
Fix: default efficient_fa=true and disable only when a backend affirmatively reports non-efficient FA. Only ggml-vulkan implements the query (returns false for VK_VENDOR_ID_ARM / non-coopmat), so the Mali FA-disable win is unchanged; Metal/CUDA/CPU keep their efficient FA.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>1 parent 38e4c92 commit 5b07710
1 file changed
Lines changed: 6 additions & 3 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
2729 | 2729 | | |
2730 | 2730 | | |
2731 | 2731 | | |
2732 | | - | |
2733 | | - | |
| 2732 | + | |
| 2733 | + | |
| 2734 | + | |
| 2735 | + | |
| 2736 | + | |
2734 | 2737 | | |
2735 | 2738 | | |
2736 | | - | |
| 2739 | + | |
2737 | 2740 | | |
2738 | 2741 | | |
2739 | 2742 | | |
| |||
0 commit comments