Repository navigation
dsv41 metal: CSA2 attention for decode and prompt rows - #1709
Merged
Merged
Conversation
gilby
force-pushed
the
dsv41-metal-pr/05-csa2-attention
branch
from
November 1, 2026 04:45
105d33b to
1302f5f
Compare
6 of 9 tasks
6 of 9 tasks
gilby
force-pushed
the
dsv41-metal-pr/05-csa2-attention
branch
from
November 1, 2026 22:22
1302f5f to
f8ba719
Compare
csa2_attn.metal attends over the sliding window, the selected compressed rows and the sink on one shared latent row: decode rows over ring or linear windows, prompt rows in 16-key tiles at absolute positions, fp32 or bf16 out. Registered with the contract against float64, with a row's bytes equal across chunk splits and between launches.
ashhart
force-pushed
the
dsv41-metal-pr/05-csa2-attention
branch
from
November 2, 2026 01:40
f8ba719 to
4b4afdd
Compare
Owner
|
Thank you @gilby. This is merged into main with your commits under your own name, so you're listed as a TensorFold contributor. It ships in the next release, credited to you in the changelog and the release notes. |
This was referenced Nov 2, 2026
dsv41 metal: one decoder layer's launch over 1-16 rows, checked stage by stage against float64
#1715
Closed
Owner
|
Thanks @gilby! This is in TensorFold 1.2.2, out now: https://github.com/ashhart/TensorFold/releases/tag/v1.2.2 |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What this changes
CSA2 attention on Metal (
csa2_attn.metal): decode rows over ring or linear windows and prompt rows in 16-key tiles, over the window, the selected compressed rows and the sink; registered with the kernel contract.Main's shared files change only by one-line hooks; this part's records, suites and limits go into the family's own files (
dsv41_metal_records.zig,metal_dsv41_main.zig,metal_dsv41_limits.zig).Part 5 of 18 of the stack for #1676; stacks on main, with parts 1 to 4 (#1705 to #1708) merged.
Receipt
tools/bench_concurrent.py --alone --serialortoken_shaagainst"draft": false: n/a: kernels only; the kernel contract checks each launch geometry's bits against the others and against float64.tools/bench_openai.py: measured on the PR that turns serving on.ttft_sfromtools/bench_cache.py --require-coldon a long prompt, or "n/a" with the reason when the change cannot reach prompt processing: measured on the PR that turns serving on.zig build test tf-kernel-contract -Dcpu=apple_m1: exit 0, 592/592 steps succeeded; kernel contract,tf-kernel-contract --only dsv41(Metal):SUMMARY 21 kernels: 21 pass gates 1-4, 0 fail, 0 known findings; 33 controls: 33 red as planted, 0 missed; 0 limit problems; gates 92119 ms, limits 1292 ms;python3 tools/zig/lean_check.py: 4924 files, 424 problems, the same count as main (4919 files, 424). Zig's summary counts only the test binaries it ran in that invocation, so the step count is the comparable figure.Checklist
"draft": false, a resumed prompt equals a fresh one, and concurrent equals solo.SUMMARYline is in the receipt.