Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
1352 commits
Select commit Hold shift + click to select a range
8d2cb35
multilinear, stark: finish a device GKR layer's host tail lean (LAMBD…
MauroToscano Sep 29, 2026
7364d12
Merge I-GFS stages A2+A3: the argue's challenge tables built on the card
MauroToscano Sep 29, 2026
b9698b0
multilinear: build the argue's challenge tables on the card by default
MauroToscano Sep 29, 2026
f176911
Merge I-GFS stages A4 and A5 onto the A2+A3 landing, for their combin…
MauroToscano Sep 29, 2026
3722e73
Merge whir/full-recursion: pure WHIR recursion (W-LFM proofs, wide le…
MauroToscano Sep 29, 2026
70cdb37
lfm: re-bless the W-LFM pins under P2's query-only grind
MauroToscano Sep 29, 2026
6a6e266
lfm: pure WHIR is the recursion's default
MauroToscano Sep 29, 2026
1177d5a
stark, prover: census the argue's zerocheck batches and their live se…
MauroToscano Sep 29, 2026
965e13d
multilinear: run a big zerocheck batch's program on demand (S1a, defa…
MauroToscano Sep 29, 2026
06d2d48
Merge I-GFS N1′ S1a (a big zerocheck batch's program on demand) onto …
MauroToscano Sep 29, 2026
26adbf5
multilinear: run a big zerocheck batch's program on demand by default
MauroToscano Sep 29, 2026
a28ad36
prover: the lean program's parity tests reach the W-LFM batches
MauroToscano Sep 29, 2026
d61a3c7
rpx: compute the MDS over a compile-time matrix, not a from_fn closure
MauroToscano Sep 29, 2026
d6648e6
test(whir): grind tests hold whichever valid nonce the search returns
MauroToscano Sep 29, 2026
5f15641
Merge the deterministic whir_chain grind tests (d6648e653)
MauroToscano Sep 29, 2026
1e3c39d
math-cuda: count every entry into the device layer
MauroToscano Sep 29, 2026
533a229
lfm: take the W-LFM card permit after the host prep (LFM_CARD_AFTER_P…
MauroToscano Sep 29, 2026
78781f7
lfm: take the W-LFM card permit after the host prep by default
MauroToscano Sep 29, 2026
4ab853c
lfm: the pure-WHIR tree defaults to fan-in 4
MauroToscano Sep 29, 2026
529589d
lfm: a wide tree of one node level runs root option A as B
MauroToscano Sep 29, 2026
61b025b
lfm: prove one to six epochs to a verified root on the fixture
MauroToscano Sep 29, 2026
e783f29
lfm: let the WHIR tree take fan-in 5 from LFM_CENSUS_FAN_IN
MauroToscano Sep 29, 2026
b682091
lfm: the pure-WHIR tree defaults to fan-in 5
MauroToscano Sep 29, 2026
fd3146a
lfm: quote the fan-in-5 VRAM margin in MiB, as the log prints it
MauroToscano Sep 29, 2026
7650b53
multilinear: count the GKR tree's refused promise as a device fallback
MauroToscano Sep 29, 2026
a28690b
stark: a refused GKR tree is counted, and the host builds the same tree
MauroToscano Sep 29, 2026
4593752
stark: say the refusal test needs multilinear's cuda feature
MauroToscano Sep 29, 2026
d117ffe
prover: compute the WHIR base's DECODE root beside epoch 0 (LAMBDA_VM…
MauroToscano Sep 29, 2026
eb20fe0
prover: compute the WHIR base's DECODE root ahead by default
MauroToscano Sep 29, 2026
33232d6
Merge iwhir/gkr-refusals into land/1010-head-ahead
MauroToscano Sep 29, 2026
deb9726
lfm: claim the wide lead-in's first nodes before the epoch count, by …
MauroToscano Sep 29, 2026
9e27289
Revert "lfm: claim the wide lead-in's first nodes before the epoch co…
MauroToscano Sep 29, 2026
63ba2ba
math-cuda: keep the leaf layers through a budget miss they cannot cov…
MauroToscano Sep 30, 2026
b8148e4
math-cuda: test that a miss the layers cannot cover keeps them and mo…
MauroToscano Sep 30, 2026
bb7f5d8
prover: print the retention's futile misses on its line
MauroToscano Sep 30, 2026
73342bc
math-cuda: keep the leaf layers through a futile miss by default
MauroToscano Sep 30, 2026
3332c1b
math-cuda: keep whole WHIR trees, evictable, under LFM_WHIR_WHOLE_TRE…
MauroToscano Sep 30, 2026
f891296
math-cuda: test that a kept whole tree serves its openings and moves …
MauroToscano Sep 30, 2026
22b81fc
prover: print the whole-tree switch and its served openings on the re…
MauroToscano Sep 30, 2026
c68d37f
math-cuda: keep whole WHIR trees by default
MauroToscano Sep 30, 2026
7c82727
math-cuda: run the retention card tests in both modes and restate H4'…
MauroToscano Sep 30, 2026
45fb077
math-cuda: give a kept tree's promise back with its last handle, not …
MauroToscano Sep 30, 2026
53d52af
argue: a host reference of D-ARGUE's stage 1, parity on every table, …
MauroToscano Sep 30, 2026
a14f35b
argue: the fused zerocheck on the card (Q1b prototype), default off
MauroToscano Sep 30, 2026
1a07ce5
argue: run the fused card tests alone
MauroToscano Sep 30, 2026
6ba7990
argue: name the fused tables on their log lines, and say when S1-1 is on
MauroToscano Sep 30, 2026
6b80511
argue: the fused card test takes each table at a height the card uploads
MauroToscano Sep 30, 2026
4e40b5d
argue: a table without roots launches no grid pass
MauroToscano Sep 30, 2026
5cbbb68
argue: the fused zerocheck and integer nodes on by default
MauroToscano Sep 30, 2026
f3d3599
stark: the fused rounds move no byte of the proof, and a fused fault …
MauroToscano Sep 30, 2026
1946609
multilinear: a GKR layer's device rounds with Gruen's split, behind L…
MauroToscano Sep 30, 2026
fa44277
argue: the batched argue's host reference prover and verifier (D-BATC…
MauroToscano Sep 30, 2026
39441f9
argue: the batched argue's box round trip covers every VM table and t…
MauroToscano Sep 30, 2026
7d82a32
multilinear: the GKR Gruen rounds on by default, LAMBDA_VM_ARGUE_GKR_…
MauroToscano Sep 30, 2026
a9a949e
argue: the batched round trip names the epoch bookend L2G
MauroToscano Sep 30, 2026
597fa4e
multilinear: a stack can let its codewords go and be opened again
MauroToscano Sep 30, 2026
7e2485a
stark: one multilinear proof for a block, committed and proved group …
MauroToscano Sep 30, 2026
2e14f60
prover: prove a block in one WHIR proof, no epochs (block_whir)
MauroToscano Sep 30, 2026
fdffcd0
prover: the epoch base as W1's control on the same binary, and the bl…
MauroToscano Sep 30, 2026
bf4f14e
argue: the batched argue on the card, stepped in lockstep (D-BATCH B-…
MauroToscano Sep 30, 2026
bc8e1d7
block_whir: stream the table layout into phase A, upload the next gro…
MauroToscano Sep 30, 2026
6623da0
argue: split the per-table rest and print each table's census (D-BATC…
MauroToscano Sep 30, 2026
bd169df
argue: the batched argue's phases as their own prover and verifier ha…
MauroToscano Sep 30, 2026
4ca2aca
lfm: the batched argue as a machine leg, and its closed form (D-BATCH…
MauroToscano Sep 30, 2026
19ef862
stark: a tiled transposition for the block prover's table layout
MauroToscano Sep 30, 2026
3526583
argue: split the tree region into lift, write, fold and output (S0)
MauroToscano Sep 30, 2026
fff43ad
stark: the tree's lift timed outside the match scrutinee (clippy)
MauroToscano Sep 30, 2026
b1bb0f8
argue: the card-vs-host byte tests prove one commitment twice
MauroToscano Sep 30, 2026
a916f23
argue: one wait a round across the batched argue's device sessions
MauroToscano Sep 30, 2026
87ed8db
multilinear: the GKR input layer written from the base columns, behin…
MauroToscano Oct 1, 2026
de2cfef
prover: build a run's traces window by window, streaming the big tabl…
MauroToscano Oct 1, 2026
b5f9366
prover: a measurement-only knob to time the base with the batched argue
MauroToscano Oct 1, 2026
ba784bd
argue: no lift — the fused zerocheck reads the base columns, behind L…
MauroToscano Oct 1, 2026
4195231
block_whir: stream the windowed build into phase A; the group partiti…
MauroToscano Oct 1, 2026
e1f1169
prover: the base-only timing test reads its block from the environmen…
MauroToscano Oct 1, 2026
d108cab
multilinear: the GKR input from the base columns and no lift on by de…
MauroToscano Oct 1, 2026
395829a
prover: let the WHIR global child's prove wait for the last wide node…
MauroToscano Sep 30, 2026
3d20815
prover: name each card hold's proof on its trace line
MauroToscano Sep 30, 2026
efdb528
prover: state the global-after-last lever's mode, including trees wit…
MauroToscano Sep 30, 2026
88b0d31
prover: the global-after-last latch on by default, LFM_TREE_GLOBAL_AF…
MauroToscano Oct 1, 2026
dd96926
prover: the windowed builder appends the walk in place, and stamps it…
MauroToscano Oct 1, 2026
ada9fa2
block_whir: report the streamed build's windows (walk, routing, gener…
MauroToscano Oct 1, 2026
18c2498
prover: the windowed builder can hand out chunk jobs instead of gener…
MauroToscano Oct 1, 2026
aabb0af
block_whir: the streamed build hands its chunks out as jobs; the layo…
MauroToscano Oct 1, 2026
f990716
block_whir: execute the block window by window into the streamed build
MauroToscano Oct 1, 2026
4309699
block_whir: stamp the streamed build's finish phase by phase
MauroToscano Oct 1, 2026
8abfc9f
prover: split the windowed builder into a walker and an accumulator f…
MauroToscano Oct 1, 2026
11f921b
block_whir: walk on a thread of its own, accumulate and hand out chun…
MauroToscano Oct 1, 2026
a16a19a
block_whir: lint (a named builder report type, a collapsed if)
MauroToscano Oct 1, 2026
89613aa
prover: the windowed builder keeps walked windows whole and concatena…
MauroToscano Oct 1, 2026
886a68a
Merge #1010 @ 88b0d3196 (GKR Gruen, GKR input from the base columns, …
MauroToscano Oct 1, 2026
66a22a9
prover: the windowed builder counts BITWISE's two dominant sources as…
MauroToscano Oct 1, 2026
a8fe69d
block_whir: split KECCAK_RND by whole rows, not through a transposition
MauroToscano Oct 1, 2026
1fc2b40
prover: a box test that the windowed build of a real block is the who…
MauroToscano Oct 1, 2026
43bc5e5
batched argue: the lockstep ladder on Gruen's rounds, bins of 2^26, t…
MauroToscano Oct 1, 2026
893c875
batched argue: the split line counts the Gruen layers the argue ran
MauroToscano Oct 1, 2026
c013322
block_whir: the verifier bounds the statement's partition: group coun…
MauroToscano Oct 1, 2026
d9caaf6
prover: the determinism test digests tables streamed, not materialized
MauroToscano Oct 1, 2026
99fc428
block whir: prepared openings for DECODE and the dense genesis pages
MauroToscano Oct 1, 2026
dfb30a6
prover: derive per-table shapes from the AIR, never from a proof
MauroToscano Oct 1, 2026
2c08855
block whir: the statement's checks as one frame for the verifier and …
MauroToscano Oct 1, 2026
f7f7274
block whir: the statement as one byte run, and the page tables' first…
MauroToscano Oct 1, 2026
c1eef5b
lfm: the no-epoch block node, shared with the STARK block
MauroToscano Oct 1, 2026
fce78b8
lfm: the WHIR block's recursion: plan, leaf, arena
MauroToscano Oct 1, 2026
70f1281
block whir: hand the statement and the prepared roots to an observer …
MauroToscano Oct 1, 2026
697c2a5
lfm: the WHIR block tree at fan-in 3, and a pipelined real-block driver
MauroToscano Oct 1, 2026
60a289a
merge #1010's head 88b0d3196 into noepoch/whir
MauroToscano Oct 1, 2026
e7d754a
block whir: the prepared openings' negatives, each with its mutation,…
MauroToscano Oct 1, 2026
73adc7b
lfm: the WHIR block tree's verifier at pinned presets; prepared negat…
MauroToscano Oct 1, 2026
924e451
prover: the streamed finish's sub-steps in the build marks
MauroToscano Oct 1, 2026
54548bf
prover: the windowed builder compiles without the parallel feature
MauroToscano Oct 1, 2026
454dad6
prover: the block prover and its recursion build only with the parall…
MauroToscano Oct 1, 2026
e1afa7e
prover: the windowed builder concatenates its windows in parallel
MauroToscano Oct 1, 2026
5df4240
prover: the windowed builder streams KECCAK_RND chunks
MauroToscano Oct 1, 2026
cfc142c
block whir: KECCAK_RND's chunks streamed into phase A
MauroToscano Oct 1, 2026
43b9286
prover: the windowed builder's parallel concatenation off by default
MauroToscano Oct 1, 2026
97ba486
block whir: KECCAK_RND streaming off by default
MauroToscano Oct 1, 2026
30203cb
block whir: one prepared stack a group
MauroToscano Oct 1, 2026
a16f803
prover: the windowed builder's parallel concatenation on by default
MauroToscano Oct 1, 2026
3a7bdfe
prover: the windowed builder can stream MEMW-derived LT ops (block path)
MauroToscano Oct 1, 2026
43dd21e
block whir: the MEMW-derived LT ops streamed, behind BlockOptions::st…
MauroToscano Oct 1, 2026
b66bba0
lfm: the real-block readout prints LT's chunk heights
MauroToscano Oct 1, 2026
e5198e6
block whir: lay streamed chunks out on worker threads, behind BlockOp…
MauroToscano Oct 1, 2026
708fe27
block whir: off the inline layout, derive the prepared columns after …
MauroToscano Oct 1, 2026
b99c797
block whir: cut ECDAS into 2^17-row tables and cap the chunked tables…
MauroToscano Oct 1, 2026
e7e2f8a
block whir: the streamed build cuts ECDAS at the run's end too
MauroToscano Oct 1, 2026
4b81e38
lfm: the split-ECDAS tree test above the existing tree test's doc com…
MauroToscano Oct 1, 2026
f3fbcd9
block whir: three layout workers in production; pack the rest as it i…
MauroToscano Oct 1, 2026
2f33cb9
prover: the windowed builder can drop each streamed chunk's ops as it…
MauroToscano Oct 1, 2026
038939c
block whir: the base real-block test takes the layout knobs and print…
MauroToscano Oct 1, 2026
aab9cdd
block whir: BlockOptions::drop_streamed_ops drops the streamed chunks…
MauroToscano Oct 1, 2026
d2a52c8
Merge ecdas/whir @ 4b81e38e5: ECDAS cut into 2^17-row tables, chunked…
MauroToscano Oct 1, 2026
aa911c1
block whir: the readout names the rest's slowest tables to lay out
MauroToscano Oct 1, 2026
d6a036b
block whir: no table may be stated taller than 2^27 rows (G2)
MauroToscano Oct 1, 2026
b2cab02
lfm: no WHIR leaf over the leaf cap (G3)
MauroToscano Oct 1, 2026
951dca5
lfm: the WHIR leaf's bus share as p * (1/q), behind LFM_WHIR_SHARE_IN…
MauroToscano Oct 1, 2026
11e2de5
block whir: layout workers back to 0 in production
MauroToscano Oct 1, 2026
8d1cc68
Merge argue/epoch-batch @ 893c87540 (batched argue: B-2, B-3, B-4a, G…
MauroToscano Oct 1, 2026
c51e9d1
Merge mem/whir-m1 @ aab9cdd86: drop the streamed chunks' ops (i-mem M…
MauroToscano Oct 2, 2026
1398747
Merge ecdas/whir @ 951dca5d7: G2 table height cap, G3 leaf cap, W1 sh…
MauroToscano Oct 2, 2026
6e8f41b
lfm: the WHIR leaf's inverse share on by default (W1)
MauroToscano Oct 2, 2026
aebaf99
Merge ecdas/whir @ 6e8f41bde: the WHIR leaf's inverse share on by def…
MauroToscano Oct 2, 2026
f4aafea
block whir: drop the streamed chunks' ops by default
MauroToscano Oct 2, 2026
5e7c1bc
block whir: bound the chunks laid out ahead of the packer (D-EXEC E3)
MauroToscano Oct 2, 2026
044c18e
block whir: the batched argue as a block format (default per table)
MauroToscano Oct 2, 2026
ffbccc6
block whir: tests for the batched argue format
MauroToscano Oct 2, 2026
17ac792
Merge noepoch/whir @ aebaf9931 (ECDAS height caps, leaf inverse share…
MauroToscano Oct 2, 2026
01f7c15
lfm: W3 leaves walk a batched block group (N-4)
MauroToscano Oct 2, 2026
d315307
lfm: box tests for the batched block leaves and tree
MauroToscano Oct 2, 2026
1132cd1
block whir: the default-bytes pin takes its digests from the base sha…
MauroToscano Oct 2, 2026
1475bcc
Merge noepoch/whir @ 5e7c1bc6b (streamed ops dropped by default, boun…
MauroToscano Oct 2, 2026
3f96c48
prover: the windowed builder walks lean (D-EXEC E1)
MauroToscano Oct 2, 2026
8270efd
test(prover): the lean walk builds the whole-run tables, part by part
MauroToscano Oct 2, 2026
8d2897d
executor: guest memory in 64 KiB pages found by directory (D-EXEC E4)
MauroToscano Oct 2, 2026
5b4e6b4
Merge exec/e1e4-on-whir2 @ 8d2897d93: lean walk (D-EXEC E1) + paged e…
MauroToscano Oct 2, 2026
00cae6d
prover: the CPU op at 96 bytes: arg2, the branch decision and the ECA…
MauroToscano Oct 2, 2026
1fb5c06
prover: MEMW_A ops kept as 48-byte aligned rows (D-EXEC E1 v2)
MauroToscano Oct 2, 2026
383f804
prover: the hash-ordered tables hash with one state per process
MauroToscano Oct 2, 2026
48c6543
test(prover): the KECCAK_RND streaming test compares its chunks with …
MauroToscano Oct 2, 2026
473aa08
test(prover): the base real-block WHIR test prints a digest of the pr…
MauroToscano Oct 2, 2026
d9d0ac5
block whir: each group's tables argued together by default
MauroToscano Oct 2, 2026
773f134
Merge exec/e1v2ab-whir @ 1fb5c06c0: smaller per-step records (D-EXEC …
MauroToscano Oct 2, 2026
a0a6b10
math-cuda: pack and widen a table's run of a resident store, column-m…
MauroToscano Oct 3, 2026
1ea2a7e
multilinear: a table's columns can be held narrow; readers ask for th…
MauroToscano Oct 3, 2026
7649a85
block whir: each group's columns held narrow between the phases, pack…
MauroToscano Oct 3, 2026
4bba7a6
test(prover): narrow storage moves no proof byte, and a wrong width m…
MauroToscano Oct 3, 2026
e06dce5
Merge noepoch/whir @ 773f13410 (E1 v2) into m4/narrow
MauroToscano Oct 3, 2026
0894cab
block whir: cut KECCAK at 2^18 rows and ECSM at 2^17, and cap their h…
MauroToscano Oct 3, 2026
3cfffe2
test(prover): pin each chunked cap to the tallest table one stacked p…
MauroToscano Oct 3, 2026
57a7cf7
prover, executor, math-cuda: the builder's, executor's and pinned buf…
MauroToscano Oct 3, 2026
8b05e41
block whir: a memory log of the streamed prove, term by term (LAMBDA_…
MauroToscano Oct 3, 2026
8a00e0e
test(prover): the memory log's terms close on the worker layout path too
MauroToscano Oct 3, 2026
31479de
block whir: phase B's ledger per group, for sizing an overlap of groups
MauroToscano Oct 3, 2026
01da99f
block whir: phase A uploads the next group beside the current group's…
MauroToscano Oct 3, 2026
23ee996
test(prover): the real-block tree test names each group's tables
MauroToscano Oct 3, 2026
0498480
block whir: lay the streamed chunks out on three workers by default
MauroToscano Oct 3, 2026
428c13f
Merge m4b/memlog @ 8a00e0ed9 (the WHIR block memory log) into #1014 @…
MauroToscano Oct 3, 2026
59e9890
block whir: the paid upload never exceeds the upload
MauroToscano Oct 3, 2026
6c05dfe
block whir: the rest laid out in waves, and KECCAK_RND built as its t…
MauroToscano Oct 3, 2026
9d69a52
test(block): the layout-workers knob's comments name today's default
MauroToscano Oct 3, 2026
02a332a
block whir: the finish packs its tables as it builds them, phase A ta…
MauroToscano Oct 3, 2026
13702eb
trace builder: packed KECCAK_RND chunks built four at a time
MauroToscano Oct 3, 2026
4429a32
Merge #1014 @ 59e98906e (three layout workers by default, the paid-up…
MauroToscano Oct 3, 2026
11d3e43
block whir: b1 on the worker layout path — the rest packed as its wav…
MauroToscano Oct 3, 2026
3b42c9c
prof: phase B's openings by host stage, and the kept-top paths' gathe…
MauroToscano Oct 3, 2026
733557a
perf(multilinear): re-hash a revived commitment's queried blocks in p…
MauroToscano Oct 3, 2026
db2d04c
Merge m4b/b1 @ 11d3e43ad (b1 rebased on #1014 59e98906e, the rest sin…
MauroToscano Oct 3, 2026
0bcc1fc
block whir: b1 lands without the rest sink (waves + KECCAK_RND tables…
MauroToscano Oct 3, 2026
ce0b286
Merge m4b/b1 @ 0bcc1fce6 (b1 lands without the rest sink) into m4b/b2
MauroToscano Oct 3, 2026
82f9046
prof(multilinear): a knob that re-hashes the kept-top blocks serially
MauroToscano Oct 3, 2026
d6095ca
test(lfm): W3 prints the whole block without its harness readouts, an…
MauroToscano Oct 3, 2026
d169edd
perf(lfm): the block tree's leaves execute while their artifacts are …
MauroToscano Oct 3, 2026
924e662
Merge #1014 @ 82f904663 (the revived commitment's queried blocks re-h…
MauroToscano Oct 3, 2026
bbf1752
Merge m4b/b1 @ 924e66256 (#1014 82f904663 merged into the landing W) …
MauroToscano Oct 3, 2026
70eee3e
Merge #1014 @ d169eddb3 (R2-i: the W3 harness's lfm prove split) into…
MauroToscano Oct 3, 2026
0cebe16
Merge m4b/b1 (#1014 d169eddb3 merged into the landing W) into m4b/b2
MauroToscano Oct 3, 2026
a849d0e
feat(block): phase B hands each group's share of the proof to an obse…
MauroToscano Oct 3, 2026
fc2f6a4
refactor(lfm): a block leaf's arena from its groups' words
MauroToscano Oct 3, 2026
a44aefd
perf(lfm): the block tree's first finished leaf executes during phase B
MauroToscano Oct 3, 2026
c5d9cec
style(lfm): rustfmt the hand-over test
MauroToscano Oct 3, 2026
fac261f
Merge #1014 @ 70eee3ee3 (the rest laid out in waves, KECCAK_RND built…
MauroToscano Oct 3, 2026
365e3ab
Merge #1014's R2-ii (fac261fe1: phase B hands each group's share of t…
MauroToscano Oct 3, 2026
351a773
test(lfm): W3 prints what the device declined and the card's peaks as…
MauroToscano Oct 3, 2026
9a18ab5
fix(block): the prover refuses a partition over the group maximum as …
MauroToscano Oct 3, 2026
f0a3947
multilinear: a table's packed columns can be out in a spill store
MauroToscano Oct 3, 2026
ee252c1
stark: import #1013's packed-trace store (narrow.rs, spill.rs) at its…
MauroToscano Oct 3, 2026
8cb3458
block: spill the held groups to disk while they wait for phase B (def…
MauroToscano Oct 3, 2026
9a0e22e
block: a group holding a table still spilled is refused before it is …
MauroToscano Oct 3, 2026
33e57ef
stark: re-sync spill.rs to #1013's head edddc6873
MauroToscano Oct 3, 2026
e982d2d
block: the spill policy is auto by default, as on #1013, with #1014's…
MauroToscano Oct 3, 2026
69d9b98
block: auto's target and host read cgroup v1 too, re-copied from #101…
MauroToscano Oct 3, 2026
0db2244
prof(lfm): the W3 tree's per-program times and prove splits (W3_NODE_…
MauroToscano Oct 3, 2026
21aa346
perf(lfm): the W3 tree builds its nodes on a pool of their own, each …
MauroToscano Oct 3, 2026
740c945
test(lfm): the W3 node builder is a generic level builder, tested out…
MauroToscano Oct 3, 2026
fe3dd12
test(lfm): the card permit re-entered on a rayon worker that waits wh…
MauroToscano Oct 3, 2026
54aae28
fix(lfm): the card is never taken on a rayon worker; the W3 tree take…
MauroToscano Oct 3, 2026
d107a91
perf(lfm): the W3 tree proves each node as soon as its own children a…
MauroToscano Oct 3, 2026
e5aa1c0
block: auto counts the cgroup's working set, not its page cache (#101…
MauroToscano Oct 3, 2026
c496b6d
stark: spill.rs re-synced to #1013's landed head 035aef5d6
MauroToscano Oct 3, 2026
3d99c64
Merge #1014's head 54aae2859 (the W3 tree takes the card from plain t…
MauroToscano Oct 3, 2026
378d3d8
feat(lfm): a streamed execution runs each arena group's share as the …
MauroToscano Oct 4, 2026
6cb70e7
perf(lfm): the W3 tree's top node executes each child's share as that…
MauroToscano Oct 4, 2026
0d61081
Merge #1014's head d107a9106 (W3 dataflow levels) into m4b/spill2
MauroToscano Oct 4, 2026
6f16b1e
Merge #1014's head 0d61081db (the spill landing) into nw2/stream
MauroToscano Oct 4, 2026
846f53e
prover: phase 4 cuts its per-op BITWISE sources into slices
MauroToscano Oct 2, 2026
acfd54a
trace builder: LAMBDA_VM_P4_SLICED=0 keeps phase 4's whole-source col…
MauroToscano Oct 4, 2026
dc68f39
perf(lfm): the W3 top streams only while a child is still unproved
MauroToscano Oct 4, 2026
c55dec4
Merge #1014's head acfd54a5e (phase 4's sliced BITWISE sources) into …
MauroToscano Oct 5, 2026
13cdd05
perf(lfm): a W3 node executes from its program; only its prove waits …
MauroToscano Oct 5, 2026
0b83749
fix(lfm): the W3 builder publishes each node program on the pool as i…
MauroToscano Oct 5, 2026
806c211
fix(lfm): a filled trace set proved against another hasher's artifact…
MauroToscano Oct 5, 2026
3eead06
zf-format: LAMBDA_VM_ZF_WHIR_GRIND_BITS=20|18, the WHIR grind's bits …
MauroToscano Sep 30, 2026
c9eaef8
test(lfm): an ignored census of one chain verifier per height at 20 a…
MauroToscano Sep 30, 2026
6a93c4b
test(block): the grind bits are the block's verifier constant, on the…
MauroToscano Oct 5, 2026
33c5747
fix(lfm): the hasher agreement and the public words' capacity are ref…
MauroToscano Oct 5, 2026
7863ab5
Merge #1014's head 806c211e5 ((b') W3 node pipeline) into grind2/1014…
MauroToscano Oct 5, 2026
cbfa7d7
zf: production WHIR grind bits 20 -> 18 on the block (queries 112 -> …
MauroToscano Oct 2, 2026
ffc12ba
Merge #1014's head cbfa7d772 (grind 18) into the assert follow-up
MauroToscano Oct 5, 2026
3688a99
lfm: the proof readers the tree arenas are filled from move out of th…
MauroToscano Oct 5, 2026
e948ce7
lfm: the W3 driver leaves the harness, so the CLI can run it
MauroToscano Oct 5, 2026
289ce0f
lfm: a W3 block proof file, and its verifier over the existing block …
MauroToscano Oct 5, 2026
0d94022
cli: prove-block and verify-block, through the shared W3 driver
MauroToscano Oct 5, 2026
ee9f04c
test(lfm): the dataflow toy decides its overlap by signals, not times…
MauroToscano Oct 5, 2026
19a8fd7
stark: write a packed main trace a cell at a time (NarrowWriter)
MauroToscano Oct 5, 2026
351af6b
prover: G-pack on the WHIR block, generators write packed traces dire…
MauroToscano Oct 5, 2026
252a14c
bench_vs/recursion: record libc in the RV64 guest workspace's lockfile
MauroToscano Oct 5, 2026
93b2847
block: phase A's commit pairs off the global rayon pool, behind a kno…
MauroToscano Oct 5, 2026
5106eb1
trace builder: KECCAK_RND chunks written packed go in wider waves, be…
MauroToscano Oct 5, 2026
b529fff
block: phase A's finish levers on by default (KECCAK_RND packed wave …
MauroToscano Oct 6, 2026
5e580f3
lfm: opt-in 2-bit windows for the lean WHIR fold's point (LFM_WHIR_PO…
MauroToscano Oct 6, 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
  •  
  •  
  •  
44 changes: 43 additions & 1 deletion .github/workflows/pr_main.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -198,10 +198,47 @@ 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

- name: Column-major LDE engine host-KAT (NTT passes, coset LDE)
run: make test-ntt-cm-host-kat

- name: WHIR host-KAT (fused round fold, lean first rounds)
run: make test-whir-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 @@ -211,12 +248,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 @@ -234,6 +273,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
70 changes: 68 additions & 2 deletions Cargo.lock

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

1 change: 1 addition & 0 deletions Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ members = [
"crypto/ecsm",
"crypto/math",
"crypto/math-cuda",
"crypto/multilinear",
"bin/cli",
]
# Riscv-only bare-metal crate, path-dependent from crypto/crypto (target-gated),
Expand Down
Loading
Loading