WHIR recursion on GPU (RPX) with ZisK-style proof formats: block 25368371 in 107.5 s - #1004
Draft
MauroToscano wants to merge 1005 commits into
Draft
MauroToscano wants to merge 1005 commits into
MauroToscano wants to merge 1005 commits into
Conversation
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
The number
Block 25368371 on the FAST box (Ryzen 9 9950X, RTX 5090 32 GB), RPX commitments, 15 epochs at 2^21. ABBA on one binary: the new default against the legacy format, two arms each, alternated.
That is −20.55 s (−16.1 %). A no-knob run on the final code read 107.0 s, with a permutation census and program ids identical to the arms above. For reference, the STARK pipeline measured 159.35 s before these levers and 129.55 s with them, in the same kind of ABBA.
What is in the branch
ZfFormat(prover/src/zf_format.rs) parses fiveLAMBDA_VM_ZF_*knobs once and prints oneZF FORMAT:banner. The default iscap=auto whir_cap=auto fri=dp one_row=0 whir_folds=first6:LAMBDA_VM_ZF_ONE_ROW=auto) are built on host, GPU and in-guest, but off here: they cost +3.2 s on this pipeline. They are on in the STARK pipeline's PR (Per-table GPU recursion (RPX) with ZisK-style proof formats: block 25368371 in 121.7 s #985), where they save 8 s.ZfFormat::LEGACYstays pinned by a golden test. The RV64 recursion guest verifies only the legacy format.main: perf(alloc): compile jemalloc's never-purge policy into the binary #996 (jemalloc never-purge compiled into the CLI).Soundness of the format levers
Query counts, grinding bits and blowup are unchanged.
Fixed along the way
Gate and CI
The final gate ran at
d8ffc0702, whose prover library is identical to this branch's;main's merge adds only CLI and test files. It ran on the FAST box:--test-threads=3.In CI, one prover shard's hosted runner receives a shutdown signal and SIGKILLs
epoch_chunk_multiplier; this branch failed the same way before the format levers. That test passes on the box.Open decisions
one_rowdefault. A per-pipeline default would let one PR carry both.