Skip to content

Bump Plonky3 - #77

Merged
arthurpaulino merged 4 commits into
mainfrom
ap/bump-p3
Sep 2, 2026
Merged

Bump Plonky3#77
arthurpaulino merged 4 commits into
mainfrom
ap/bump-p3

Conversation

@arthurpaulino

Copy link
Copy Markdown
Member

Bump the Plonky3 dependency, fix breaking changes and patch the CUDA pipeline accordingly.

Adapt the CUDA PCS to Plonky3's pruned multiproof protocol while preserving the recursive verifier's compact per-query circuit. Add a verified advice re-encoder that expands native pruned authentication frontiers only at the recursion boundary, leaving native proof serialization and verification unchanged.

Bring the CUDA PCS in line with upstream domain semantics by enforcing the minimum committed LDE height, restoring row bit reversal for domain evaluations, and covering Goldilocks log-height 32. Transfer the initial reduced FRI opening into its resident LDE without an extra allocation or device copy.

Replace per-column cudaMemcpy2D submissions during Merkle construction with one coalesced gather kernel and cap staging at 32 MiB. Serialize concurrent quotient scheduling to prevent transient recursive-prover OOMs while retaining parallel GPU kernel execution.

Update the compatibility digest and keep the CPU-only build independent of CUDA. The CUDA smoke suite passes 50 tests and produces byte-identical 17,213-byte CPU/GPU proofs. On the RTX PRO 6000 q50 Vector.extract_append workload, inner plus outer STARK proving is 65.87s on CPU and 8.81s on CUDA (7.48x), with identical proof sizes.
Update the fixed-output hash used by Fenix to match the Rust 1.98 channel manifest selected by rust-toolchain.toml. This restores both the packaged Nix build and the development shell without changing the pinned toolchain or flake inputs.
samuelburnham
samuelburnham previously approved these changes Sep 2, 2026
Comment thread src/types.rs
use crate::cuda::mmcs::CudaCommitMmcs;
let ldes: Option<Vec<_>> = inputs
.par_iter()
.iter()

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is this intentional?

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes. It only affects the cuda accelerated path. It tries to prevent OOMs.

Comment thread src/verifier.rs Outdated
`advice.rs` re-encoded a pruned FRI multiproof into one authentication
path per query, for a recursive verifier that consumed the legacy
per-query transport. That verifier now consumes the native pruned
multiproof directly, so the expansion has no caller: nothing in this
crate references `advice`, and the only downstream user (aiur) imported
just its `AdviceError` type, which it can define locally.

Drop the module and its `pub mod advice;` declaration. The library is
self-consistent without it (lib + tests build clean; 35 tests pass). The
frontier expansion remains recoverable from history if a fallback to the
per-query transport is ever wanted.
Comment thread src/verifier.rs
assert_eq!(
proof_bytes.len(),
77_637,
22_017,

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Interesting, it seems like proof_bytes is much smaller now. What is the reasoning?

@arthurpaulino
arthurpaulino merged commit a8aab73 into main Sep 2, 2026
7 checks passed
@arthurpaulino
arthurpaulino deleted the ap/bump-p3 branch September 2, 2026 17:22
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants