Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
1134 commits
Select commit Hold shift + click to select a range
ccf0551
test(math-cuda): the process-wide counters become an accounting identity
MauroToscano Sep 19, 2026
90a38ec
fix(test): the host KAT punned its result type, and LP64 made it matter
MauroToscano Sep 20, 2026
febb533
test(math-cuda): sample the group guard at one pool state, not two
MauroToscano Sep 20, 2026
354bc69
test(math-cuda): print the group guard's ledger on the honest path too
MauroToscano Sep 20, 2026
bc6ce9e
feat(math-cuda): count argue-surface device fallbacks (sumcheck/gkr/c…
MauroToscano Sep 20, 2026
d508faf
feat(prover): print commit + device fallbacks at the WHIR tree's whol…
MauroToscano Sep 20, 2026
9cd62d7
feat(math-cuda): live-retained-bytes footprint + be.reserved high-wat…
MauroToscano Sep 20, 2026
faf8123
feat(math-cuda): evictable leaf-layer retention — argue reclaims spar…
MauroToscano Sep 20, 2026
27be22c
test(math-cuda): grind poll k-sweep — a staggered poll_period on the …
MauroToscano Sep 20, 2026
8348542
test(math-cuda): round-3 occupancy discriminator — a -maxrregcount re…
MauroToscano Sep 20, 2026
d27fbce
test(math-cuda): round-3 argue discriminator — per-surface reserved-b…
MauroToscano Sep 20, 2026
bdd89b4
test(math-cuda): block-scale sumcheck ncu micro-bench for the round-3…
MauroToscano Sep 20, 2026
ef77f69
test(math-cuda): argue device-busy sizing timer (round-3 idle-fractio…
MauroToscano Sep 20, 2026
7f319cc
feat(whir): env-gated depth-1 fraction-tree prefetch (LFM_WHIR_PREFETCH)
MauroToscano Sep 21, 2026
34b180d
test(lfm): tree-phase device-occupancy probe (round-3 tree/wrap discr…
MauroToscano Sep 21, 2026
fbf2624
test(lfm): strip the tree probe to what the free read did not already…
MauroToscano Sep 21, 2026
8cedf2e
fix(lfm,tests): the pins the main-sync port left behind, each against…
MauroToscano Sep 21, 2026
788f36a
test(prover): the multilinear table-set gates name the tables they ar…
MauroToscano Sep 21, 2026
865c689
style(tests): rustfmt the accelerator-list chain
MauroToscano Sep 21, 2026
26d7e44
feat(lfm): the WHIR driver accepts LFM_TREE_TOP_OVERLAP (the global c…
MauroToscano Sep 21, 2026
413b3a3
test(prover): the table-set gates pin the SET, and one of them pins a…
MauroToscano Sep 21, 2026
d9611cd
fix(lint): needless_range_loop in rpx_grind_counted's cross-k identic…
MauroToscano Sep 21, 2026
3218346
fix(tests): three more the main-sync port left, and a precompile test…
MauroToscano Sep 21, 2026
c8c7c03
test(lfm): the tenant socket census measures before it asserts, and n…
MauroToscano Sep 21, 2026
05f0500
fix(lfm): the tenant socket assertion tied a counterfactual to the li…
MauroToscano Sep 21, 2026
b420ee9
fix(test): the host KAT punned its result type, and LP64 made it matter
MauroToscano Sep 20, 2026
4faa158
Merge whir/lfm-pins-rebless: the eleven pins the main-sync port left …
MauroToscano Sep 22, 2026
228db09
Merge whir/lfm-o5-retention: round 2, evictable leaf-layer retention …
MauroToscano Sep 22, 2026
755174f
Merge whir/lfm-o7-tree: round 3's TOP_OVERLAP lever and the round-3 i…
MauroToscano Sep 22, 2026
f80c590
perf(lfm): the WHIR tree's defaults are the measured configuration
MauroToscano Sep 22, 2026
5d0b0a4
Merge whir/recursion-rpx-defaults: the WHIR tree's defaults are the m…
MauroToscano Sep 22, 2026
ab7208f
feat(crypto): Merkle cap primitive and the cap-height policy
MauroToscano Sep 24, 2026
f82e42b
fix(stark): require exact authentication-path lengths in the verifier
MauroToscano Sep 24, 2026
77ea1ab
feat(prover): ZfFormat, the one proof-format config, and its option f…
MauroToscano Sep 24, 2026
72304a5
feat(stark/fri): the verifier-side FRI fold-schedule DP and a schedul…
MauroToscano Sep 24, 2026
db7c054
feat(multilinear): the WHIR first-fold schedule (W2), its Q rule and …
MauroToscano Sep 24, 2026
dc2d872
fix(crypto): the cap review fixes on the primitive (REVIEW-CAP S5, M1)
MauroToscano Sep 24, 2026
177ec2c
feat(prover): the statement binds the WHIR fold schedule; reused comm…
MauroToscano Sep 24, 2026
92ba48e
feat(prover): LAMBDA_VM_ZF_WHIR_FOLDS reaches the WHIR base config
MauroToscano Sep 24, 2026
50ec501
feat(stark/fri): cost-law schedule objective, options-driven FRI layo…
MauroToscano Sep 24, 2026
321e486
test(math-cuda): device commit and fold parity at k = 6
MauroToscano Sep 24, 2026
299f379
feat(multilinear): the Merkle cap on WHIR chains, host prover and ver…
MauroToscano Sep 24, 2026
93447d9
test(lfm): the in-guest WHIR verifier at first folds of 5 and 6
MauroToscano Sep 24, 2026
4d67789
feat(stark): Merkle caps on the host path (C3, design/CAP.md section 4)
MauroToscano Sep 24, 2026
f7dee29
test(math-cuda,multilinear): device parity for the WHIR Merkle cap (W…
MauroToscano Sep 24, 2026
2d1c562
feat(multilinear): WHIR_FOLDS_IMPLEMENTED = true
MauroToscano Sep 24, 2026
88db27b
test(stark,prover): default-format golden proofs (H0)
MauroToscano Sep 24, 2026
ac73346
test(prover): the fold lever's selectability as a const assertion (cl…
MauroToscano Sep 24, 2026
1293f5a
feat(stark,math-cuda): Merkle caps off device-resident trees (C4)
MauroToscano Sep 24, 2026
e6ea359
test(prover): a real VM proof under the process cap policy
MauroToscano Sep 24, 2026
713e18b
feat(lfm): the WHIR Merkle cap in the in-guest chain verifier and its…
MauroToscano Sep 24, 2026
d281c3b
feat(multilinear): W1 is implemented; LAMBDA_VM_ZF_WHIR_CAP is select…
MauroToscano Sep 24, 2026
5a61661
feat(stark/fri): S3 group-leaf FRI layers on the CPU prover and host …
MauroToscano Sep 24, 2026
1696bbb
test(stark,prover): the S3 test vectors, and a VM proof at fri = dp (H3)
MauroToscano Sep 24, 2026
b04e895
feat(stark): FRI_MODE_IMPLEMENTED = true (S3 on the host CPU path)
MauroToscano Sep 24, 2026
6092c77
test(prover): the production format sites prove at the process format
MauroToscano Sep 24, 2026
59cd50a
Merge zf/cap-stark wave A @ 77ea1ab89: the Merkle cap primitive, exac…
MauroToscano Sep 24, 2026
c08491e
Merge I-CAP-S wave B @ e6ea35953 into the candidate (R1, C3, C4, T)
MauroToscano Sep 24, 2026
49546d6
Merge I-CAP-W @ d281c3b86 into the candidate (C6, C7, C8, W1 flag)
MauroToscano Sep 24, 2026
6d0dade
Merge I-WHIR-F @ ac73346b4 into the candidate (W2: first5 / first6)
MauroToscano Sep 24, 2026
f985944
Merge I-FRI-H @ 6092c77dd into the candidate (H1, H1b, H0, H2, H3)
MauroToscano Sep 24, 2026
1a93632
feat(stark): Merkle caps on group-leaf FRI layers (cap x fri=dp)
MauroToscano Sep 24, 2026
3a9512c
test(stark,prover): S3 proof vectors with a Merkle cap at Q = 20 (F9)
MauroToscano Sep 24, 2026
dc64ae3
fix(stark): drop the group-path verifier's now-unused proof parameter
MauroToscano Sep 24, 2026
942201d
feat(math-cuda): S3 group-leaf FRI layers on the device
MauroToscano Sep 24, 2026
67890ae
feat(stark): the device FRI arms run the S3 group encoding
MauroToscano Sep 24, 2026
d9d6769
test(prover): S3 device parity under RPX and a VM dp proof on the device
MauroToscano Sep 24, 2026
f004a5a
feat(stark): S2 one-row openings with a committed FRI input on the CP…
MauroToscano Sep 24, 2026
c8ffb4b
refactor(prover): one in-guest Merkle cap gadget for the WHIR and STA…
MauroToscano Sep 24, 2026
87176ab
feat(prover): Merkle caps in the in-guest STARK verifier (C5)
MauroToscano Sep 24, 2026
4510844
feat(prover): S3 group-leaf FRI layers in the in-guest verifier (G1, G2)
MauroToscano Sep 24, 2026
59639d3
docs(stark): the Merkle cap and fri=dp are in the in-guest verifier
MauroToscano Sep 24, 2026
bbe1f3c
test(prover): a parseable census line from the knob-on assembled veri…
MauroToscano Sep 24, 2026
c63780e
test(stark): key the M3 query-bound mutation by the LDE size
MauroToscano Sep 24, 2026
1adbebe
feat(prover): the preprocessed roots of one-row tables (H5)
MauroToscano Sep 24, 2026
dfc498b
test(stark,prover): the S2 test vectors (H6)
MauroToscano Sep 24, 2026
525bf05
feat(stark): ONE_ROW_IMPLEMENTED = true (S2 on the host CPU paths)
MauroToscano Sep 24, 2026
9f5b8f7
style(stark): clippy manual_is_multiple_of in one_row_tests
MauroToscano Sep 24, 2026
f7a8c59
test(stark): M1 at the input tree — the input-slot check is load-bearing
MauroToscano Sep 24, 2026
25ec130
style(stark): clippy clone_on_copy in the input-slot M1 test
MauroToscano Sep 24, 2026
3992f28
Merge I-GUEST @ bbe1f3caf into the candidate (C5, G1, G2, host cap x …
MauroToscano Sep 24, 2026
45bbfd1
Merge I-FRI-D @ d9d676983 into the candidate (D1: S3 group-leaf FRI o…
MauroToscano Sep 24, 2026
3da7bee
Merge I-S2-H @ 25ec130e2 into the candidate (S2 on the host: H4, H5, H6)
MauroToscano Sep 24, 2026
730257a
style: rustfmt the candidate-c merge resolutions
MauroToscano Sep 24, 2026
23ee332
test(stark,prover): the device (d) vector tests count I-GUEST's cappe…
MauroToscano Sep 24, 2026
8d74043
fix(prover): key the AIR prototype cache on the proof format
MauroToscano Sep 24, 2026
f4d57bd
test(prover): merkle_cap_vm asserts the cap policy engaged
MauroToscano Sep 24, 2026
c9b6b1d
test(stark,prover): device-sized ZF tests prove an AirWithBuses table
MauroToscano Sep 24, 2026
eb6fe2b
test(math-cuda): evict before every cap height in the WHIR eviction test
MauroToscano Sep 24, 2026
737415e
style: rustfmt the I-FIX-B test edits
MauroToscano Sep 24, 2026
8aa8f47
Merge I-FIX-B @ 737415ee7 into candidate-d (candidate-c + the candida…
MauroToscano Sep 24, 2026
21b1b77
style: rustfmt the merged test module list (zf_air_cache_tests before…
MauroToscano Sep 24, 2026
130ddb1
feat(prover): one-row openings (S2) in the in-guest STARK verifier (G3)
MauroToscano Sep 24, 2026
a08a0bc
test(prover): S2 in the in-guest verifier against the host's (e) vect…
MauroToscano Sep 24, 2026
e72d3e6
test(prover): the leaf node prints how many of each wrap's sub-proofs…
MauroToscano Sep 25, 2026
7f4e3d9
feat(math-cuda): one-row (rows_per_leaf = 1) device leaves for S2 trees
MauroToscano Sep 25, 2026
1564fda
feat(stark): S2 on the device (D2) — one-row trees, openings and the …
MauroToscano Sep 25, 2026
381a8d3
test(stark,prover): S2 device parity (D2) — trees, openings, input tr…
MauroToscano Sep 25, 2026
699f087
feat(stark,prover): price every emitted FRI row and the S2 DEEP term …
MauroToscano Sep 25, 2026
3e867c4
test(prover): the one-row VM bytes test creates ZF_S2_PROOF_DIR
MauroToscano Sep 25, 2026
6991df5
Merge I-PRICE @ 699f0876b into candidate-e (RULINGS 22: every emitted…
MauroToscano Sep 25, 2026
963e1e7
Merge I-S2-G @ e72d3e64d into candidate-e (S2 in the in-guest STARK v…
MauroToscano Sep 25, 2026
7765d4d
Merge I-S2-D @ 3e867c463 into candidate-e (S2 on the device, D2)
MauroToscano Sep 25, 2026
5afc759
Merge zf/fix-b @ 737415ee7: wave B (STARK cap host+device, WHIR cap, …
MauroToscano Sep 25, 2026
ff78f04
feat(prover): the measured ZF configuration is the default format (RU…
MauroToscano Sep 25, 2026
cfbff6a
test(prover): the recursion-guest legacy test holds under any process…
MauroToscano Sep 25, 2026
0dd6341
feat(prover): one_row=auto joins the default format, provisionally (R…
MauroToscano Sep 25, 2026
5ed2f15
test(prover): the sh1 recount states the default's rounds without rea…
MauroToscano Sep 25, 2026
6a4a244
fix(prover): the Phase-A replay absorbs each preprocessed root at its…
MauroToscano Sep 25, 2026
91764db
test(prover): one-row Phase-A replay regressions (LFM wrap options at…
MauroToscano Sep 25, 2026
7c9b577
feat(stark): LogReadOnlyRAP carries a constraint program
MauroToscano Sep 25, 2026
c5b91a0
test(prover): a valid device-comparison oracle: LFM proof bytes, prov…
MauroToscano Sep 25, 2026
03fe727
style(stark): make fmt on the LogReadOnlyRAP program and its tests
MauroToscano Sep 25, 2026
39dea55
test(prover): the LFM bytes oracle asserts a device FRI commit in eve…
MauroToscano Sep 25, 2026
a4ce890
Merge I-FIX-S2 @ 91764db5d into candidate-f (the Phase-A replay absor…
MauroToscano Sep 25, 2026
d6cdfd3
Merge I-FIX-D2 @ 39dea5552 into candidate-f (device-parity fix: LogRe…
MauroToscano Sep 25, 2026
cdf0238
Revert "feat(prover): one_row=auto joins the default format, provisio…
MauroToscano Sep 25, 2026
65df270
test(prover): the LFM bytes oracle proves the default format and all …
MauroToscano Sep 25, 2026
d8ffc07
docs: make the proof-format comments self-contained
MauroToscano Sep 25, 2026
258ef0d
Merge zf/candidate-f-nob @ d8ffc0702: ZisK-style proof-format levers
MauroToscano Sep 25, 2026
169b668
Merge main (#996, jemalloc never-purge compiled in) into the WHIR pip…
MauroToscano Sep 25, 2026
4b18760
gap(hash): K3/K4/K5 RPX device fixes behind LAMBDA_VM_GAP_K3/K4/K5 (d…
MauroToscano Sep 27, 2026
dd98bca
feat(math-cuda): column-major LDE pass kernels with a host known-answ…
MauroToscano Sep 27, 2026
06fd010
feat(math-cuda): GAP K1 column-major LDE engine behind LAMBDA_VM_GAP_K1
MauroToscano Sep 27, 2026
7911c42
gap(hash): a tamper control in the K3 walk parity test
MauroToscano Sep 27, 2026
37c29df
gap(hash): allocate the K4 counters only for the counted twin
MauroToscano Sep 27, 2026
668a89a
feat(math-cuda): the column-major LDE engine is the default device LDE
MauroToscano Sep 27, 2026
4977a99
feat(math-cuda): GAP K1B, the WHIR encoding through the column engine
MauroToscano Sep 27, 2026
57498b5
test(math-cuda): K1B measurement arm for the WHIR encoding
MauroToscano Sep 27, 2026
1b43d48
test(rpx_grind_device): serialise the four tests that share the grind…
MauroToscano Sep 27, 2026
101beb8
fix(math-cuda): split the NTT and Möbius tile grids past CUDA's grid.…
MauroToscano Sep 27, 2026
6fc1fbd
fix(multilinear): log and count a device commit's error before fallin…
MauroToscano Sep 27, 2026
6a547b4
test(math-cuda): control for the grid split — the unsplit launch is r…
MauroToscano Sep 27, 2026
2c07074
test(math-cuda): the stack-27 WHIR commit against the host pipeline
MauroToscano Sep 27, 2026
8f0c2e6
fix(multilinear): log and count a device tree's error over a host cod…
MauroToscano Sep 27, 2026
6ca1841
test(math-cuda): read the K4 queue grid on a thread that did not crea…
MauroToscano Sep 27, 2026
ceebcde
fix(math-cuda): bind the context before the K4 occupancy query, cache…
MauroToscano Sep 27, 2026
a864395
feat(math-cuda): the WHIR commit's encoding takes the column engine b…
MauroToscano Sep 27, 2026
da2da9d
test(math-cuda): the WHIR encoding follows LAMBDA_VM_LDE_LEGACY
MauroToscano Sep 27, 2026
be03cb7
perf(whir): fold a round in one launch, open its first rounds over th…
MauroToscano Sep 27, 2026
a46fe93
test(math-cuda): measure the WHIR working sets in a binary of their own
MauroToscano Sep 27, 2026
43a32c7
whir: count an opening whose factors fall to the host over a device c…
MauroToscano Sep 27, 2026
798fd25
whir: give a group's room back across the argument, take it again to …
MauroToscano Sep 27, 2026
6098073
whir: size a group's room to the turn it covers, from the kernels tha…
MauroToscano Sep 27, 2026
3f1997b
whir: a dropped leaf layer gives its bytes back to the room it grew
MauroToscano Sep 27, 2026
cf5e673
whir: the device ledger's peak per phase of each prove, beside the split
MauroToscano Sep 27, 2026
7e3eac5
whir: say in the production log which kernels and rooms the run took
MauroToscano Sep 27, 2026
f81f0a8
test(lfm): print each census panel in one write, so concurrent panels…
MauroToscano Sep 27, 2026
875d08c
feat(lfm): LAMBDA_VM_GAP_R1 drops BITWISE from programs that send it …
MauroToscano Sep 27, 2026
fb846ae
feat(lfm): LAMBDA_VM_GAP_R2 splits LFM_HASH into two power-of-two ins…
MauroToscano Sep 27, 2026
44ca38a
test(lfm): assert the full chip mask keeps BITWISE at compile time
MauroToscano Sep 27, 2026
9325eee
Merge gap-fix/ntt (da2da9d93) into candidate C1: the WHIR encoding th…
MauroToscano Sep 27, 2026
fecb826
Merge gap-fix/wbatch-int (7e3eac501) into candidate C1: the WHIR memo…
MauroToscano Sep 27, 2026
6705994
Merge gap-fix/harness (f81f0a80f) into candidate C1: each census pane…
MauroToscano Sep 27, 2026
0110128
test(lfm): the census panel prints a split LFM_HASH as one line
MauroToscano Sep 27, 2026
c8b007b
docs(lfm): say where LfmAirs::for_artifacts is used
MauroToscano Sep 27, 2026
e0c0673
feat(lfm): LAMBDA_VM_GAP_R4 emits the WHIR coset fold in three rows a…
MauroToscano Sep 27, 2026
1500556
test(lfm): name the BITWISE-mask and LFM_HASH-split tests after their…
MauroToscano Sep 27, 2026
ebd622d
feat(lfm): recursion programs drop BITWISE where no chip sends it a l…
MauroToscano Sep 27, 2026
9dcfda1
feat(lfm): the WHIR coset fold is emitted lean by default
MauroToscano Sep 27, 2026
046e9b5
feat(lfm): the LFM_HASH split is a named per-pipeline policy, off here
MauroToscano Sep 27, 2026
2db726c
fix(lfm): write each shape setting's banner to stderr in one write
MauroToscano Sep 27, 2026
c679a77
test(lfm): the BITWISE opt-out reproduces the legacy registry digests
MauroToscano Sep 27, 2026
0b5e3f1
Merge gap-fix/rec-int (c679a771b) into candidate C1: recursion progra…
MauroToscano Sep 27, 2026
008f24d
feat(whir): the stack cap is a format lever, LAMBDA_VM_ZF_WHIR_STACK,…
MauroToscano Sep 27, 2026
1a4fe6b
test(whir): a prepared commitment refuses a reuse under another stack…
MauroToscano Sep 27, 2026
b9ef9b6
feat(whir): the WHIR stack cap is 27 by default; LAMBDA_VM_ZF_WHIR_ST…
MauroToscano Sep 27, 2026
8c2450f
test(whir): the legacy-format instruction names the stack knob too
MauroToscano Sep 27, 2026
ec17c82
Merge gap-fix/stack-int (8c2450ff6) into candidate C2: the WHIR stack…
MauroToscano Sep 27, 2026
c8d4656
feat(continuation): prepare each base epoch and the global proof ahea…
MauroToscano Sep 27, 2026
d3c76d2
feat(lfm): level 0 takes the base's DECODE derivations instead of der…
MauroToscano Sep 27, 2026
7d41668
Merge gap-fix/idle-a-int (d3c76d2ed) into candidate C2: base prep ahe…
MauroToscano Sep 27, 2026
78defa5
feat(math-cuda): stage each row-major commit transfer through a pinne…
MauroToscano Sep 27, 2026
6a0e34a
feat(lfm): build level 0's first wrap prologues in the base's tail
MauroToscano Sep 27, 2026
bdb2d37
test(math-cuda, lfm): read the staging and lead-in settings as the ga…
MauroToscano Sep 27, 2026
0cc75f0
Merge gap-fix/idle-b-int (bdb2d37b6) into candidate C3: per-transfer …
MauroToscano Sep 27, 2026
c52e0c4
Merge gap-fix/hash (ceebcde1a) into gap-fix/hash-int: the RPX device …
MauroToscano Sep 27, 2026
3569364
feat(math-cuda): the half-warp Merkle tops, the queue grind and the l…
MauroToscano Sep 27, 2026
1769272
fix(stark): the prove split counts RPX device grinds
MauroToscano Sep 27, 2026
e041e9f
test(math-cuda): label the RPX host KAT lines by the paths they compare
MauroToscano Sep 28, 2026
41549eb
Merge gap-fix/hash-int (e041e9fb0) into candidate C3: RPX Merkle tops…
MauroToscano Sep 28, 2026
d1dc455
math-cuda, stark: invert the DEEP/OOD denominators row-wise by default
MauroToscano Sep 28, 2026
0428c39
stark: prove the residency-mode tests without grinding
MauroToscano Sep 28, 2026
9cea599
whir: carry only the nonces a round spends, under a NonceLayout forma…
MauroToscano Sep 28, 2026
ce292de
zf: WHIR chains grind before their queries only by default (P2)
MauroToscano Sep 28, 2026
b4506b7
zf, whir: say why P2 costs no proven bits, not what it once measured
MauroToscano Sep 28, 2026
81fb7cd
math-cuda: evaluate a table of one variable in the batched column fold
MauroToscano Sep 29, 2026
cfd93f1
multilinear: value a resident short table's columns on the card (LAMB…
MauroToscano Sep 29, 2026
93a2b56
stark: the whole argument proves the same bytes with its columns on t…
MauroToscano Sep 29, 2026
9f45db4
stark: bind a preprocessed prefix by the AIR's count, not the verifie…
MauroToscano Sep 29, 2026
c7c05ea
lfm: the W-LFM proof — an LFM program proved by the stacked-WHIR prover
MauroToscano Sep 29, 2026
677f241
lfm: the W-leg — a node's in-guest verifier of a W-LFM child
MauroToscano Sep 29, 2026
6f87a95
multilinear: pin that a shift table is the eq table rotated
MauroToscano Sep 29, 2026
ad919c4
multilinear, stark: a group stack may leave each table's settled pref…
MauroToscano Sep 29, 2026
6e3de87
lfm: W-LFM policy B — the preprocessed prefix in the prepared stack only
MauroToscano Sep 29, 2026
0e79976
multilinear, lfm: a W-LFM prove records its WHIR PROVE SPLIT line
MauroToscano Sep 29, 2026
6bd138f
lfm: D-WHIR W1 — one wrap and one node proved both ways (box-tier test)
MauroToscano Sep 29, 2026
ee20f36
lfm: W1 keeps only the verifier's half of each W-LFM build
MauroToscano Sep 29, 2026
f22af2f
lfm: W1 prints a GAPB CHAIN line per W-LFM chain
MauroToscano Sep 29, 2026
db8fe37
math-cuda: build the argument's challenge tables where they are folded
MauroToscano Sep 29, 2026
8c925a4
multilinear, stark: build the argue's challenge tables on the card (L…
MauroToscano Sep 29, 2026
1aaf960
math-cuda: read a sumcheck session's end back in one gathered copy
MauroToscano Sep 29, 2026
2b334e7
multilinear, stark: read the argue's session ends in one copy (LAMBDA…
MauroToscano Sep 29, 2026
1d559d1
lfm: the W-LFM block root, the root-prover knob, the build under the …
MauroToscano Sep 29, 2026
2484535
lfm: the WHIR production tree proves under either LFM prover (D-WHIR W2)
MauroToscano Sep 29, 2026
7acf108
lfm: the W-LFM block-artifact root prints its proof's size
MauroToscano Sep 29, 2026
e0f6acb
multilinear: split a device GKR layer's host work (LAMBDA_VM_BASE_SPLIT)
MauroToscano Sep 29, 2026
c7228f3
Merge I-GFS stage A1: a resident short table's columns valued on the …
MauroToscano Sep 29, 2026
8930490
multilinear: value resident short tables' columns on the card by default
MauroToscano Sep 29, 2026
c87e781
lfm: the WHIR wrap program is its epoch leg plus its publishes
MauroToscano Sep 29, 2026
2475cd7
lfm: the wide level-1 node verifies its epochs in one program (D-WHIR…
MauroToscano Sep 29, 2026
fedec5a
lfm: LAMBDA_VM_LFM_WIDE=off|on selects wide level-1 nodes
MauroToscano Sep 29, 2026
34c1760
stark: pin the reduce as what refuses both card-table faults at CPU
MauroToscano Sep 29, 2026
b992824
lfm: the WHIR tree drivers build a wide level 1 under LAMBDA_VM_LFM_W…
MauroToscano Sep 29, 2026
d1cc70e
Merge the argue's corrected card-table negative control (34c17603b)
MauroToscano Sep 29, 2026
4e0ca20
lfm: a wide level-1 node's log lines carry its level-1 node label
MauroToscano Sep 29, 2026
6a69096
lfm: the WHIR fixture tree counts a wide level 1 as level 1
MauroToscano Sep 29, 2026
4150afa
lfm: the wide level 1 builds its prologues in the base's tail
MauroToscano Sep 29, 2026
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
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
69 changes: 67 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