Skip to content

feat: integrate GPU prover, add basefold modules #987

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 39 commits into
base: master
Choose a base branch
from

Conversation

Velaciela
Copy link
Collaborator

@Velaciela Velaciela commented Jul 21, 2025

Description

Performence

  • fibonacci $\textrm{fib}(2^{20})$: runs 12M steps (warmup + rerun)
  • machine(node-19): AMD EPYC 7702 64-Core, 1 x RTX 3090
# CPU
RUST_LOG=debug cargo run --release --package ceno_zkvm --bin e2e -- --platform=ceno --hints=20 --public-io=3130 --profiling=2   examples/target/riscv32im-ceno-zkvm-elf/release/examples/fibonacci 2>&1 | tee "fib_perf_cpu.log"
# GPU
make enable-gpu
RUST_LOG=debug cargo run --release --features gpu --package ceno_zkvm --bin e2e -- --platform=ceno --hints=20 --public-io=3130 --profiling=2   examples/target/riscv32im-ceno-zkvm-elf/release/examples/fibonacci 2>&1 | tee "fib_perf_gpu.log"
make disable-gpu
  • phase1: basefold commit & open
metric CPU time GPU time speedup
ZKVM_create_proof 13.5s 8.0s 1.68x
batch commit to traces 6.07s 1.15s 5.27x
transfer MLEs to host 0 550ms N/A
transfer pk to device 0 4.53ms N/A
main_proofs (no GPU yet) 6.04s 6.15s 0.98x
pcs_opening 1.42s 168ms 8.45x
  • (WIP) phase2: main & tower prove
metric CPU time GPU time speedup
ZKVM_create_proof 13.6s 6.72s 2.02x
batch commit to traces 6.07s 1.15s 5.27x
transfer MLEs to host 0 550ms (next: eliminate) N/A
transfer pk to device 0 4.53ms N/A
main & tower prove 6.04s 4.85s N/A
-- main (no GPU yet) - - -
-- tower 4.12s 2.72s (next: optimize) 1.51x
pcs_opening 1.42s 168ms 8.45x

Current Status

  • Add GPU Prover Hal
  • Manually checked that batch_commit and batch_open produce consistent results between CPU and GPU provers
    • cargo test --release test_single_add_instance_e2e -- --nocapture
  • API & IO, to pass ceno verifier
  • full GPU pipeline for basefold commit -> open
  • tower: witness, prove
  • main: witness, prove
  • perf issues

@Velaciela Velaciela marked this pull request as draft July 21, 2025 07:00
@kunxian-xia kunxian-xia self-requested a review July 28, 2025 02:23
@Velaciela Velaciela force-pushed the feat/integrate-gpu-prover branch from 9588dd9 to 8bb3ea3 Compare August 5, 2025 04:24
@Velaciela Velaciela marked this pull request as ready for review August 12, 2025 02:07
@Velaciela Velaciela changed the title [draft] Integrate GPU prover feat: integrate GPU prover, add basefold modules Aug 12, 2025
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