Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
88 commits
Select commit Hold shift + click to select a range
ac49ac6
refactor GPU compact tower witness flow
hero78119 Apr 25, 2026
84a2631
Fix compact tower memory accounting
hero78119 Apr 26, 2026
12453f6
Optimize compact logup ones allocation
hero78119 Apr 26, 2026
7d60f01
update dep
hero78119 Apr 26, 2026
925de92
Merge branch 'master' into feat/prover_mle_zero_padding
hero78119 Apr 26, 2026
e9fbe9c
fix main mem estimation
hero78119 Apr 26, 2026
46e87bb
Merge branch 'master' of github.com:scroll-tech/ceno into feat/prover…
hero78119 Apr 26, 2026
b888fbb
Merge branch 'feat/prover_mle_zero_padding' of github.com:scroll-tech…
hero78119 Apr 26, 2026
5ecce04
fix mem estimator
hero78119 Apr 26, 2026
be14006
snapshot compact tower estimator state
hero78119 Apr 26, 2026
df88dec
rollback Cargo.toml, Cargo.lock change
hero78119 Apr 27, 2026
b57b692
fix memory estimation
hero78119 Apr 27, 2026
c50b793
verifier log
hero78119 Apr 27, 2026
89b8698
Pass tower input by value for GPU proving
hero78119 Apr 27, 2026
f210e1f
split tower layer by view
hero78119 Apr 27, 2026
99b7a94
Use dense tower build for compact GPU input
hero78119 Apr 27, 2026
f0d81b6
Pass logup shape to tower prove estimator
hero78119 Apr 27, 2026
917810c
Deduplicate borrowed tower input booking
hero78119 Apr 27, 2026
4fc8dae
fix logging
hero78119 Apr 27, 2026
ef9fa30
Check scheduler memory estimate in mem tracking
hero78119 Apr 27, 2026
011a898
Refine replay tower proof memory estimate
hero78119 Apr 27, 2026
f3ca1cf
clippy fix
hero78119 Apr 27, 2026
147f567
add missing syncronization, avoid race condition
hero78119 Apr 28, 2026
94fc7bf
Account ShardRam tower prove allocator overhead
hero78119 Apr 28, 2026
c9401d1
misc: clippy fix
hero78119 Apr 28, 2026
d14e66a
Fix GPU proof memory estimation
hero78119 Apr 28, 2026
ceced51
Fix GPU proof estimate row basis
hero78119 Apr 28, 2026
d1ab71a
Tune ShardRam tower proof estimate
hero78119 Apr 28, 2026
7c6e97c
Batch main constraints into single sumcheck
hero78119 Apr 29, 2026
505e258
Restore replay backing before batched main
hero78119 Apr 29, 2026
b2fba0f
Replay witness backing incrementally during PCS opening
hero78119 Apr 29, 2026
25d7f42
wip more log
hero78119 Apr 29, 2026
2128bf9
Improve GPU proof failure diagnostics
hero78119 Apr 29, 2026
d5513de
Compact ShardRAM main witness extraction
hero78119 Apr 29, 2026
2df2590
Log batched main MLE histograms
hero78119 Apr 29, 2026
b67c6b7
Fix batched main GPU verification
hero78119 Apr 30, 2026
a4d066f
Use legacy layout for batched main GPU sumcheck
hero78119 Apr 30, 2026
29ae6df
update gkr dependency
hero78119 Apr 30, 2026
7d1a9de
Merge branch 'master' of github.com:scroll-tech/ceno into feat/prover…
hero78119 Apr 30, 2026
7ebc0cf
Merge branch 'feat/prover_mle_zero_padding' into feat/batch_main_sumc…
hero78119 Apr 30, 2026
fb96061
perf(gpu): trim batched main sumcheck work
hero78119 May 1, 2026
be5a6f5
perf(gpu): use direct layout for batched main
hero78119 May 1, 2026
27ed865
Experiment staggered batched main sumcheck prover
hero78119 May 3, 2026
268025b
Use dedicated batched main sumcheck prover
hero78119 May 4, 2026
87f85be
chore: checkpoint frontload integration
hero78119 May 9, 2026
dd229c0
chore: upgrade gkr-backend to alpha.28
hero78119 May 9, 2026
23d5a6a
feat(recursion): verify batched main sumcheck
hero78119 May 9, 2026
fa3bdb7
misc: cleanup
hero78119 May 9, 2026
f3aaefb
misc: cleanup
hero78119 May 9, 2026
d5ae1b3
fix ci
hero78119 May 9, 2026
c2c45cc
Optimize batched main sumcheck construction
hero78119 May 10, 2026
e62e347
avoid unnecessary cloning
hero78119 May 11, 2026
b320f42
misc: taplo fmt
hero78119 May 12, 2026
e99c845
integrate cpu jagged pcs
hero78119 May 12, 2026
f271886
feat: integrate jagged pcs gpu proving flow
hero78119 May 13, 2026
1b9aa13
feat(gpu): integrate jagged pcs flow
hero78119 May 13, 2026
334f7e4
perf(gpu): optimize jagged qprime construction
hero78119 May 13, 2026
4a23937
rollback debug patching
hero78119 May 13, 2026
bb1894d
update gkr-dep
hero78119 May 13, 2026
2d8b88d
misc: cleanup
hero78119 May 13, 2026
e733090
jagged commit follow incremental group commitment
hero78119 May 14, 2026
a8ab6e4
fix persistent actual parameter
hero78119 May 14, 2026
fa581cc
fix cache=trace flow
hero78119 May 14, 2026
b00a2ba
fix mem estimation
hero78119 May 15, 2026
62d53da
build tower witness in batch
hero78119 May 15, 2026
d326209
fix bug: compact format in q
hero78119 May 15, 2026
c56293c
remove tail q padding
hero78119 May 15, 2026
e3d49c6
update gkr-backend
hero78119 May 15, 2026
884426b
Merge branch 'feat/batch_main_sumcheck' into feat/jagged_pcs
hero78119 May 15, 2026
5c8dc73
update gkr-dep
hero78119 May 15, 2026
a943b7c
bump ci timeout to 40 min
hero78119 May 16, 2026
0a08bca
misc: cleanup and refactor
hero78119 May 16, 2026
8e6a697
feat: simplify gpu witgen qprime flow
hero78119 May 16, 2026
b9820c6
feat: release shard gpu caches after backing
hero78119 May 17, 2026
77c5e71
chore: point deps to witgen gpu branch
hero78119 May 17, 2026
ae133eb
fix: keep cpu prover imports available
hero78119 May 17, 2026
cbfc23a
update dep
hero78119 May 17, 2026
02d6400
fix: align witgen jagged commit retention
hero78119 May 17, 2026
0d11ae7
fix concurrent
hero78119 May 17, 2026
9ce9023
fix stale logic of gpu witgen
hero78119 May 17, 2026
1f697a9
fix wrong ecc estimation on all chip
hero78119 May 17, 2026
c5057d6
more debug log
hero78119 May 18, 2026
f2aaf52
assert cache release
hero78119 May 18, 2026
0210113
restore muiti stream binding
hero78119 May 18, 2026
e8d1dba
merge with master
hero78119 May 18, 2026
dcb8ac6
feat(zkvm): batch jagged inner openings
hero78119 May 19, 2026
39285e6
Merge upstream/master into PR 1341
hero78119 May 20, 2026
3d4cc63
Update gkr-backend to v1.0.0-alpha.31
hero78119 May 20, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
22 changes: 11 additions & 11 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

20 changes: 10 additions & 10 deletions Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -27,16 +27,16 @@ version = "0.1.0"
ceno_crypto_primitives = { git = "https://github.com/scroll-tech/ceno-patch.git", package = "ceno_crypto_primitives", branch = "main" }
ceno_syscall = { git = "https://github.com/scroll-tech/ceno-patch.git", package = "ceno_syscall", branch = "main" }

ff_ext = { git = "https://github.com/scroll-tech/gkr-backend.git", package = "ff_ext", tag = "v1.0.0-alpha.30" }
mpcs = { git = "https://github.com/scroll-tech/gkr-backend.git", package = "mpcs", tag = "v1.0.0-alpha.30" }
multilinear_extensions = { git = "https://github.com/scroll-tech/gkr-backend.git", package = "multilinear_extensions", tag = "v1.0.0-alpha.30" }
p3 = { git = "https://github.com/scroll-tech/gkr-backend.git", package = "p3", tag = "v1.0.0-alpha.30" }
poseidon = { git = "https://github.com/scroll-tech/gkr-backend.git", package = "poseidon", tag = "v1.0.0-alpha.30" }
sp1-curves = { git = "https://github.com/scroll-tech/gkr-backend.git", package = "sp1-curves", tag = "v1.0.0-alpha.30" }
sumcheck = { git = "https://github.com/scroll-tech/gkr-backend.git", package = "sumcheck", tag = "v1.0.0-alpha.30" }
transcript = { git = "https://github.com/scroll-tech/gkr-backend.git", package = "transcript", tag = "v1.0.0-alpha.30" }
whir = { git = "https://github.com/scroll-tech/gkr-backend.git", package = "whir", tag = "v1.0.0-alpha.30" }
witness = { git = "https://github.com/scroll-tech/gkr-backend.git", package = "witness", tag = "v1.0.0-alpha.30" }
ff_ext = { git = "https://github.com/scroll-tech/gkr-backend.git", package = "ff_ext", tag = "v1.0.0-alpha.31" }
mpcs = { git = "https://github.com/scroll-tech/gkr-backend.git", package = "mpcs", tag = "v1.0.0-alpha.31" }
multilinear_extensions = { git = "https://github.com/scroll-tech/gkr-backend.git", package = "multilinear_extensions", tag = "v1.0.0-alpha.31" }
p3 = { git = "https://github.com/scroll-tech/gkr-backend.git", package = "p3", tag = "v1.0.0-alpha.31" }
poseidon = { git = "https://github.com/scroll-tech/gkr-backend.git", package = "poseidon", tag = "v1.0.0-alpha.31" }
sp1-curves = { git = "https://github.com/scroll-tech/gkr-backend.git", package = "sp1-curves", tag = "v1.0.0-alpha.31" }
sumcheck = { git = "https://github.com/scroll-tech/gkr-backend.git", package = "sumcheck", tag = "v1.0.0-alpha.31" }
transcript = { git = "https://github.com/scroll-tech/gkr-backend.git", package = "transcript", tag = "v1.0.0-alpha.31" }
whir = { git = "https://github.com/scroll-tech/gkr-backend.git", package = "whir", tag = "v1.0.0-alpha.31" }
witness = { git = "https://github.com/scroll-tech/gkr-backend.git", package = "witness", tag = "v1.0.0-alpha.31" }

anyhow = { version = "1.0", default-features = false }
bincode = "1"
Expand Down
32 changes: 29 additions & 3 deletions ceno_zkvm/src/scheme.rs
Original file line number Diff line number Diff line change
Expand Up @@ -269,13 +269,19 @@ impl<E: ExtensionField, PCS: PolynomialCommitmentScheme<E> + Serialize> fmt::Dis
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
// break down zkvm proof size

let overall_size = bincode::serialized_size(&self).expect("serialization error");
// also provide by-circuit stats
let mut by_circuitname_stats = HashMap::new();
// opcode circuit mpcs size
let mpcs_opcode_commitment =
bincode::serialized_size(&self.witin_commit).expect("serialization error");
let mpcs_opcode_opening =
bincode::serialized_size(&self.opening_proof).expect("serialization error");
let mpcs_opening_breakdown = format_proof_size_breakdown(
"mpcs opening",
PCS::proof_size_breakdown(&self.opening_proof),
overall_size,
);

// tower proof size
let tower_proof = self
Expand Down Expand Up @@ -312,9 +318,6 @@ impl<E: ExtensionField, PCS: PolynomialCommitmentScheme<E> + Serialize> fmt::Dis
.iter()
.sum::<u64>();

// overall size
let overall_size = bincode::serialized_size(&self).expect("serialization error");

// break down by circuit name
let by_circuitname_stats = by_circuitname_stats
.iter()
Expand All @@ -336,6 +339,8 @@ impl<E: ExtensionField, PCS: PolynomialCommitmentScheme<E> + Serialize> fmt::Dis
"overall_size {:.2}mb. \n\
mpcs commitment {:?}% \n\
mpcs opening {:?}% \n\
mpcs opening break down: \n\
{} \n\
tower proof {:?}% \n\
main sumcheck proof {:?}% \n\
by circuit_name break down: \n\
Expand All @@ -344,6 +349,7 @@ impl<E: ExtensionField, PCS: PolynomialCommitmentScheme<E> + Serialize> fmt::Dis
byte_to_mb(overall_size),
(mpcs_opcode_commitment * 100).div(overall_size),
(mpcs_opcode_opening * 100).div(overall_size),
mpcs_opening_breakdown,
(tower_proof * 100).div(overall_size),
(main_sumcheck * 100).div(overall_size),
by_circuitname_stats,
Expand All @@ -355,6 +361,26 @@ fn byte_to_mb(byte_size: u64) -> f64 {
byte_size as f64 / (1024.0 * 1024.0)
}

fn format_proof_size_breakdown(
prefix: &str,
breakdown: Vec<(String, u64)>,
overall_size: u64,
) -> String {
breakdown
.into_iter()
.map(|(name, size)| {
format!(
"{}.{}: {:.2}mb({}%, {} bytes)",
prefix,
name,
byte_to_mb(size),
(size * 100).div(overall_size),
size
)
})
.join("\n")
}

#[cfg(not(feature = "gpu"))]
pub fn create_backend<E: ExtensionField, PCS: PolynomialCommitmentScheme<E>>(
max_num_variables: usize,
Expand Down
Loading
Loading