[follow up on #1259] resolve conflict with master branch #1286
Merged
Velaciela merged 7 commits intofeat/gpu-witnessgenfrom Apr 1, 2026
Merged
[follow up on #1259] resolve conflict with master branch #1286Velaciela merged 7 commits intofeat/gpu-witnessgenfrom
Velaciela merged 7 commits intofeat/gpu-witnessgenfrom
Conversation
## Summary Fixes #1125. ## Performance (recursion prover) The recursion proving time (for block `23817600`): - before: 62s - after: 61.6s | shard | total cells (baseline) | total cells | increase ratio | - | - | - | - | leaf 0 | 750,783,978 | 961,285,610 | +28.04% (have no clue on this) leaf 1 | 731,876,842 | 733,220,330 | +0.18% leaf 2 | 731,876,842 | 733,220,330 | +0.18% leaf 3 | 731,876,842 | 733,220,330 | +0.18% leaf 4 | 731,876,842 | 733,220,330 | +0.18% leaf 5 | 729,124,330 | 729,124,330 | +0.00% leaf 6 | 1,325,207,018 | 1,325,207,018 | +0.00% leaf 7 | 1,299,647,978 | 1,299,647,978 | +0.00% leaf 8 | 1,299,647,978 | 1,299,647,978 | +0.00% leaf 9 | 1,299,647,978 | 1,299,647,978 | +0.00% leaf 10 | 1,299,647,978 | 1,299,647,978 | +0.00% leaf 11 | 733,220,330 | 733,220,330 | +0.00% leaf 12 | 731,876,842 | 733,220,330 | +0.18% leaf 13 | 731,876,842 | 733,220,330 | +0.18% leaf 14 | 729,124,330 | 731,287,018 | +0.30%
Optimization for Calculating Initial Sum in tower verify. - Remove dot product logic for calculating `initial_sum`. Use `NativeSumcheck` instead. - Flatten out evaluation arrays. - Remove arithmetic utilities no longer required. Optimization for `NativeSumcheck` - Use the additional mode on `NativeSumcheck` chip that allows passing in hint space IDs for evaluation inputs instead of loading concrete witness arrays. This significantly reduces cycles involved in loading witnesses. --------- Co-authored-by: kunxian xia <xiakunxian130@gmail.com> Co-authored-by: Ming <hero78119@gmail.com>
This PR introduce some changes to simplify recursion verifier development ### Notes - simplify branching 1: always write 2 fixed_commitment - simplify branching 2: Standardized chip num_instances to fixed two-lane format ([usize; 2]) across zkVM prove/verify paths.
…value + PublicValues (#1277) This PR refactors how public inputs (PI) are represented and consumed across zkVM proving/verification so that PI handling is circuit-driven and consistent end-to-end. Related to #1263. ### Design rationale Previously, PI transcript absorption and some verifier checks depended on broader/raw PI containers, which made ordering and indexing assumptions harder to audit and keep consistent across: - prover - rust verifier - recursion verifier. This PR moves PI consumption to a canonical, circuit-defined path: - `instance_values` defines which scalar PI values a circuit observes (and in what order). - `instance_openings` defines which PI MLE columns are opened. - PI openings are derived from `PublicValues` MLEs, rather than ad-hoc/raw vectors. This reduces ambiguity in PI ordering/indexing and aligns transcript-visible PI handling with circuit semantics. ### pi update Previous `pi_update` mechanism will trigger verifier failed if a identical public value used > 1 chip because they will be in different opening point, thus evaluation value will be different. This PR fixed the issue, and refactor public value check back to `verify_chip_phase` ### soundness fix This PR also fixed a soundness issue by removing `wit_in_evals` and `fixed_in_evals` from the proof payload. Instead of trusting prover-supplied values for these evaluations, the verifier now deterministically derives them from the sumcheck evaluations during verification. This prevents a malicious prover from introducing mismatches between claimed eval vectors and the actual sumcheck-consistent values. ### Follow up #1280
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Resolve 6 conflict files, while other are just pure merge
CONFLICT (content): Merge conflict in ceno_emul/src/lib.rs
CONFLICT (content): Merge conflict in ceno_zkvm/src/e2e.rs
CONFLICT (content): Merge conflict in ceno_zkvm/src/instructions/riscv/ecall.rs
CONFLICT (content): Merge conflict in ceno_zkvm/src/precompiles/mod.rs
CONFLICT (content): Merge conflict in ceno_zkvm/src/structs.rs
CONFLICT (content): Merge conflict in ceno_zkvm/src/tables/ram/ram_circuit.rs