Repository navigation
perf: runtime 0.3.1 keeps bucket points and the quotient's FFTs in SIMD lane form - #24
Merged
Merged
Conversation
Built from mopro d352504: a window's bucket points stored as 29-bit limbs between layers, the quotient's transforms on quads from conversion to conversion, and an Fx-style hasher for interning solver prefixes.
Proof timing: chromeAfter: this pull request at Medians of one browser, by shape (notes → outputs). Runner numbers are for comparing commits, not for how fast a device is.
|
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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.
Runtime 0.3.1 for the browser prover: MSM bucket points and the quotient's FFTs stay in SIMD lane form, and the solver plan builds faster; follows #23.
sergei/kernel-solver-hints,d352504): a window's bucket points are stored as 29-bit limbs between layers and load into lanes with a lane load per limb; transforms run on quads (four consecutive elements in lane form) from conversion to conversion, the layers one and two apart through lane shuffles; aLanes<F>type generic over Fq and Fr; an Fx-style hasher for interning solver prefixes.runtime.lock.json,scripts/build-runtime-release.sh, READMEs, CHANGELOG: runtime 0.3.1 from the pinned mopro revision; releaseruntime-v0.3.1is published.Measured here at four threads, warm proofs against 0.3.0: 8→2 1.22→0.97 s, 24→2 3.54→2.73 s; key load for 8→2 0.57→0.48 s. A parallel witness solver was measured and dropped: these circuits have about 8,000 levels, most under 64 constraints wide, so per-level parallelism would cost more than the 45 ms of sums it could save. The bench comment of this PR compares with the 0.3.0 comment on #23.