]> git.djapps.eu Git - pkg/ggml/sources/whisper.cpp/commit
vulkan: change gated_delta_net to shard a column across a subgroup (llama/20662)
authorJeff Bolz <redacted>
Fri, 20 Mar 2026 11:17:15 +0000 (06:17 -0500)
committerGeorgi Gerganov <redacted>
Sun, 29 Mar 2026 12:04:36 +0000 (15:04 +0300)
commit49b505bcc5c76b30584a26fcc2d1d6751bcc986c
tree95fab7775ac203e1b577b1df0e3fc62ab7d6765b
parent46dcb35aa38f10eb5e1eb6f7c2de071e928a60bc
vulkan: change gated_delta_net to shard a column across a subgroup (llama/20662)

* vulkan: change gated_delta_net to shard a column across a subgroup

This is based on https://github.com/ggml-org/llama.cpp/pull/20391, I used an
LLM to port the CUDA code to Vulkan, and guided to it to make various fixes to
work with Vulkan (e.g. handling different subgroup sizes, unknown mapping of
subgroup to invocation id, using subgroupAdd optionally, etc.).

This fixes a perf regression from the transposing of the values in memory
(!20443).

* vulkan: Spread columns across fewer lanes to reduce the number of workgroups
ggml/src/ggml-vulkan/ggml-vulkan.cpp
ggml/src/ggml-vulkan/vulkan-shaders/gated_delta_net.comp
ggml/src/ggml-vulkan/vulkan-shaders/vulkan-shaders-gen.cpp