Comments (6)
This is incorrect, the above discrepancies were even after the equivalent alg was implemented. In fact, our assembly montgomery mul is faster.
Anw, I'm closing, as these comments are imo based on old data and not worth digging up. If someone wants to bench carefully and find areas for improvements please do so anew.
from algebra.
All elliptic curves in Zexe already work with the pippenger-based MSM!
from algebra.
At some point the Edwards "Jubjub" curves could benefit form Pippenger too, although maybe that code should be modeled on dalek or something, not sure.
from algebra.
Hmm @jon-chuang do you know what the difference between the two algorithms was? I believe ark-ec
is just using the standard EFD algorithms
from algebra.
Well certainly with w-NAF and GLV we've achieved the desired speedup for scalar mul and more. The only remaining question is for the mixed add.
Wrt your question, I don't know.
from algebra.
AFAIU, gnark has a lower finite field multiplication time than arkworks, due to the optimization to montgomery reduction they describe in this article: https://hackmd.io/@zkteam/modular_multiplication#Implementation. Their speedup was 65ns -> 50ns per multiplication, which looks roughly like the speedup for mul_assign
.
(Perhaps theres a separate algorithmic speedup there as well)
from algebra.
Related Issues (20)
- Rust analyser not inferring input types for ```FixedBase::msm``` and ```VariableBaseMSM::msm``` HOT 5
- WASM compilation error due to loop unrolling
- Optimize BW6 Miller loop HOT 1
- Borrow G2Prepared HOT 2
- Use try_from_fn in future
- BW6 generic final exponentiation (hard part) HOT 1
- unresolved import `ark_test_curves::ed_on_bls12_381 HOT 4
- Remove SWUMap and WBMap, fix MapToCurve semantics HOT 2
- Idiomatic HashToField HOT 3
- Z_pad block_size confusion HOT 1
- Implement addition chains for BW6 final exp HOT 2
- Can the `Expander` implementations be made public? HOT 4
- Add multiplication and division methods for `BigInteger`
- Inconsistency between code and documentation
- CanonicalSerde for Rc and Arc HOT 2
- Division by linear polynomial is not linear with degree of dividend HOT 4
- In version 0.3, `multi_scalar_mul` output is incorrect if scalar exceeds curve order. HOT 1
- How to transfer data structure from other lib to ark HOT 1
- Serialization of GT HOT 13
- Issue with Fp6_2over3 when used in pairing
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from algebra.