From 67d915ac2ebd91ff44f5277b684d73284ff86a70 Mon Sep 17 00:00:00 2001 From: Jeff Bolz Date: Tue, 9 Dec 2025 10:29:40 -0600 Subject: [PATCH] vulkan: Fix data race/hang in scalar/cm1 flash attention --- ggml/src/ggml-vulkan/vulkan-shaders/flash_attn.comp | 3 +++ ggml/src/ggml-vulkan/vulkan-shaders/flash_attn_cm1.comp | 3 +++ 2 files changed, 6 insertions(+) diff --git a/ggml/src/ggml-vulkan/vulkan-shaders/flash_attn.comp b/ggml/src/ggml-vulkan/vulkan-shaders/flash_attn.comp index 4bef48b00..0379e5d50 100644 --- a/ggml/src/ggml-vulkan/vulkan-shaders/flash_attn.comp +++ b/ggml/src/ggml-vulkan/vulkan-shaders/flash_attn.comp @@ -256,6 +256,9 @@ void main() { barrier(); } + // prevent race on tmpsh + barrier(); + // reduce across threads [[unroll]] for (uint32_t r = 0; r < Br; ++r) { diff --git a/ggml/src/ggml-vulkan/vulkan-shaders/flash_attn_cm1.comp b/ggml/src/ggml-vulkan/vulkan-shaders/flash_attn_cm1.comp index cd82e4abf..c995ab140 100644 --- a/ggml/src/ggml-vulkan/vulkan-shaders/flash_attn_cm1.comp +++ b/ggml/src/ggml-vulkan/vulkan-shaders/flash_attn_cm1.comp @@ -302,6 +302,9 @@ void main() { barrier(); } + // prevent race on tmpsh + barrier(); + // reduce across threads float rowmaxf[rows_per_thread], eMf[rows_per_thread], Moldf[rows_per_thread];