Skip to content

Integrate Jagged PCS into CPU prover flow#1336

Open
hero78119 wants to merge 18 commits into
feat/batch_main_sumcheckfrom
feat/jagged_pcs
Open

Integrate Jagged PCS into CPU prover flow#1336
hero78119 wants to merge 18 commits into
feat/batch_main_sumcheckfrom
feat/jagged_pcs

Conversation

@hero78119
Copy link
Copy Markdown
Collaborator

@hero78119 hero78119 commented May 12, 2026

Problem

Integrate Jagged PCS into the Ceno prover flow so trace commitments/openings can use Jagged over the existing Basefold PCS.

Design Rationale

Jagged PCS packs per-chip trace polynomials into q' and reduces batched openings before delegating the final PCS opening to Basefold. The verifier behavior is kept unchanged; prover-side q' opening now reuses inner PCS column MLEs instead of rebuilding a second flat q' buffer.

Change Highlights

  • ceno_zkvm: wire Jagged PCS into the CPU proving flow.
  • mpcs: implement Jagged PCS trait integration and q' indexed view for opening.
  • mpcs: document Basefold prover param sizing and q' layout assumptions.

Benchmark / Performance Impact

CPU shard0 benchmark is close to baseline.

GPU

Block: 23817600, GPU, CENO_GPU_CACHE_LEVEL=1, reshape height: 24

Metric Basefold baseline Jagged PCS Delta Delta %
E2E total 91.800s 83.600s -8.200s -8.9%
Emulator 10.200s 10.100s -0.100s -1.0%
App prove 76.500s 68.600s -7.900s -10.3%
App verify 4.020s 3.590s -0.430s -10.7%
commit_traces 6.857s 17.620s +10.763s +157.0%
extract_witness_mles 3.739s 0.004s -3.735s -99.9%
build_tower_witness_gpu 0.323s 1.428s +1.105s +342.1%
prove_tower_relation_gpu 24.857s 22.566s -2.291s -9.2%
prove_batched_main_constraints 15.457s 7.646s -7.811s -50.5%
pcs_opening 15.175s 10.083s -5.092s -33.6%

Shard count: 15 -> 14 (-1 shard) on block 23817600.

Source runs:

Testing

cargo test -p mpcs jagged -- --nocapture
cargo run --config net.git-fetch-with-cli=true --release --package ceno_zkvm --bin e2e -- \
  --platform=ceno --max-cycle-per-shard=1600 \
  examples/target/riscv32im-ceno-zkvm-elf/release/examples/keccak_syscall

Copilot Reviewer Directive (keep this section)

When Copilot reviews this PR, apply .github/copilot-instructions.md strictly.

@hero78119 hero78119 changed the title Feat/jagged pcs Integrate Jagged PCS into CPU prover flow May 12, 2026
@hero78119 hero78119 marked this pull request as draft May 12, 2026 15:20
@hero78119 hero78119 marked this pull request as ready for review May 15, 2026 12:37
@hero78119 hero78119 changed the title Integrate Jagged PCS into CPU prover flow [WIP cleanup] Integrate Jagged PCS into CPU prover flow May 15, 2026
@hero78119 hero78119 changed the title [WIP cleanup] Integrate Jagged PCS into CPU prover flow Integrate Jagged PCS into CPU prover flow May 16, 2026
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.

1 participant