-
Notifications
You must be signed in to change notification settings - Fork 36
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
Features: Orion implementation related peripheral building blocks #142
Merged
Conversation
This file contains 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
This was referenced Nov 9, 2024
zhiyong1997
reviewed
Nov 11, 2024
zhiyong1997
reviewed
Nov 11, 2024
zhiyong1997
reviewed
Nov 11, 2024
zhiyong1997
reviewed
Nov 11, 2024
zhiyong1997
reviewed
Nov 11, 2024
zhiyong1997
requested changes
Nov 11, 2024
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
As commented.
tonyfloatersu
force-pushed
the
hs/orion-building-blocks-arith
branch
from
November 11, 2024 21:16
13d4747
to
4fd26ab
Compare
zhiyong1997
approved these changes
Nov 12, 2024
zhenfeizhang
added a commit
that referenced
this pull request
Jan 27, 2025
* fix power gate (#128) * Recursive Verifier (#127) * tmp * transcript refactor * transcript refactor * tmp * tm[ * v1 * rm proof txt file * clippy * minor * fmt * tmp fix * fix * fix errors in merge * minor * file location update * clean up * clean up * fix grinding * lock/unlock proof in transcript * testing script * update script * hash test in rust * minor * script update * update script * update script * tmp * fix expander-exec * fmt * Lagrange Form Bi kzg update (#130) * tmp * clean up * fix clippy * fix clippy * add a bit more tests * minor --------- Co-authored-by: zhenfei <[email protected]> * [impl] adding sumcheck-cuda (#131) * stats code & release binary (#135) * stats code * release binary * fix-binary-release (#136) * Reuse eq_evals in prover, verifier, and recursive verifier (#138) * reduce randomness and reuse eq evals * add recursion in ci * add recursion in ci * pcs trait v1 (#140) * pcs trait v1 * &mut for pcs scheme * remove &mut self for verify * add cache for CI * Update nightly_e2e.yml * Features: Orion implementation related peripheral building blocks (#142) * Feature: Merkle Tree implementation as Orion pcs building block (#143) * init commit for merkle tree implementation * benchmarked and optimized, shit runs fast * allocate rather than concat * use move for intermediate results that can be dropped later * shorten bench time * additional benchmarks * Zf/config refactor (#146) * config refactor wip * config refactor wip * refactor config wip * refactor config wip * macros done * refactor done * fmt * clippy auto fix * fix grinding feature * fix verifier scratch pad * PCS Trait V2 & Integration (#150) Second version of PCS trait and PCS for Expander GKR interface, integrating Raw PCS to linear GKR prover * Minor: Merging `FieldSerde` into `Field`, and deprecating `try_deserialize_from_ecc_format` (#151) Co-authored-by: Zhiyong Fang <[email protected]> * Minor: Typo fixing for GF2 and tree bench shorten (#152) * Minor: MISC changes including rust fmt, CI caches, and MT serde (#154) * init commit for extension field from/to-limbs methods (#159) * Minor: Traits for multilinear polynomials, PCS minor changes (#158) * reference (read-only/write) multilinear polynomial prototype * full set of testing for both ref and mut_ref mle * minor, prototype (mut)-multilinear-extension traits for ref-mle-polys * continue with (mutable)multilinear-extension trait implementation * pcs interface change to box dyn multilinear-extension, collateral changes included * minor, add one more trait method of ref to hypercube basis * minor, use impl to get around lifetime specification in place * pcs crs from deterministic seed in testing across mpi (#162) * Minor: Fixing BN254 Recursion on RawPCS deserialization (#163) * Expose expander-exec APIs for ECC (#165) * expose exec apis * fix clippy * fix clippy * Minor: Poseidon M31 Transcript (#160) Signed-off-by: Tiancheng Xie <[email protected]> Co-authored-by: Tiancheng Xie <[email protected]> * Zf/virgo++ (#164) * e2e infrastructure * tmp * tmp * circuit deserialization * tmp * tmp * v1 * fmt * clippy auto fix * clippy * minor * minor * fmt * minor * fix mpi ci (#174) * remove rust cache * try... * clean up * profiling * the old fashion * Update install.py * remove apt update * Update benchmarks.yml * enable sudo for CI * [impl] update soft-lock based naive prepare impl (#173) * temporarily uses GitHub's CI (#175) * Minor: Recursion Script Typo Fix from CI Fix (#176) * Minor: Orion PCS only base field impls (#177) * Minor: Mersenne31 GKR recursive verifier (#168) * extracted changes for poseidon m31 transcript * minor - mimc tested, sponge set/get state trait methods * fkin hell - just wanna specify Transcript baseF challengeF ... didnt expect this comin * morphing field hash transcript, hash from base field output challenge field * squeeze, squeeze_state, and set_state in field hash sponge trait * changed interface for transcript - wondering why recursive mimc transcript not matching * so poseidon m31 works for gkr correctness, which is a relief * you squeaky lil bug there you go * Revert "you squeaky lil bug there you go" This reverts commit 1bc8381. * Revert "so poseidon m31 works for gkr correctness, which is a relief" This reverts commit 573b7d4. * Revert "changed interface for transcript - wondering why recursive mimc transcript not matching" This reverts commit a8ff4f2. * Revert "squeeze, squeeze_state, and set_state in field hash sponge trait" This reverts commit ce80aec. * Revert "morphing field hash transcript, hash from base field output challenge field" This reverts commit 90ebc09. * Revert "fkin hell - just wanna specify Transcript baseF challengeF ... didnt expect this comin" This reverts commit 559b565. * revert back to field hasher from previous interface * minor rewrite on field hash transcript - move FiatShamirFieldHash into arith * minor changes stashing * refactoring field hash transcript to using hash state (vec of base field elems) * minor rewrite - make transcript impl less lines * minor - move mimc to crate field_hashers under arith, remove hasher mimc impl * prototyped poseidon permutation and integrated into gkr correctness * export with name suffix fiat-shamir-hasher, rename to align names * minor - mpi sync up state * minor - typo fixing * stashing changes for sampling circuit elems * gathering stashed circuit changes * recursion CI setup * stashing CI related changes and notes on commenting out api println * minor - api for zeroes over extension field * stash changes from transcript side * raw commitment length w.r.t. base field needs input size * mpi size * simd size * take simd variables into consideration, and note places needs fixing * continue code read with gkr runtime and check against recursive verifier * minor - setup circuit for recursive test * update go mod version * prototyped recursive verifier with CI running * minor - follow up changes for merging dev changes * CI recursion steps update * minor - upload a small enough circuit for recursion test * update ecc branch - remove prev poseidon impl * i dont like it but it works for CI for now * clean up ci yml file --------- Signed-off-by: Tiancheng Xie <[email protected]> Co-authored-by: Tiancheng Xie <[email protected]> * Minor: Fix CI build (#178) * Minor: SIMD orion PCS impls (#179) * Feature: Orion PCS Integration (#153) --------- Signed-off-by: Zhiyong Fang <[email protected]> Co-authored-by: Zhiyong Fang <[email protected]> * CI: build ECC locally rather than downloading (#181) * Minor: Simpler CI from ECC script (#182) * init commit for the gf2 avx256 fix (#183) * fix fiat-shamir (#184) * hash the commitment for sufficient depth * clean up * clean up * clean up * use recursion gate to guard the grinding * Minor: Unified CI workflows (#185) * Minor: Bringing benchmark machine back (#186) * Minor: PCS trait changes (#188) * Minor: Fixing build workflow CI process (#187) * Update readme.md Signed-off-by: Tiancheng Xie <[email protected]> * Update readme.md Signed-off-by: Tiancheng Xie <[email protected]> * fixes broken link (#147) --------- Signed-off-by: Tiancheng Xie <[email protected]> Signed-off-by: Zhiyong Fang <[email protected]> Co-authored-by: Zhiyong Fang <[email protected]> Co-authored-by: Simon Lau <[email protected]> Co-authored-by: tonyfloatersu <[email protected]> Co-authored-by: mcfx <[email protected]> Co-authored-by: Tiancheng Xie <[email protected]> Co-authored-by: Yahya Hassanzadeh, Ph.D. <[email protected]>
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.
This PR contains following things in favor of Orion pcs implementation in #137:
u64
.SimdField
implementation for inGF2_128
forGF2
elements.pack_size()
method inSimdField
into trait constantPACK_SIZE: usize
.FIELD_SIZE
inNeonGF2_128x8
.ExtensionField
withMul<Self::BaseField>
in support of multiplication with base field elems (controversial, up for discussion).