Repository navigation
dsv41 metal: the routed experts' grouped prompt GEMM, bit-equal to the decode rows - #1708
Conversation
|
Thanks @gilby. With #1705-#1707 landing, we've reached parts 4 to 11, so please rebase them onto main in order. What we read here is the 29 Oct stack: each kernel part is under the contract with its own records and planted controls (17 to 59 kernels, 28 to 116 controls, every SUMMARY clean on your M3 Ultra), and Kimi's files are untouched past part 3. Two items from our 31 Oct list fall in this range and aren't in these versions yet: |
352bcfc to
16f5bc1
Compare
|
Thanks @gilby for the quick rebase. Parts 4 to 6 apply cleanly on current main once #1706 and #1707 are in. Lean is unchanged, Kimi's files are untouched, and the shared files change only by hooks. #1708 and #1709 are ready, and we'll land them in order after #1706 and #1707. On #1710, thanks for deleting |
|
A correction to our notes on #1711 to #1714, @gilby: each part carries the ones before it, so #1711 and later can only land after #1710. We are landing #1708 and #1709 now, after the |
…e decode rows experts_mma.metal groups a chunk's rows by expert and runs gate/up and down as MMA tiles with the decode kernels' sums, so a prompt row's experts give the decode row's bits. Registered with the contract, with an equality gate against tf_dsv41_xp_up/down over the same rows.
16f5bc1 to
1386d44
Compare
|
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. |
|
Thanks @gilby! The grouped prompt GEMM for DeepSeek V4.1's routed experts on Metal, under the kernel contract and bit-equal to the decode rows, is in 1.2.1: https://github.com/ashhart/TensorFold/releases/tag/v1.2.1 |
What this changes
The routed experts' grouped prompt GEMM (
experts_mma.metal), bit-equal to the decode row kernels over the same rows; 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 4 of 18 of the stack for #1676; stacks on
dsv41-metal-pr/03-mxfp4-experts(part 3, #1707).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, 583/583 steps, 0 fail; kernel contract,tf-kernel-contract --only dsv41(Metal):SUMMARY 17 kernels: 17 pass gates 1-4, 0 fail, 0 known findings; 28 controls: 28 red as planted, 0 missed; 0 limit problems;python3 tools/zig/lean_check.py: 424 problems, the same count as main. 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.