-
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
Feature: Orion PCS Integration #153
Conversation
tonyfloatersu
commented
Nov 21, 2024
•
edited
Loading
edited
- Orion (base field / simd field) impls
- Orion MPI functionality (proof aggregating from different parties)
- MPI environment spin up for a real e2e testing
- integrating PCS into GKR configs
6aba141
to
0fe9dc4
Compare
06038ff
to
0694446
Compare
arith/src/simd_field.rs
Outdated
{ | ||
assert_eq!(simd_vec.len() * PackF::PACK_SIZE, Self::PACK_SIZE); | ||
let mut temp: Vec<_> = simd_vec.to_vec(); | ||
temp.reverse(); |
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.
Is this for gf2x128
and gf2x64
only? reverse
here is a little confusing.
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.
right - this was introduced to pack gf2x8
s into gf2x64
or gf2x128
... the reverse here is to fit into the bit ordering, that allows for unpacking in correct order, but truly, leaving without a note seems a bit confusing
Signed-off-by: Zhiyong Fang <[email protected]>
fbbf6dc
to
0c35935
Compare
221f781
to
22abffa
Compare
I've went throught the base field impl, but haven't touched the |
* 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]>