Repository navigation
native: the CUDA kept-state identity is written once through any hasher, its keys unchanged - #2903
Conversation
|
Thanks @kotevcode, this is the behaviour-free step we agreed on in #2741, and it is clean. I went through No asks. It's queued to land after today's release once the remaining CI checks on this head are green. A note for #2901, not this PR:
|
47d83d7 to
7795508
Compare
7795508 to
86450b0
Compare
|
Thank you @kotevcode. 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. |
Figures and scope corrected to the PRs (#2948, #2863, #2934, #2933, #2921, #2906, #2878, #2892, #2851, #2728, #3072, #2915, #2864, #2854 and others), promises of later work removed (#2903, #2875, #1630, #1720), #3074 and #3047/#3046 said as their PRs scope them, the duplicate #2861, #2585, #2321 and #2719 entries and two copies of released 1.2.5 lines removed, #1953's line named for its PR, and a line for #3255. Released sections unchanged.
|
Thanks @kotevcode! This is in TensorFold 1.2.8, out now: https://github.com/ashhart/TensorFold/releases/tag/v1.2.8
|
What this changes
The CUDA kept-state identity (
cuda_disk.identityOf) is now written once, bycomponents(h, …), into any hasher withupdate.identityOfpasses Wyhash and keeps every kept key byte for byte; the execution witness (#2741) will pass SHA-256 for the same list, so the two can never drift. Behaviour is unchanged.componentstakes aComponentsstruct; the binary, checkpoint stamps and probe are optional, since the witness binds the binary and the weight bytes itself. Kept keys always pass all three, in the old order.disk_identityandfile_identityhelpers take any hasher;file_identity.running()returns the running binary's digest andbindwrites it ascurrentdid.aot_identity.writefeeds a captured cubin set to any hasher;hashwraps it in Wyhash as before.New
cuda_disk_golden_test.zig: main's identity sequence, copied update for update, must equalidentityOfover this binary, a real checkpoint and a captured set; and a fixed-input key computed on unmodified main is pinned (skipped when the build embeds real kernel images). Swapping two components fails both. A SHA-256 case checks a changed cubin, profile value or device changes the result.Issue: Refs Opt-in coherent execution witness for exact-response cache qualification #2741. The behaviour-free step agreed there to go ahead of the feature.
Stacked on: main
atc overlap --json: run on this head against main;complete: false(otherPullRequestsLimit,pullFilesUnavailable,timeLimit). 7 pull requests report a textual conflict, each only inCHANGELOG.md: Vulkan: qmm_q4_vec4 reads the 4-bit projection 16 bytes at a time, 34.8% to 43.0% less run time on an M1 with the same logits (stacked on #1544) #1990, dsv41 metal: image prompts #1722, dsv41 metal: the vision tower's kernels under the kernel contract #1721, dsv41 metal: the lane target, the prompt cache and the native server over Metal #1720, Implement GLP control vectors with a fused Metal kernel for Qwen3.8-27B #1835, app: control vector picker and strength in Engine advanced #1951 and GLM-5.3-Flash on CUDA keeps conversation states on disk, every rank's part (--learn-conversations) #1411. Native Vulkan backend for Qwen3.5-2B (opt-in): engine and kernel-contract registration (stacked on #1526) #1544 and Unlimited-OCR-2 on native Metal: the publisher's BF16 release, page images to structured text #2074 are clean; 4 reportunknown.Checks on this head
python3 tools/zig/lean_check.py, on the base and on this head: 345 and 345, 0 new, after rebasing onto main eab305d (onlyCHANGELOG.mdconflicted).python3 tools/pr_check.py --base upstream/main --pr 2903: 0 errors.zig build test-cuda-host: 379 of 379 steps, 6149 passed, 0 failed, 38 skipped.zig build test-disk-identity-host: 34 passed.zig build test-cuda-persistence-source-host: 4 passed.zig build test-cuda-disk-open-host: passed.zig build compile-disk-identity-metal-hostandcompile-persistence-hostcompile.zig fmt --check build.zig zigandgit diff --checkpass.Receipt
n/a: the identity's input bytes and their order are unchanged, so every kept key is the same and nothing that reaches inference changes.
Checklist
The inference checklist is skipped because the Receipt is n/a.