Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
95 commits
Select commit Hold shift + click to select a range
755ca64
generate septic sum layer witnesses
kunxian-xia Sep 8, 2025
3862bc5
support ec add in tower verifier: wip
kunxian-xia Sep 9, 2025
3ac7ffc
ecc accumulation batched into tower verifier
kunxian-xia Sep 10, 2025
c8f1013
wip
kunxian-xia Sep 11, 2025
0350253
simplify
kunxian-xia Sep 11, 2025
9dd7ade
batch ec add into tower prover wip-1
kunxian-xia Sep 12, 2025
f22d7aa
revisit infer_septic_addition_witness
kunxian-xia Sep 15, 2025
7b366a1
sample random point on curve
kunxian-xia Sep 16, 2025
58d9d22
add sqrt
kunxian-xia Sep 17, 2025
463a431
fix ec add
kunxian-xia Sep 17, 2025
56c7aa4
infer_ec_sum_witness unit test
kunxian-xia Sep 18, 2025
c5c9c11
return point at infinity for Default
kunxian-xia Sep 19, 2025
dc4445a
finish infer septic addition unit test
kunxian-xia Sep 19, 2025
7887206
adjust the ec add sumchecks
kunxian-xia Sep 22, 2025
febb1f2
support jacobian coordinates
kunxian-xia Sep 23, 2025
a266248
infer septic sum using jacobian coordinates
kunxian-xia Sep 24, 2025
d22f76d
update tower verifier for jacobian coordinates
kunxian-xia Sep 25, 2025
a662a49
jacobian coordinates in tower's sumcheck
kunxian-xia Sep 26, 2025
502b7b2
add quark prover for ecc addition
kunxian-xia Sep 29, 2025
c3391bb
sanity check on quark's zerocheck
kunxian-xia Sep 29, 2025
ed67cd3
delete ec addition using tower tree
kunxian-xia Sep 29, 2025
be0629c
delete
kunxian-xia Sep 29, 2025
74af34f
clean
kunxian-xia Sep 29, 2025
94ac488
add selector to turn off affine_add when b = 1...1
kunxian-xia Sep 29, 2025
6074b14
add quark ecc verifier
kunxian-xia Sep 30, 2025
f3392ea
reorg
kunxian-xia Sep 30, 2025
06312d6
refine comments
kunxian-xia Sep 30, 2025
96a181f
refine comments
kunxian-xia Sep 30, 2025
3714569
add ram bus
hero78119 Oct 8, 2025
0da1c22
wip add rambus impl
hero78119 Oct 8, 2025
d2e0d51
add poseidon2 gadget
kunxian-xia Oct 10, 2025
33b47ec
add shardcontext
hero78119 Oct 10, 2025
7248eec
global chip wip
kunxian-xia Oct 13, 2025
912747e
upgrade gkr-backend to v1.0.0-alpha.10
kunxian-xia Oct 13, 2025
27113d1
Merge remote-tracking branch 'origin/master' into feat/septic_global_…
kunxian-xia Oct 13, 2025
098afb9
chore
kunxian-xia Oct 13, 2025
d0d2471
separate init/final/ramchip
hero78119 Oct 13, 2025
6e2f8d6
make Instruction stateful
kunxian-xia Oct 13, 2025
a0c7b91
local ram circuit
hero78119 Oct 13, 2025
4963848
add shard info to public io
hero78119 Oct 13, 2025
160291e
make all opcode circuits to be stateful
kunxian-xia Oct 13, 2025
8860169
fmt
kunxian-xia Oct 13, 2025
c542201
wip config as trait
hero78119 Oct 14, 2025
706aa08
global chip unit test wip
kunxian-xia Oct 14, 2025
b84f74e
separate circuit into init/final
hero78119 Oct 14, 2025
4d7423b
finish most constraints for Global chip
kunxian-xia Oct 14, 2025
03092e9
complete local finalized mem chip logic
hero78119 Oct 14, 2025
d32c71f
aligned step cycle and prev_cycle to local version
hero78119 Oct 15, 2025
f347310
with mem bus chip build pass
hero78119 Oct 15, 2025
4d5a421
cleanup
hero78119 Oct 15, 2025
3c21158
add table circuit cpu sumcheck
hero78119 Oct 15, 2025
4900dc8
global chip unit test wip2
kunxian-xia Oct 16, 2025
64ab29e
remove r_record / w_record
kunxian-xia Oct 16, 2025
ea6f8ed
one shard prover pass
hero78119 Oct 16, 2025
82403f2
fix most of local final table issue in e2e
hero78119 Oct 17, 2025
aeea15d
chores: cosmetics
hero78119 Oct 17, 2025
40887fc
gkr iop support table circuit
hero78119 Oct 19, 2025
9649633
wip3
kunxian-xia Oct 19, 2025
08783ca
wip convert local final ram circuit to gkr-iop circuit
hero78119 Oct 19, 2025
6ac69fc
chores: rename config
hero78119 Oct 19, 2025
f20e970
make record to be trait Instruction's associated type
kunxian-xia Oct 19, 2025
cfd9870
wip4
kunxian-xia Oct 19, 2025
48d5f93
fix few bugs in e2e
hero78119 Oct 19, 2025
253043f
wip5
kunxian-xia Oct 19, 2025
ae46b8e
wip6
kunxian-xia Oct 19, 2025
306e0df
debug log
hero78119 Oct 20, 2025
8e9c2d2
chores: mock_proving non-static ram type
hero78119 Oct 20, 2025
dc15ff4
chores: mock_proving non-static ram type
hero78119 Oct 20, 2025
c2fee65
e2e test pass
hero78119 Oct 20, 2025
74ca4f1
cosmetics and fix lint
hero78119 Oct 20, 2025
c177609
merged with upstream
hero78119 Oct 20, 2025
e819dc7
chores: fix test and ci
hero78119 Oct 20, 2025
2632e5b
log cleanup
hero78119 Oct 20, 2025
ee51964
fix goldilocks circuit
hero78119 Oct 20, 2025
0ffa915
refactor and clippy
hero78119 Oct 20, 2025
1739d4a
chores fix missing padding of DynVolatileRamTableConfig
hero78119 Oct 20, 2025
6601cf1
evaluate selector with context
kunxian-xia Oct 20, 2025
7efb21a
switch gkr-backend
kunxian-xia Oct 21, 2025
636ab8e
fix
kunxian-xia Oct 21, 2025
052b567
enable poseidon2
kunxian-xia Oct 21, 2025
0ea92e0
optimise tracer performance
hero78119 Oct 21, 2025
9e5df7d
integrate ecc quark iop wip
kunxian-xia Oct 22, 2025
82fea5e
merge with master
hero78119 Oct 27, 2025
de8397f
non-pow2 septic elliptic curve points add IOP (#1081)
hero78119 Oct 27, 2025
bcd3eb9
Feat: integrate ecc quark prover into prover's and verifier's workflo…
kunxian-xia Oct 28, 2025
1686647
Merge remote-tracking branch 'origin/feat/multi_shard' into feat/sept…
kunxian-xia Oct 28, 2025
2d8d643
chores: fix quick error in e2e (#1096)
hero78119 Oct 28, 2025
9676da8
rw record ramtype expression (#1098)
hero78119 Oct 29, 2025
2d5ed66
Feat: integrate `Global` chip into e2e workflow (#1099)
kunxian-xia Oct 30, 2025
a8a06a5
Fix integration bugs (#1102)
kunxian-xia Oct 31, 2025
2214fdc
extract shard id from cycle (#1101)
hero78119 Oct 31, 2025
3860d14
revert stateful trait Instruction (#1105)
kunxian-xia Oct 31, 2025
5af8392
refactor ec points witness assignments (#1100)
hero78119 Oct 31, 2025
9917b61
#1061 cleanup (#1106)
kunxian-xia Oct 31, 2025
60aa5f5
enforce global.shard < cur_shard
kunxian-xia Oct 31, 2025
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
2 changes: 2 additions & 0 deletions .github/workflows/lints.yml
Original file line number Diff line number Diff line change
Expand Up @@ -66,3 +66,5 @@ jobs:
run: taplo --version || cargo install taplo-cli
- name: Run taplo
run: taplo fmt --check --diff
- name: Ensure Cargo.lock not modified by build
run: git diff --exit-code Cargo.lock
74 changes: 55 additions & 19 deletions Cargo.lock

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

49 changes: 29 additions & 20 deletions Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -23,16 +23,16 @@ repository = "https://github.com/scroll-tech/ceno"
version = "0.1.0"

[workspace.dependencies]
ff_ext = { git = "https://github.com/scroll-tech/gkr-backend.git", package = "ff_ext", rev = "v1.0.0-alpha.9" }
mpcs = { git = "https://github.com/scroll-tech/gkr-backend.git", package = "mpcs", rev = "v1.0.0-alpha.9" }
multilinear_extensions = { git = "https://github.com/scroll-tech/gkr-backend.git", package = "multilinear_extensions", rev = "v1.0.0-alpha.9" }
p3 = { git = "https://github.com/scroll-tech/gkr-backend.git", package = "p3", rev = "v1.0.0-alpha.9" }
poseidon = { git = "https://github.com/scroll-tech/gkr-backend.git", package = "poseidon", rev = "v1.0.0-alpha.9" }
sp1-curves = { git = "https://github.com/scroll-tech/gkr-backend.git", package = "sp1-curves", rev = "v1.0.0-alpha.9" }
sumcheck = { git = "https://github.com/scroll-tech/gkr-backend.git", package = "sumcheck", rev = "v1.0.0-alpha.9" }
transcript = { git = "https://github.com/scroll-tech/gkr-backend.git", package = "transcript", rev = "v1.0.0-alpha.9" }
whir = { git = "https://github.com/scroll-tech/gkr-backend.git", package = "whir", rev = "v1.0.0-alpha.9" }
witness = { git = "https://github.com/scroll-tech/gkr-backend.git", package = "witness", rev = "v1.0.0-alpha.9" }
ff_ext = { git = "https://github.com/scroll-tech/gkr-backend.git", package = "ff_ext", branch = "chore/sw_curve_default" }
mpcs = { git = "https://github.com/scroll-tech/gkr-backend.git", package = "mpcs", branch = "chore/sw_curve_default" }
multilinear_extensions = { git = "https://github.com/scroll-tech/gkr-backend.git", package = "multilinear_extensions", branch = "chore/sw_curve_default" }
p3 = { git = "https://github.com/scroll-tech/gkr-backend.git", package = "p3", branch = "chore/sw_curve_default" }
poseidon = { git = "https://github.com/scroll-tech/gkr-backend.git", package = "poseidon", branch = "chore/sw_curve_default" }
sp1-curves = { git = "https://github.com/scroll-tech/gkr-backend.git", package = "sp1-curves", branch = "chore/sw_curve_default" }
sumcheck = { git = "https://github.com/scroll-tech/gkr-backend.git", package = "sumcheck", branch = "chore/sw_curve_default" }
transcript = { git = "https://github.com/scroll-tech/gkr-backend.git", package = "transcript", branch = "chore/sw_curve_default" }
whir = { git = "https://github.com/scroll-tech/gkr-backend.git", package = "whir", branch = "chore/sw_curve_default" }
witness = { git = "https://github.com/scroll-tech/gkr-backend.git", package = "witness", branch = "chore/sw_curve_default" }

alloy-primitives = "1.3"
anyhow = { version = "1.0", default-features = false }
Expand All @@ -57,9 +57,17 @@ rand_chacha = { version = "0.3", features = ["serde1"] }
rand_core = "0.6"
rayon = "1.10"
rkyv = { version = "0.8", features = ["pointer_width_32"] }
rustc-hash = "2.0.0"
secp = "0.4.1"
serde = { version = "1.0", features = ["derive", "rc"] }
serde_json = "1.0"
smallvec = { version = "1.13.2", features = [
"const_generics",
"const_new",
"serde",
"union",
"write",
] }
strum = "0.26"
strum_macros = "0.26"
substrate-bn = { version = "0.6.0" }
Expand Down Expand Up @@ -91,13 +99,14 @@ lto = "thin"
# [patch."ssh://[email protected]/scroll-tech/ceno-gpu.git"]
# ceno_gpu = { path = "../ceno-gpu/cuda_hal", package = "cuda_hal" }

#[patch."https://github.com/scroll-tech/gkr-backend"]
#ff_ext = { path = "../gkr-backend/crates/ff_ext", package = "ff_ext" }
#mpcs = { path = "../gkr-backend/crates/mpcs", package = "mpcs" }
#multilinear_extensions = { path = "../gkr-backend/crates/multilinear_extensions", package = "multilinear_extensions" }
#p3 = { path = "../gkr-backend/crates/p3", package = "p3" }
#poseidon = { path = "../gkr-backend/crates/poseidon", package = "poseidon" }
#sumcheck = { path = "../gkr-backend/crates/sumcheck", package = "sumcheck" }
#transcript = { path = "../gkr-backend/crates/transcript", package = "transcript" }
#whir = { path = "../gkr-backend/crates/whir", package = "whir" }
#witness = { path = "../gkr-backend/crates/witness", package = "witness" }
# [patch."https://github.com/scroll-tech/gkr-backend"]
# ff_ext = { path = "../gkr-backend/crates/ff_ext", package = "ff_ext" }
# mpcs = { path = "../gkr-backend/crates/mpcs", package = "mpcs" }
# multilinear_extensions = { path = "../gkr-backend/crates/multilinear_extensions", package = "multilinear_extensions" }
# p3 = { path = "../gkr-backend/crates/p3", package = "p3" }
# poseidon = { path = "../gkr-backend/crates/poseidon", package = "poseidon" }
# sp1-curves = { path = "../gkr-backend/crates/curves", package = "sp1-curves" }
# sumcheck = { path = "../gkr-backend/crates/sumcheck", package = "sumcheck" }
# transcript = { path = "../gkr-backend/crates/transcript", package = "transcript" }
# whir = { path = "../gkr-backend/crates/whir", package = "whir" }
# witness = { path = "../gkr-backend/crates/witness", package = "witness" }
10 changes: 10 additions & 0 deletions ceno_cli/src/commands/common_args/ceno.rs
Original file line number Diff line number Diff line change
Expand Up @@ -78,6 +78,14 @@ pub struct CenoOptions {
#[arg(long)]
pub out_vk: Option<PathBuf>,

/// shard id
#[arg(long, default_value = "0")]
shard_id: u32,

/// number of total shards.
#[arg(long, default_value = "1")]
max_num_shards: u32,

/// Profiling granularity.
/// Setting any value restricts logs to profiling information
#[arg(long)]
Expand Down Expand Up @@ -337,6 +345,7 @@ fn run_elf_inner<
std::fs::read(elf_path).context(format!("failed to read {}", elf_path.display()))?;
let program = Program::load_elf(&elf_bytes, u32::MAX).context("failed to load elf")?;
print_cargo_message("Loaded", format_args!("{}", elf_path.display()));
let shards = Shards::new(options.shard_id as usize, options.max_num_shards as usize);

let public_io = options
.read_public_io()
Expand Down Expand Up @@ -385,6 +394,7 @@ fn run_elf_inner<
create_prover(backend.clone()),
program,
platform,
shards,
&hints,
&public_io,
options.max_steps,
Expand Down
3 changes: 3 additions & 0 deletions ceno_emul/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -19,9 +19,12 @@ itertools.workspace = true
multilinear_extensions.workspace = true
num-derive.workspace = true
num-traits.workspace = true
rayon.workspace = true
rrs_lib = { package = "rrs-succinct", version = "0.1.0" }
rustc-hash.workspace = true
secp.workspace = true
serde.workspace = true
smallvec.workspace = true
strum.workspace = true
strum_macros.workspace = true
substrate-bn.workspace = true
Expand Down
Loading
Loading