From: Jeff Bolz Date: Sun, 14 Dec 2025 08:00:00 +0000 (-0600) Subject: vulkan: Fix data race/hang in scalar/cm1 flash attention (#17887) X-Git-Tag: upstream/0.0.7446~48 X-Git-Url: https://git.djapps.eu/?a=commitdiff_plain;h=3238b1400cf4f0f174c39579d92ce1a8ddb68110;p=pkg%2Fggml%2Fsources%2Fllama.cpp vulkan: Fix data race/hang in scalar/cm1 flash attention (#17887) --- diff --git a/ggml/src/ggml-vulkan/vulkan-shaders/flash_attn.comp b/ggml/src/ggml-vulkan/vulkan-shaders/flash_attn.comp index 4bef48b0..0379e5d5 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 cd82e4ab..c995ab14 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];