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)
- Add normalization to `FpConfig` for `PartialEq` and `Eq` HOT 3
- The current GLV implementation may not be correct HOT 3
- Can arm64 also be optimized for field arithmetic operation? HOT 1
- Ark-ec pulls in full hashbrown without feature gate HOT 6
- New release? HOT 4
- Final exponentiation in BLS12-381not producing `(p ^ k - 1) / r` HOT 1
- Support mapping to all Weierstrass curves (Shallue-van de Woestijne method) HOT 1
- why is `Validate::No` hardcoded in some `impl`s? HOT 3
- know if a serialized piece of Arkworks structure has been compressed HOT 3
- Support for ristretto255 / sr25519 curve HOT 3
- `Affine - Projective` produces incorrect results
- `SparseMultillinearExtension::evaluate` is slow HOT 1
- Constant time curve arithmetic HOT 1
- Release with #794 HOT 1
- Necessity to retire "derivative" crate HOT 1
- Deserialization of array can panic HOT 3
- Decoding `BigUInt` causes unbound allocation HOT 3
- Easily set the size of a polynomial coefficient
- Add Mul for DenseMultilinearExtension * Scalar
- GF(2^128) operations HOT 1
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.