Repository navigation
Conversation
(cherry picked from commit 35436e1a689010bc9cc8ac566648916c0ef5b7ca)
The dispatch sent an MSM to the vector path from 8,192 points in a multi-thread rayon pool and from 128 in a one-thread pool. It now uses 8,192 everywhere, so which path runs depends on the input size and the CPU alone. On a host with AVX-512 IFMA, a one-thread pool therefore takes the scalar Pippenger for 128 to 8,191 points; the single-thread cutoff has not been measured here yet and can be revisited with numbers. Co-Authored-By: Claude Fable 5.2 <noreply@anthropic.com>
…st non-empty bucket The reduction walked every bucket of the store, 2^c - 1 per group of windows, with two full additions each. A signed digit's magnitude is at most 2^(c-1), so the upper half of the buckets is never written and the walk added the identity to the identity there. Track the highest non-empty bucket per group while the runs are scheduled and start the walk at it. Not measured: it needs a host with AVX-512 IFMA (bench_lane_msm). lane_msm_matches_ark_msm covers the result on such a host. Co-Authored-By: Claude Fable 5.2 <noreply@anthropic.com>
Mutation testing - PASSNothing to test: no viable mutants were generated. |
Mutation testing - PASSNothing to test: no viable mutants were generated. |
Codecov Report❌ Patch coverage is
🚀 New features to boost your workflow:
|
Performance Benchmark ComparisonCompared Detailed Comparison
|
This branch has not been deployed
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.
Summary
Ports PR #3 of
suryuhh/salt-optimizations(commit35436e1): the variable-base MSM of proof verification, eight-wide on AVX-512 IFMA.multi_scalar_mulruns a Pippenger whose bucket accumulation and reduction use vector lanes when the host has AVX-512 IFMA and the MSM has at least 8,192 points. Smaller MSMs and other hosts keep the scalar path, so only large witnesses change.Stacked on the batch-decode PR (
liquan/perf/batch-witness-decode). Nothing undersalt/srcchanges.Changes on top of the external commit
2^c - 1buckets per group of windows with two full additions each. A signed digit's magnitude is at most2^(c-1), so the upper half is never written and the walk added the identity to the identity there. Not measured.Testing
Passing on this head, on an Apple Silicon machine:
cargo fmt --all -- --check;cargo clippy --all-targets -- -D warnings, native and--target x86_64-unknown-linux-gnucargo test; withtest-bucket-resize(CI's settings); the random stress test;--no-default-featureswith and withouttest-bucket-resizecargo check -p salt --target riscv64imac-unknown-none-elf --no-default-featurescargo check --all-targets --target i686-unknown-linux-gnusalt/srcchange.Not run:
x86_64.lane_msm_matches_ark_msmchecks the result against arkworks for every window size and runs in theTest Suite (AVX-512 IFMA)job.bench_lane_msm(ignored test) gives ns per point on a host with IFMA.Merging
Please keep this trailer in the squash message:
🤖 Generated with Claude Code