diff --git a/Cargo.lock b/Cargo.lock index ea1f6e9f1..48201fe9a 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -957,10 +957,10 @@ dependencies = [ "ceno_zkvm", "clap", "console", - "ff_ext 0.1.0 (git+https://github.com/scroll-tech/gkr-backend.git?tag=v1.0.0-alpha.18)", + "ff_ext", "get_dir", "gkr_iop", - "mpcs 0.1.0 (git+https://github.com/scroll-tech/gkr-backend.git?tag=v1.0.0-alpha.18)", + "mpcs", "openvm-circuit", "openvm-continuations", "openvm-cuda-backend", @@ -1073,10 +1073,10 @@ dependencies = [ "ceno_rt", "ceno_syscall", "elf", - "ff_ext 0.1.0 (git+https://github.com/scroll-tech/gkr-backend.git?tag=v1.0.0-alpha.18)", + "ff_ext", "itertools 0.13.0", "k256 0.13.4 (git+https://github.com/scroll-tech/elliptic-curves?branch=ceno%2Fk256-13.4)", - "multilinear_extensions 0.1.0 (git+https://github.com/scroll-tech/gkr-backend.git?tag=v1.0.0-alpha.18)", + "multilinear_extensions", "num", "num-derive", "num-traits", @@ -1126,11 +1126,11 @@ dependencies = [ "ceno_host", "ceno_zkvm", "clap", - "ff_ext 0.1.0 (git+https://github.com/scroll-tech/gkr-backend.git?tag=v1.0.0-alpha.18)", + "ff_ext", "gkr_iop", "itertools 0.13.0", - "mpcs 0.1.0 (git+https://github.com/scroll-tech/gkr-backend.git?tag=v1.0.0-alpha.18)", - "multilinear_extensions 0.1.0 (git+https://github.com/scroll-tech/gkr-backend.git?tag=v1.0.0-alpha.18)", + "mpcs", + "multilinear_extensions", "openvm", "openvm-circuit", "openvm-continuations", @@ -1144,18 +1144,18 @@ dependencies = [ "openvm-sdk", "openvm-stark-backend", "openvm-stark-sdk", - "p3 0.1.0 (git+https://github.com/scroll-tech/gkr-backend.git?tag=v1.0.0-alpha.18)", + "p3", "parse-size", "rand 0.8.5", "serde", "serde_json", - "sumcheck 0.1.0 (git+https://github.com/scroll-tech/gkr-backend.git?tag=v1.0.0-alpha.18)", + "sumcheck", "tracing", "tracing-forest", "tracing-subscriber", - "transcript 0.1.0 (git+https://github.com/scroll-tech/gkr-backend.git?tag=v1.0.0-alpha.18)", - "whir 0.1.0 (git+https://github.com/scroll-tech/gkr-backend.git?tag=v1.0.0-alpha.18)", - "witness 0.1.0 (git+https://github.com/scroll-tech/gkr-backend.git?tag=v1.0.0-alpha.18)", + "transcript", + "whir", + "witness", ] [[package]] @@ -1197,20 +1197,20 @@ dependencies = [ "cudarc", "derive", "either", - "ff_ext 0.1.0 (git+https://github.com/scroll-tech/gkr-backend.git?tag=v1.0.0-alpha.18)", + "ff_ext", "generic-array 1.2.0", "generic_static", "gkr_iop", "glob", "itertools 0.13.0", "metrics", - "mpcs 0.1.0 (git+https://github.com/scroll-tech/gkr-backend.git?tag=v1.0.0-alpha.18)", - "multilinear_extensions 0.1.0 (git+https://github.com/scroll-tech/gkr-backend.git?tag=v1.0.0-alpha.18)", + "mpcs", + "multilinear_extensions", "ndarray", "num", "num-bigint 0.4.6", "once_cell", - "p3 0.1.0 (git+https://github.com/scroll-tech/gkr-backend.git?tag=v1.0.0-alpha.18)", + "p3", "parse-size", "pprof2", "prettytable-rs", @@ -1223,7 +1223,7 @@ dependencies = [ "sp1-curves", "strum", "strum_macros", - "sumcheck 0.1.0 (git+https://github.com/scroll-tech/gkr-backend.git?tag=v1.0.0-alpha.18)", + "sumcheck", "tempfile", "tikv-jemalloc-ctl", "tikv-jemallocator", @@ -1231,10 +1231,10 @@ dependencies = [ "tracing", "tracing-forest", "tracing-subscriber", - "transcript 0.1.0 (git+https://github.com/scroll-tech/gkr-backend.git?tag=v1.0.0-alpha.18)", + "transcript", "typenum", - "whir 0.1.0 (git+https://github.com/scroll-tech/gkr-backend.git?tag=v1.0.0-alpha.18)", - "witness 0.1.0 (git+https://github.com/scroll-tech/gkr-backend.git?tag=v1.0.0-alpha.18)", + "whir", + "witness", ] [[package]] @@ -1584,22 +1584,7 @@ checksum = "e2931af7e13dc045d8e9d26afccc6fa115d64e115c9c84b1166288b46f6782c2" [[package]] name = "cuda_hal" version = "0.1.0" -source = "git+https://github.com/scroll-tech/ceno-gpu-mock.git?branch=main#802928096212ecb1d7347922bc13526ea63e1b01" -dependencies = [ - "anyhow", - "ff_ext 0.1.0 (git+https://github.com/scroll-tech/gkr-backend.git?tag=v1.0.0-alpha.15)", - "itertools 0.13.0", - "mpcs 0.1.0 (git+https://github.com/scroll-tech/gkr-backend.git?tag=v1.0.0-alpha.15)", - "multilinear_extensions 0.1.0 (git+https://github.com/scroll-tech/gkr-backend.git?tag=v1.0.0-alpha.15)", - "p3 0.1.0 (git+https://github.com/scroll-tech/gkr-backend.git?tag=v1.0.0-alpha.15)", - "rand 0.8.5", - "rayon", - "sumcheck 0.1.0 (git+https://github.com/scroll-tech/gkr-backend.git?tag=v1.0.0-alpha.15)", - "thiserror 2.0.12", - "tracing", - "transcript 0.1.0 (git+https://github.com/scroll-tech/gkr-backend.git?tag=v1.0.0-alpha.15)", - "witness 0.1.0 (git+https://github.com/scroll-tech/gkr-backend.git?tag=v1.0.0-alpha.15)", -] +source = "git+https://github.com/scroll-tech/ceno-gpu-mock.git?branch=main#fe8f7923b7d3a3823c27949fab0aab8e31011aa9" [[package]] name = "cudarc" @@ -2230,24 +2215,13 @@ dependencies = [ "syn 1.0.109", ] -[[package]] -name = "ff_ext" -version = "0.1.0" -source = "git+https://github.com/scroll-tech/gkr-backend.git?tag=v1.0.0-alpha.15#9be620b18900138d0b89569759fc2b3b9451b49e" -dependencies = [ - "once_cell", - "p3 0.1.0 (git+https://github.com/scroll-tech/gkr-backend.git?tag=v1.0.0-alpha.15)", - "rand_core 0.6.4", - "serde", -] - [[package]] name = "ff_ext" version = "0.1.0" source = "git+https://github.com/scroll-tech/gkr-backend.git?tag=v1.0.0-alpha.18#f53336217179d70df37852fc850b786d4bc82f15" dependencies = [ "once_cell", - "p3 0.1.0 (git+https://github.com/scroll-tech/gkr-backend.git?tag=v1.0.0-alpha.18)", + "p3", "rand_core 0.6.4", "serde", ] @@ -2414,18 +2388,18 @@ dependencies = [ "cuda_hal", "cudarc", "either", - "ff_ext 0.1.0 (git+https://github.com/scroll-tech/gkr-backend.git?tag=v1.0.0-alpha.18)", + "ff_ext", "itertools 0.13.0", - "mpcs 0.1.0 (git+https://github.com/scroll-tech/gkr-backend.git?tag=v1.0.0-alpha.18)", - "multilinear_extensions 0.1.0 (git+https://github.com/scroll-tech/gkr-backend.git?tag=v1.0.0-alpha.18)", + "mpcs", + "multilinear_extensions", "once_cell", - "p3 0.1.0 (git+https://github.com/scroll-tech/gkr-backend.git?tag=v1.0.0-alpha.18)", + "p3", "rand 0.8.5", "rayon", "serde", "strum", "strum_macros", - "sumcheck 0.1.0 (git+https://github.com/scroll-tech/gkr-backend.git?tag=v1.0.0-alpha.18)", + "sumcheck", "thiserror 2.0.12", "thread_local", "tikv-jemalloc-ctl", @@ -2433,8 +2407,8 @@ dependencies = [ "tracing", "tracing-forest", "tracing-subscriber", - "transcript 0.1.0 (git+https://github.com/scroll-tech/gkr-backend.git?tag=v1.0.0-alpha.18)", - "witness 0.1.0 (git+https://github.com/scroll-tech/gkr-backend.git?tag=v1.0.0-alpha.18)", + "transcript", + "witness", ] [[package]] @@ -3245,30 +3219,6 @@ dependencies = [ "adler2", ] -[[package]] -name = "mpcs" -version = "0.1.0" -source = "git+https://github.com/scroll-tech/gkr-backend.git?tag=v1.0.0-alpha.15#9be620b18900138d0b89569759fc2b3b9451b49e" -dependencies = [ - "bincode 1.3.3", - "clap", - "ff_ext 0.1.0 (git+https://github.com/scroll-tech/gkr-backend.git?tag=v1.0.0-alpha.15)", - "itertools 0.13.0", - "multilinear_extensions 0.1.0 (git+https://github.com/scroll-tech/gkr-backend.git?tag=v1.0.0-alpha.15)", - "num-integer", - "p3 0.1.0 (git+https://github.com/scroll-tech/gkr-backend.git?tag=v1.0.0-alpha.15)", - "rand 0.8.5", - "rand_chacha 0.3.1", - "rayon", - "serde", - "sumcheck 0.1.0 (git+https://github.com/scroll-tech/gkr-backend.git?tag=v1.0.0-alpha.15)", - "tracing", - "tracing-subscriber", - "transcript 0.1.0 (git+https://github.com/scroll-tech/gkr-backend.git?tag=v1.0.0-alpha.15)", - "whir 0.1.0 (git+https://github.com/scroll-tech/gkr-backend.git?tag=v1.0.0-alpha.15)", - "witness 0.1.0 (git+https://github.com/scroll-tech/gkr-backend.git?tag=v1.0.0-alpha.15)", -] - [[package]] name = "mpcs" version = "0.1.0" @@ -3276,36 +3226,21 @@ source = "git+https://github.com/scroll-tech/gkr-backend.git?tag=v1.0.0-alpha.18 dependencies = [ "bincode 1.3.3", "clap", - "ff_ext 0.1.0 (git+https://github.com/scroll-tech/gkr-backend.git?tag=v1.0.0-alpha.18)", + "ff_ext", "itertools 0.13.0", - "multilinear_extensions 0.1.0 (git+https://github.com/scroll-tech/gkr-backend.git?tag=v1.0.0-alpha.18)", + "multilinear_extensions", "num-integer", - "p3 0.1.0 (git+https://github.com/scroll-tech/gkr-backend.git?tag=v1.0.0-alpha.18)", + "p3", "rand 0.8.5", "rand_chacha 0.3.1", "rayon", "serde", - "sumcheck 0.1.0 (git+https://github.com/scroll-tech/gkr-backend.git?tag=v1.0.0-alpha.18)", + "sumcheck", "tracing", "tracing-subscriber", - "transcript 0.1.0 (git+https://github.com/scroll-tech/gkr-backend.git?tag=v1.0.0-alpha.18)", - "whir 0.1.0 (git+https://github.com/scroll-tech/gkr-backend.git?tag=v1.0.0-alpha.18)", - "witness 0.1.0 (git+https://github.com/scroll-tech/gkr-backend.git?tag=v1.0.0-alpha.18)", -] - -[[package]] -name = "multilinear_extensions" -version = "0.1.0" -source = "git+https://github.com/scroll-tech/gkr-backend.git?tag=v1.0.0-alpha.15#9be620b18900138d0b89569759fc2b3b9451b49e" -dependencies = [ - "either", - "ff_ext 0.1.0 (git+https://github.com/scroll-tech/gkr-backend.git?tag=v1.0.0-alpha.15)", - "itertools 0.13.0", - "p3 0.1.0 (git+https://github.com/scroll-tech/gkr-backend.git?tag=v1.0.0-alpha.15)", - "rand 0.8.5", - "rayon", - "serde", - "tracing", + "transcript", + "whir", + "witness", ] [[package]] @@ -3314,9 +3249,9 @@ version = "0.1.0" source = "git+https://github.com/scroll-tech/gkr-backend.git?tag=v1.0.0-alpha.18#f53336217179d70df37852fc850b786d4bc82f15" dependencies = [ "either", - "ff_ext 0.1.0 (git+https://github.com/scroll-tech/gkr-backend.git?tag=v1.0.0-alpha.18)", + "ff_ext", "itertools 0.13.0", - "p3 0.1.0 (git+https://github.com/scroll-tech/gkr-backend.git?tag=v1.0.0-alpha.18)", + "p3", "rand 0.8.5", "rayon", "serde", @@ -4603,31 +4538,6 @@ dependencies = [ "sha2", ] -[[package]] -name = "p3" -version = "0.1.0" -source = "git+https://github.com/scroll-tech/gkr-backend.git?tag=v1.0.0-alpha.15#9be620b18900138d0b89569759fc2b3b9451b49e" -dependencies = [ - "p3-air", - "p3-baby-bear", - "p3-challenger", - "p3-commit", - "p3-dft", - "p3-field", - "p3-fri", - "p3-goldilocks", - "p3-matrix", - "p3-maybe-rayon", - "p3-mds", - "p3-merkle-tree", - "p3-monty-31", - "p3-poseidon", - "p3-poseidon2", - "p3-poseidon2-air", - "p3-symmetric", - "p3-util", -] - [[package]] name = "p3" version = "0.1.0" @@ -5196,23 +5106,13 @@ dependencies = [ "portable-atomic", ] -[[package]] -name = "poseidon" -version = "0.1.0" -source = "git+https://github.com/scroll-tech/gkr-backend.git?tag=v1.0.0-alpha.15#9be620b18900138d0b89569759fc2b3b9451b49e" -dependencies = [ - "ff_ext 0.1.0 (git+https://github.com/scroll-tech/gkr-backend.git?tag=v1.0.0-alpha.15)", - "p3 0.1.0 (git+https://github.com/scroll-tech/gkr-backend.git?tag=v1.0.0-alpha.15)", - "serde", -] - [[package]] name = "poseidon" version = "0.1.0" source = "git+https://github.com/scroll-tech/gkr-backend.git?tag=v1.0.0-alpha.18#f53336217179d70df37852fc850b786d4bc82f15" dependencies = [ - "ff_ext 0.1.0 (git+https://github.com/scroll-tech/gkr-backend.git?tag=v1.0.0-alpha.18)", - "p3 0.1.0 (git+https://github.com/scroll-tech/gkr-backend.git?tag=v1.0.0-alpha.18)", + "ff_ext", + "p3", "serde", ] @@ -6236,11 +6136,11 @@ dependencies = [ "cfg-if", "dashu", "elliptic-curve", - "ff_ext 0.1.0 (git+https://github.com/scroll-tech/gkr-backend.git?tag=v1.0.0-alpha.18)", + "ff_ext", "generic-array 1.2.0", "itertools 0.13.0", "k256 0.13.4 (registry+https://github.com/rust-lang/crates.io-index)", - "multilinear_extensions 0.1.0 (git+https://github.com/scroll-tech/gkr-backend.git?tag=v1.0.0-alpha.18)", + "multilinear_extensions", "num", "p256", "p3-field", @@ -6353,53 +6253,22 @@ version = "2.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "13c2bddecc57b384dee18652358fb23172facb8a2c51ccc10d74c157bdea3292" -[[package]] -name = "sumcheck" -version = "0.1.0" -source = "git+https://github.com/scroll-tech/gkr-backend.git?tag=v1.0.0-alpha.15#9be620b18900138d0b89569759fc2b3b9451b49e" -dependencies = [ - "either", - "ff_ext 0.1.0 (git+https://github.com/scroll-tech/gkr-backend.git?tag=v1.0.0-alpha.15)", - "itertools 0.13.0", - "multilinear_extensions 0.1.0 (git+https://github.com/scroll-tech/gkr-backend.git?tag=v1.0.0-alpha.15)", - "p3 0.1.0 (git+https://github.com/scroll-tech/gkr-backend.git?tag=v1.0.0-alpha.15)", - "rayon", - "serde", - "sumcheck_macro 0.1.0 (git+https://github.com/scroll-tech/gkr-backend.git?tag=v1.0.0-alpha.15)", - "thiserror 1.0.69", - "tracing", - "transcript 0.1.0 (git+https://github.com/scroll-tech/gkr-backend.git?tag=v1.0.0-alpha.15)", -] - [[package]] name = "sumcheck" version = "0.1.0" source = "git+https://github.com/scroll-tech/gkr-backend.git?tag=v1.0.0-alpha.18#f53336217179d70df37852fc850b786d4bc82f15" dependencies = [ "either", - "ff_ext 0.1.0 (git+https://github.com/scroll-tech/gkr-backend.git?tag=v1.0.0-alpha.18)", + "ff_ext", "itertools 0.13.0", - "multilinear_extensions 0.1.0 (git+https://github.com/scroll-tech/gkr-backend.git?tag=v1.0.0-alpha.18)", - "p3 0.1.0 (git+https://github.com/scroll-tech/gkr-backend.git?tag=v1.0.0-alpha.18)", + "multilinear_extensions", + "p3", "rayon", "serde", - "sumcheck_macro 0.1.0 (git+https://github.com/scroll-tech/gkr-backend.git?tag=v1.0.0-alpha.18)", + "sumcheck_macro", "thiserror 1.0.69", "tracing", - "transcript 0.1.0 (git+https://github.com/scroll-tech/gkr-backend.git?tag=v1.0.0-alpha.18)", -] - -[[package]] -name = "sumcheck_macro" -version = "0.1.0" -source = "git+https://github.com/scroll-tech/gkr-backend.git?tag=v1.0.0-alpha.15#9be620b18900138d0b89569759fc2b3b9451b49e" -dependencies = [ - "itertools 0.13.0", - "p3 0.1.0 (git+https://github.com/scroll-tech/gkr-backend.git?tag=v1.0.0-alpha.15)", - "proc-macro2", - "quote", - "rand 0.8.5", - "syn 2.0.101", + "transcript", ] [[package]] @@ -6408,7 +6277,7 @@ version = "0.1.0" source = "git+https://github.com/scroll-tech/gkr-backend.git?tag=v1.0.0-alpha.18#f53336217179d70df37852fc850b786d4bc82f15" dependencies = [ "itertools 0.13.0", - "p3 0.1.0 (git+https://github.com/scroll-tech/gkr-backend.git?tag=v1.0.0-alpha.18)", + "p3", "proc-macro2", "quote", "rand 0.8.5", @@ -6824,26 +6693,15 @@ dependencies = [ "tracing-log", ] -[[package]] -name = "transcript" -version = "0.1.0" -source = "git+https://github.com/scroll-tech/gkr-backend.git?tag=v1.0.0-alpha.15#9be620b18900138d0b89569759fc2b3b9451b49e" -dependencies = [ - "ff_ext 0.1.0 (git+https://github.com/scroll-tech/gkr-backend.git?tag=v1.0.0-alpha.15)", - "itertools 0.13.0", - "p3 0.1.0 (git+https://github.com/scroll-tech/gkr-backend.git?tag=v1.0.0-alpha.15)", - "poseidon 0.1.0 (git+https://github.com/scroll-tech/gkr-backend.git?tag=v1.0.0-alpha.15)", -] - [[package]] name = "transcript" version = "0.1.0" source = "git+https://github.com/scroll-tech/gkr-backend.git?tag=v1.0.0-alpha.18#f53336217179d70df37852fc850b786d4bc82f15" dependencies = [ - "ff_ext 0.1.0 (git+https://github.com/scroll-tech/gkr-backend.git?tag=v1.0.0-alpha.18)", + "ff_ext", "itertools 0.13.0", - "p3 0.1.0 (git+https://github.com/scroll-tech/gkr-backend.git?tag=v1.0.0-alpha.18)", - "poseidon 0.1.0 (git+https://github.com/scroll-tech/gkr-backend.git?tag=v1.0.0-alpha.18)", + "p3", + "poseidon", ] [[package]] @@ -7129,29 +6987,6 @@ dependencies = [ "wasm-bindgen", ] -[[package]] -name = "whir" -version = "0.1.0" -source = "git+https://github.com/scroll-tech/gkr-backend.git?tag=v1.0.0-alpha.15#9be620b18900138d0b89569759fc2b3b9451b49e" -dependencies = [ - "bincode 1.3.3", - "clap", - "derive_more 1.0.0", - "ff_ext 0.1.0 (git+https://github.com/scroll-tech/gkr-backend.git?tag=v1.0.0-alpha.15)", - "itertools 0.14.0", - "multilinear_extensions 0.1.0 (git+https://github.com/scroll-tech/gkr-backend.git?tag=v1.0.0-alpha.15)", - "p3 0.1.0 (git+https://github.com/scroll-tech/gkr-backend.git?tag=v1.0.0-alpha.15)", - "rand 0.8.5", - "rand_chacha 0.3.1", - "rayon", - "serde", - "sumcheck 0.1.0 (git+https://github.com/scroll-tech/gkr-backend.git?tag=v1.0.0-alpha.15)", - "tracing", - "transcript 0.1.0 (git+https://github.com/scroll-tech/gkr-backend.git?tag=v1.0.0-alpha.15)", - "transpose", - "witness 0.1.0 (git+https://github.com/scroll-tech/gkr-backend.git?tag=v1.0.0-alpha.15)", -] - [[package]] name = "whir" version = "0.1.0" @@ -7160,19 +6995,19 @@ dependencies = [ "bincode 1.3.3", "clap", "derive_more 1.0.0", - "ff_ext 0.1.0 (git+https://github.com/scroll-tech/gkr-backend.git?tag=v1.0.0-alpha.18)", + "ff_ext", "itertools 0.14.0", - "multilinear_extensions 0.1.0 (git+https://github.com/scroll-tech/gkr-backend.git?tag=v1.0.0-alpha.18)", - "p3 0.1.0 (git+https://github.com/scroll-tech/gkr-backend.git?tag=v1.0.0-alpha.18)", + "multilinear_extensions", + "p3", "rand 0.8.5", "rand_chacha 0.3.1", "rayon", "serde", - "sumcheck 0.1.0 (git+https://github.com/scroll-tech/gkr-backend.git?tag=v1.0.0-alpha.18)", + "sumcheck", "tracing", - "transcript 0.1.0 (git+https://github.com/scroll-tech/gkr-backend.git?tag=v1.0.0-alpha.18)", + "transcript", "transpose", - "witness 0.1.0 (git+https://github.com/scroll-tech/gkr-backend.git?tag=v1.0.0-alpha.18)", + "witness", ] [[package]] @@ -7439,27 +7274,14 @@ dependencies = [ "bitflags", ] -[[package]] -name = "witness" -version = "0.1.0" -source = "git+https://github.com/scroll-tech/gkr-backend.git?tag=v1.0.0-alpha.15#9be620b18900138d0b89569759fc2b3b9451b49e" -dependencies = [ - "ff_ext 0.1.0 (git+https://github.com/scroll-tech/gkr-backend.git?tag=v1.0.0-alpha.15)", - "multilinear_extensions 0.1.0 (git+https://github.com/scroll-tech/gkr-backend.git?tag=v1.0.0-alpha.15)", - "p3 0.1.0 (git+https://github.com/scroll-tech/gkr-backend.git?tag=v1.0.0-alpha.15)", - "rand 0.8.5", - "rayon", - "tracing", -] - [[package]] name = "witness" version = "0.1.0" source = "git+https://github.com/scroll-tech/gkr-backend.git?tag=v1.0.0-alpha.18#f53336217179d70df37852fc850b786d4bc82f15" dependencies = [ - "ff_ext 0.1.0 (git+https://github.com/scroll-tech/gkr-backend.git?tag=v1.0.0-alpha.18)", - "multilinear_extensions 0.1.0 (git+https://github.com/scroll-tech/gkr-backend.git?tag=v1.0.0-alpha.18)", - "p3 0.1.0 (git+https://github.com/scroll-tech/gkr-backend.git?tag=v1.0.0-alpha.18)", + "ff_ext", + "multilinear_extensions", + "p3", "rand 0.8.5", "rayon", "tracing", diff --git a/Cargo.toml b/Cargo.toml index 602780a75..f82b880cc 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -36,6 +36,7 @@ transcript = { git = "https://github.com/scroll-tech/gkr-backend.git", package = whir = { git = "https://github.com/scroll-tech/gkr-backend.git", package = "whir", tag = "v1.0.0-alpha.18" } witness = { git = "https://github.com/scroll-tech/gkr-backend.git", package = "witness", tag = "v1.0.0-alpha.18" } + anyhow = { version = "1.0", default-features = false } bincode = "1" cfg-if = "1.0" @@ -126,7 +127,7 @@ lto = "thin" #ceno_syscall = { path = "../ceno-patch/syscall", package = "ceno_syscall" } # [patch."https://github.com/scroll-tech/ceno-gpu-mock.git"] -# ceno_gpu = { path = "../ceno-gpu/cuda_hal", package = "cuda_hal", default-features = false, features=["bb31"] } +# ceno_gpu = { path = "../ceno-gpu/cuda_hal", package = "cuda_hal", default-features = false, features = ["bb31"] } #[patch."https://github.com/scroll-tech/gkr-backend"] #ff_ext = { path = "../gkr-backend/crates/ff_ext", package = "ff_ext" } diff --git a/ceno_zkvm/src/e2e.rs b/ceno_zkvm/src/e2e.rs index 047e238a8..1570eece5 100644 --- a/ceno_zkvm/src/e2e.rs +++ b/ceno_zkvm/src/e2e.rs @@ -1654,7 +1654,7 @@ fn create_proofs_streaming< { let mut proofs = Vec::new(); let mut proof_err = None; - let mut rx = rx; + let rx = rx; while let Ok((zkvm_witness, shard_ctx, pi)) = rx.recv() { if is_mock_proving { MockProver::assert_satisfied_full( diff --git a/gkr_iop/src/gkr/layer.rs b/gkr_iop/src/gkr/layer.rs index 64eb747be..9f23a40ba 100644 --- a/gkr_iop/src/gkr/layer.rs +++ b/gkr_iop/src/gkr/layer.rs @@ -6,6 +6,7 @@ use multilinear_extensions::{ Expression, Instance, StructuralWitIn, ToExpr, mle::{Point, PointAndEval}, monomial::Term, + utils::Node, }; use p3::field::FieldAlgebra; use rayon::iter::{IntoParallelIterator, IntoParallelRefIterator}; @@ -48,6 +49,8 @@ pub enum LayerType { Linear, } +pub type DagInfo = (Vec, Vec>, u32, usize, usize); + #[derive(Clone, Debug, Serialize, Deserialize)] #[serde(bound( serialize = "E::BaseField: Serialize", @@ -103,6 +106,10 @@ pub struct Layer { pub main_sumcheck_expression_monomial_terms: Option, Expression>>>, pub main_sumcheck_expression: Option>, + // flatten computation dag + // (dag, coeffs, final_out_index, max_dag_depth, max_degree) + pub main_sumcheck_expression_dag: Option>, + // rotation sumcheck expression, only optionally valid for zerocheck // store in 2 forms: expression & monomial pub rotation_sumcheck_expression_monomial_terms: @@ -175,6 +182,7 @@ impl Layer { expr_names, main_sumcheck_expression_monomial_terms: None, main_sumcheck_expression: None, + main_sumcheck_expression_dag: None, rotation_sumcheck_expression_monomial_terms: None, rotation_sumcheck_expression: None, }; diff --git a/gkr_iop/src/gkr/layer/gpu/mod.rs b/gkr_iop/src/gkr/layer/gpu/mod.rs index e91c09691..02fb0d0a8 100644 --- a/gkr_iop/src/gkr/layer/gpu/mod.rs +++ b/gkr_iop/src/gkr/layer/gpu/mod.rs @@ -18,6 +18,7 @@ use multilinear_extensions::{ Expression, mle::{MultilinearExtension, Point}, monomial::Term, + utils::eval_by_expr_constant, }; use rayon::{ iter::{IndexedParallelIterator, IntoParallelRefIterator, ParallelIterator}, @@ -235,8 +236,25 @@ impl> ZerocheckLayerProver ); exit_span!(span_eq); + // process dag + // (dag, coeffs, final_out_index, max_dag_depth, max_degree) + let (dag, dag_coeffs, final_out_index, max_dag_depth, max_degree) = + layer.main_sumcheck_expression_dag.as_ref().unwrap(); + + let pub_io_eval_scalar = pub_io_evals.iter().map(|v| Either::Right(*v)).collect_vec(); + // format: pub_io ++ challenge ++ constant + let dag_coeffs = dag_coeffs + .iter() + .map(|c| eval_by_expr_constant(&pub_io_eval_scalar, &main_sumcheck_challenges, c)) + .map(|either_v| match either_v { + Either::Left(base_field_val) => E::from(base_field_val), + Either::Right(ext_field_val) => ext_field_val, + }) + .collect_vec(); + + // process monomial terms // Calculate max_num_var and max_degree from the extracted relationships - let (term_coefficients, mle_indices_per_term, mle_size_info) = + let (monomial_coefficients, mle_indices_per_term, mle_size_info) = extract_mle_relationships_from_monomial_terms( &layer .main_sumcheck_expression_monomial_terms @@ -246,18 +264,18 @@ impl> ZerocheckLayerProver &pub_io_evals.iter().map(|v| Either::Right(*v)).collect_vec(), &main_sumcheck_challenges, ); + let max_num_var = max_num_variables; - let max_degree = mle_indices_per_term - .iter() - .map(|indices| indices.len()) - .max() - .unwrap_or(0); + + // Convert types for GPU function Call + let monomial_coefficients: Vec = + unsafe { std::mem::transmute(monomial_coefficients) }; // Convert types for GPU function Call let basic_tr: &mut BasicTranscript = unsafe { &mut *(transcript as *mut _ as *mut BasicTranscript) }; - let term_coefficients_gl64: Vec = - unsafe { std::mem::transmute(term_coefficients) }; + let dag_coeffs: Vec = unsafe { std::mem::transmute(dag_coeffs) }; + let all_witins_gpu_gl64: Vec<&MultilinearExtensionGpu> = unsafe { std::mem::transmute(all_witins_gpu) }; let all_witins_gpu_type_gl64 = all_witins_gpu_gl64.iter().map(|mle| &mle.mle).collect_vec(); @@ -267,13 +285,18 @@ impl> ZerocheckLayerProver &cuda_hal, all_witins_gpu_type_gl64, &mle_size_info, - &term_coefficients_gl64, + &monomial_coefficients, &mle_indices_per_term, max_num_var, - max_degree, + *max_degree, + dag, + *max_dag_depth, + &dag_coeffs, + *final_out_index, basic_tr, ) .unwrap(); + let evals_gpu = evals_gpu.into_iter().flatten().collect_vec(); let row_challenges = challenges_gpu.iter().map(|c| c.elements).collect_vec(); @@ -392,6 +415,10 @@ pub(crate) fn prove_rotation_gpu ZerocheckLayer for Layer { self.n_fixed as WitnessId, self.n_instance, ); - tracing::debug!("main sumcheck degree: {}", zero_expr.degree()); + let zero_expr_degree = zero_expr.degree(); self.main_sumcheck_expression = Some(zero_expr); self.main_sumcheck_expression_monomial_terms = self .main_sumcheck_expression .as_ref() .map(|expr| expr.get_monomial_terms()); - tracing::debug!( - "main sumcheck monomial terms count: {}", + + { + if let Some(terms) = self.main_sumcheck_expression_monomial_terms.as_ref() { + let num_mul: usize = terms.iter().map(|term| term.product.len()).sum(); + let num_add = terms.iter().len() - 1; + + tracing::debug!( + "layer name {} monomial num_add: {num_add} num_mul: {num_mul}", + self.name, + ); + } + } + + self.main_sumcheck_expression_dag = { self.main_sumcheck_expression_monomial_terms .as_ref() - .map_or(0, |terms| terms.len()), - ); + .map(|terms| { + // selector are structural witin, which is used to be the largest id. + let (dag, coeffs, Some(final_out_index), max_dag_depth) = build_factored_dag_commutative(terms, false) else { panic!() }; + let max_degree = zero_expr_degree; + + let (num_add, num_mul) = dag_stats(&dag); + tracing::debug!( + "layer name {} dag got num_add {num_add} num_mul {num_mul} max_degree {max_degree} \ + max_dag_depth {max_dag_depth} num_scalar {} final_out_index {final_out_index}", + self.name, + coeffs.len(), + ); + (dag, coeffs, final_out_index, max_dag_depth as usize, zero_expr_degree) + }) + }; + exit_span!(span); }