Skip to content

[Fix][Relax][Metal] Constrain wide-head prefill tiling - #20235

Merged
tlopex merged 3 commits into
apache:mainfrom
akaashrp:upstream/metal-wide-head-prefill-tiling
Sep 2, 2026
Merged

[Fix][Relax][Metal] Constrain wide-head prefill tiling#20235
tlopex merged 3 commits into
apache:mainfrom
akaashrp:upstream/metal-wide-head-prefill-tiling

Conversation

@akaashrp

Copy link
Copy Markdown
Contributor

Apply the existing low-storage WebGPU prefill configuration to Metal for wide attention heads. This keeps generated threadgroup allocations below Metal device limits, including Gemma 4 global attention heads.

Comment thread python/tvm/relax/frontend/nn/llm/_kernel_common.py
Apply the existing low-storage WebGPU prefill configuration to Metal for wide attention heads. This keeps generated threadgroup allocations below Metal device limits, including Gemma 4 global attention heads.
Choose Metal prefill tiling from the target shared-memory limit and the kernel's exact Q/K/V layout. Account for unequal ragged-attention dimensions and MLA's merged KV buffer, and reject configurations that do not satisfy the scheduler's factorization constraints.\n\nShare configuration and factorization helpers with both tree-attention paths while preserving existing WebGPU behavior. Add allocation-level coverage for standard, ragged, MLA, and tree-attention kernels, custom Metal limits, and impossible limits.
Search query tiles around the heuristic when adjusting warp and key tile sizes cannot satisfy Metal shared-memory and scheduler constraints. Recheck factorization for every candidate and keep the reduction tile equal to the real head dimension.

Add Metal codegen regressions for non-power-of-two head dimensions, nearby larger query tiles, and key-tile expansion.
@akaashrp
akaashrp force-pushed the upstream/metal-wide-head-prefill-tiling branch from a243318 to c10c00f Compare September 1, 2026 23:43
@tlopex
tlopex merged commit efac9ec into apache:main Sep 2, 2026
8 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants