]> git.djapps.eu Git - pkg/ggml/sources/whisper.cpp/commit
cuda: align snake fusion matcher with the other backends (llama/25460)
authorPascal <redacted>
Thu, 9 Jul 2026 08:00:06 +0000 (10:00 +0200)
committerGeorgi Gerganov <redacted>
Fri, 10 Jul 2026 10:06:42 +0000 (13:06 +0300)
commit1b0b078a98fb99978332b337ed1580fc53e0e96f
treefcea6983a57cd21af42da8a637bda4a9d000bfda
parentdef36a583183ed86350c50091ec8437e53df58b2
cuda: align snake fusion matcher with the other backends (llama/25460)

* cuda: fix snake fusion type predicate, a and inv_b are F32

The matcher required a->type == x->type while launch_snake reads both
as const float *, matching the CPU and Metal contract where a and inv_b
stay F32. F16/BF16 chains never fused and fell back to the naive path,
and a hypothetical all F16 chain would have read F16 bits as float.
Aligns the predicate and the comment with ggml-cpu.c

* cuda: reject snake fusion on non-contiguous operands

The kernel reads x[idx] and a[c] / inv_b[c] linearly, so a
non-contiguous view passing the matcher would silently read wrong data.
Mirror the contiguity guard already present in the CPU, Vulkan and
Metal matchers.
ggml/src/ggml-cuda/ggml-cuda.cu