Skip to content

docs: record why upstream Vulkan sparse FA was deferred - #65

Merged
dzannotti merged 1 commit into
masterfrom
docs/deferred-strix-verification
Sep 17, 2026
Merged

dzannotti merged 1 commit into
masterfrom
docs/deferred-strix-verification

Conversation

@dzannotti

@dzannotti dzannotti commented Sep 15, 2026 •

Copy link
Copy Markdown
Collaborator

Companion to #64, trimmed to the part that is worth carrying as a document.

#64 reverted ggml/src/ggml-vulkan/ wholesale instead of merging upstream's sparse
Flash Attention (ggml-org#28105). This records why, so the next person does not
rediscover it: upstream's USE_SPARSE and strix's DYNAMIC_KV claim the same Flags
bit, the two declare incompatible flash-attn push-constant layouts, and they are rival
implementations of overlapping functionality — strix already has its gather/compaction
family and a DeepSeek-V4 sparse split. Taking either side alone leaves
flash_attn{,_cm1,_cm2}.comp calling an undefined fa_kv_index().

Also records what integration requires (renumber one feature's bit, merge the
push-constant structs and their single C++ writer, decide whether the two mechanisms
coexist), and the test-backend-ops -o FLASH_ATTN_EXT runs that gate it. The important
warning: a mismatched push-constant layout does not crash, it emits plausible-looking
wrong tensors, so it has to be validated numerically.

Includes a measured baseline: FLASH_ATTN_EXT 5339/5339 on Vulkan0 (Radeon 8060S, RADV
STRIX_HALO) at dffbb7888.

Docs only, one new file. The PLE-on-disk and unverified-claims material that was here
earlier is dropped: #64's description is now the permanent record of what changed there,
and the prompt-processing regression reported on #63 belongs in an issue rather than a
document.

@github-actions github-actions Bot added the documentation Improvements or additions to documentation label Sep 15, 2026
PR #64 reverted ggml/src/ggml-vulkan/ wholesale rather than merge
ggml-org#28105: upstream's USE_SPARSE and strix's DYNAMIC_KV claim the same
Flags bit, the two declare incompatible flash-attn push-constant layouts, and
they are rival implementations of overlapping functionality.

Records the collision, what integration requires (renumber a bit, merge the
push-constant structs and their C++ writer, decide which mechanism survives),
and the test-backend-ops runs that gate it -- including that a mismatched
push-constant layout yields silently wrong tensors rather than a crash, so it
has to be validated numerically.

Docs only.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
@dzannotti
dzannotti force-pushed the docs/deferred-strix-verification branch from 3731c05 to 05e2e39 Compare September 17, 2026 18:41
@dzannotti dzannotti changed the title docs: record deferred Vulkan sparse FA and dropped PLE optimizations docs: record why upstream Vulkan sparse FA was deferred Sep 17, 2026
@dzannotti
dzannotti merged commit 8c1c282 into master Sep 17, 2026
3 of 7 checks passed
@dzannotti
dzannotti deleted the docs/deferred-strix-verification branch September 17, 2026 18:41
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

documentation Improvements or additions to documentation

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant