Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
569 commits
Select commit Hold shift + click to select a range
06f433d
perf(lfm): the BE halves become BITDEC bus sends — the 64-BALU-per-fe…
MauroToscano Aug 21, 2026
f093da9
perf(stark): phase 4 materializes the size-n coset evaluation, not th…
MauroToscano Aug 21, 2026
9df7fa8
Merge remote-tracking branch 'origin/main' into blake3-full-mmcs
MauroToscano Aug 24, 2026
97f35cf
feat(prover): reconstruct any continuation epoch's wrap input from th…
MauroToscano Aug 24, 2026
3ca4df1
fix(stark): keep the batched aux round on host-written columns under …
MauroToscano Aug 24, 2026
da4ae41
feat(stark): carve one table's main matrix into a standalone tree in …
MauroToscano Aug 25, 2026
9b9a9a6
feat(prover): the batched continuation arm — epochs prove as one mixe…
MauroToscano Aug 25, 2026
5457129
feat(lfm): the carved batched epoch's emitted verifier — proof-carrie…
MauroToscano Aug 25, 2026
8ad0582
feat(lfm): batched epochs wrap from the bundle alone, publishing the …
MauroToscano Aug 25, 2026
b263454
feat(lfm): the batched wrap ships — rkyv wire for BatchedLfmProof + t…
MauroToscano Aug 25, 2026
bd4605a
feat(lfm): the aggregation layer's verify legs and assembly — N batch…
MauroToscano Aug 25, 2026
53b7640
fix(lfm): lint-clean the aggregation module — test-gate the census pr…
MauroToscano Aug 25, 2026
1dec9b3
feat(lfm): the six-leg aggregation program — the global proof wrapped…
MauroToscano Aug 25, 2026
30665a5
feat(lfm): the block driver caches its proofs and takes an aggregatio…
MauroToscano Aug 25, 2026
b9668a3
fix(lfm): collapse the cache-persist condition — restores lint after …
MauroToscano Aug 25, 2026
8b210e7
feat(lfm): the aggregation prove takes its own terminal blowup (P3_AG…
MauroToscano Aug 26, 2026
f74bf19
feat(lfm): the block driver persists THE BLOCK PROOF and times the co…
MauroToscano Aug 26, 2026
b95ddba
feat(lfm): LFM_BLAKE3 splits into configurable chunk tables
MauroToscano Aug 26, 2026
26afa44
feat(lfm): the block driver takes the LFM_BLAKE3 chunk cap (LFM_BLAKE…
MauroToscano Aug 26, 2026
9f6e964
feat(lfm): host RPO256 and its socket chip — 436 columns, 445 cells p…
MauroToscano Aug 26, 2026
48af90c
bench(lfm): measure host RPO throughput — 280x a BLAKE3 compression, …
MauroToscano Aug 26, 2026
5ceeef2
perf(lfm): 3.65x the host RPO permutation — whole-state inverse S-box…
MauroToscano Aug 26, 2026
f13f157
test(lfm): prove the rate-8 census is hash-invariant, so the RPO colu…
MauroToscano Aug 26, 2026
40f85db
Merge remote-tracking branch 'origin/blake3-full-mmcs' into rpo-migra…
MauroToscano Aug 26, 2026
fa18ff0
test(lfm): pin that the scalar inverse S-box is pipeline-saturated at…
MauroToscano Aug 26, 2026
6894c75
test(lfm): the machine verifies an RPO-committed FRI proof end to end…
MauroToscano Aug 26, 2026
73ee2a6
feat(lfm): RPX256 as the socket's third tenant — 325 cells per permut…
MauroToscano Aug 26, 2026
18a9e15
bench(lfm): make the hash ladder robust — best-of-5, and record that …
MauroToscano Aug 27, 2026
dab19b2
test(lfm): measure the fixture's hash share — 0.4%, so it cannot test…
MauroToscano Aug 27, 2026
3363915
feat(lfm): pin the algebraic Fiat-Shamir encoding, and gate it host-a…
MauroToscano Aug 27, 2026
e813127
fix(lfm): one felt-to-byte rule on the algebraic path — big-endian, a…
MauroToscano Aug 27, 2026
5482c06
feat(lfm): algebraic Merkle commitment backends — one implementation,…
MauroToscano Aug 27, 2026
ab8f5b0
feat(lfm): an algebraic grinding hash, and state every host-machine e…
MauroToscano Aug 27, 2026
aba507d
feat(lfm,stark): name the three algebraic commitment hashes, and give…
MauroToscano Aug 27, 2026
2dff1a3
docs(lfm): mark the algebraic byte-hash panic as an interim with a de…
MauroToscano Aug 27, 2026
5f0007b
refactor(lfm): put the digest's cell COUNT in one place instead of fi…
MauroToscano Aug 27, 2026
d939b3a
refactor(lfm): WrapDigest carries its own width, so a one-cell algebr…
MauroToscano Aug 27, 2026
da71fa5
feat(lfm): the in-VM algebraic leaf and parent, gated against the hos…
MauroToscano Aug 27, 2026
25855f7
feat(lfm): the leaf call sites stop serialising felts on the algebrai…
MauroToscano Aug 27, 2026
aff9184
feat(lfm): the transcript replays as a compress chain on the algebrai…
MauroToscano Aug 27, 2026
9bc1d3b
fix(lfm): the statement and the shape histogram absorb one append per…
MauroToscano Aug 27, 2026
04413ab
feat(lfm): grinding checks two permutations instead of two sponge has…
MauroToscano Aug 27, 2026
a7561ca
refactor(lfm): a byte-stream hash becomes a type, and the interim alg…
MauroToscano Aug 27, 2026
366bf77
feat(lfm,stark): name the three algebraic commitment configurations, …
MauroToscano Aug 27, 2026
0183a54
feat(lfm): collect the block path's hash into one pin, so a branch ca…
MauroToscano Aug 27, 2026
ace72cf
fix(lfm): the three things a BLAKE3-only build cannot show about the …
MauroToscano Aug 27, 2026
60a0807
refactor(lfm): a commitment root carries its own width, so an algebra…
MauroToscano Aug 27, 2026
7e50843
refactor(lfm): the arena stride for a commitment follows the digest's…
MauroToscano Aug 27, 2026
3788741
test(lfm): gate the mixed-group leaf against the host's group hash — …
MauroToscano Aug 28, 2026
75cfafe
test(lfm): gate the machine's byte regrouping against the host's cell…
MauroToscano Aug 28, 2026
a92daa9
fix(lfm): the LFM statement absorbs one call per LANE, not one per wo…
MauroToscano Aug 28, 2026
42b7545
fix(lfm): three more places the hash was implied rather than named, a…
MauroToscano Aug 28, 2026
826f135
test(lfm): gate Phase A's absorbs against the host, beside the spine …
MauroToscano Aug 28, 2026
ad83b44
test(lfm): remove the LFM spine diagnostic — it never read a challeng…
MauroToscano Aug 28, 2026
020a8a5
feat(lfm): pin the SOCKET hasher too, and cover both prep-root constr…
MauroToscano Aug 28, 2026
bb587f6
fix(lfm): the last four prove and verify calls on the continuation pa…
MauroToscano Aug 28, 2026
9a47e46
fix(lfm): the epoch harness's own digest stride and its program_id in…
MauroToscano Aug 28, 2026
8d134d6
feat(lfm): gate the group leaf's felt sequence against the host's, no…
MauroToscano Aug 28, 2026
a41bb55
feat(lfm): gate the machine's transcript against the host's absorb fo…
MauroToscano Aug 28, 2026
d6c7959
fix(lfm): the transcript gate builds its arena from the arm it drives…
MauroToscano Aug 28, 2026
e2f6a17
feat(lfm): the transcript gate covers SQUEEZES too, which narrows the…
MauroToscano Aug 28, 2026
4cf29bc
fix(lfm): the global statement absorbs one append per host call, like…
MauroToscano Aug 28, 2026
82db197
fix(lfm): use the base's byte_halves name for the root byte rendering
MauroToscano Aug 28, 2026
dd00530
style(lfm): make fmt
MauroToscano Aug 28, 2026
f6ca405
fix(lfm): the non-batched Phase A absorbs a root at the digest's widt…
MauroToscano Aug 28, 2026
023bf1f
Merge remote-tracking branch 'origin/rpo-leafdiff' into rpo-migration
MauroToscano Aug 28, 2026
76cfa98
fix(lfm): Phase A takes the digest's felts, program_id takes the root…
MauroToscano Aug 28, 2026
98b0798
fix(lfm,prover): close the alias-implied-hash class by enumeration — …
MauroToscano Aug 28, 2026
3459e15
feat(lfm): map a DivByZero address back to the assert that failed
MauroToscano Aug 28, 2026
13453ef
fix(lfm): build_artifacts names the pinned socket permutation instead…
MauroToscano Aug 28, 2026
cd3e31c
fix(lfm): a published root's lane count follows the pin, not a litera…
MauroToscano Aug 28, 2026
8d076c6
fix(lfm): close the digest-width class by enumeration — the R1f Merkl…
MauroToscano Aug 28, 2026
388d6ff
test(lfm): gate the root width, and gate that no call site reaches a …
MauroToscano Aug 28, 2026
046da12
style(lfm): the census counter reads as the matches! it is
MauroToscano Aug 28, 2026
512fadd
fix(stark): a worker panic reaches the test instead of being destroyed
MauroToscano Sep 1, 2026
680ecc1
Merge remote-tracking branch 'origin/main' into per-table-gpu
MauroToscano Sep 7, 2026
9cb811e
feat(gpu): dispatch device Merkle commits by commitment hash — BLAKE3…
MauroToscano Aug 24, 2026
b68bcd8
fix(stark): merge fallout — the R2 device window binds the LDE trace …
MauroToscano Sep 7, 2026
f98c8cb
test(gpu): fused-path BLAKE3 root parity vs the CPU commit, with a ta…
MauroToscano Aug 24, 2026
f62be63
test(gpu): pin the grind counter per commitment configuration
MauroToscano Aug 24, 2026
6dcca51
fix(gpu): merge fallout — the device-hash bridge names the three alge…
MauroToscano Sep 7, 2026
9273447
style(stark): clippy op_ref in the batched prover's beta powers (cuda…
MauroToscano Sep 7, 2026
52e8899
style: cargo fmt over the merged integration branch
MauroToscano Sep 7, 2026
77f8e02
test(gpu): the grind-counter pin names every non-keccak digest
MauroToscano Sep 7, 2026
b7995d5
test(lfm): gate the per-table epoch-verifier wrap on every suite run
MauroToscano Sep 7, 2026
efdda93
test(lfm): choose the grinding leg's control by the host's verdict, n…
MauroToscano Sep 7, 2026
b5ad16f
test(lfm): record the per-table wrap gate's measured shape, and drop …
MauroToscano Sep 7, 2026
64e1610
test(lfm): choose the grinding leg's control by the host's verdict, n…
MauroToscano Sep 7, 2026
effb28f
test(prover): Rust-oracle vector generator for the RPX host known-ans…
MauroToscano Sep 7, 2026
50c633e
feat(math-cuda): RPX256 permutation kernel source with a host known-a…
MauroToscano Sep 7, 2026
a5eb698
test(lfm): lever-0 census — the tenant-width bill of a per-table aggr…
MauroToscano Sep 7, 2026
168efd2
test(lfm): carry both BLAKE3 baselines and the internal-consistency f…
MauroToscano Sep 7, 2026
f54260a
test(lfm): aggregate 10 wraps, not 18, and print the whole tree
MauroToscano Sep 7, 2026
84940a3
test(lfm): the BLAKE3 tenant idles LFM_HASH at the pin's Test socket
MauroToscano Sep 7, 2026
d5ba828
perf(gpu): transpose the fused commit's LDE in place, one LDE-sized b…
MauroToscano Sep 7, 2026
35c00aa
docs(lfm): the slice-0 figures are UNVERIFIED, not "a different shape"
MauroToscano Sep 7, 2026
62a22f0
build: test-rpx-host-kat target for the RPX host known-answer harness
MauroToscano Sep 7, 2026
fee4e77
test(lfm): second falsification arm, and state the pin rule instead o…
MauroToscano Sep 7, 2026
b92d835
feat(math-cuda): RPX256 permutation kernel source + host known-answer…
MauroToscano Sep 7, 2026
a8d7d08
test(lfm): split the glue into a fixed spine and a per-query term
MauroToscano Sep 7, 2026
fc9f1e1
perf(math-cuda): one LDE buffer — transpose the fused commit's LDE in…
MauroToscano Sep 7, 2026
3e2a0cc
feat(gpu): name the algebraic hashes on the device dispatch, loudly
MauroToscano Sep 7, 2026
a42554c
test(lfm): gate the per-table epoch-verifier wrap on every suite run …
MauroToscano Sep 7, 2026
e9fb361
test(math-cuda): pin the RPX kernel's canonicalisation loop with a de…
MauroToscano Sep 7, 2026
4f3bf16
test(lfm): the fan-in verdict is a conservative default, not a measur…
MauroToscano Sep 7, 2026
320a23b
test(lfm): the assembled epoch verifier executes under the PINNED per…
MauroToscano Sep 7, 2026
ea2aa09
test(math-cuda): paste the Rust oracle's canonicalisation-witness row
MauroToscano Sep 7, 2026
7c81705
feat(gpu): name the algebraic hashes on the device dispatch, loudly (…
MauroToscano Sep 7, 2026
0847956
test(lfm): measure F at production heights, and what a second leg costs
MauroToscano Sep 7, 2026
dd2a41e
test(math-cuda): pin the RPX kernel's canonicalisation loop with a ra…
MauroToscano Sep 7, 2026
41a61b4
test(lfm): the assembled epoch verifier runs and rejects under the pi…
MauroToscano Sep 7, 2026
c34dee4
test(lfm): per-table census — lever 0 measured, fan-in rule applied, …
MauroToscano Sep 7, 2026
c36eadb
feat(gpu): bytes-aware admission, loud abort inside the device envelo…
MauroToscano Sep 7, 2026
ccc5ad3
docs(math-cuda): record the mempool retention measurement behind the …
MauroToscano Sep 7, 2026
5d2fe24
test(math-cuda): mirror the sticky comp-tree fault hook into the BLAK…
MauroToscano Sep 7, 2026
8a34d20
Merge pull request #961 from yetanotherco/pt/width-admission
MauroToscano Sep 7, 2026
b78d0d5
feat(math-cuda): RPX256 leaf and tree kernels, launch module and devi…
MauroToscano Sep 7, 2026
1b22e66
fix(math-cuda): give the RPX permutation a compilable shape — one non…
MauroToscano Sep 7, 2026
856091b
test(math-cuda): mirror the sticky comp-tree fault hook into the RPX …
MauroToscano Sep 7, 2026
f8d4147
test(prover): regroup the RPX parity probe seed so the cuda-arm clipp…
MauroToscano Sep 7, 2026
5372b70
Merge pull request #962 from yetanotherco/pt/rpx-kernel-p2
MauroToscano Sep 7, 2026
ac67416
ci: run the kernel host-KAT gates on every PR
MauroToscano Sep 7, 2026
7c311c2
Merge pull request #963 from yetanotherco/pt/ci-host-kat
MauroToscano Sep 8, 2026
e394f28
fix(lfm): the block path names its hasher at the call site, not in bu…
MauroToscano Sep 1, 2026
e6a4e27
refactor(lfm): build_artifacts defaults to REGISTRY_HASHER by name, n…
MauroToscano Sep 1, 2026
40d2f09
fix(lfm): the two proves-and-verifies legs name the pin, closing a C-…
MauroToscano Sep 2, 2026
a36f0c6
fix(lfm): every test that names a hash takes it from one source
MauroToscano Sep 1, 2026
00f1838
fix(lfm,tests): the prover and verifier aliases ARE the default hash …
MauroToscano Sep 1, 2026
8c8a487
style(tests): drop the transcript imports the alias sweep orphaned
MauroToscano Sep 7, 2026
0024ed1
fix(lfm): the Merkle BACKEND aliases are the default hash too
MauroToscano Sep 1, 2026
a655d8b
test(lfm): the gate stops enumerating spellings of the default
MauroToscano Sep 1, 2026
25d56ec
test(lfm): the gate's config allowlist admits DeviceTreeBackend
MauroToscano Sep 7, 2026
2cffabd
fix(lfm): the arena stride is the builder's digest width, not the con…
MauroToscano Sep 7, 2026
39eba79
style(tests): clippy trim_split_whitespace in the gate's config_items
MauroToscano Sep 7, 2026
603c1e1
feat(lfm): pin per-table-gpu's block path to RPX256
MauroToscano Sep 7, 2026
a7aadc9
docs(lfm): HASH-PINNING for the RPX pin, and the four static families…
MauroToscano Sep 7, 2026
f530795
feat(lfm): both regenerations under the RPX pin, reproduced control-f…
MauroToscano Sep 7, 2026
9a9d924
fix(lfm): regenerate the registry AFTER the statics it embeds
MauroToscano Sep 8, 2026
92968a2
fix(tests): the bitwise soundness control commits under the pinned pr…
MauroToscano Sep 8, 2026
d2e6362
fix(lfm,tests): the remaining digest strides follow the digest's width
MauroToscano Sep 8, 2026
8290093
fix(lfm): a host serializer at an explicit wrap hash's digest width
MauroToscano Sep 8, 2026
5b31faf
test(decode): re-bless the sub ELF's offline decode commitment under …
MauroToscano Sep 8, 2026
a0f1edb
fix(tests): the merkle-opening and L2G production twins run under the…
MauroToscano Sep 8, 2026
6ea2cfc
docs(lfm): regeneration order is statics first, registry second
MauroToscano Sep 8, 2026
ab26970
feat(prover): one device-set model for the VRAM throttle, table names…
MauroToscano Sep 7, 2026
6a2fe71
fix(prover): walk the tables by their host transient, not by the devi…
MauroToscano Sep 8, 2026
a635990
fix(prover): keep the table walk exactly as it was; the device-set mo…
MauroToscano Sep 8, 2026
b71f0e6
fix(tests): the join control's sibling walk and the split-cell surplu…
MauroToscano Sep 8, 2026
789c04c
test(continuation): headroom on the mid-pipeline error liveness guard
MauroToscano Sep 8, 2026
51bc7e8
prover: run the lib test harness on the shipped allocator
MauroToscano Sep 8, 2026
f1aff94
docs(prover): the walk order is a correlate, not a cause — name the m…
MauroToscano Sep 8, 2026
689b7ea
Merge pull request #964 from yetanotherco/pt/admission-prover-side
MauroToscano Sep 8, 2026
a619d12
docs(prover): state the allocator's memory saving, not a time cost we…
MauroToscano Sep 8, 2026
f8ffda4
Merge pull request #965 from yetanotherco/pt/w2-doc-time-claim
MauroToscano Sep 8, 2026
70c4209
prover: a panic on the prover thread shuts the continuation pipeline …
MauroToscano Sep 8, 2026
47b1421
math-cuda: the launch-size guard refused launches 256 times too small
MauroToscano Sep 8, 2026
babe3ce
Merge pull request #966 from yetanotherco/pt/harness-allocator
MauroToscano Sep 8, 2026
9eeca3d
Merge pull request #967 from yetanotherco/pt/pin-rpx
MauroToscano Sep 8, 2026
634b8fa
prover: inject the test's prover panic inside the guarded call
MauroToscano Sep 8, 2026
4226bf1
Merge pull request #968 from yetanotherco/pt/panic-shutdown
MauroToscano Sep 8, 2026
59fc77d
Merge pull request #969 from yetanotherco/pt/logup-guard
MauroToscano Sep 8, 2026
7f40e4d
refactor(math-cuda): delete the mixed-height MMCS device build
MauroToscano Sep 7, 2026
7fadfbc
test(lfm): drop the batched-format tests, keep the global leg as its …
MauroToscano Sep 8, 2026
c4c53dc
refactor(lfm): delete the batched epoch emitters and prove/verify ent…
MauroToscano Sep 8, 2026
1c48623
refactor(continuation): one epoch proof format, per-table
MauroToscano Sep 8, 2026
69708d4
refactor(stark): delete the batched prover, verifier and mixed-height…
MauroToscano Sep 8, 2026
0556f34
fix(recursion): bump the input wire version to 3 for the one-format e…
MauroToscano Sep 8, 2026
8531e2e
docs(lfm): say what leaves prep_root unchecked, now that it is nothing
MauroToscano Sep 8, 2026
99d25bc
Merge pull request #973 from yetanotherco/pt/delete-batched
MauroToscano Sep 8, 2026
1a82b97
refactor(lfm,stark): delete the preprocessed round root and the mixed…
MauroToscano Sep 8, 2026
1d92fea
Merge pull request #974 from yetanotherco/pt/delete-prep-round
MauroToscano Sep 8, 2026
4abe8c5
feat(lfm): the per-table aggregation node — step 9, a tree that compo…
MauroToscano Sep 9, 2026
111ca72
fix(continuation): prove the global memory argument AFTER the epochs,…
MauroToscano Sep 9, 2026
86a57d7
test(lfm): the production-scale leaf node measurement
MauroToscano Sep 9, 2026
4cc676a
test(lfm): mark VmRSS beside VmHWM — a high-water cannot see a trough
MauroToscano Sep 9, 2026
19c3fb4
fix(lfm): add the rss_marks/mark helpers 843ee296 called but never de…
MauroToscano Sep 9, 2026
9b11e03
test(lfm): cache the bundle, so a rerun isolates L_children
MauroToscano Sep 9, 2026
73b8c51
test(lfm): assert the device IN-PROCESS, not in the wrapper
MauroToscano Sep 9, 2026
660d089
feat(lfm): the tree's shape comes from the epoch count, not a constant
MauroToscano Sep 9, 2026
7dbefdc
fix(lfm): the block is 39,631,559 cycles — 10 epochs at 2^22, 19 at 2^21
MauroToscano Sep 9, 2026
b2e3134
fix(lfm): name the bundle experiment, do not read it off the disk
MauroToscano Sep 9, 2026
06033b6
test(lfm): make the production node's fan-in an input, and instrument…
MauroToscano Sep 9, 2026
78c578d
test(lfm): cache a level's proof, so a level can be measured one arm …
MauroToscano Sep 10, 2026
e0b912c
test(lfm): compose the production tree's interior, one arm per process
MauroToscano Sep 10, 2026
55db964
feat(lfm): the block-artifact root's L2G compare, and the fold shape …
MauroToscano Sep 10, 2026
3e7310e
feat(lfm): assemble the block-artifact root, with its publish set as …
MauroToscano Sep 10, 2026
adab594
fix(lfm): cache the global wrap, and correct a doc that reads as lice…
MauroToscano Sep 10, 2026
79d827a
feat(lfm): AssertOnly is the default, and nothing page-shaped is publ…
MauroToscano Sep 10, 2026
a084fb1
fix(lfm): the tree driver emitted every node's program twice, and tim…
MauroToscano Sep 10, 2026
b424f91
feat(lfm): size the root by emitting both options, because no rate ca…
MauroToscano Sep 10, 2026
5ac88b9
fix(lfm): the global wrap needs its own named mode, not level 0's
MauroToscano Sep 10, 2026
a5c852c
feat(lfm): the global proof's slice partition, as ONE source both sid…
MauroToscano Sep 10, 2026
f607ba5
feat(lfm): the global wrap as SLICES that publish partial bus sums
MauroToscano Sep 10, 2026
24c8102
feat(lfm): the go/no-go census on slicing, which proves nothing and c…
MauroToscano Sep 10, 2026
79de473
feat(lfm): prove one global slice standalone, before the parent exists
MauroToscano Sep 10, 2026
7f31436
feat(lfm): a slice's published set gets its OWN layout, beside the wr…
MauroToscano Sep 10, 2026
e48e015
feat(lfm): the global stage caches k SLICES, and refuses to fold them
MauroToscano Sep 10, 2026
19c24d8
feat(lfm): the PARENT of k global slices — three checks and a republi…
MauroToscano Sep 10, 2026
a1e83af
feat(lfm): the tree driver FOLDS k global slices instead of refusing …
MauroToscano Sep 10, 2026
1de688f
docs(lfm): say why the parent's fixture writes positionally, not thro…
MauroToscano Sep 10, 2026
b24f3c9
fix(lfm): the parent's slice-count pin is its OWN assert, not emit_bu…
MauroToscano Sep 10, 2026
4cabf8c
feat(lfm): the root's checks, split so a FIXTURE can drive them
MauroToscano Sep 10, 2026
c0ecdcb
test(lfm): the root's five pre-registered gates, over a fixture
MauroToscano Sep 11, 2026
89fe5da
feat(lfm): the root OPTION as a type, beside the fold shape it selects
MauroToscano Sep 11, 2026
c9a4600
feat(lfm): the tree driver PROVES the block-artifact root
MauroToscano Sep 11, 2026
e69aee6
test(lfm): the block-artifact ROOT, proved over REAL children
MauroToscano Sep 11, 2026
762603e
style(lfm): cargo fmt the root's emitter, gates and driver stage
MauroToscano Sep 11, 2026
d9fe07b
docs(lfm): print the rung the run does NOT reach, and say the option …
MauroToscano Sep 11, 2026
88e0d38
fix(lfm): the sizing arm captured a level's INPUT where option A take…
MauroToscano Sep 11, 2026
812def9
docs(lfm): one derivation of num_reg, and say what the arena order ac…
MauroToscano Sep 11, 2026
222b975
fix(lfm): the honest control's width assert reads the plan's publish set
MauroToscano Sep 11, 2026
3910053
perf(lfm): walk a chip's trace rows across the pool, not one thread
MauroToscano Sep 11, 2026
8c99284
test(lfm): gate the parallel row walk against the serial one, cell fo…
MauroToscano Sep 11, 2026
3760610
fix(lfm): say once per chip that a group's real rows fit inside its p…
MauroToscano Sep 11, 2026
33c30cd
docs(lfm): correct two counts in the row-walk gate, and elide a lifetime
MauroToscano Sep 11, 2026
30ba222
fix(lfm): the REGISTER derivation instrument follows the block pin, i…
MauroToscano Sep 11, 2026
f4eeb0e
fix(lfm): the FRI legs' byteswap counts are byte-hash counts, so they…
MauroToscano Sep 11, 2026
7e893e6
perf(lfm): parallelize the artifact build's column loops
MauroToscano Sep 11, 2026
c0b07c6
perf(lfm): one DECODE commitment and one ELF parse per epoch walk
MauroToscano Sep 11, 2026
1665436
feat(lfm): count the distinct programs behind each level, keyed on pr…
MauroToscano Sep 11, 2026
3abe7c0
test(lfm): the laptop's artifact-build harness, and the trap in readi…
MauroToscano Sep 11, 2026
69e783d
docs(math-cuda): pin the byte-to-felt mapping the RPX device grind mu…
MauroToscano Sep 8, 2026
bb013e1
feat(math-cuda): an RPX arm for the proof-of-work grind search
MauroToscano Sep 11, 2026
b7fb520
feat(stark): send the RPX grind to the device, keyed by the configura…
MauroToscano Sep 11, 2026
b248068
test(math-cuda): pin the RPX grind kernel against the host predicate,…
MauroToscano Sep 11, 2026
5122c33
test(prover): gate the RPX grind on a real launch and on the dispatch…
MauroToscano Sep 11, 2026
80d7463
perf(lfm): the leaf sponge streams its bytes, so a digest stops alloc…
MauroToscano Sep 11, 2026
5f7e790
style: make fmt
MauroToscano Sep 11, 2026
8a59fa1
fix(lfm): put the round-trip test's doc and attribute back on the rou…
MauroToscano Sep 11, 2026
be383c9
feat(stark): a public entry point to commit one column group on the d…
MauroToscano Sep 11, 2026
47a166a
perf(lfm): commit the preprocessed groups on the device
MauroToscano Sep 11, 2026
481ed46
fix(stark): the cuda admission test and clippy's arity bound
MauroToscano Sep 11, 2026
9dbf92f
feat(lfm): the level line reports the device set the artifact build a…
MauroToscano Sep 11, 2026
c1856c7
test(lfm): the registry drift pins barely reach the device — here is …
MauroToscano Sep 11, 2026
0f8a968
feat(lfm): split the census line by device and host groups
MauroToscano Sep 11, 2026
53d4eca
test(lfm): the fixture root gate asserts the device branch was taken
MauroToscano Sep 11, 2026
8f9aef1
fix(lfm): a fixture guest that COMMITS in an intermediate epoch, so t…
MauroToscano Sep 11, 2026
3171d0d
fix(lfm): the R1d replay's compression count names the hash the repla…
MauroToscano Sep 11, 2026
4fcb334
fix(lfm): the census counts THIS level's groups, and the floor walk c…
MauroToscano Sep 11, 2026
9454056
instrument(lfm): split the prove field, the wrap and the harvest into…
MauroToscano Sep 11, 2026
49baaac
fix(lfm): the census counts the threads the level is MADE of, not who…
MauroToscano Sep 11, 2026
6241c75
instrument(lfm): a wrap prints its size, in the shape every node alre…
MauroToscano Sep 11, 2026
505fe74
feat(lfm): one mutual-exclusion permit for the card, taken twice per …
MauroToscano Sep 11, 2026
508ec86
feat(lfm): prove an interior level's siblings concurrently, one card …
MauroToscano Sep 11, 2026
7a8f3e9
feat(lfm): a byte-identity line per node, and the sibling knob under …
MauroToscano Sep 11, 2026
6842585
instrument(lfm): name the permit wait, so a node reads the same at on…
MauroToscano Sep 11, 2026
1f5f727
fix(lfm): print the byte-identity line at the join, so it is in index…
MauroToscano Sep 11, 2026
7a4ec7e
feat(lfm): level-0 concurrency, on its own knob, with the host peak i…
MauroToscano Sep 11, 2026
6ffb9ca
perf(lfm): size the executor's records from the census, split the wri…
MauroToscano Sep 11, 2026
e16b474
perf(lfm): free the executor's memory and records before the device p…
MauroToscano Sep 11, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
38 changes: 37 additions & 1 deletion .github/workflows/pr_main.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -191,10 +191,41 @@ jobs:

# "Test" is a required check — keep this name to avoid branch protection changes.
# This gate job passes only when CLI, executor, disk-spill, and prover tests succeed.
host-kat:
# The device kernels' known-answer gates. `make test-*-host-kat` compiles the
# REAL `.cu` sources as host C++ through
# `crypto/math-cuda/tests/host_kat/cuda_host_shim.h` and runs them against
# external vectors (the official BLAKE3 vectors, miden-crypto's RPO vectors)
# and the committed oracle tables — g++ only, no CUDA, no cargo, seconds. It
# is the only per-PR check on the kernel arithmetic: the GPU parity suites
# (gpu-tests.yml) run on merge_group alone, and until this job existed the
# host-KAT targets lived in no workflow at all. Arithmetic only — nvcc
# acceptance and everything about execution stay with the GPU tests.
name: Host KAT (kernel pins)
runs-on: ubuntu-latest
if: github.event_name != 'push' || github.actor != 'github-merge-queue[bot]'
steps:
- name: Checkout sources
uses: actions/checkout@v4

- name: BLAKE3 host-KAT (7-round and 6-round arms)
run: make test-blake3-host-kat

- name: RPX host-KAT (permutation, leaf sponge, parent, leaf and tree kernels)
run: make test-rpx-host-kat

# Second source for the TABLES the BLAKE3 host-KAT trusts: upstream
# BLAKE3's portable C with its round loop parameterised, against the
# committed 6-round vectors and the Python oracle. A ~1 s C compile plus a
# few seconds of Python (cc + python3, both on the runner); it too had no
# workflow before this job.
- name: BLAKE3 second-source check of the 6-round tables
run: make test-blake3-second-source

test:
name: Test
if: always()
needs: [test-executor, test-cli, test-prover, test-disk-spill, test-stark-cuda-lib]
needs: [test-executor, test-cli, test-prover, test-disk-spill, test-stark-cuda-lib, host-kat]
runs-on: ubuntu-latest
steps:
- name: Check results
Expand All @@ -204,12 +235,14 @@ jobs:
prover="${{ needs.test-prover.result }}"
disk_spill="${{ needs.test-disk-spill.result }}"
stark_cuda_lib="${{ needs.test-stark-cuda-lib.result }}"
host_kat="${{ needs.host-kat.result }}"

echo "test-executor: $executor"
echo "test-cli: $cli"
echo "test-prover: $prover"
echo "test-disk-spill: $disk_spill"
echo "test-stark-cuda-lib: $stark_cuda_lib"
echo "host-kat: $host_kat"

# Allow "success" or "skipped" (skipped on merge queue pushes)
if [[ "$executor" != "success" && "$executor" != "skipped" ]]; then
Expand All @@ -227,6 +260,9 @@ jobs:
if [[ "$stark_cuda_lib" != "success" && "$stark_cuda_lib" != "skipped" ]]; then
exit 1
fi
if [[ "$host_kat" != "success" && "$host_kat" != "skipped" ]]; then
exit 1
fi

test-disk-spill:
name: Disk-spill tests
Expand Down
48 changes: 46 additions & 2 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Loading