jon-chuang
jon-chuang
I did a final careful benchmarking of the recent PR arkworks-rs/snark#163. My first reccomendation is to try adding `RUSTFLAGS="--emit=asm"` as this can improve speed significantly. Here is a graphic summarising...
@Pratyush nonetheless, the `scalar_mul` timings are significantly slower (1.22x) than gnark. Further, the `mixed_add` timings are 1.06x slower. This is a finding I repeatedly arrive at.
I also find that inverse is significantly slower than goff (2.2x 13us vs goff’s 6us). Further, sqrt is also very slow (1.5x slower, 75/54us vs goff's ~25/54us). How performance critical...
I see. Is there any scenario in which batch inversion actually helps performance? Perhaps for something like pippenger-scalar mul/MSM? I am thinking of affine coordinates + batch inversion.
How about batch inversion in particular?
I see. But where is batch inversion used? You mentioned it is used for mixed addition? Or is that standard addition?
Since we are on par with your library, that would make us about 22-30 clock cycles behind MCL. That's roughly 25% extra bloat. That's remarkable. @pratyush, given this amazing result,...
@mratsim I think these are really great options to look into as our field towers are very slow vis a vis other libraries, even though we have improved on the...
I know this applies to the BN curves (as long as p = 1 mod 3) and the to-be-implemented BW6-761 curve. Which other curves does this apply to?
I believe a more modern reference for pairing-friendly curves would be [link](https://www.microsoft.com/en-us/research/wp-content/uploads/2013/08/exponentiating_pairing.pdf)